<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GNU/Linux | 星空の風景, 日々の風景</title>
	<atom:link href="https://globe3.ddns.net/wp/category/gnu-linux/feed/" rel="self" type="application/rss+xml" />
	<link>https://globe3.ddns.net/wp</link>
	<description>星空のこと. 日々に想うこと.</description>
	<lastBuildDate>Fri, 23 Oct 2026 02:55:04 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>PHP2Shell</title>
		<link>https://globe3.ddns.net/wp/work-on-php2shell-ubuntu24-04-5-lts/</link>
					<comments>https://globe3.ddns.net/wp/work-on-php2shell-ubuntu24-04-5-lts/#respond</comments>
		
		<dc:creator><![CDATA[minmin]]></dc:creator>
		<pubDate>Thu, 22 Oct 2026 06:41:20 +0000</pubDate>
				<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://globe3.ddns.net/wp/?p=6696</guid>

					<description><![CDATA[PHP2Shellに関して、Description: Ubuntu 24.04.5 LTS での確認を行いました。これは、その作業内容です。 PHP2Shell（ピーエイチピー・ツー・シェル）（CVE-2026-1096 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">PHP2Shellに関して、Description: Ubuntu 24.04.5 LTS での確認を行いました。これは、その作業内容です。</p>



<p class="wp-block-paragraph"><strong>PHP2Shell</strong>（ピーエイチピー・ツー・シェル）（CVE-2026-109618、CVE-2026-109619）<br><a rel="noopener" target="_blank" href="https://ja.wikipedia.org/wiki/PHP2Shell">https://ja.wikipedia.org/wiki/PHP2Shell</a></p>



<p class="wp-block-paragraph">PHP2Shell、何が起こっているのか？<br>お恥ずかしながら、ニュースで知りました。それだけ影響が大きいでようです。</p>



<p class="wp-block-paragraph"><strong>PHP</strong>（PHP: Hypertext Preprocessor)：とは？<br>広く使われているオープンソースの汎用スクリプト言語です。Web 開発に適しており、HTML に埋め込むことができます。</p>



<p class="wp-block-paragraph">PHPをWebサーバで動作させると、<br>HTML を出力したり、画像やPDFファイルを出力したり、データを暗号化したり、メール送信ができます。テキスト処理を行い、さらにデータベースも扱えます。</p>



<p class="wp-block-paragraph">多くのサイトがPHPを用いて、そのサービスをしています。ここもそうです。</p>



<p class="wp-block-paragraph">悪意を意図した命令をサーバーに送ることで、サーバー改ざん、情報の漏洩、マルウェアを入れられてしまうことがあります。</p>



<h2 class="wp-block-heading">パッチを確認します。</h2>



<p class="wp-block-paragraph">脆弱性に対応したアップデートに更新するために、</p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt upgrade</code></pre>



<p class="wp-block-paragraph">PHP更新を確認します。</p>



<pre class="wp-block-code"><code>apt-cache policy php8.3
php8.3:
  インストールされているバージョン: 8.3.6-0ubuntu0.24.04.13
  候補:               8.3.6-0ubuntu0.24.04.13
  バージョンテーブル:
 *** 8.3.6-0ubuntu0.24.04.13 500
        500 http://ports.ubuntu.com/ubuntu-ports noble-updates/main arm64 Packages
        500 http://ports.ubuntu.com/ubuntu-ports noble-security/main arm64 Packages
        100 /var/lib/dpkg/status
     8.3.6-0ubuntu0.24.04.12 500
        500 http://ports.ubuntu.com/ubuntu-ports noble-updates/main arm64 Packages
        500 http://ports.ubuntu.com/ubuntu-ports noble-security/main arm64 Packages
     8.3.6-0maysync1 500
        500 http://ports.ubuntu.com/ubuntu-ports noble/main arm64 Packages</code></pre>



<p class="wp-block-paragraph">&#8220;/usr/share&#8221; ディレクトリには、アーキテクチャに依存しないファイルが置かれています。<br>&#8220;/usr/share/doc&#8221;には、ソフトウェアに関するドキュメントが置かれています。</p>



<p class="wp-block-paragraph">PHP8.3ドキュメントを見てみます。</p>



<pre class="wp-block-code"><code>cd /usr/share/doc/php8.3-common
合計 116
drwxr-xr-x   2 root root  4096 10月 22 06:57 ./
drwxr-xr-x 926 root root 24576  9月 25 06:28 ../
-rw-r--r--   1 root root  3045  4月 12  2024 EXTENSIONS.gz
-rw-r--r--   1 root root  3165 10月 20 00:16 README.Debian.gz
-rw-r--r--   1 root root  1102  3月 19  2026 README.Debian.security
-rw-r--r--   1 root root  2240  4月 12  2024 README.md.gz
-rw-r--r--   1 root root  3108  4月 12  2024 UPGRADING.INTERNALS.gz
-rw-r--r--   1 root root 10180  4月 12  2024 UPGRADING.gz
-rw-r--r--   1 root root 14167 10月 20 00:16 changelog.Debian.gz
-rw-r--r--   1 root root 33969  3月 19  2026 copyright</code></pre>



<p class="wp-block-paragraph">内容を見るには、</p>



<pre class="wp-block-code"><code>zcat /usr/share/doc/php8.3-common/changelog.Debian.gz</code></pre>



<p class="wp-block-paragraph">該当箇所前後の10行を含めて表示させます。</p>



<pre class="wp-block-code"><code>zcat /usr/share/doc/php8.3-common/changelog.Debian.gz | grep -C 10 CVE-2026-109618
php8.3 (8.3.6-0ubuntu0.24.04.13) noble-security; urgency=medium

  * SECURITY UPDATE: Remote RCE via state corruption issue
    - debian/patches/CVE-2026-109618_109619.patch: Avoid state corruption via
      bailout in Zend/tests/bug40770.phpt, Zend/tests/bug54268.phpt,
      Zend/tests/bug76846.phpt,
      Zend/tests/debug_backtrace_sensitive_named_variadic.phpt,
      Zend/tests/fibers/get-return-after-bailout.phpt, Zend/tests/gh11189.phpt,
      Zend/tests/gh11189_1.phpt,
      Zend/tests/oom_SplFixedArray___unserialize.phpt,
      Zend/tests/oom_SplFixedArray___wakeup.phpt,
      Zend/tests/oom_SplFixedArray_copy_ctor.phpt,
      Zend/tests/oom_SplFixedArray_fromArray_001.phpt,
      Zend/tests/oom_SplFixedArray_fromArray_002.phpt,
--
      tests/basic/oom_rfc1867_header_continuation.phpt,
      tests/basic/oom_rfc1867_header_count.phpt,
      tests/basic/oom_rfc1867_long_header_line.phpt,
      tests/basic/oom_rfc1867_mb_encoding.phpt,
      tests/basic/oom_rfc1867_mb_skipif.inc,
      tests/basic/oom_rfc1867_post_vars.phpt,
      tests/basic/oom_rfc1867_session_skipif.inc,
      tests/basic/oom_rfc1867_skipif.inc, tests/basic/oom_rfc1867_target.inc,
      tests/basic/oom_rfc1867_upload_progress.phpt,
      tests/output/oom_in_internal_output_handler.phpt.
    - CVE-2026-109618
    - CVE-2026-109619

 -- Marc Deslauriers &lt;marc.deslauriers@ubuntu.com&gt;  Mon, 19 Oct 2026 11:16:58 -0400

php8.3 (8.3.6-0ubuntu0.24.04.12) noble-security; urgency=medium

  * SECURITY UPDATE: heap buffer over-read in stream filter line-break-chars option
    - debian/patches/CVE-2026-92842.patch: Fix heap-buffer-overflow in convert
      stream filters with NUL in line-break-chars in ext/standard/filters.c,
      ext/standard/tests/filters/ghsa-88hq-2827-7pg6.phpt.</code></pre>



<pre class="wp-block-code"><code>zcat /usr/share/doc/php8.3-common/changelog.Debian.gz | grep -C 10 CVE-2026-109619</code></pre>



<h2 class="wp-block-heading">Apache, PHP-FPM 再起動させます。</h2>



<pre class="wp-block-code"><code>sudo systemctl restart php8.3-fpm
sudo systemctl status php8.3-fpm --no-pager
sudo systemctl restart apache2</code></pre>



<h2 class="wp-block-heading">Security advisory: Critical remote code execution vulnerabilities, update now</h2>



<p class="wp-block-paragraph">PHPからの、RCE via OOM corruption、RCE via stale global stateに関しての案内</p>



<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<h2 class="wp-block-heading"><a rel="noopener" target="_blank" href="https://www.php.net/archive/2026.php#2026-10-21-5">Security advisory: Critical remote code execution vulnerabilities, update now</a></h2>



<p class="has-text-align-right wp-block-paragraph">21 Oct 2026</p>



<p class="wp-block-paragraph"><strong>PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 fix two critical vulnerabilities that can allow unauthenticated remote code execution. All PHP users are strongly encouraged to update immediately.</strong></p>



<p class="wp-block-paragraph"><strong>Who is at risk:</strong> all PHP installations serving web requests, including PHP-FPM, Apache with mod_php, php-cgi, FrankenPHP and LiteSpeed. We consider the risk highest for mod_php, with a demonstrated exploit where an unauthenticated request can trigger the attack before any application code runs.</p>



<p class="wp-block-paragraph"><strong>The vulnerabilities:</strong></p>



<ul class="wp-block-list">
<li><strong>RCE via OOM corruption</strong>, CVE-2026-109618 (<a rel="noopener" target="_blank" href="https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w">GHSA-w8hw-w9fx-j79w</a>): out-of-memory handling can interrupt PHP while internal request data is only partially initialized. Request cleanup may then treat the invalid data as valid.</li>



<li><strong>RCE via stale global state</strong>, CVE-2026-109619 (<a rel="noopener" target="_blank" href="https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp">GHSA-6wmf-4rv5-p3rp</a>): request-owned internal state can survive after its backing memory has been freed. A later request handled by the same worker may use that stale state before normal initialization resets it.</li>
</ul>



<p class="wp-block-paragraph"><strong>How to update:</strong></p>



<ul class="wp-block-list">
<li>Update to PHP 8.5.12, 8.4.27, 8.3.36 or 8.2.35. Source downloads are on our <a rel="noopener" target="_blank" href="https://www.php.net/downloads.php?source=Y">downloads page</a>. Windows source and binaries are <a rel="noopener" target="_blank" href="https://www.php.net/downloads.php?os=windows">on the same page</a>.</li>



<li>Linux distributions and LTS vendors received the patches in advance, so check your vendor for updated packages.</li>



<li><strong>PHP 8.1 and older</strong> no longer receive updates from the PHP project. Some distributions and LTS vendors provide backported fixes, so contact your vendor for details, or upgrade to a supported version.</li>



<li>Given the severity of these vulnerabilities, the PHP security team provided minimal source-backports for <a rel="noopener" target="_blank" href="https://github.com/php/php-src/tree/PHP-7.4-CVE-2026-109618-109619">PHP 7.4</a>, <a rel="noopener" target="_blank" href="https://github.com/php/php-src/tree/PHP-8.0-CVE-2026-109618-109619">PHP 8.0</a>, and <a rel="noopener" target="_blank" href="https://github.com/php/php-src/tree/PHP-8.1-CVE-2026-109618-109619">PHP 8.1</a> to help people building from source or without access to an LTS vendor.</li>
</ul>



<p class="wp-block-paragraph"><strong>If you cannot update immediately:</strong> while only an update is a complete solution, the following measures reduce exposure to specific attack paths but do not make an installation safe.</p>



<p class="wp-block-paragraph"><strong>RCE via OOM corruption (CVE-2026-109618):</strong></p>



<ul class="wp-block-list">
<li>Set <code>memory_limit=-1</code>, preferably in a way applications can&#8217;t override, such as <code>php_admin_value</code> in the FPM pool or Apache configuration, and check that no pool, directory or application setting puts a finite limit back. This removes the controllable PHP memory limit failure, but an underlying allocation failure can still reach the vulnerable path.</li>



<li>Set a low <code>post_max_size</code>. For applications that don&#8217;t require file uploads, set <code>post_max_size = 8M</code>. If file uploads are necessary, set <code>post_max_size = 32M</code>. Keep <code>upload_max_filesize</code> below <code>post_max_size</code>. Consider enforcing limits at the web server or proxy level for decoded request size, input field count, multipart part count, header count, and nesting depth. These limits must also cover requests without a usable <code>Content-Length</code>.</li>



<li>Use a container or cgroup limit as an availability boundary, preferably with a policy that kills only the affected worker. Do not substitute <code>RLIMIT_AS</code> or <code>RLIMIT_DATA</code>, as these can cause the vulnerable allocation failure.</li>
</ul>



<p class="wp-block-paragraph"><strong>RCE via stale global state (CVE-2026-109619):</strong></p>



<ul class="wp-block-list">
<li>Set <code>session.upload_progress.enabled=0</code> and restart every worker. Use <code>php.ini</code>, an FPM pool or server configuration that applies before request parsing. Do not rely on <code>ini_set()</code> or FPM <code>.user.ini</code>. This blocks the confirmed session paths but not other variants.</li>



<li>On PHP 8.5, set <code>fatal_error_backtraces=0</code> and restart every worker. This blocks the confirmed fatal backtrace path only.</li>



<li>Remove invalid or deprecated settings applied per request that emit diagnostics before initialization. Hiding diagnostics with <code>error_reporting</code>, <code>display_errors</code> or <code>@</code> does not help.</li>



<li>Fix attacker-reachable fatal errors and execution timeouts, including failures in callbacks, upload or import processing and cleanup.</li>
</ul>



<p class="wp-block-paragraph">The advisories linked above have the full technical details.</p>
</div>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://globe3.ddns.net/wp/work-on-php2shell-ubuntu24-04-5-lts/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>KStars Flatpak を追う</title>
		<link>https://globe3.ddns.net/wp/configuring-flatpak-version-kstars/</link>
					<comments>https://globe3.ddns.net/wp/configuring-flatpak-version-kstars/#respond</comments>
		
		<dc:creator><![CDATA[minmin]]></dc:creator>
		<pubDate>Mon, 19 Oct 2026 01:48:21 +0000</pubDate>
				<category><![CDATA[INDI-Library]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://globe3.ddns.net/wp/?p=6555</guid>

					<description><![CDATA[Flatpak版 KStarsを使うと、自動に更新されたらしい。その為に、安定して動いていた、コミットが更新されたらしく、不具合を追うようになりました。 ここには、その作業を記載しています。 KStars / Ekos  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Flatpak版 KStarsを使うと、自動に更新されたらしい。<br>その為に、安定して動いていた、コミットが更新されたらしく、不具合を追うようになりました。</p>



<p class="wp-block-paragraph">ここには、その作業を記載しています。</p>



<p class="wp-block-paragraph">KStars / Ekos , Flatpak版、こちらの環境では、Local Astrometryが使えていません。<br>プレートソルブにて特定の動作で、KStars / Ekos , Flatpak版がダウンしています。<br>2026年10月21日現在、Local Astrometry動作とプレートソルブ動作不具合は確認していません。</p>



<h2 class="wp-block-heading">Flatpak の”今”を調べる</h2>



<h3 class="wp-block-heading">現在のコミットを表示</h3>



<pre class="wp-block-code"><code>$ flatpak info --user org.kde.kstars

KStars - Desktop Planetarium

          ID: org.kde.kstars
         Ref: app/org.kde.kstars/x86_64/stable
        Arch: x86_64
      Branch: stable
     Version: 3.8.5
     License: GPL-2.0+
      Origin: flathub
  Collection: org.flathub.Stable
Installation: user
   Installed: 957.5&nbsp;MB
     Runtime: org.kde.Platform/x86_64/6.10
         Sdk: org.kde.Sdk/x86_64/6.10

      Commit: 110b41247bf4b838e944905495f2537ad1b347cc528cdf32316875ee5e0db136
      Parent: 5f8c05ec2b8c95a0a1578239c1ef88e2ca15607033426b0b73ec717ffca1501a
     Subject: Merge pull request #160 from knro/fix-focus-settle-crash (a919fa71c20c)
        Date: 2026-10-03 05:53:00 +0000</code></pre>



<h3 class="wp-block-heading">KStars の更新をブロックしているか確認します</h3>



<pre class="wp-block-code"><code>$ flatpak mask --user
Masked patterns:
  org.kde.kstars</code></pre>



<h3 class="wp-block-heading">KStars に更新があるか確認します</h3>



<pre class="wp-block-code"><code>$ flatpak remote-info --log flathub org.kde.kstars
Remote ‘flathub’ found in multiple installations:

   1) system
   2) user

Which do you want to use (0 to abort)? &#91;0-2]: 2

KStars - Desktop Planetarium

        ID: org.kde.kstars
       Ref: app/org.kde.kstars/x86_64/stable
      Arch: x86_64
    Branch: stable
   Version: 3.8.5
   License: GPL-2.0+
Collection: org.flathub.Stable
  Download: 480.1&nbsp;MB
 Installed: 957.5&nbsp;MB
   Runtime: org.kde.Platform/x86_64/6.10
       Sdk: org.kde.Sdk/x86_64/6.10

    Commit: e44f942857288863d34a9b37efdea4c35cef7c3d9c25738a28344d27449fbdf4
    Parent: 110b41247bf4b838e944905495f2537ad1b347cc528cdf32316875ee5e0db136
   Subject: Merge pull request #161 from knro/update-3.8.5-patch (e464afcc596a)
      Date: 2026-10-10 11:13:13 +0000
   History: 

    Commit: 110b41247bf4b838e944905495f2537ad1b347cc528cdf32316875ee5e0db136
   Subject: Merge pull request #160 from knro/fix-focus-settle-crash (a919fa71c20c)
      Date: 2026-10-03 05:53:00 +0000

    Commit: 5f8c05ec2b8c95a0a1578239c1ef88e2ca15607033426b0b73ec717ffca1501a
   Subject: Merge pull request #157 from s-pouya-sh/patch-18 (a8ca8995e0f7)
      Date: 2026-08-16 11:09:54 +0000

    Commit: 98a725b70de65599ea7f4e479efe6d891506d4fa9e7df620a9ed54e818d72584
   Subject: Merge pull request #155 from s-pouya-sh/patch-17 (a3981b62f214)
      Date: 2026-08-09 16:46:49 +0000

    Commit: 435860949507c59cdc7adb389e014b6c10a23a8d5add5b15fdd658d2bc66d1c0
   Subject: Merge pull request #154 from s-pouya-sh/patch-17 (7ea6cc80236d)
      Date: 2026-08-09 14:15:48 +0000</code></pre>



<p class="wp-block-paragraph">この現時点でのコミットは、</p>



<pre class="wp-block-code"><code>Commit: e44f942857288863d34a9b37efdea4c35cef7c3d9c25738a28344d27449fbdf4
   Date: 2026-10-10 11:13:13 +0000</code></pre>



<p class="wp-block-paragraph">その親コミットは次のとおりです。</p>



<pre class="wp-block-code"><code>Commit: 110b41247bf4b838e944905495f2537ad1b347cc528cdf32316875ee5e0db136
   Date: 2026-10-03 05:53:00 +0000</code></pre>



<h3 class="wp-block-heading">Flatpak の更新履歴を確認</h3>



<pre class="wp-block-code"><code>$ flatpak history --user
Time             Change        Application                           Branch      Installation Remote
10月 12 16:23:35 pull          org.kde.kstars                        stable      user         flathub
10月 12 16:23:36 deploy update org.kde.kstars                        stable      user         flathub
10月 14 18:34:19 pull          org.freedesktop.Platform.GL.default   25.08       user         flathub
10月 14 18:34:20 deploy update org.freedesktop.Platform.GL.default   25.08       user         flathub
10月 14 18:34:22 pull          org.freedesktop.Platform.GL.default   25.08-extra user         flathub
10月 14 18:34:22 deploy update org.freedesktop.Platform.GL.default   25.08-extra user         flathub
10月 14 18:34:24 pull          org.freedesktop.Platform.VAAPI.Intel  25.08       user         flathub
10月 14 18:34:24 deploy update org.freedesktop.Platform.VAAPI.Intel  25.08       user         flathub
10月 14 18:34:24 pull          org.freedesktop.Platform.codecs-extra 25.08-extra user         flathub
10月 14 18:34:24 deploy update org.freedesktop.Platform.codecs-extra 25.08-extra user         flathub</code></pre>



<pre class="wp-block-code"><code>10月 12 16:23:35 pull          org.kde.kstars
10月 12 16:23:36 deploy update org.kde.kstars</code></pre>



<p class="wp-block-paragraph">2026年10月12日に KStars の更新が行われたことが分かります。</p>



<h2 class="wp-block-heading">KStars の自動更新を止める</h2>



<pre class="wp-block-code"><code>$ flatpak mask --user org.kde.kstars</code></pre>



<p class="wp-block-paragraph">確認します。</p>



<pre class="wp-block-code"><code>$ flatpak mask --user
Masked patterns:
  org.kde.kstars</code></pre>



<p class="wp-block-paragraph">KStars の更新をブロックしているか確認</p>



<h3 class="wp-block-heading">自動更新の仕組みをさらに調べる</h3>



<p class="wp-block-paragraph">ユーザー単位のタイマー</p>



<pre class="wp-block-code"><code>$ systemctl --user list-timers --all | grep -Ei 'flatpak|update'
Sun 2026-10-18 18:00:00 JST 3min 57s -                                      - snap.firmware-updater.firmware-notifier.timer snap.firmware-updater.firmware-notifier.service</code></pre>



<p class="wp-block-paragraph">システム全体のタイマー</p>



<pre class="wp-block-code"><code>$ systemctl list-timers --all | grep -Ei 'flatpak|update'
Mon 2026-10-19 00:50:03 JST       6h Sun 2026-10-18 01:25:22 JST            - plocate-updatedb.timer         plocate-updatedb.service
Mon 2026-10-19 16:10:41 JST      22h Sun 2026-10-18 16:10:41 JST 1h 46min ago update-notifier-download.timer update-notifier-download.service
Sun 2026-10-25 01:27:18 JST   6 days Thu 2026-10-15 09:41:01 JST            - update-notifier-motd.timer     update-notifier-motd.service</code></pre>



<p class="wp-block-paragraph">systemd のタイマー一覧には、Flatpak の自動更新を直接実行するタイマーは、なさそうです。</p>



<p class="wp-block-paragraph">GNOME Software の自動更新設定を確認します。</p>



<pre class="wp-block-code"><code>$ gsettings list-recursively org.gnome.software | grep -Ei 'download-updates|download-updates-notify|install-updates|update'
org.gnome.software allow-updates true
org.gnome.software download-updates true
org.gnome.software download-updates-notify true
org.gnome.software packagekit-historical-updates-timestamp uint64 0
org.gnome.software update-notification-timestamp int64 0</code></pre>



<p class="wp-block-paragraph">GNOME Software では、更新に関する設定が有効になっています。<br>この前に、flatpak mask &#8211;user org.kde.kstars を行ったので、Flatpak 更新では KStars が通常の更新対象から除外されます。<br></p>



<h2 class="wp-block-heading">直前のバージョンに戻す。ダウングレード</h2>



<p class="wp-block-paragraph">今回は、10月 12 16:23:36 deploy update org.kde.kstars<br>この時点で不具合が生じたので、その直前の状態に戻します。</p>



<p class="wp-block-paragraph">確認した履歴では、現在のコミットの親が次のコミットです。</p>



<pre class="wp-block-code"><code>現在：e44f942857288863d34a9b37efdea4c35cef7c3d9c25738a28344d27449fbdf4
直前：110b41247bf4b838e944905495f2537ad1b347cc528cdf32316875ee5e0db136</code></pre>



<pre class="wp-block-code"><code>$ flatpak update --user --commit=110b41247bf4b838e944905495f2537ad1b347cc528cdf32316875ee5e0db136 org.kde.kstars
Looking for updates…

Nothing to do.</code></pre>



<p class="wp-block-paragraph">指定したコミットへの切り替えが実行されなかったようです。先に設定した flatpak maskを一時外します。</p>



<pre class="wp-block-code"><code>$ flatpak mask --user --remove org.kde.kstars</code></pre>



<pre class="wp-block-code"><code>$ flatpak update --user --commit=110b41247bf4b838e944905495f2537ad1b347cc528cdf32316875ee5e0db136 org.kde.kstars
Looking for updates…


        ID                     Branch         Op         Remote         Download
 1.     org.kde.kstars         stable         u          flathub        &lt; 480.1&nbsp;MB

Proceed with these changes to the user installation? &#91;Y/n]:Y

        ID                     Branch         Op         Remote         Download
 1. &#91;✓] org.kde.kstars         stable         u          flathub        18.9&nbsp;MB / 480.1&nbsp;MB

Updates complete.</code></pre>



<p class="wp-block-paragraph">Commit を確認します。</p>



<pre class="wp-block-code"><code>$ flatpak info --user org.kde.kstars

KStars - Desktop Planetarium

          ID: org.kde.kstars
         Ref: app/org.kde.kstars/x86_64/stable
        Arch: x86_64
      Branch: stable
     Version: 3.8.5
     License: GPL-2.0+
      Origin: flathub
  Collection: org.flathub.Stable
Installation: user
   Installed: 957.5&nbsp;MB
     Runtime: org.kde.Platform/x86_64/6.10
         Sdk: org.kde.Sdk/x86_64/6.10

      Commit: 110b41247bf4b838e944905495f2537ad1b347cc528cdf32316875ee5e0db136
      Parent: 5f8c05ec2b8c95a0a1578239c1ef88e2ca15607033426b0b73ec717ffca1501a
     Subject: Merge pull request #160 from knro/fix-focus-settle-crash (a919fa71c20c)
        Date: 2026-10-03 05:53:00 +0000</code></pre>



<p class="wp-block-paragraph">更新ブロックを再設定します。</p>



<pre class="wp-block-code"><code>$ flatpak mask --user org.kde.kstars
$ flatpak mask --user
Masked patterns:
  org.kde.kstars</code></pre>



<p class="wp-block-paragraph">KStarsを起動させます。</p>



<pre class="wp-block-code"><code>$ flatpak run org.kde.kstars</code></pre>



<h3 class="wp-block-heading">さらに、前のコミットに戻すには</h3>



<p class="wp-block-paragraph">更新ブロックを一時解除します。</p>



<pre class="wp-block-code"><code>$ flatpak mask --user --remove org.kde.kstars</code></pre>



<p class="wp-block-paragraph">さらに前のコミットにもどします。</p>



<pre class="wp-block-code"><code>$ flatpak update --user --commit=5f8c05ec2b8c95a0a1578239c1ef88e2ca15607033426b0b73ec717ffca1501a org.kde.kstars</code></pre>



<p class="wp-block-paragraph">コミットを確認します。</p>



<pre class="wp-block-code"><code>$ flatpak info --user org.kde.kstars</code></pre>



<p class="wp-block-paragraph">更新ブロックを再設定します。</p>



<pre class="wp-block-code"><code>$ flatpak mask --user org.kde.kstars</code></pre>



<p class="wp-block-paragraph">KStars を起動して動作確認します。</p>



<pre class="wp-block-code"><code>$ flatpak run org.kde.kstars</code></pre>



<h2 class="wp-block-heading">KStars ログを録る</h2>



<p class="wp-block-paragraph">エラーをログに記録します。</p>



<ul class="wp-block-list">
<li>Ekos画面 → Setup → Logs&#8230; →
<ul class="wp-block-list">
<li>Logging: Verbosity: Verbose</li>



<li>出力：File</li>



<li>Ekos: Alignment</li>
</ul>
</li>



<li>Flatpak 版 KStars を端末から起動し、標準出力・標準エラーに出力された情報も記録させます。</li>



<li>KStars を終了します。</li>



<li>コマンドでKStarsを起動し、ログを指定します。</li>
</ul>



<pre class="wp-block-code"><code>$ flatpak run org.kde.kstars 2&gt;&amp;1 | tee ~/kstars-debug.log</code></pre>



<ul class="wp-block-list">
<li>KStars：  Ekos → Align</li>



<li>Local Astrometry を選択し、プレートソルブを実行します。</li>



<li>エラーが発生したら KStars を終了します。</li>
</ul>



<p class="wp-block-paragraph">ログを確認します。</p>



<pre class="wp-block-code"><code>grep -inE 'astrometry|solve-field|index|error|failed|solver'
~/kstars-debug.log | tail -n 100</code></pre>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">Astrometry.net を使う</h2>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-check block-box">
<p class="wp-block-paragraph">後に記述した様に、KStars のユーザー単位に Flatpak 権限を変更させても、動作しませんでした。</p>



<pre class="wp-block-code"><code>flatpak override --user \
  --talk-name=org.freedesktop.Flatpak \</code></pre>



<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<p class="wp-block-paragraph">flatpak override ：アプリの Flatpak 権限設定を変更する<br>&#8211;user ：現在のユーザーにだけ適用する<br>&#8211;talk-name=org.freedesktop.Flatpak ：org.freedesktop.Flatpak という D-Bus サービスとの通信を許可する<br>org.kde.kstars ：設定変更の対象を KStars に限定する</p>
</div>



<p class="wp-block-paragraph">ラッパースクリプト経由でFlatpak版KStars/Ekosから、プレートソルブを行わせます。</p>
</div>



<h3 class="wp-block-heading">インストール、設定</h3>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install astrometry.net</code></pre>



<pre class="wp-block-code"><code>sudo cp /etc/astrometry.cfg /etc/astrometry.cfg.bak</code></pre>



<p class="wp-block-paragraph">パスを追加</p>



<pre class="wp-block-code"><code>sudo emacs -nw /etc/astrometry.cfg</code></pre>



<p class="wp-block-paragraph">USERNAMEは、実際のユーザーアカウント名</p>



<pre class="wp-block-code"><code>### 次の行に追加
### add_path /usr/share/astrometry
add_path /home/USERNAME/.var/app/org.kde.kstars/data/kstars/astrometry</code></pre>



<p class="wp-block-paragraph">変更箇所を確認します。</p>



<pre class="wp-block-code"><code>$ grep -E '^&#91;&#91;:space:]]*(add_path|autoindex|index)' /etc/astrometry.cfg</code></pre>



<h3 class="wp-block-heading">flatpak-spawnを使う</h3>



<p class="wp-block-paragraph">Flatpakからホスト側の solve-field を呼び出すラッパースクリプトを用います。</p>



<p class="wp-block-paragraph">flatpak-spawn は、Flatpakアプリのサンドボックス内から、Ubuntu側のプログラムを実行するためのコマンドです。</p>



<p class="wp-block-paragraph">Flatpakの設定を確認します。<br>何も表示されない状態なら、ユーザー単位のオーバーライドは解除されています。</p>



<pre class="wp-block-code"><code>flatpak override --user --show org.kde.kstars</code></pre>



<p class="wp-block-paragraph">flatpak-spawn が使えるか確認します。</p>



<pre class="wp-block-code"><code>flatpak run --command=sh org.kde.kstars -c 'command -v flatpak-spawn'
/usr/bin/flatpak-spawn</code></pre>



<p class="wp-block-paragraph">Flatpak版 KStars にホストコマンドの実行権限を与えます。<br>KStarsに org.freedesktop.Flatpak のD-Busインターフェースへのアクセスを許可します。</p>



<pre class="wp-block-code"><code>flatpak override --user \
  --talk-name=org.freedesktop.Flatpak \
  org.kde.kstars</code></pre>



<p class="wp-block-paragraph">Ubuntuのソルバーが動作することを確認します。</p>



<pre class="wp-block-code"><code>/usr/bin/solve-field --version</code></pre>



<h4 class="wp-block-heading">ラッパースクリプトを作成します。</h4>



<pre class="wp-block-code"><code>mkdir -p ~/.var/app/org.kde.kstars/data/wrapper</code></pre>



<pre class="wp-block-code"><code>cat &gt; ~/.var/app/org.kde.kstars/data/wrapper/solve-field &lt;&lt;'EOF'
#!/bin/sh
exec flatpak-spawn --host /usr/bin/solve-field "$@"
EOF</code></pre>



<pre class="wp-block-code"><code>cat &gt; ~/.var/app/org.kde.kstars/data/wrapper/solve-field &lt;&lt;'EOF'
#!/bin/sh

LOG="/var/data/wrapper/solve-field.log"

{
    echo
    echo "===== $(date) ====="
    printf 'ARG: &lt;%s&gt;\n' "$@"
} &gt;&gt; "$LOG"

exec /usr/bin/flatpak-spawn --host /usr/bin/solve-field "$@"
EOF</code></pre>



<p class="wp-block-paragraph">ラッパースクリプトに実行権限を付けます。</p>



<pre class="wp-block-code"><code>chmod +x ~/.var/app/org.kde.kstars/data/wrapper/solve-field</code></pre>



<p class="wp-block-paragraph">ラッパーの動作を確認します。ホスト側のAstrometry.netを呼び出せるかも確認します。</p>



<pre class="wp-block-code"><code>flatpak run --command=sh org.kde.kstars -c \
'"$HOME/.var/app/org.kde.kstars/data/wrapper/solve-field" --version'</code></pre>



<p class="wp-block-paragraph">また、<br>Flatpak環境では、アプリ専用のデータディレクトリは通常 /var/data に対応しています。</p>



<pre class="wp-block-code"><code>flatpak run --command=sh org.kde.kstars -c \
    '/var/data/wrapper/solve-field --version'</code></pre>



<h4 class="wp-block-heading">FlatpakとUbuntuの一時ファイルの受け渡しを修正</h4>



<h3 class="wp-block-heading">Ekosを設定</h3>



<p class="wp-block-paragraph">Alignモジュールに次があります。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">solver binary: /app/bin/solve-field<br>wcsinfo: /app/bin/wcsinfo<br>config: /app/etc/astrometry.cfg</p>
</div>



<p class="wp-block-paragraph">もしくは</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">solver binary: /usr/bin/solve-field<br>wcsinfo: /usr/bin/wcsinfo<br>config: /etc/astrometry.cfg</p>
</div>



<p class="wp-block-paragraph">Ekosを設定します。/usr/bin/solve-field　を変更します。<br>指定できる場合は、パスを用います。もしくはUSERNAMEは実際のユーザー名にします。</p>



<p class="wp-block-paragraph">solver binary: /var/data/wrapper/solve-field</p>



<p class="wp-block-paragraph">solver binary: /home/USERNAME/.var/app/org.kde.kstars/data/wrapper/solve-field</p>



<h3 class="wp-block-heading">INDI control panel</h3>



<p class="wp-block-paragraph">/usr/bin/solve-field<br>↓<br>/var/data/wrapper/solve-field</p>



<h4 class="wp-block-heading">サンドボックス（隔離空間）からシステムファイルへのアクセスについて</h4>



<p class="wp-block-paragraph">サンドボックス（隔離空間）からシステムファイルへのアクセスを可能にします。<br>Flatpak版 KStars にフォルダのアクセス権限を与えます。</p>



<pre class="wp-block-code"><code>flatpak override --user --filesystem=/usr/bin/solve-field org.kde.kstars</code></pre>



<pre class="wp-block-code"><code>flatpak override --user --filesystem=/usr/share/astrometry org.kde.kstars
flatpak override --user --filesystem=/var/lib/astrometry org.kde.kstars

アクセス権限を削除
flatpak override --user --nofilesystem=/usr/bin/solve-field org.kde.kstars
flatpak override --user --nofilesystem=host org.kde.kstars</code></pre>



<pre class="wp-block-code"><code>既存の /etc 全体へのアクセス権限
flatpak override --user --filesystem=/etc:ro org.kde.kstars
既存の /etc 全体へのアクセス権限を削除（リセット）
flatpak override --user --nofilesystem=/etc org.kde.kstars

KStarsのユーザーオーバーライドをリセットする
flatpak override --user --reset org.kde.kstars</code></pre>



<h3 class="wp-block-heading">シミュレーターで動作確認</h3>



<p class="wp-block-paragraph">先ずシミュレーターで動作確認します。<br>(IMX533では、Low (最小): 18.305deg、High (最大): <code>22.882</code> deg)</p>



<h3 class="wp-block-heading">Astrometry.net　を使ってプレートソルブ</h3>



<p class="wp-block-paragraph">動作テストします。</p>



<pre class="wp-block-code"><code>$ solve-field \
    --config /etc/astrometry.cfg \
    --overwrite \
    test.fits</code></pre>



<pre class="wp-block-code"><code>Found an existing WCS header, will try to verify it.
Extracting sources...
simplexy: found 489 sources.
Solving...
途中省略
  log-odds ratio 367.262 (3.15998e+159), 59 match, 0 conflict, 409 distractors, 64 index.
  RA,Dec = (25.7612,13.6752), pixel scale 0.777888 arcsec/pix.
  Hit/miss:   Hit/miss: --+-+---+--+---+-+---+++--+-++---+----+---+------+-----+----------+-++--+----------+------+-+++-----
Field 1: solved with index index-5206-18.fits.
Field 1 solved: writing to file /home/USERNAME/Astronomy-images/2026_10-17/Light/NGC_660/NGC_660_Light_HEUIB-II_180_secs_2026-10-18T04-14-57_080.solved to indicate this.
Field: /home/USERNAME/Astronomy-images/2026_10-17/Light/NGC_660/NGC_660_Light_HEUIB-II_180_secs_2026-10-18T04-14-57_080.fits
Field center: (RA,Dec) = (25.760992, 13.675102) deg.
Field center: (RA H:M:S, Dec D:M:S) = (01:43:02.638, +13:40:30.368).
Field size: 38.9551 x 38.9448 arcminutes
Field rotation angle: up is 179.813 degrees E of N
Field parity: neg
Creating new FITS file "/home/USERNAME/Astronomy-images/2026_10-17/Light/NGC_660/NGC_660_Light_HEUIB-II_180_secs_2026-10-18T04-14-57_080.new"...
Creating index object overlay plot...
Creating annotation plot...
Your field contains:
  IC 148
  NGC 660</code></pre>



<p class="wp-block-paragraph">画像から489個の星を検出しています。<br>index-5206-18.fits を使ってプレートソルブに成功しています。<br>　16&#8242; &#8211; 22&#8242;, Tycho2/Gaia Catalogを使っています。<br>赤経・赤緯と画像の視野を計算できています。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">Tycho2/Gaia Catalog　を用いて、<br>simplexy: found 489 sources： 489個の星などの光源を検出<br>Field 1: solved with index index-5206-18.fits： インデックスを使った位置解析<br>RA,Dec = (25.7612,13.6752)： 天球上の座標を計算<br>Field size: 38.9551 x 38.9448 arcminutes： 画像の視野を計算<br>Field parity: neg： 画像の座標変換における反転方向を示す情報<br>Your field contains: IC 148, NGC 660 と表示、画像内の天体を特定</p>
</div>



<h3 class="wp-block-heading">KStarsから、/usr/bin/solve-field　が見られるかを確認</h3>



<pre class="wp-block-code"><code>$ flatpak run --command=sh org.kde.kstars -c '
echo "=== solve-field ==="
command -v solve-field
echo "=== executable ==="
ls -l /usr/bin/solve-field
'
=== solve-field ===
=== executable ===
ls: '/usr/bin/solve-field' にアクセスできません: そのようなファイルやディレクトリはありません</code></pre>



<p class="wp-block-paragraph">/usr/bin/solve-field を KStarsからは<strong>見えていない</strong>。</p>



<p class="wp-block-paragraph">さらに確認します。</p>



<pre class="wp-block-code"><code>$ flatpak run --command=sh org.kde.kstars -c '
echo "=== flatpak-spawn ==="
command -v flatpak-spawn
echo "=== host solve-field ==="
flatpak-spawn --host /usr/bin/solve-field --version
'
=== flatpak-spawn ===
/usr/bin/flatpak-spawn
=== host solve-field ===
Portal call failed: org.freedesktop.DBus.Error.ServiceUnknown
Hint: --host only works when the Flatpak is allowed to talk to org.freedesktop.Flatpak</code></pre>



<p class="wp-block-paragraph">Flatpak 内から設定ファイルとインデックスディレクトリが見えるかを確認します</p>



<pre class="wp-block-code"><code>$ flatpak run --command=sh org.kde.kstars -c '
echo "=== astrometry.cfg ==="
ls -l /etc/astrometry.cfg
echo "=== index directory ==="
ls -ld "$HOME/.var/app/org.kde.kstars/data/kstars/astrometry"
'
=== astrometry.cfg ===
ls: '/etc/astrometry.cfg' にアクセスできません: そのようなファイルやディレクトリはありません
=== index directory ===
drwxr-xr-x 2 USERNAME USERNAME 4096 10月 19 03:41 /home/USERNAME/.var/app/org.kde.kstars/data/kstars/astrometry</code></pre>



<h3 class="wp-block-heading">KStars に solve-fieldに対して実行権限をつけます</h3>



<p class="wp-block-paragraph">KStarsを終了させ、次を行います。</p>



<p class="wp-block-paragraph">KStars のユーザー単位に Flatpak 権限を変更します。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">この権限を与えると、KStars からホスト側の任意のコマンドを実行できる可能性があります。Flatpak の隔離を弱める変更になります。</p>
</div>



<p class="wp-block-paragraph">コマンド内容は、以下です。<br></p>



<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<p class="wp-block-paragraph">flatpak override ：アプリの Flatpak 権限設定を変更する<br>&#8211;user ：現在のユーザーにだけ適用する<br>&#8211;talk-name=org.freedesktop.Flatpak ：org.freedesktop.Flatpak という D-Bus サービスとの通信を許可する<br>org.kde.kstars ：設定変更の対象を KStars に限定する</p>
</div>



<pre class="wp-block-code"><code>flatpak override --user \
  --talk-name=org.freedesktop.Flatpak \
  org.kde.kstars</code></pre>



<p class="wp-block-paragraph">solve-fieldを呼び出せるか確認します。</p>



<pre class="wp-block-code"><code>flatpak run --command=sh org.kde.kstars -c '
echo "=== host solve-field ==="
flatpak-spawn --host /usr/bin/solve-field --version
'</code></pre>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">flatpak run ：Flatpak アプリを実行する<br>&#8211;command=sh ：KStars 本体ではなく、Flatpak 内のシェル sh を起動する<br>org.kde.kstars ：対象の Flatpak アプリを指定する<br>-c &#8216;&#8230;&#8217; ：引用符内のコマンドをシェルで実行する<br>echo &#8220;=== host solve-field ===&#8221; ：テスト内容を画面に表示する<br>flatpak-spawn &#8211;host ：Flatpak の外側にある Ubuntu ホスト環境でコマンドを実行する<br>/usr/bin/solve-field ：実行するプログラムを指定する<br>&#8211;version ：バージョンを表示するだけで終了する</p>
</div>



<pre class="wp-block-code"><code>=== host solve-field ===
0.93</code></pre>



<p class="wp-block-paragraph">Flatpak 版 KStars の内部で flatpak-spawn の使い方を表示させます。</p>



<pre class="wp-block-code"><code>$ flatpak run --command=sh org.kde.kstars -c 'flatpak-spawn --help'
用法:
  flatpak-spawn &#91;オプション…] COMMAND &#91;ARGUMENT…]

Run a command in a sandbox

ヘルプのオプション:
  -h, --help                            ヘルプのオプションを表示する

アプリケーションのオプション:
  -v, --verbose                         Enable debug output
  --forward-fd=FD                       Forward file descriptor
  --clear-env                           Run with clean environment
  --watch-bus                           Make the spawned command exit if we do
  --expose-pids                         Expose sandbox pid in calling sandbox
  --share-pids                          Use same pid namespace as calling sandbox
  --env=VAR=VALUE                       Set environment variable
  --unset-env=VAR=VALUE                 Unset environment variable
  --env-fd=FD                           Read environment variables in env -0 format from FD
  --latest-version                      Run latest version
  --sandbox                             Run sandboxed
  --no-network                          Run without network access
  --sandbox-expose=NAME                 Expose access to named file
  --sandbox-expose-ro=NAME              Expose readonly access to named file
  --sandbox-expose-path=PATH            Expose access to path
  --sandbox-expose-path-ro=PATH         Expose readonly access to path
  --sandbox-expose-path-try=PATH        Expose access to path if it exists
  --sandbox-expose-path-ro-try=PATH     Expose readonly access to path if it exists
  --sandbox-flag=FLAG                   Enable sandbox flag
  --sandbox-a11y-own-name=DBUS_NAME     Allow owning the name on the a11y bus
  --host                                Start the command on the host
  --directory=DIR                       Working directory in which to run the command
  --app-path=DIR|""                     Replace runtime's /app with DIR or empty
  --usr-path=DIR                        Replace runtime's /usr with DIR</code></pre>



<h2 class="wp-block-heading">solve-field, astrometry.cfg が、KStarsから見られない。。。</h2>



<p class="wp-block-paragraph">Flatpak 版 KStars がホスト側の astrometry.net を直接利用できていないようです。</p>



<pre class="wp-block-code"><code>$ flatpak run --command=sh org.kde.kstars -c '
ls -l /usr/bin/solve-field 2&gt;&amp;1
ls -l /etc/astrometry.cfg 2&gt;&amp;1
'
ls: '/usr/bin/solve-field' にアクセスできません: そのようなファイルやディレクトリはありません
ls: '/etc/astrometry.cfg' にアクセスできません: そのようなファイルやディレクトリはありません</code></pre>



<p class="wp-block-paragraph">Flatpak 版 KStars のアクセス権を確認します。</p>



<pre class="wp-block-code"><code>$ flatpak info --show-permissions org.kde.kstars
&#91;Context]
shared=network;ipc;
sockets=wayland;pulseaudio;fallback-x11;
devices=all;
features=devel;
filesystems=xdg-documents;xdg-pictures;xdg-videos;xdg-config/kdeglobals:ro;~/.cache/sentry;~/.indi;host;

&#91;Session Bus Policy]
com.canonical.AppMenu.Registrar=talk
org.kde.kconfig.notify=talk
org.kde.KGlobalSettings=talk
org.freedesktop.Flatpak=talk
org.freedesktop.secrets=talk
org.kde.kwalletd6=talk

&#91;Environment]
GSCDAT=/app/share/GSC</code></pre>



<p class="wp-block-paragraph">filesystems=&#8230;;host;<br>host が指定されているため、Flatpak 版 KStars にはホスト側のファイルシステムへのアクセス許可が設定されていることが確認できます。</p>



<p class="wp-block-paragraph">/run/host 経由でホスト側のファイルを調べます。<br>/run/host/usr/bin/　を用います。</p>



<p class="wp-block-paragraph">/run/host/usr/bin/ は、Flatpak アプリから Ubuntu 本体の /usr/bin/ を参照するためのパスです。</p>



<pre class="wp-block-code"><code>$ flatpak run --command=sh org.kde.kstars -c '
ls -l /run/host/usr/bin/solve-field 2&gt;&amp;1
ls -l /run/host/etc/astrometry.cfg 2&gt;&amp;1
'
-rwxr-xr-x 1 nfsnobody nfsnobody 96584  4月  9  2024 /run/host/usr/bin/solve-field
-rw-r--r-- 1 nfsnobody nfsnobody 2589 10月 19 02:52 /run/host/etc/astrometry.cfg
</code></pre>



<pre class="wp-block-code"><code>$ flatpak run --command=sh org.kde.kstars -c \
'/run/host/usr/bin/solve-field --version'
/run/host/usr/bin/solve-field: error while loading shared libraries: libastrometry.so.0: cannot open shared object file: No such file or directory

$ /usr/bin/solve-field --version
0.93</code></pre>



<p class="wp-block-paragraph">solve-field 自体は見つかったものの、起動に必要な共有ライブラリ libastrometry.so.0 を Flatpak の実行環境から読み込めなかったことを示しています。<br>実行環境が読み込めないのが、不具合の原因か？</p>



<p class="wp-block-paragraph">ライブラリ情報は？</p>



<pre class="wp-block-code"><code>$ ldconfig -p | grep libastrometry
	libastrometry.so.0 (libc6,x86-64) =&gt; /lib/x86_64-linux-gnu/libastrometry.so.0</code></pre>



<p class="wp-block-paragraph">Flatpak 内から同じライブラリが見えるか、調べます。</p>



<pre class="wp-block-code"><code>$ flatpak run --command=sh org.kde.kstars -c '
ls -l /run/host/lib/x86_64-linux-gnu/libastrometry.so.0 2&gt;&amp;1
ls -l /run/host/usr/lib/x86_64-linux-gnu/libastrometry.so.0 2&gt;&amp;1
'
-rw-r--r-- 1 nfsnobody nfsnobody 2143432  4月  9  2024 /run/host/lib/x86_64-linux-gnu/libastrometry.so.0
-rw-r--r-- 1 nfsnobody nfsnobody 2143432  4月  9  2024 /run/host/usr/lib/x86_64-linux-gnu/libastrometry.so.0</code></pre>



<p class="wp-block-paragraph">Flatpak 内からそのライブラリを読み込めるか、確認します。</p>



<pre class="wp-block-code"><code>$ ldd /usr/bin/solve-field | grep -E 'astrometry'
	libastrometry.so.0 =&gt; /lib/x86_64-linux-gnu/libastrometry.so.0 (0x0000708a13000000)</code></pre>



<p class="wp-block-paragraph">Flatpak 内でホスト側の共有ライブラリを読み込めるか、確認します。</p>



<pre class="wp-block-code"><code>$ flatpak run --command=sh org.kde.kstars -c '
LD_LIBRARY_PATH=/run/host/lib/x86_64-linux-gnu:/run/host/usr/lib/x86_64-linux-gnu \
/run/host/usr/bin/solve-field --version
'
/run/host/usr/bin/solve-field: symbol lookup error: /run/host/lib/x86_64-linux-gnu/libc.so.6: undefined symbol: __nptl_change_stack_perm, version GLIBC_PRIVATE</code></pre>



<p class="wp-block-paragraph">Ubuntu 側の solve-field を Flatpak 内から直接実行する方法は、ライブラリの互換性の問題により、そのままでは使えないようです。</p>



<p class="wp-block-paragraph">Use Position と Use Scale を、Ekos の Scale &amp; Position から外してプレートソルブを行います。</p>



<p class="wp-block-paragraph">望遠鏡の座標や推定画角の誤差がソルブを妨げていないか確認します。<br>KStarsのログ</p>



<pre class="wp-block-code"><code>2026-10-19T15:36:50 Solver aborted.
2026-10-19T15:36:50 Slewing failed.
2026-10-19T15:36:50 Slewing to target coordinates: RA (01h 44m 31s) DEC ( 13° 48' 48").
2026-10-19T15:36:50 Slewing failed.
2026-10-19T15:36:50 Slewing to target coordinates: RA (01h 44m 31s) DEC ( 13° 48' 48").
2026-10-19T15:36:50 Slewing failed.
2026-10-19T15:36:45 Slewing to target coordinates: RA (01h 44m 31s) DEC ( 13° 48' 48").
2026-10-19T15:36:45 Solution coordinates: RA (01h 44m 31s) DEC ( 13° 48' 48") Telescope Coordinates: RA (22h 15m 56s) DEC ( 14° 50' 19") Target Coordinates: RA (23h 56m 00s) DEC ( 180° 00' 00")
2026-10-19T15:36:45 WCS information updated. Images captured from this point forward shall have valid WCS.
2026-10-19T15:36:45 Solver RA (25.76083) DEC (13.67526) Orientation (179.84074) Pixel Scale (0.77730) Parity (neg) PA (-0.15926)
2026-10-19T15:36:45 Solver completed after 1.03 seconds.
2026-10-19T15:36:44 Loaded image was taken on pierside EAST
2026-10-19T15:29:12 World Coordinate System (WCS) is enabled.</code></pre>



<p class="wp-block-paragraph">Flatpak 内で使えるソルバーを調べます。</p>



<pre class="wp-block-code"><code>$ flatpak run --command=sh org.kde.kstars -c '
echo "=== /app/bin ==="
ls -l /app/bin/solve-field 2&gt;&amp;1

echo "=== Flatpak内のPATH ==="
echo "$PATH"

echo "=== solve-fieldを検索 ==="
find /app -type f -name solve-field 2&gt;/dev/null
'
=== /app/bin ===
ls: '/app/bin/solve-field' にアクセスできません: そのようなファイルやディレクトリはありません
=== Flatpak内のPATH ===
/app/bin:/usr/bin
=== solve-fieldを検索 ===</code></pre>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">Flatpak 内の /app/bin/solve-field：存在しない<br>Flatpak 内の PATH：/app/bin:/usr/bin<br>/app 内を検索しても solve-field は見つからない<br>Ubuntu 本体には /usr/bin/solve-field が存在する<br>ホスト側の solve-field を Flatpak 内から直接実行すると、GLIBC の互換性エラーが発生する</p>



<p class="wp-block-paragraph">Flatpak 版 KStars の環境には、外部の Astrometry.net 実行ファイルが同梱されていません。</p>
</div>



<p class="wp-block-paragraph">Flatpak 内から wcsinfo を実行します。</p>



<pre class="wp-block-code"><code>$ flatpak run --command=sh org.kde.kstars -c '
/run/host/usr/bin/wcsinfo 2&gt;&amp;1 | head -20
'
/run/host/usr/bin/wcsinfo: error while loading shared libraries: libgsl.so.27: cannot open shared object file: No such file or directory</code></pre>



<h2 class="wp-block-heading">プレートソルブ / 不具合を追う</h2>



<p class="wp-block-paragraph">KStars　バージョン 3.8.5 Stable</p>



<p class="wp-block-paragraph">プレートソルブ途中で、クラッシュが多発するようになった。</p>



<pre class="wp-block-code"><code>$ ls -lht /var/crash/
合計 40K
-rw-r--r-- 1 root whoopsie   0 10月 18 22:31 _usr_share_apport_apport.0.upload
-rw-r----- 1 root whoopsie 39K 10月 18 22:31 _usr_share_apport_apport.0.crash</code></pre>



<pre class="wp-block-code"><code>$ coredumpctl list
TIME                         PID  UID  GID SIG     COREFILE EXE               SIZE
Sun 2026-10-18 22:30:57 JST 3958 1000 1000 SIGSEGV present  /app/bin/kstars 223.6M</code></pre>



<pre class="wp-block-code"><code>$ coredumpctl info kstars
           PID: 3958 (kstars)
           UID: 1000 (USERNAME)
           GID: 1000 (USERNAME)
        Signal: 11 (SEGV)
     Timestamp: Sun 2026-10-18 22:30:49 JST (9min ago)
  Command Line: kstars
    Executable: /app/bin/kstars
 Control Group: /user.slice/user-1000.slice/user@1000.service/app.slice/app-flatpak-org.kde.kstars-3947.scope
          Unit: user@1000.service
     User Unit: app-flatpak-org.kde.kstars-3947.scope
         Slice: user-1000.slice
     Owner UID: 1000 (USERNAME)
       Boot ID: fc59a2c2dc594283b13a5c649180493c
    Machine ID: 74e8e02918d240c7a288b206ca440774
      Hostname: ah53s
       Storage: /var/lib/systemd/coredump/core.kstars.1000.fc59a2c2dc594283b13a5c649180493c.3958.1792330249000000.zst (present)
  Size on Disk: 223.6M
       Message: Process 3958 (kstars) of user 1000 dumped core.
                
                Stack trace of thread 83:
                #0  0x000073f8c82f2a80 n/a (/app/lib/libstellarsolver6.so.2.8 + 0xcca80)
                #1  0x000073f8c82a4a8e n/a (/app/lib/libstellarsolver6.so.2.8 + 0x7ea8e)
                #2  0x000073f8c829a527 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x74527)
                #3  0x000073f8c829a063 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x74063)
                #4  0x000073f8c829aa87 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x74a87)
                #5  0x000073f8c829adf2 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x74df2)
                #6  0x000073f8c829af19 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x74f19)
                #7  0x000073f8c829c278 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x76278)
                #8  0x000073f8c8297042 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x71042)
                #9  0x000073f8c82986b7 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x726b7)
                #10 0x000073f8c829684a n/a (/app/lib/libstellarsolver6.so.2.8 + 0x7084a)
                #11 0x000073f8c8253be8 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x2dbe8)
                #12 0x000073f8c8258218 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x32218)
                #13 0x000073f8c658c3d4 n/a (/usr/lib/x86_64-linux-gnu/libQt6Core.so.6.10.3 + 0x38c3d4)
                #14 0x000073f8c409b56a n/a (/usr/lib/x86_64-linux-gnu/libc.so.6 + 0x9a56a)
                #15 0x000073f8c411ee94 n/a (/usr/lib/x86_64-linux-gnu/libc.so.6 + 0x11de94)
                ELF object binary architecture: AMD x86-64</code></pre>



<pre class="wp-block-code"><code>$ coredumpctl debug 3958
           PID: 3958 (kstars)
           UID: 1000 (USERNAME)
           GID: 1000 (USERNAME)
        Signal: 11 (SEGV)
     Timestamp: Sun 2026-10-18 22:30:49 JST (9min ago)
  Command Line: kstars
    Executable: /app/bin/kstars
 Control Group: /user.slice/user-1000.slice/user@1000.service/app.slice/app-flatpak-org.kde.kstars-3947.scope
          Unit: user@1000.service
     User Unit: app-flatpak-org.kde.kstars-3947.scope
         Slice: user-1000.slice
     Owner UID: 1000 (USERNAME)
       Boot ID: fc59a2c2dc594283b13a5c649180493c
    Machine ID: 74e8e02918d240c7a288b206ca440774
      Hostname: ah53s
       Storage: /var/lib/systemd/coredump/core.kstars.1000.fc59a2c2dc594283b13a5c649180493c.3958.1792330249000000.zst (present)
  Size on Disk: 223.6M
       Message: Process 3958 (kstars) of user 1000 dumped core.
                
                Stack trace of thread 83:
                #0  0x000073f8c82f2a80 n/a (/app/lib/libstellarsolver6.so.2.8 + 0xcca80)
                #1  0x000073f8c82a4a8e n/a (/app/lib/libstellarsolver6.so.2.8 + 0x7ea8e)
                #2  0x000073f8c829a527 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x74527)
                #3  0x000073f8c829a063 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x74063)
                #4  0x000073f8c829aa87 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x74a87)
                #5  0x000073f8c829adf2 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x74df2)
                #6  0x000073f8c829af19 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x74f19)
                #7  0x000073f8c829c278 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x76278)
                #8  0x000073f8c8297042 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x71042)
                #9  0x000073f8c82986b7 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x726b7)
                #10 0x000073f8c829684a n/a (/app/lib/libstellarsolver6.so.2.8 + 0x7084a)
                #11 0x000073f8c8253be8 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x2dbe8)
                #12 0x000073f8c8258218 n/a (/app/lib/libstellarsolver6.so.2.8 + 0x32218)
                #13 0x000073f8c658c3d4 n/a (/usr/lib/x86_64-linux-gnu/libQt6Core.so.6.10.3 + 0x38c3d4)
                #14 0x000073f8c409b56a n/a (/usr/lib/x86_64-linux-gnu/libc.so.6 + 0x9a56a)
                #15 0x000073f8c411ee94 n/a (/usr/lib/x86_64-linux-gnu/libc.so.6 + 0x11de94)
                ELF object binary architecture: AMD x86-64

GNU gdb (Ubuntu 15.1-1ubuntu1~24.04.1) 15.1
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
&lt;https://www.gnu.org/software/gdb/bugs/&gt;.
Find the GDB manual and other documentation resources online at:
    &lt;http://www.gnu.org/software/gdb/documentation/&gt;.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
/app/bin/kstars: そのようなファイルやディレクトリはありません.

This GDB supports auto-downloading debuginfo from the following URLs:
  &lt;https://debuginfod.ubuntu.com&gt;
Enable debuginfod for this session? (y or &#91;n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
Downloading executable for /app/bin/kstars
Download failed: タイマが破棄されました.  Continuing without executable for /app/bin/kstars.                                      

warning: Can't open file /app/bin/kstars during file-backed mapping note processing

warning: Can't open file /memfd:wayland-shm (deleted) during file-backed mapping note processing
--Type &lt;RET&gt; for more, q to quit, c to continue without paging--q
Quit
(gdb) set pagination off
(gdb) thread apply all bt
(gdb) q</code></pre>



<p class="wp-block-paragraph">Signal: 11 (SEGV)<br>KStars のプロセスが SIGSEGV（セグメンテーション違反） というシグナルを受けて終了した。</p>



<p class="wp-block-paragraph">Stack trace of thread 83:<br>#0 から #12 まで、すべて libstellarsolver6.so.2.8 内のアドレスを指しています。</p>



<h2 class="wp-block-heading">ASTAPを使う</h2>



<p class="wp-block-paragraph">KStarsのプレートソルブには次の設定があります。</p>



<p class="wp-block-paragraph">Source Extraction Method: Internal SEP<br>Solving Method: Internal Solver</p>



<p class="wp-block-paragraph">Internal SEP は、画像から星を検出する方法です。<br>Internal Solver は、検出された星の情報を使ってプレートソルブを行う方法です。</p>



<p class="wp-block-paragraph">他の方法には、次があります。</p>



<p class="wp-block-paragraph">StellarSolver<br>ASTAP<br>Astrometry.net</p>



<p class="wp-block-paragraph">ASTAPを使ってみます。<br>Internal SEP と Internal Solver を用い、クラッシュが多発するようになった場合の回避策として。</p>



<h3 class="wp-block-heading">KStarsを最新版に更新する</h3>



<h4 class="wp-block-heading">更新マスクを解除とその確認</h4>



<pre class="wp-block-code"><code>$ flatpak mask --user --remove org.kde.kstars

$ flatpak mask --user
No masked patterns</code></pre>



<h4 class="wp-block-heading">KStarsを最新版に更新する</h4>



<pre class="wp-block-code"><code>$ flatpak update --user org.kde.kstars
Looking for updates…

        ID                     Branch         Op         Remote         Download
 1.     org.kde.kstars         stable         u          flathub        &lt; 480.1&nbsp;MB

Proceed with these changes to the user installation? &#91;Y/n]:Y

ID                     Branch         Op         Remote         Download
 1. &#91;✓] org.kde.kstars         stable         u          flathub        180.2&nbsp;MB / 480.1&nbsp;MB

Updates complete.</code></pre>



<h4 class="wp-block-heading">Linux用のASTAP</h4>



<p class="wp-block-paragraph">ASTAP本体と星データベースが配布されています。<br><a rel="noopener" target="_blank" href="https://www.hnsky.org/astap.htm">https://www.hnsky.org/astap.htm</a></p>


<a rel="noopener" target="_blank" href="https://www.hnsky.org/astap.htm" title="ASTAP, Astrometric Stacking Program" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img fetchpriority="high" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.hnsky.org%2Fastap.htm?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">ASTAP, Astrometric Stacking Program</div><div class="blogcard-snippet external-blogcard-snippet">ASTAP, ASTrometric Stacking Program, astrometric solver, stacking of images, photometry and FITS viewer.</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.hnsky.org/astap.htm" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.hnsky.org</div></div></div></div></a>


<p class="wp-block-paragraph">今回はUbuntu 24.04のFlatpak版KStarsを使用しているため、Linux用のASTAPを選びます。</p>



<h4 class="wp-block-heading">APTで利用できるASTAPの情報を確認</h4>



<pre class="wp-block-code"><code>$ apt policy astap
astap:
  インストールされているバージョン: (なし)
  候補:               2024.01.16-1
  バージョンテーブル:
     2024.01.16-1 500
        500 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages</code></pre>



<p class="wp-block-paragraph">ASTAP をインストールします。</p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install astap
apt show astap</code></pre>



<h4 class="wp-block-heading">StellarSolver Options</h4>



<p class="wp-block-paragraph">KStars、StellarSolver Optionsにある、Solving Methodを &#8220;Local ASTAP&#8221;に指定します。</p>



<h4 class="wp-block-heading">アライメントログの有効化（原因の特定）</h4>



<p class="wp-block-paragraph">Ekos画面上、左端の「ドライバーとスパナアイコン」、[Setup] タブ <br>[Setup] タブ → [Logs] で「Alignment Logging」を有効にしてください。</p>



<h4 class="wp-block-heading">星図データを導入</h4>



<p class="wp-block-paragraph"><a rel="noopener" target="_blank" href="https://www.hnsky.org/astap.htm">https://www.hnsky.org/astap.htm</a><br>こちらから、D50 (debian)<br>d50_star_database.deb　をダウンロードします。</p>



<pre class="wp-block-code"><code>$ sudo apt install ./d50_star_database.deb</code></pre>



<p class="wp-block-paragraph">インストールを確認します。</p>



<pre class="wp-block-code"><code>$ ls -lh /opt/astap
合計 911M
-rw------- 1 root root  34K  9月 29  2023 'acknowledgement of databases.txt'
-rw-r--r-- 1 root root 510K  3月 15  2023  d50_0101.1476</code></pre>



<h4 class="wp-block-heading">ASTAPを指定</h4>



<pre class="wp-block-code"><code>KStars 設定、External &amp; Online Programs
ASTAP: ASTAP Binary: 
/usr/bin/astap を指定します。</code></pre>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://globe3.ddns.net/wp/configuring-flatpak-version-kstars/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PI.N.S.を、x86_64 GUN/Linux で使うには</title>
		<link>https://globe3.ddns.net/wp/porting-pins-to-x86_64-gun-linux/</link>
					<comments>https://globe3.ddns.net/wp/porting-pins-to-x86_64-gun-linux/#respond</comments>
		
		<dc:creator><![CDATA[minmin]]></dc:creator>
		<pubDate>Fri, 04 Sep 2026 04:15:34 +0000</pubDate>
				<category><![CDATA[INDI-Library]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://globe3.ddns.net/wp/?p=5370</guid>

					<description><![CDATA[頼りになる星仲間に紹介されたので、使ってみよう。https://touch-n-stars.eu/ NINAワークフローを基盤とした2つのオープンソースプロジェクト：スマートフォンやタブレット向けの「タッチファースト」対 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">頼りになる星仲間に紹介されたので、使ってみよう。<br><a rel="noopener" target="_blank" href="https://touch-n-stars.eu/">https://touch-n-stars.eu/</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">NINAワークフローを基盤とした2つのオープンソースプロジェクト：スマートフォンやタブレット向けの「タッチファースト」対応コンパニオンアプリと、より小型のRaspberry Piイメージングコンピュータを実現するためのLinuxに特化したアプローチです。<br><a rel="noopener" target="_blank" href="https://touch-n-stars.eu/">https://touch-n-stars.eu/</a></p>
</blockquote>



<p class="wp-block-paragraph">こちらには、2つのプロジェクトがあり、その一つが<br>『Raspberry Piをはじめとするコンパクトなシステムでの画像取得を目的とした、Linuxに特化したN.I.N.A.のフォーク版です。PINSは、より携帯性に優れ、低消費電力のフィールドコンピュータを試してみたいユーザー向けのものです。』</p>



<p class="wp-block-paragraph">Raspberry PiやミニPCを天体画像撮影に使う選択肢に、N.I.N.Aを挙げています。</p>



<p class="has-text-align-right wp-block-paragraph">「あら、raspberry piが手元に無い。。。」</p>



<p class="wp-block-paragraph">では、GUN/Linux, Ubuntu PCの画面上に、N.I.N.Aを表示させてみましょう。<br>ついでに、raspberry pi固有の機能などは全て無視して、最低限の動作が行えるか、試してみます。</p>



<p class="wp-block-paragraph">「それって、N.I.N.Aの選択幅を広げられるってこと？」</p>



<p class="has-text-align-right wp-block-paragraph">『ん〜〜、迷いを広げるってことにならないかい&#8230;』</p>



<p class="wp-block-paragraph">Ubuntu 26.04 / x86_64 Linux上でビルドを試します。頓挫もおおいにありえる。</p>



<p class="wp-block-paragraph">PINS GitHub<br><a rel="noopener" target="_blank" href="https://github.com/nitr57/pins">https://github.com/nitr57/pins</a></p>



<p class="wp-block-paragraph">開発版を使うのではなく、<br>x86_64 LinuxでPINSを最小構成でビルドできるか確認したいので、<br>develop ブランチを取得します。x86_64 Linux 対応の実装が develop にあるようです。</p>



<p class="wp-block-paragraph">Package pinsdaemon ASTAP data-link helper<br>build-and-install-pins-x64.sh<br><a rel="noopener" target="_blank" href="https://github.com/nitr57/pins/blob/develop/build-and-install-pins-x64.sh">https://github.com/nitr57/pins/blob/develop/build-and-install-pins-x64.sh</a><br>有り難いことに、ビルドスクリプトが用意されています。</p>



<p class="wp-block-paragraph">PI.N.S. (PI &#8216;N&#8217; Stars)の案内があります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">PI.N.S. (PI 『N』 Stars)<br>このリポジトリには、オリジナルの N.I.N.A. &#8211; Nighttime Imaging 『N』 Astronomy イメージングソフトウェアの Linux 向け移植版およびフォークである PI.N.S. (PI 『N』 Stars) のソースコードが含まれています。<br><a rel="noopener" target="_blank" href="https://github.com/nitr57/pins/tree/develop">https://github.com/nitr57/pins/tree/develop</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">PI.N.S.は、N.I.N.A.の強力な機能をLinuxユーザーに提供することを目的としています。</p>
</blockquote>



<p class="wp-block-paragraph">とても有り難いコメントです。</p>



<p class="wp-block-paragraph">などと、順調な書き出しですが、それぞれのソースに、私の意識がロックオンされて、<br>build-and-install-pins-x64.sh が用意されている事に、丸々一日、気が付かないとの落ちが。。。</p>



<p class="wp-block-paragraph">これはそんな者の、PI.N.Sビルド、インストール録です。</p>



<p class="has-text-align-right wp-block-paragraph">「思い込みって意識が狭くなりますね」</p>



<h2 class="wp-block-heading">PINSをclone</h2>



<pre class="wp-block-code"><code>git clone --branch develop --recurse-submodules https://github.com/nitr57/pins.git

Submodule path 'NINA.Plugins/PolarAlignment/NINA.Plugins.PolarAlignment.Test/External': checked out 'c43065ee856ad8a5f1edbd9e043c520872570e33'
Submodule path 'NINA.Plugins/Touch-N-Stars': checked out '23f08d5fc14421e9f42cf2d9e27981e49fc4bb8e'
Submodule path 'NINA.Plugins/joko.nina.plugins': checked out '8f40cc9c31c406f77b314b1a43b2746b85780142'
Submodule path 'NINA.Plugins/nina.plugin.orbuculum': checked out 'b0fa902093943577cb38fc706faa5dc0f593b368'
Submodule path 'NINA.Plugins/nina.plugin.phd2tools': checked out '7ab92e2daf7f240f6e9e01a46468f5f26e1df0e8'
Submodule path 'NINA.Plugins/ninaAPI': checked out 'd96ada2b67f4c979e4708046ba0803c0ae22b158'
Submodule path 'Touch-N-Stars': checked out 'd43bceb6d24956beb35097267b7c28712d8ccdcc'</code></pre>



<p class="wp-block-paragraph">develop ブランチのPINS本体 + ブランチが指定しているsubmoduleも取得します。</p>



<pre class="wp-block-code"><code>### https://github.com/nitr57/pins.git

### git clone --branch develop https://github.com/nitr57/pins.git
cd pins

git branch --show-current
develop

作業ツリーとsubmoduleの状態を確認
git status
ブランチ develop
Your branch is up to date with 'origin/develop'.
nothing to commit, working tree clean

git submodule status
 6c3c07d9a5607cf8a24d478f70161d1a52e4ddf9 NINA.Plugins/LiveStack (6c3c07d)
 518edfe4b7b72ba149ac728fd90ebd3167895e6a NINA.Plugins/NINA.Joko.Plugin.TenMicron (518edfe)
 be1cf505272a5520e4938187631182777d9388c2 NINA.Plugins/PolarAlignment (be1cf50)
 23f08d5fc14421e9f42cf2d9e27981e49fc4bb8e NINA.Plugins/Touch-N-Stars (23f08d5)
 8f40cc9c31c406f77b314b1a43b2746b85780142 NINA.Plugins/joko.nina.plugins (8f40cc9)
 b0fa902093943577cb38fc706faa5dc0f593b368 NINA.Plugins/nina.plugin.orbuculum (b0fa902)
 7ab92e2daf7f240f6e9e01a46468f5f26e1df0e8 NINA.Plugins/nina.plugin.phd2tools (7ab92e2)
 d96ada2b67f4c979e4708046ba0803c0ae22b158 NINA.Plugins/ninaAPI (remotes/origin/fix/single-29-gd96ada2)
fatal: no submodule mapping found in .gitmodules for path 'NINA.Plugins/pins.plugin'</code></pre>



<p class="wp-block-paragraph">fatal: no submodule mapping found in .gitmodules for path &#8216;NINA.Plugins/pins.plugin&#8217;</p>



<pre class="wp-block-code"><code>### 現在のリポジトリで管理対象として認識しているファイルを表示させます
git ls-files --stage NINA.Plugins/pins.plugin
160000 526db72c0aaf5850920188f44a8be2289aec38aa 0	NINA.Plugins/pins.plugin

ls -ld NINA.Plugins/pins.plugin
drwxrwxr-x 2 USER USER 4096 Sep  7 09:07 NINA.Plugins/pins.plugin

git config --file .gitmodules --get-regexp '^submodule\.'
submodule.Touch-N-Stars.path Touch-N-Stars
submodule.Touch-N-Stars.url https://github.com/Touch-N-Stars/Touch-N-Stars.git
submodule.Touch-N-Stars.branch pins
submodule.NINA.Plugins/ninaAPI.path NINA.Plugins/ninaAPI
submodule.NINA.Plugins/ninaAPI.url https://github.com/nitr57/ninaAPI.git
submodule.NINA.Plugins/ninaAPI.branch dev
submodule.NINA.Plugins/Touch-N-Stars.path NINA.Plugins/Touch-N-Stars
submodule.NINA.Plugins/Touch-N-Stars.url https://github.com/nitr57/N.I.N.A-Plugin-for-Touch-N-Stars.git
submodule.NINA.Plugins/Touch-N-Stars.branch main
submodule.NINA.Plugins/LiveStack.path NINA.Plugins/LiveStack
submodule.NINA.Plugins/LiveStack.url https://github.com/nitr57/nina.plugin.livestack
submodule.NINA.Plugins/LiveStack.branch main
submodule.NINA.Plugins/PolarAlignment.path NINA.Plugins/PolarAlignment
submodule.NINA.Plugins/PolarAlignment.url https://github.com/nitr57/nina.plugin.polaralignment.git
submodule.NINA.Plugins/PolarAlignment.branch master
submodule.NINA.Plugins/joko.nina.plugins.path NINA.Plugins/joko.nina.plugins
submodule.NINA.Plugins/joko.nina.plugins.url https://github.com/nitr57/joko.nina.plugins.git
submodule.NINA.Plugins/joko.nina.plugins.branch develop
submodule.NINA.Plugins/NINA.Joko.Plugin.TenMicron.path NINA.Plugins/NINA.Joko.Plugin.TenMicron
submodule.NINA.Plugins/NINA.Joko.Plugin.TenMicron.url https://github.com/nitr57/NINA.Joko.Plugin.TenMicron.git
submodule.NINA.Plugins/NINA.Joko.Plugin.TenMicron.branch develop
submodule.NINA.Plugins/nina.plugin.orbuculum.path NINA.Plugins/nina.plugin.orbuculum
submodule.NINA.Plugins/nina.plugin.orbuculum.url https://github.com/nitr57/nina.plugin.orbuculum.git
submodule.NINA.Plugins/nina.plugin.orbuculum.branch master
submodule.NINA.Plugins/nina.plugin.phd2tools.path NINA.Plugins/nina.plugin.phd2tools
submodule.NINA.Plugins/nina.plugin.phd2tools.url https://github.com/nitr57/nina.plugin.phd2tools.git</code></pre>



<p class="wp-block-paragraph">Gitのgitlink（submodule）として記録されているのに、.gitmodules にその定義が存在しない状態になってる。</p>



<p class="wp-block-paragraph">build-and-install-pins-x64.sh では、&#8221;pins.plugin&#8221;は何してるかな？</p>



<pre class="wp-block-code"><code>grep -n "pins.plugin" build-and-install-pins-x64.sh

225:    "pins-plugin|https://github.com/nitr57/pins.plugin|"
935:  clone_repo_fresh "https://github.com/nitr57/pins.plugin" "NINA.Plugins/pins.plugin"
</code></pre>



<p class="wp-block-paragraph">935行目には、ビルドスクリプトから別途cloneする設計らしいです。<br>pins.plugin を、.gitmodules に登録されたsubmoduleとして取得するのではない。</p>



<h2 class="wp-block-heading">build-and-install-pins-x64.sh を見る</h2>



<p class="wp-block-paragraph">build-and-install-pins-x64.sh を見てみると、</p>



<pre class="wp-block-code"><code>### Ubuntu/Debian x86_64パッケージアーキテクチャamd64向き
TARGET_RUNTIME="${TARGET_RUNTIME:-linux-x64}"

### .NETは net10.0, SDK 10.0.400?
PLUGIN_TARGET_FRAMEWORK="${PLUGIN_TARGET_FRAMEWORK:-net10.0}"

### スクリプト自身がPINSをcloneする
PINS_REPO_URL="${PINS_REPO_URL:-https://github.com/acocalypso/pins.git}"
PINS_REPO_BRANCH="${PINS_REPO_BRANCH:-develop}"
PINS_WORKDIR="${PINS_WORKDIR:-$TARGET_HOME/pins-build-src}"
AUTO_CLONE_PINS_REPO="${AUTO_CLONE_PINS_REPO:-true}"

### INDIも（xisf）ビルドする
INDI_VERSION="${INDI_VERSION:-2.1.9}"
INDI_ENABLE_XISF="${INDI_ENABLE_XISF:-true}"</code></pre>



<p class="wp-block-paragraph">CMake、Ninja、Make、automake、curl、wgetなどもスクリプトで取得するようだ。</p>



<pre class="wp-block-code"><code>sed -n '300,470p' build-and-install-pins-x64.sh

install_build_prerequisites() {
  log "Installing system build prerequisites"

  run_as_root apt-get update
  run_as_root apt-get install -y --no-install-recommends \
    apt-transport-https \
    autoconf \
    autoconf-archive \
    automake \
    build-essential \
    ca-certificates \
    cdbs \
    cmake \
    curl \
    debhelper \
    devscripts \
    default-jre-headless \
    dkms \
    dpkg-dev \
    equivs \
    fakeroot \
    fxload \
    gettext \
    git \
    git-lfs \
    gnupg \
    libavdevice-dev \
    libboost-regex-dev \
    libboost-all-dev \
    libcfitsio-dev \
    libczmq-dev \
    libcurl4-gnutls-dev \
    libdc1394-dev \
    libeigen3-dev \
    libev-dev \
    libfftw3-dev \
    libftdi1-dev \
    libftdi-dev \
    libgphoto2-dev \
    libgps-dev \
    libgsl-dev \
    libgtest-dev \
    libgmock-dev \
    libhidapi-dev \
    libicu-dev \
    libjpeg-dev \
    libjsoncpp-dev \
    libkrb5-dev \
    liblimesuite-dev \
    libnova-dev \
    libopencv-dev \
    libpng-dev \
    libraw-dev \
    librtlsdr-dev \
    libssl-dev \
    libtesseract-dev \
    libtheora-dev \
    libtiff-dev \
    libtool \
    libudev-dev \
    libusb-1.0-0-dev \
    libusb-dev \
    libv4l-dev \
    libwxgtk3.2-dev \
    libx11-dev \
    libxisf-dev \
    libzstd-dev \
    libzmq3-dev \
    libwebp-dev \
    ninja-build \
    nlohmann-json3-dev \
    pkg-config \
    rsync \
    unzip \
    wget \
    wx-common \
    wx3.2-i18n \
    zip \
    zlib1g-dev
}</code></pre>



<p class="wp-block-paragraph">linux-x64<br>├── INDI 2.1.9<br>├── PHD2<br>├── OpenCV 4.11.0<br>├── OpenCvSharp<br>├── ASTAP<br>└── 各種NINA plugin<br>それぞれを、build-and-install-pins-x64.shからビルドしているらしい。</p>



<pre class="wp-block-code"><code>sed -n '800,880p' build-and-install-pins-x64.sh
  fi

  &#91;&#91; -f "$package_so" ]] || fail "OpenCvSharp runtime library not found: $package_so"

  local stage_dir="NINA/External/$TARGET_RUNTIME"
  mkdir -p "$stage_dir"
  cp -f "$package_so" "$stage_dir/libOpenCvSharpExtern.so"
  chmod 755 "$stage_dir/libOpenCvSharpExtern.so"

  log "Staged OpenCvSharp runtime library at: $stage_dir/libOpenCvSharpExtern.so"
}

install_dotnet_10() {
  local dotnet_ok="false"

  if command -v dotnet &gt;/dev/null 2&gt;&amp;1; then
    if dotnet --list-sdks | grep -q '^10\.'; then
      dotnet_ok="true"
    fi
  fi

  if &#91;&#91; "$dotnet_ok" == "true" ]]; then
    log ".NET 10 SDK already available"
    return
  fi

  log "Installing .NET 10 SDK"
  source /etc/os-release
  local ms_repo_deb
  ms_repo_deb="$(mktemp)"

  if ! wget -q "https://packages.microsoft.com/config/ubuntu/${VERSION_ID}/packages-microsoft-prod.deb" -O "$ms_repo_deb"; then
    fail "Failed to download Microsoft package feed for Ubuntu ${VERSION_ID}"
  fi

  run_as_root dpkg -i "$ms_repo_deb"
  rm -f "$ms_repo_deb"

  run_as_root apt-get update
  run_as_root apt-get install -y dotnet-sdk-10.0
}

install_node_22() {
  local node_ok="false"

  if command -v node &gt;/dev/null 2&gt;&amp;1; then
    local node_major
    node_major="$(node -p 'process.versions.node.split(".")&#91;0]')"
    if &#91;&#91; "$node_major" == "22" ]]; then
      node_ok="true"
    fi
  fi

  if &#91;&#91; "$node_ok" == "true" ]]; then
    log "Node.js 22 already available"
    return
  fi

  log "Installing Node.js 22"
  local nodesource_script
  nodesource_script="$(mktemp)"
  curl -fsSL https://deb.nodesource.com/setup_22.x -o "$nodesource_script"
  run_as_root bash "$nodesource_script"
  rm -f "$nodesource_script"

  run_as_root apt-get install -y nodejs
}

print_tool_versions() {
  log "Toolchain versions"
  dotnet --info
  node --version
  npm --version
}

update_submodules_except_external() {
  log "Updating git submodules (excluding NINA/External)"

  git lfs install

  local excluded_path="NINA/External"</code></pre>



<p class="wp-block-paragraph">.NET SDK、Node.js 22もスクリプトが導入するようです。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">build-and-install-pins-x64.shのみ単体でダウンロードして実行すると、PINS環境構築ができそうです。ただし、一箇所の変更が必要かもしれません。<br>変更前：<br>PINS_REPO_URL=&#8221;${PINS_REPO_URL:-https://github.com/acocalypso/pins.git}&#8221;</p>



<p class="wp-block-paragraph">変更後：<br>PINS_REPO_URL=&#8221;${PINS_REPO_URL:-https://github.com/nitr57/pins.git}&#8221;</p>
</div>



<p class="wp-block-paragraph">スクリプトが行う、処理順を全体像として確認します。</p>



<pre class="wp-block-code"><code>grep -nE '^&#91;a-zA-Z_]&#91;a-zA-Z0-9_]*\(\)' build-and-install-pins-x64.sh

13:log() {
17:warn() {
21:fail() {
26:is_truthy() {
33:run_as_root() {
43:require_file() {
48:has_required_repo_layout() {
57:check_required_repo_layout() {
159:record_built_deb() {
174:get_remote_sha() {
191:compute_source_fingerprint() {
255:load_previous_build_state() {
270:try_reuse_successful_build() {
309:save_successful_build_state() {
325:install_bootstrap_tools_if_needed() {
346:ensure_repo_root() {
379:install_build_prerequisites() {
460:get_opencv_version() {
499:get_local_opencv_pkgconfig_version() {
522:opencv_matches_required_version() {
532:activate_opencv_environment() {
565:build_and_install_opencv_required_version() {
600:ensure_opencv_required_version() {
650:activate_local_libxisf_environment() {
703:get_libxisf_header_candidate() {
718:libxisf_supports_required_api() {
727:build_and_install_libxisf() {
748:ensure_modern_libxisf_if_enabled() {
778:stage_opencvsharp_runtime_from_nuget() {
812:install_dotnet_10() {
842:install_node_22() {
868:print_tool_versions() {
875:update_submodules_except_external() {
909:clone_repo_fresh() {
922:clone_workflow_plugin_repositories() {
938:build_and_install_libgpiod() {
958:populate_external_bundle() {
1014:determine_versions() {
1028:build_core_pins_package() {
1146:build_pinsdaemon_package() {
1202:build_wandereretasdk_package() {
1251:find_assembly_info() {
1266:build_plugin_deb() {
1370:prepare_touch_n_stars_frontend() {
1388:prepare_pins_plugin_sdks() {
1425:build_plugins() {
1484:build_indi_debian_packages() {
1733:configure_phd2_service_file() {
1762:build_phd2_package() {
1908:create_firmware_bundle() {
1930:install_built_packages() {
1978:setup_framingassistant_cache() {
2011:setup_astap() {
2048:setup_runtime_prerequisites() {
2083:print_summary() {
2096:main() {</code></pre>



<p class="wp-block-paragraph">基本処理 (x86_64 / amd64確認) → PINSソース確認 →  <code>ビルド状態確認</code>(前回成功ビルドの再利用判定) → ビルド環境構築( build-essential, cmake, ninja, 各種lib*-dev) → OpenCVビルド、libXISFビルド、OpenCvSharp取得 / .NET導入 / Node.js導入 → PINS関連コンポーネント → N.I.N.A. Pluginビルド → INDI 2.1.9ビルド → PHD2ビルド → ビルドされた.debをインストール → ASTAP / Framing Assistant等の実行環境設定<br>との流れで処理するようです。</p>



<p class="wp-block-paragraph">PINSソースを確認 → ビルド環境を構築 → ネイティブ依存関係を整備 → .NET/Node環境を整備 → submodule/Pluginを取得 → PINS/N.I.N.A./INDI/PHD2等をビルド → インストール</p>



<h2 class="wp-block-heading">build-and-install-pins-x64.sh を使う</h2>



<p class="wp-block-paragraph">だいぶ行き届いたお膳立てが、このスクリプトは成されています。</p>



<pre class="wp-block-code"><code>git status
ブランチ develop
Your branch is up to date with 'origin/develop'.
nothing to commit, working tree clean</code></pre>



<p class="wp-block-paragraph">インストールスクリプトを使います。</p>



<pre class="wp-block-code"><code>### 実行権限を付ける
chmod +x build-and-install-pins-x64.sh
### スクリプトを動かす
./build-and-install-pins-x64.sh</code></pre>



<p class="wp-block-paragraph">インストールログ</p>



<p class="wp-block-paragraph">Ubuntu 26.04クリーンインストール直後</p>



<pre class="wp-block-code"><code>以下のパッケージが新たにインストールされます:
  apt-transport-https autoconf autoconf-archive automake autopoint autotools-dev build-essential bzip2 ca-certificates-java cdbs cfortran cmake cmake-data comerr-dev cpp-16 cpp-16-x86-64-linux-gnu curl debhelper debugedit
  default-jre-headless devscripts dh-autoreconf dh-strip-nondeterminism dkms dpkg-dev dwz equivs fakeroot fxload g++ g++-15 g++-15-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-15 gcc-15-x86-64-linux-gnu gcc-16 gcc-16-x86-64-linux-gnu
  gcc-x86-64-linux-gnu gdal-data gdal-plugins gettext gfortran-16 gfortran-16-x86-64-linux-gnu git-lfs googletest icu-devtools intltool-debian java-common krb5-multidev libacl1-dev libadios2-mpi-auxiliary-2.11 libadios2-mpi-c++-2.11
  libadios2-mpi-c-2.11 libadios2-mpi-core-2.11 libadios2-mpi-plugins libaec0 libamd-comgr3 libamdhip64-7 libarchive-dev libarchive-zip-perl libarmadillo15 libarpack2t64 libattr1-dev libavcodec-dev libavdevice-dev libavdevice62
  libavfilter-dev libavformat-dev libavif16 libavutil-dev libb-hooks-op-check-perl libblas3 libblosc1 libblosc2-7 libboost-all-dev libboost-atomic-dev libboost-atomic1.90-dev libboost-atomic1.90.0 libboost-charconv1.90-dev
  libboost-charconv1.90.0 libboost-chrono-dev libboost-chrono1.90-dev libboost-chrono1.90.0 libboost-container-dev libboost-container1.90-dev libboost-container1.90.0 libboost-context-dev libboost-context1.90-dev libboost-context1.90.0
  libboost-coroutine-dev libboost-coroutine1.90-dev libboost-coroutine1.90.0 libboost-date-time-dev libboost-date-time1.90-dev libboost-date-time1.90.0 libboost-dev libboost-exception-dev libboost-exception1.90-dev libboost-fiber-dev
  libboost-fiber1.90-dev libboost-fiber1.90.0 libboost-filesystem-dev libboost-filesystem1.90-dev libboost-filesystem1.90.0 libboost-graph-dev libboost-graph-parallel-dev libboost-graph-parallel1.90-dev libboost-graph-parallel1.90.0
  libboost-graph1.90-dev libboost-graph1.90.0 libboost-iostreams-dev libboost-iostreams1.90-dev libboost-iostreams1.90.0 libboost-json-dev libboost-json1.90-dev libboost-json1.90.0 libboost-locale-dev libboost-locale1.90-dev
  libboost-locale1.90.0 libboost-log-dev libboost-log1.90-dev libboost-log1.90.0 libboost-math-dev libboost-math1.90-dev libboost-math1.90.0 libboost-mpi-dev libboost-mpi-python-dev libboost-mpi-python1.90-dev libboost-mpi-python1.90.0
  libboost-mpi1.90-dev libboost-mpi1.90.0 libboost-nowide-dev libboost-nowide1.90-dev libboost-nowide1.90.0 libboost-numpy-dev libboost-numpy1.90-dev libboost-numpy1.90.0 libboost-process-dev libboost-process1.90-dev
  libboost-process1.90.0 libboost-program-options-dev libboost-program-options1.90-dev libboost-program-options1.90.0 libboost-python-dev libboost-python1.90-dev libboost-python1.90.0 libboost-random-dev libboost-random1.90-dev
  libboost-random1.90.0 libboost-regex-dev libboost-regex1.90-dev libboost-regex1.90.0 libboost-serialization-dev libboost-serialization1.90-dev libboost-serialization1.90.0 libboost-stacktrace-dev libboost-stacktrace1.90-dev
  libboost-stacktrace1.90.0 libboost-test-dev libboost-test1.90-dev libboost-test1.90.0 libboost-thread-dev libboost-thread1.90-dev libboost-thread1.90.0 libboost-timer-dev libboost-timer1.90-dev libboost-timer1.90.0 libboost-tools-dev
  libboost-type-erasure-dev libboost-type-erasure1.90-dev libboost-type-erasure1.90.0 libboost-url-dev libboost-url1.90-dev libboost-url1.90.0 libboost-wave-dev libboost-wave1.90-dev libboost-wave1.90.0 libboost1.90-dev
  libboost1.90-tools-dev libbrotli-dev libbsd-dev libbz2-dev libcc1-0 libcfitsio-dev libcfitsio10t64 libcharls2 libclass-method-modifiers-perl libclass-xsaccessor-perl libconfig-inifiles-perl libcrypt-dev libcurl4-gnutls-dev libczmq-dev
  libczmq4 libdc1394-dev libdebhelper-perl libdeflate-dev libdevel-callchecker-perl libdpkg-perl libdynaloader-functions-perl libeigen3-dev libev-dev libev4t64 libevent-2.1-7t64 libevent-core-2.1-7t64 libevent-dev
  libevent-extra-2.1-7t64 libevent-openssl-2.1-7t64 libevent-pthreads-2.1-7t64 libexif-dev libexpat1-dev libext2fs-dev libfabric1 libfakeroot libfftw3-bin libfftw3-dev libfftw3-long3 libfftw3-quad3 libfile-dirlist-perl
  libfile-homedir-perl libfile-stripnondeterminism-perl libfile-touch-perl libfile-which-perl libfreexl1 libftdi-dev libftdi1 libftdi1-dev libfyba0t64 libgav1-2 libgcc-15-dev libgcc-16-dev libgdal38 libgdcm-dev libgdcm3.0t64
  libgeos-c1t64 libgeos3.14.1 libgeotiff5 libgfortran-16-dev libgfortran5 libgl-dev libgl2ps1.4 libglu1-mesa libglu1-mesa-dev libglx-dev libgmock-dev libgmp-dev libgmpxx4ldbl libgnutls-dane0t64 libgnutls-openssl27t64 libgnutls28-dev
  libgphoto2-dev libgps-dev libgps32 libgsl-dev libgsl28 libgslcblas0 libgssrpc4t64 libgtest-dev libhdf4-0 libhdf5-310 libhdf5-hl-310 libhdf5-openmpi-310 libhidapi-dev libhidapi-hidraw0 libhidapi-libusb0 libhsa-runtime64-1 libhsakmt1
  libhwloc-dev libhwloc-plugins libhwloc15 libibmad5 libibumad3 libibverbs-dev libicu-dev libidn2-dev libimath-dev libimport-into-perl libio-string-perl libjbig-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev libjs-jquery
  libjs-jquery-ui libjsoncpp-dev libjsoncpp26 libkadm5clnt-mit12 libkadm5srv-mit12 libkdb5-10t64 libkmlbase1t64 libkmldom1t64 libkmlengine1t64 libkrb5-dev liblapack3 liblcms2-dev libldap-dev libleptonica-dev libleptonica6 liblerc-dev
  liblimesuite-dev liblimesuite23.11-1 libltdl-dev liblz4-dev liblzma-dev libmd-dev libminizip1t64 libmodule-runtime-perl libmoo-perl libmunge2 libmuparser2v5 libnetcdf22 libnghttp2-dev libnl-3-dev libnl-route-3-dev libnorm-dev
  libnova-0.16-0t64 libnova-dev libnova-dev-bin libnspr4-dev libnss3-dev libnuma-dev libodbc2 libodbcinst2 libogg-dev libopenblas0 libopenblas0-pthread libopencv-calib3d-dev libopencv-calib3d410 libopencv-contrib-dev
  libopencv-contrib410 libopencv-core-dev libopencv-core410 libopencv-dev libopencv-dnn-dev libopencv-dnn410 libopencv-features2d-dev libopencv-features2d410 libopencv-flann-dev libopencv-flann410 libopencv-highgui-dev
  libopencv-highgui410 libopencv-imgcodecs-dev libopencv-imgcodecs410 libopencv-imgproc-dev libopencv-imgproc410 libopencv-ml-dev libopencv-ml410 libopencv-objdetect-dev libopencv-objdetect410 libopencv-photo-dev libopencv-photo410
  libopencv-shape-dev libopencv-shape410 libopencv-stitching-dev libopencv-stitching410 libopencv-superres-dev libopencv-superres410 libopencv-video-dev libopencv-video410 libopencv-videoio-dev libopencv-videoio410
  libopencv-videostab-dev libopencv-videostab410 libopencv-viz-dev libopencv-viz410 libopenexr-dev libopengl-dev libopengl0 libopenmpi-dev libopenmpi40 libp11-kit-dev libparams-classify-perl libpgm-dev libpmix2t64 libpng-dev libproj25
  libprrte-bin libprrte-dev libprrte3 libpsl-dev libpsm2-2 libpugixml1v5 libpython3-dev libpython3.14-dev libqhull-r8.0 libqt5opengl5t64 libqt5test5t64 libraw-dev libraw1394-dev librdmacm1t64 librhash1 librole-tiny-perl librtlsdr-dev
  librtlsdr0 librtmp-dev librttopo1 libsdl2-2.0-0 libsdl2-classic libsharpyuv-dev libsocket++1 libsodium-dev libspatialite8t64 libssh2-1-dev libssl-dev libstdc++-15-dev libsub-quote-perl libsuperlu7 libswresample-dev libswscale-dev
  libsystemd-dev libsz2 libtasn1-6-dev libtbb-dev libtbb12 libtbbbind-2-5 libtbbmalloc2 libtesseract-dev libtesseract5 libtheora-dev libtiff-dev libtiffxx6 libtool libucc1 libucx0 libudev-dev libunbound8 liburiparser1 libusb-0.1-4
  libusb-1.0-0-dev libusb-dev libv4l-dev libv4l2rds0t64 libvtk9.5 libwebp-dev libwxbase3.2-1t64 libwxgtk-gl3.2-1t64 libwxgtk3.2-1t64 libwxgtk3.2-dev libx11-dev libxau-dev libxcb1-dev libxdmcp-dev libxerces-c3.2t64 libxisf-dev libxisf0
  libxml2-dev libxxhash-dev libyaml-cpp0.8 libyaml-libyaml-perl libyuv0 libze1 libzfp1t64 libzmq3-dev libzstd-dev lto-disabled-list m4 make mpi-default-bin mpi-default-dev nettle-dev ninja-build nlohmann-json3-dev
  openjdk-25-jre-headless openmpi-bin openmpi-common patchutils po-debconf proj-data python3-dev python3.14-dev unixodbc-common uuid-dev wdiff wx-common wx3.2-headers wx3.2-i18n x11proto-dev xorg-sgml-doctools xtrans-dev zlib1g-dev
アップグレード: 0 個、新規インストール: 480 個、削除: 0 個、保留: 5 個。
693 MB のアーカイブを取得する必要があります。
この操作後に追加で 2,848 MB のディスク容量が消費されます。</code></pre>



<p class="wp-block-paragraph">Ubuntu 26.04、CUDA環境整備後</p>



<pre class="wp-block-code"><code>以下の追加パッケージがインストールされます: 
  autopoint ca-certificates-java debugedit dh-autoreconf dh-strip-nondeterminism dwz googletest intltool-debian java-common libacl1-dev libarchive-dev libarchive-zip-perl libattr1-dev libavdevice62 libavfilter-dev
  libb-hooks-op-check-perl libboost-atomic-dev libboost-atomic1.90-dev libboost-atomic1.90.0 libboost-charconv1.90-dev libboost-charconv1.90.0 libboost-chrono-dev libboost-chrono1.90-dev libboost-chrono1.90.0
  libboost-container-dev libboost-container1.90-dev libboost-container1.90.0 libboost-context-dev libboost-context1.90-dev libboost-context1.90.0 libboost-coroutine-dev libboost-coroutine1.90-dev libboost-coroutine1.90.0
  libboost-date-time-dev libboost-date-time1.90-dev libboost-date-time1.90.0 libboost-dev libboost-exception-dev libboost-exception1.90-dev libboost-fiber-dev libboost-fiber1.90-dev libboost-fiber1.90.0
  libboost-filesystem-dev libboost-filesystem1.90-dev libboost-filesystem1.90.0 libboost-graph-dev libboost-graph-parallel-dev libboost-graph-parallel1.90-dev libboost-graph-parallel1.90.0 libboost-graph1.90-dev
  libboost-graph1.90.0 libboost-iostreams-dev libboost-iostreams1.90-dev libboost-iostreams1.90.0 libboost-json-dev libboost-json1.90-dev libboost-json1.90.0 libboost-locale-dev libboost-locale1.90-dev
  libboost-locale1.90.0 libboost-log-dev libboost-log1.90-dev libboost-log1.90.0 libboost-math-dev libboost-math1.90-dev libboost-math1.90.0 libboost-mpi-dev libboost-mpi-python-dev libboost-mpi-python1.90-dev
  libboost-mpi-python1.90.0 libboost-mpi1.90-dev libboost-mpi1.90.0 libboost-nowide-dev libboost-nowide1.90-dev libboost-nowide1.90.0 libboost-numpy-dev libboost-numpy1.90-dev libboost-numpy1.90.0 libboost-process-dev
  libboost-process1.90-dev libboost-process1.90.0 libboost-program-options-dev libboost-program-options1.90-dev libboost-program-options1.90.0 libboost-python-dev libboost-python1.90-dev libboost-python1.90.0
  libboost-random-dev libboost-random1.90-dev libboost-random1.90.0 libboost-regex1.90-dev libboost-regex1.90.0 libboost-serialization-dev libboost-serialization1.90-dev libboost-serialization1.90.0
  libboost-stacktrace-dev libboost-stacktrace1.90-dev libboost-stacktrace1.90.0 libboost-test-dev libboost-test1.90-dev libboost-test1.90.0 libboost-thread-dev libboost-thread1.90-dev libboost-thread1.90.0
  libboost-timer-dev libboost-timer1.90-dev libboost-timer1.90.0 libboost-tools-dev libboost-type-erasure-dev libboost-type-erasure1.90-dev libboost-type-erasure1.90.0 libboost-url-dev libboost-url1.90-dev
  libboost-url1.90.0 libboost-wave-dev libboost-wave1.90-dev libboost-wave1.90.0 libboost1.90-dev libboost1.90-tools-dev libbsd-dev libclass-method-modifiers-perl libclass-xsaccessor-perl libconfig-inifiles-perl libczmq4
  libdebhelper-perl libdevel-callchecker-perl libdynaloader-functions-perl libev4t64 libevent-dev libevent-extra-2.1-7t64 libevent-openssl-2.1-7t64 libext2fs-dev libfile-dirlist-perl libfile-homedir-perl
  libfile-stripnondeterminism-perl libfile-touch-perl libfile-which-perl libftdi1 libglu1-mesa libglu1-mesa-dev libgps32 libhidapi-hidraw0 libhidapi-libusb0 libhwloc-dev libibverbs-dev libimport-into-perl
  libio-string-perl libjack-jackd2-0 libjs-jquery libjs-jquery-ui libleptonica-dev liblimesuite23.11-1 libmd-dev libmodule-runtime-perl libmoo-perl libnl-3-dev libnl-route-3-dev libnorm-dev libnova-0.16-0t64
  libnova-dev-bin libnspr4-dev libnss3-dev libnuma-dev libogg-dev libopenal-data libopenal1 libopenmpi-dev libparams-classify-perl libpgm-dev libprrte-bin libprrte-dev libprrte3 libpython3-dev libpython3.14-dev
  librole-tiny-perl librtlsdr0 libsodium-dev libsub-quote-perl libusb-0.1-4 libv4l2rds0t64 libwxbase3.2-1t64 libwxgtk-gl3.2-1t64 libwxgtk3.2-1t64 libyaml-libyaml-perl mpi-default-bin mpi-default-dev
  openjdk-25-jre-headless openmpi-bin openmpi-common patchutils po-debconf python3-dev python3.14-dev wdiff wx3.2-headers
提案パッケージ:
  dh-make default-jre adequate at autopkgtest bls-standalone check-all-the-things diffoscope disorderfs docker.io dose-extra duck elpa-devscripts faketime gnuplot how-can-i-help libdbd-pg-perl libgitlab-api-v4-perl
  libterm-size-perl mmdebstrap mutt piuparts postgresql-client pristine-lfs python3-debianbts python3-pycurl quilt ratt reprotest svn-buildpackage w3m debian-keyring debian-tag2upload-keyring git-debpush
  libmetacpan-client-perl libsoap-lite-perl pristine-tar gettext-doc libasprintf-dev libgettextpo-dev gnulib-l10n libboost-doc libboost1.90-doc libboost-contract1.90-dev libmpfrc++-dev libntl-dev xsltproc doxygen
  docbook-xsl default-jdk fop libeigen3-doc doc-base gpsd jackd2 libjs-jquery-ui-docs liblimesuite-doc libnorm-doc libportaudio2 openmpi-doc libscalar-number-perl libxstring-perl wx3.2-doc fonts-dejavu-extra
  fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic libmail-box-perl wdiff-doc
推奨パッケージ:
  dctrl-tools dput | dupload libdistro-info-perl libjson-perl libstring-shellquote-perl licensecheck lintian lzip python3-magic python3-unidiff libarchive-cpio-perl libftdi1-doc javascript-common limesuite-udev
  libnamespace-clean-perl libcoarrays-openmpi-dev libpmix-dev libusb-1.0-doc cppzmq-dev libmail-sendmail-perl
以下のパッケージが新たにインストールされます:
  apt-transport-https autoconf-archive autopoint ca-certificates-java cdbs debhelper debugedit default-jre-headless devscripts dh-autoreconf dh-strip-nondeterminism dwz equivs fxload gettext googletest intltool-debian
  java-common libacl1-dev libarchive-dev libarchive-zip-perl libattr1-dev libavdevice-dev libavdevice62 libavfilter-dev libb-hooks-op-check-perl libboost-all-dev libboost-atomic-dev libboost-atomic1.90-dev
  libboost-atomic1.90.0 libboost-charconv1.90-dev libboost-charconv1.90.0 libboost-chrono-dev libboost-chrono1.90-dev libboost-chrono1.90.0 libboost-container-dev libboost-container1.90-dev libboost-container1.90.0
  libboost-context-dev libboost-context1.90-dev libboost-context1.90.0 libboost-coroutine-dev libboost-coroutine1.90-dev libboost-coroutine1.90.0 libboost-date-time-dev libboost-date-time1.90-dev libboost-date-time1.90.0
  libboost-dev libboost-exception-dev libboost-exception1.90-dev libboost-fiber-dev libboost-fiber1.90-dev libboost-fiber1.90.0 libboost-filesystem-dev libboost-filesystem1.90-dev libboost-filesystem1.90.0
  libboost-graph-dev libboost-graph-parallel-dev libboost-graph-parallel1.90-dev libboost-graph-parallel1.90.0 libboost-graph1.90-dev libboost-graph1.90.0 libboost-iostreams-dev libboost-iostreams1.90-dev
  libboost-iostreams1.90.0 libboost-json-dev libboost-json1.90-dev libboost-json1.90.0 libboost-locale-dev libboost-locale1.90-dev libboost-locale1.90.0 libboost-log-dev libboost-log1.90-dev libboost-log1.90.0
  libboost-math-dev libboost-math1.90-dev libboost-math1.90.0 libboost-mpi-dev libboost-mpi-python-dev libboost-mpi-python1.90-dev libboost-mpi-python1.90.0 libboost-mpi1.90-dev libboost-mpi1.90.0 libboost-nowide-dev
  libboost-nowide1.90-dev libboost-nowide1.90.0 libboost-numpy-dev libboost-numpy1.90-dev libboost-numpy1.90.0 libboost-process-dev libboost-process1.90-dev libboost-process1.90.0 libboost-program-options-dev
  libboost-program-options1.90-dev libboost-program-options1.90.0 libboost-python-dev libboost-python1.90-dev libboost-python1.90.0 libboost-random-dev libboost-random1.90-dev libboost-random1.90.0 libboost-regex-dev
  libboost-regex1.90-dev libboost-regex1.90.0 libboost-serialization-dev libboost-serialization1.90-dev libboost-serialization1.90.0 libboost-stacktrace-dev libboost-stacktrace1.90-dev libboost-stacktrace1.90.0
  libboost-test-dev libboost-test1.90-dev libboost-test1.90.0 libboost-thread-dev libboost-thread1.90-dev libboost-thread1.90.0 libboost-timer-dev libboost-timer1.90-dev libboost-timer1.90.0 libboost-tools-dev
  libboost-type-erasure-dev libboost-type-erasure1.90-dev libboost-type-erasure1.90.0 libboost-url-dev libboost-url1.90-dev libboost-url1.90.0 libboost-wave-dev libboost-wave1.90-dev libboost-wave1.90.0 libboost1.90-dev
  libboost1.90-tools-dev libbsd-dev libclass-method-modifiers-perl libclass-xsaccessor-perl libconfig-inifiles-perl libczmq-dev libczmq4 libdebhelper-perl libdevel-callchecker-perl libdynaloader-functions-perl
  libeigen3-dev libev-dev libev4t64 libevent-dev libevent-extra-2.1-7t64 libevent-openssl-2.1-7t64 libext2fs-dev libfile-dirlist-perl libfile-homedir-perl libfile-stripnondeterminism-perl libfile-touch-perl
  libfile-which-perl libftdi-dev libftdi1 libftdi1-dev libglu1-mesa libglu1-mesa-dev libgmock-dev libgps-dev libgps32 libgtest-dev libhidapi-dev libhidapi-hidraw0 libhidapi-libusb0 libhwloc-dev libibverbs-dev
  libimport-into-perl libio-string-perl libjack-jackd2-0 libjs-jquery libjs-jquery-ui libjsoncpp-dev libleptonica-dev liblimesuite-dev liblimesuite23.11-1 libmd-dev libmodule-runtime-perl libmoo-perl libnl-3-dev
  libnl-route-3-dev libnorm-dev libnova-0.16-0t64 libnova-dev libnova-dev-bin libnspr4-dev libnss3-dev libnuma-dev libogg-dev libopenal-data libopenal1 libopenmpi-dev libparams-classify-perl libpgm-dev libprrte-bin
  libprrte-dev libprrte3 libpython3-dev libpython3.14-dev librole-tiny-perl librtlsdr-dev librtlsdr0 libsodium-dev libsub-quote-perl libtesseract-dev libtheora-dev libudev-dev libusb-0.1-4 libusb-1.0-0-dev libusb-dev
  libv4l-dev libv4l2rds0t64 libwxbase3.2-1t64 libwxgtk-gl3.2-1t64 libwxgtk3.2-1t64 libwxgtk3.2-dev libyaml-libyaml-perl libzmq3-dev mpi-default-bin mpi-default-dev nlohmann-json3-dev openjdk-25-jre-headless openmpi-bin
  openmpi-common patchutils po-debconf python3-dev python3.14-dev wdiff wx-common wx3.2-headers wx3.2-i18n
アップグレード: 0 個、新規インストール: 231 個、削除: 0 個、保留: 8 個。
138 MB のアーカイブを取得する必要があります。
この操作後に追加で 788 MB のディスク容量が消費されます。</code></pre>



<h2 class="wp-block-heading">build-and-install-pins-x64.sh エラーを取り除く。。。</h2>



<p class="wp-block-paragraph">この後、エラーで何度も止まります。<br>この段階で、方針を決めます。</p>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<p class="wp-block-paragraph">既存の build-and-install-pins-x64.sh を最大限そのまま使う<br>問題が確認された部分だけ修正する<br>手作業で大量の依存ソフトを個別導入しない<br>システムに変更を加えない<br><br>PINS専用のものは、可能なら専用ディレクトリへ分離する<br>ビルドして初めて分かる問題は、事前に推測して大量修正しない</p>



<p class="wp-block-paragraph">この原則で行います。先は長そうです。</p>
</div>



<h3 class="wp-block-heading">opencv-4.11.0.zip エラー</h3>



<p class="wp-block-paragraph">何度も、OpenCVビルドでつまずくので、後では、個別にビルドして、インストールしています。</p>



<p class="wp-block-paragraph">artifacts/src/opencv/opencv-4.11.0.zip</p>



<pre class="wp-block-code"><code>CMake Error at /home/USERNAME/pins/artifacts/src/opencv/opencv-4.11.0/cmake/OpenCVGenPkgconfig.cmake:113 (cmake_minimum_required):
  Compatibility with CMake &lt; 3.5 has been removed from CMake.

  Update the VERSION argument &lt;min&gt; value.  Or, use the &lt;min&gt;...&lt;max&gt; syntax
  to tell CMake that the project requires at least &lt;min&gt; but has been updated
  to work with policies introduced by &lt;max&gt; or earlier.

  Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway.</code></pre>



<p class="wp-block-paragraph">OpenCV 4.11.0のビルド処理が、Ubuntu 26.04に入っているCMakeと互換性がないようです。<br>-DCMAKE_POLICY_VERSION_MINIMUM=3.5　オプションを提案してます。</p>



<p class="wp-block-paragraph">build-and-install-pins-x64.sh の opencv、cmake を見てみます。</p>



<pre class="wp-block-code"><code>### Ubuntu 26.04のCmake
cmake --version
cmake version 4.2.3</code></pre>



<pre class="wp-block-code"><code>grep -n -C 5 "opencv\|cmake" build-and-install-pins-x64.sh</code></pre>



<p class="wp-block-paragraph">これは自分が読み込めない。。。</p>



<pre class="wp-block-code"><code>### PINSスクリプトではOpenCV 4.11.0をソースからビルドしています。

local cmake_args=(
  -DCMAKE_BUILD_TYPE=Release
  -DCMAKE_INSTALL_PREFIX="$OPENCV_INSTALL_PREFIX"
  -DOPENCV_GENERATE_PKGCONFIG=ON
)</code></pre>



<p class="wp-block-paragraph">Ubuntu 26.04のCMakeとOpenCV 4.11.0の組み合わせによる問題らしい。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Compatibility with versions of CMake older than 3.5 has been removed.<br>CMake 4.0 Release Notes<br><a rel="noopener" target="_blank" href="https://cmake.org/cmake/help/v4.2/release/4.0.html?utm_source=chatgpt.com#deprecated-and-removed-features">https://cmake.org/cmake/help/v4.2/release/4.0.html?utm_source=chatgpt.com#deprecated-and-removed-features</a></p>
</blockquote>



<p class="wp-block-paragraph">先の、-DCMAKE_POLICY_VERSION_MINIMUM=3.5 についても説明があります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">CMAKE_POLICY_VERSION_MINIMUM<br>CMake を使用しているユーザーは、キャッシュ内でこの変数を設定（例：-DCMAKE_POLICY_VERSION_MINIMUM=3.5）することで、そのポリシーバージョン以上に更新されていないプロジェクトの構成を試みることができます。<br><a rel="noopener" target="_blank" href="https://cmake.org/cmake/help/latest/variable/CMAKE_POLICY_VERSION_MINIMUM.html?utm_source=chatgpt.com">https://cmake.org/cmake/help/latest/variable/CMAKE_POLICY_VERSION_MINIMUM.html?utm_source=chatgpt.com</a></p>
</blockquote>



<p class="wp-block-paragraph">ん〜〜。。。面倒だ。提案されたオプションを試します。</p>



<p class="wp-block-paragraph">build-and-install-pins-x64.sh のOpenCVビルド部分に、-DCMAKE_POLICY_VERSION_MINIMUM=3.5 を追加します。</p>



<p class="wp-block-paragraph">~/pins/build-and-install-pins-x64.sh の 581行付近が、OpenCVビルド箇所です。</p>



<pre class="wp-block-code"><code>  local cmake_args=(
    -DCMAKE_BUILD_TYPE=Release
    -DCMAKE_INSTALL_PREFIX="$OPENCV_INSTALL_PREFIX"
    -DOPENCV_GENERATE_PKGCONFIG=ON
  )</code></pre>



<p class="wp-block-paragraph">-DCMAKE_POLICY_VERSION_MINIMUM=3.5 を追加します。</p>



<pre class="wp-block-code"><code>local cmake_args=(
  -DCMAKE_BUILD_TYPE=Release
  -DCMAKE_INSTALL_PREFIX="$OPENCV_INSTALL_PREFIX"
  -DOPENCV_GENERATE_PKGCONFIG=ON
  -DCMAKE_POLICY_VERSION_MINIMUM=3.5
)</code></pre>



<p class="wp-block-paragraph">変更部分を確認します。</p>



<pre class="wp-block-code"><code>grep -n -A5 "local cmake_args=" build-and-install-pins-x64.sh
581:  local cmake_args=(
582-    -DCMAKE_BUILD_TYPE=Release
583-    -DCMAKE_INSTALL_PREFIX="$OPENCV_INSTALL_PREFIX"
584-    -DOPENCV_GENERATE_PKGCONFIG=ON
585-    -DCMAKE_POLICY_VERSION_MINIMUM=3.5
586-  )</code></pre>



<pre class="wp-block-code"><code>### スクリプトを動かす
./build-and-install-pins-x64.sh</code></pre>



<p class="wp-block-paragraph">同じ箇所で止まった。。。</p>



<pre class="wp-block-code"><code>CMake Error at /home/USERNAME/pins/artifacts/src/opencv/opencv-4.11.0/cmake/OpenCVGenPkgconfig.cmake:113 (cmake_minimum_required):
  Compatibility with CMake &lt; 3.5 has been removed from CMake.

  Update the VERSION argument &lt;min&gt; value.  Or, use the &lt;min&gt;...&lt;max&gt; syntax
  to tell CMake that the project requires at least &lt;min&gt; but has been updated
  to work with policies introduced by &lt;max&gt; or earlier.

  Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway.</code></pre>



<p class="wp-block-paragraph">PINSが要求しているOpenCV 4.11.0を維持し、CMake 4との非互換部分だけ修正します。</p>



<pre class="wp-block-code"><code>sed -n '105,118p' artifacts/src/opencv/opencv-4.11.0/cmake/OpenCVGenPkgconfig.cmake

if((UNIX AND NOT ANDROID) OR MINGW)
  install(FILES ${CMAKE_BINARY_DIR}/unix-install/${OPENCV_PC_FILE_NAME} DESTINATION ${OPENCV_LIB_INSTALL_PATH}/pkgconfig COMPONENT dev)
endif()

# =============================================================================
else() # DEFINED CMAKE_HELPER_SCRIPT

cmake_minimum_required(VERSION 2.8.12.2)
cmake_policy(SET CMP0012 NEW)
include("${CMAKE_HELPER_SCRIPT}")
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVUtils.cmake")

fix_prefix(_modules 1)</code></pre>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">現在：<br>cmake_minimum_required(VERSION 2.8.12.2)<br><br>変更：<br>cmake_minimum_required(VERSION 3.5)</p>
</div>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph"><br>CMAKE_POLICY_VERSION_MINIMUM=3.5 をCMake configureに指定<br>OpenCVGenPkgconfig.cmake の古い 2.8.12.2 を 3.5 に修正</p>
</div>



<p class="wp-block-paragraph">サイトを漁ると次がありました。113行で止まるのは</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">cmake-4.patch<br><a rel="noopener" target="_blank" href="https://sources.debian.org/src/opencv/4.10.0%2Bdfsg-8/debian/patches/cmake-4.patch?utm_source=chatgpt.com">https://sources.debian.org/src/opencv/4.10.0%2Bdfsg-8/debian/patches/cmake-4.patch?utm_source=chatgpt.com</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">こちらでも論じられています<br><a rel="noopener" target="_blank" href="https://github.com/opencv/opencv/issues/27122">https://github.com/opencv/opencv/issues/27122</a></p>
</blockquote>



<p class="wp-block-paragraph">~/pins/build-and-install-pins-x64.sh　を変更します。<br>build_and_install_opencv_required_version( を変更します。</p>



<pre class="wp-block-code"><code>### 変更前
wget -O "$opencv_zip" "https://github.com/opencv/opencv/archive/refs/tags/${OPENCV_REQUIRED_VERSION}.zip"
unzip -q "$opencv_zip" -d "$opencv_src_root"

local cmake_args=(
  -DCMAKE_BUILD_TYPE=Release
  -DCMAKE_INSTALL_PREFIX="$OPENCV_INSTALL_PREFIX"
  -DOPENCV_GENERATE_PKGCONFIG=ON
  -DCMAKE_POLICY_VERSION_MINIMUM=3.5
)</code></pre>



<pre class="wp-block-code"><code>### 変更後
wget -O "$opencv_zip" "https://github.com/opencv/opencv/archive/refs/tags/${OPENCV_REQUIRED_VERSION}.zip"
unzip -q "$opencv_zip" -d "$opencv_src_root"

sed -i \
  's/cmake_minimum_required(VERSION 2.8.12.2)/cmake_minimum_required(VERSION 3.5)/' \
  "$opencv_src_dir/cmake/OpenCVGenPkgconfig.cmake"

local cmake_args=(
  -DCMAKE_BUILD_TYPE=Release
  -DCMAKE_INSTALL_PREFIX="$OPENCV_INSTALL_PREFIX"
  -DOPENCV_GENERATE_PKGCONFIG=ON
  -DCMAKE_POLICY_VERSION_MINIMUM=3.5</code></pre>



<p class="wp-block-paragraph">挟み込んだ、sed -i 部分は、<br>OpenCVを展開した直後に、OpenCVGenPkgconfig.cmake の古いCMakeバージョン指定を書き換えるコマンドです。<br>sed：テキストファイルの内容を検索・置換するLinuxのコマンド、-i は ファイルを直接書き換える。<br><code>s/.../.../</code>　は、s/変更前/変更後/<br>変更前：cmake_minimum_required(VERSION 2.8.12.2)<br>変更後：cmake_minimum_required(VERSION 3.5)<br>&#8220;$&#8221;　対象ファイルを示す。</p>



<p class="wp-block-paragraph">構文チェックをします。スクリプトを実行します。</p>



<pre class="wp-block-code"><code>bash -n ~/pins/build-and-install-pins-x64.sh
./build-and-install-pins-x64.sh</code></pre>



<h3 class="wp-block-heading">FFmpg互換性</h3>



<p class="wp-block-paragraph">同じ箇所で止まります。</p>



<p class="wp-block-paragraph">Ubuntu 26.04 のFFmpeg開発ライブラリ（FFmpeg 8系）<br>OpenCV 4.11.0 のFFmpeg連携コード</p>



<p class="wp-block-paragraph">FFmpegのAPI互換性問題</p>



<pre class="wp-block-code"><code>&#91; 24%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/concat_layer.cpp.o
&#91; 24%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/const_layer.cpp.o
&#91; 24%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/convolution_layer.cpp.o
&#91; 24%] Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_obsensor_capture.cpp.o
&#91; 24%] Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_obsensor/obsensor_uvc_stream_channel.cpp.o
In file included from /home/USERNAME/pins/artifacts/src/opencv/opencv-4.11.0/modules/videoio/src/cap_ffmpeg.cpp:50:
/home/USERNAME/pins/artifacts/src/opencv/opencv-4.11.0/modules/videoio/src/cap_ffmpeg_impl.hpp: In member function ‘void CvCapture_FFMPEG::close()’:
/home/USERNAME/pins/artifacts/src/opencv/opencv-4.11.0/modules/videoio/src/cap_ffmpeg_impl.hpp:688:9: error: ‘avcodec_close’ was not declared in this scope; did you mean ‘avio_close’?
  688 |         avcodec_close( context );
      |         ^~~~~~~~~~~~~
      |         avio_close
&#91; 24%] Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_obsensor/obsensor_stream_channel_v4l2.cpp.o
/home/USERNAME/pins/artifacts/src/opencv/opencv-4.11.0/modules/videoio/src/cap_ffmpeg_impl.hpp: In member function ‘void CvCapture_FFMPEG::get_rotation_angle()’:
/home/USERNAME/pins/artifacts/src/opencv/opencv-4.11.0/modules/videoio/src/cap_ffmpeg_impl.hpp:2008:12: error: ‘av_stream_get_side_data’ was not declared in this scope; did you mean ‘av_frame_get_side_data’?
 2008 |     data = av_stream_get_side_data(video_st, AV_PKT_DATA_DISPLAYMATRIX, NULL);
      |            ^~~~~~~~~~~~~~~~~~~~~~~
      |            av_frame_get_side_data
&#91; 24%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/correlation_layer.cpp.o
gmake&#91;2]: *** &#91;modules/videoio/CMakeFiles/opencv_videoio.dir/build.make:219: modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_ffmpeg.cpp.o] エラー 1
gmake&#91;2]: *** 未完了のジョブを待っています....
&#91; 24%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/cpu_kernels/conv_depthwise.cpp.o
&#91; 24%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/cpu_kernels/conv_winograd_f63.cpp.o
&#91; 24%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/cpu_kernels/conv_winograd_f63.dispatch.cpp.o
&#91; 24%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/cpu_kernels/convolution.cpp.o

&#91; 25%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/detection_output_layer.cpp.o
&#91; 25%] Built target opencv_photo
&#91; 25%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/einsum_layer.cpp.o

&#91; 25%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/flow_warp_layer.cpp.o
gmake&#91;1]: *** &#91;CMakeFiles/Makefile2:6891: modules/videoio/CMakeFiles/opencv_videoio.dir/all] エラー 2
gmake&#91;1]: *** 未完了のジョブを待っています....
&#91; 25%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/layers/fully_connected_layer.cpp.o
&#91; 29%] Linking CXX shared library ../../lib/libopencv_xphoto.so
&#91; 29%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/op_timvx.cpp.o
&#91; 29%] Built target opencv_xphoto
&#91; 29%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/op_vkcom.cpp.o
&#91; 29%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/src/op_webnn.cpp.o


&#91; 31%] Linking CXX shared library ../../lib/libopencv_dnn.so
&#91; 31%] Built target opencv_dnn
&#91; 31%] Linking CXX shared library ../../lib/libopencv_features2d.so
&#91; 31%] Built target opencv_features2d
gmake: *** &#91;Makefile:166: all] エラー 2
</code></pre>



<p class="wp-block-paragraph">avcodec_close was not declared<br>av_stream_get_side_data was not declared</p>



<p class="wp-block-paragraph">avcodecは、FFmpegの一部なので、OpenCV 4.11.0 の FFmpeg 部分と、Ubuntu 26.04 側の FFmpeg APの不整合らしい。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">ffmpeg-8.0-compat-1.patch<br><a rel="noopener" target="_blank" href="https://sources.debian.org/src/opencv/4.10.0%2Bdfsg-8/debian/patches/ffmpeg-8.0-compat-1.patch">https://sources.debian.org/src/opencv/4.10.0%2Bdfsg-8/debian/patches/ffmpeg-8.0-compat-1.patch</a><br><br>Adding ffmpeg-8.0 support<br><a rel="noopener" target="_blank" href="https://github.com/opencv/opencv/issues/27688?utm_source=chatgpt.com">https://github.com/opencv/opencv/issues/27688?utm_source=chatgpt.com</a></p>
</blockquote>



<p class="wp-block-paragraph">OpenCVのビルドに必要なFFmpeg開発ライブラリを確認します。</p>



<pre class="wp-block-code"><code>dpkg -l | grep -E 'libav(codec|format|util|device|filter|swscale|swresample)'
ii  libavcodec-dev:amd64                            7:8.0.1-3ubuntu2                           amd64        FFmpeg library with de/encoders for audio/video codecs - development files
ii  libavcodec62:amd64                              7:8.0.1-3ubuntu2                           amd64        FFmpeg library with de/encoders for audio/video codecs - runtime files
ii  libavdevice-dev:amd64                           7:8.0.1-3ubuntu2                           amd64        FFmpeg library for handling input and output devices - development files
ii  libavdevice62:amd64                             7:8.0.1-3ubuntu2                           amd64        FFmpeg library for handling input and output devices - runtime files
ii  libavfilter-dev:amd64                           7:8.0.1-3ubuntu2                           amd64        FFmpeg library containing media filters - development files
ii  libavfilter11:amd64                             7:8.0.1-3ubuntu2                           amd64        FFmpeg library containing media filters - runtime files
ii  libavformat-dev:amd64                           7:8.0.1-3ubuntu2                           amd64        FFmpeg library with (de)muxers for multimedia containers - development files
ii  libavformat62:amd64                             7:8.0.1-3ubuntu2                           amd64        FFmpeg library with (de)muxers for multimedia containers - runtime files
ii  libavutil-dev:amd64                             7:8.0.1-3ubuntu2                           amd64        FFmpeg library with functions for simplifying programming - development files
ii  libavutil60:amd64                               7:8.0.1-3ubuntu2                           amd64        FFmpeg library with functions for simplifying programming - runtime files</code></pre>



<pre class="wp-block-code"><code>pkg-config --modversion libavcodec
62.11.100</code></pre>



<pre class="wp-block-code"><code>sed -n '660,710p' artifacts/src/opencv/opencv-4.11.0/modules/videoio/src/cap_ffmpeg_impl.hpp
    extraDataIdx = 1;
}


void CvCapture_FFMPEG::close()
{
    if( img_convert_ctx )
    {
        sws_freeContext(img_convert_ctx);
        img_convert_ctx = 0;
    }

    if( picture )
    {
#if LIBAVCODEC_BUILD &gt;= (LIBAVCODEC_VERSION_MICRO &gt;= 100 \
    ? CALC_FFMPEG_VERSION(55, 45, 101) : CALC_FFMPEG_VERSION(55, 28, 1))
        av_frame_free(&amp;picture);
#elif LIBAVCODEC_BUILD &gt;= (LIBAVCODEC_VERSION_MICRO &gt;= 100 \
    ? CALC_FFMPEG_VERSION(54, 59, 100) : CALC_FFMPEG_VERSION(54, 28, 0))
        avcodec_free_frame(&amp;picture);
#else
        av_free(picture);
#endif
    }

    if( video_st )
    {
#ifdef CV_FFMPEG_CODECPAR
        avcodec_close( context );
#endif
        video_st = NULL;
    }

    if (context)
    {
#ifdef CV_FFMPEG_CODECPAR
        avcodec_free_context(&amp;context);
#endif
    }

    if( ic )
    {
        avformat_close_input(&amp;ic);
        ic = NULL;
    }

#if USE_AV_FRAME_GET_BUFFER
    av_frame_unref(&amp;rgb_picture);
#else
    if( rgb_picture.data&#91;0] )
    {</code></pre>



<pre class="wp-block-code"><code>sed -n '1990,2020p' artifacts/src/opencv/opencv-4.11.0/modules/videoio/src/cap_ffmpeg_impl.hpp

int64_t CvCapture_FFMPEG::dts_to_frame_number(int64_t dts)
{
    double sec = dts_to_sec(dts);
    return (int64_t)(get_fps() * sec + 0.5);
}

double CvCapture_FFMPEG::dts_to_sec(int64_t dts) const
{
    return (double)(dts - ic-&gt;streams&#91;video_stream]-&gt;start_time) *
        r2d(ic-&gt;streams&#91;video_stream]-&gt;time_base);
}

void CvCapture_FFMPEG::get_rotation_angle()
{
    rotation_angle = 0;
#if LIBAVFORMAT_BUILD &gt;= CALC_FFMPEG_VERSION(57, 68, 100)
    const uint8_t *data = 0;
    data = av_stream_get_side_data(video_st, AV_PKT_DATA_DISPLAYMATRIX, NULL);
    if (data)
    {
        rotation_angle = -cvRound(av_display_rotation_get((const int32_t*)data));
        if (rotation_angle &lt; 0)
            rotation_angle += 360;
    }
#elif LIBAVUTIL_BUILD &gt;= CALC_FFMPEG_VERSION(52, 94, 100)
    AVDictionaryEntry *rotate_tag = av_dict_get(video_st-&gt;metadata, "rotate", NULL, 0);
    if (rotate_tag != NULL)
        rotation_angle = atoi(rotate_tag-&gt;value);
#endif
}</code></pre>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">エラーは：error: ‘avcodec_close’ was not declared in this scope<br>avcodec_close(context); ← 古いAPI<br>↓<br>avcodec_free_context(&amp;context); ← 現在使われている解放処理<br><br>エラーは：error: ‘av_stream_get_side_data’ was not declared in this scope<br>AV_PKT_DATA_DISPLAYMATRIXを指定しています。これは動画の回転情報を取得</p>
</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">ffmpeg-8.0-compat-1.patch<br><a rel="noopener" target="_blank" href="https://sources.debian.org/src/opencv/4.10.0%2Bdfsg-8/debian/patches/ffmpeg-8.0-compat-1.patch">https://sources.debian.org/src/opencv/4.10.0%2Bdfsg-8/debian/patches/ffmpeg-8.0-compat-1.patch</a><br><br>Adding ffmpeg-8.0 support<br><a rel="noopener" target="_blank" href="https://github.com/opencv/opencv/issues/27688?utm_source=chatgpt.com">https://github.com/opencv/opencv/issues/27688?utm_source=chatgpt.com</a></p>
</blockquote>



<p class="wp-block-paragraph">ffmpeg-8.0-compat-1.patchの修正では、<br>#if (LIBAVCODEC_BUILD &lt; CALC_FFMPEG_VERSION(62, 11, 100))<br>　avcodec_close( context );<br># endif<br>として、FFmpeg 8未満の場合だけ実行します<br><br>ffmpeg-8.0-compat-1.patchのOpenCV修正では、FFmpeg 8の場合は以下の修正らしいです。</p>



<pre class="wp-block-code"><code>AVPacketSideData* sd = video_st-&gt;codecpar-&gt;coded_side_data;
int nb_sd = video_st-&gt;codecpar-&gt;nb_coded_side_data;

if (sd &amp;&amp; nb_sd &gt; 0)
{
    const AVPacketSideData* mtx =
        av_packet_side_data_get(
            sd,
            nb_sd,
            AV_PKT_DATA_DISPLAYMATRIX);

    data = mtx-&gt;data;
}</code></pre>



<h2 class="wp-block-heading">opencv-4.11.0は別にビルド</h2>



<p class="wp-block-paragraph">opencvビルドをbuild-and-install-pins-x64.shスクリプトで行うと、まだまだ、沢山のエラーが出そうなので方針を替えます。</p>



<p class="wp-block-paragraph">OpenCVをPINSのビルドとは分離してビルド、インストールし、PINSのスクリプトには「既にOpenCVが存在する」と指定します。</p>



<p class="wp-block-paragraph">OpenCV 4.11.0ビルド・インストール<br>/home/USERNAME/opencv-build/install/<br>├── include/<br>├── lib/<br>└── lib/cmake/opencv4/OpenCVConfig.cmake</p>



<p class="wp-block-paragraph"><br>build-and-install-pins-x64.shには、<br>「既に OpenCV 4.11.0 がある。それを使用する」と指定します。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">環境変数を用いて<br>OPENCV_INSTALL_PREFIX=&#8221;${OPENCV_INSTALL_PREFIX:-$HOME/opencv-build/install}&#8221;<br><br>OpenCV_DIR=&#8221;$OPENCV_INSTALL_PREFIX/lib/cmake/opencv4&#8243;<br>をPINSビルドで使わせます。</p>
</div>



<p class="wp-block-paragraph">opencvをビルドします。</p>



<pre class="wp-block-code"><code>cd ~
mkdir -p opencv-build
cd opencv-build</code></pre>



<pre class="wp-block-code"><code>### OpenCV 本体のダウンロード
wget -O opencv-4.11.0.zip https://github.com/opencv/opencv/archive/refs/tags/4.11.0.zip

### opencv_contrib（拡張モジュール）のダウンロード
wget -O opencv_contrib-4.11.0.zip https://github.com/opencv/opencv_contrib/archive/refs/tags/4.11.0.zip

### 展開
unzip -q opencv-4.11.0.zip
unzip -q opencv_contrib-4.11.0.zip</code></pre>



<p class="wp-block-paragraph">~/opencv-build のOpenCV 4.11.0にFFmpeg 8.0パッチを適用します。</p>



<p class="wp-block-paragraph">公式のFFmpeg 8.0互換パッチをそのまま適用します。</p>



<pre class="wp-block-code"><code>### パッチを取得します。

wget -O /tmp/ffmpeg-8.0-compat.patch \
  'https://sources.debian.org/data/main/o/opencv/4.10.0%2Bdfsg-8/debian/patches/ffmpeg-8.0-compat-1.patch'
‘/tmp/ffmpeg-8.0-compat.patch’ へ保存完了 &#91;1303/1303]</code></pre>



<p class="wp-block-paragraph">パッチの内容を確認します。</p>



<pre class="wp-block-code"><code>grep -nE 'avcodec_close|av_stream_get_side_data|av_packet_side_data_get' \
  /tmp/ffmpeg-8.0-compat.patch

199:&lt;/span&gt;&lt;span id="line11" class="codeline "&gt;+// avcodec_close removed in FFmpeg release 8.0
201:&lt;/span&gt;&lt;span id="line13" class="codeline "&gt;         avcodec_close( context );
210:&lt;/span&gt;&lt;span id="line22" class="codeline "&gt;+    // av_stream_get_side_data removed in FFmpeg release 8.0
212:&lt;/span&gt;&lt;span id="line24" class="codeline "&gt;     data = av_stream_get_side_data(video_st, AV_PKT_DATA_DISPLAYMATRIX, NULL);
218:&lt;/span&gt;&lt;span id="line30" class="codeline "&gt;+        const AVPacketSideData* mtx = av_packet_side_data_get(sd,  nb_sd, AV_PKT_DATA_DISPLAYMATRIX);
~/pins$ sed -n '185,225p' /tmp/ffmpeg-8.0-compat.patch
    &lt;td&gt;
      &lt;pre id="sourceslinenumbers"&gt;&lt;a id="L1" href="#L1"&gt;1&lt;/a&gt;&lt;br /&gt;&lt;a id="L2" href="#L2"&gt;2&lt;/a&gt;&lt;br /&gt;&lt;a id="L3" href="#L3"&gt;3&lt;/a&gt;&lt;br /&gt;&lt;a id="L4" href="#L4"&gt;4&lt;/a&gt;&lt;br /&gt;&lt;a id="L5" href="#L5"&gt;5&lt;/a&gt;&lt;br /&gt;&lt;a id="L6" href="#L6"&gt;6&lt;/a&gt;&lt;br /&gt;&lt;a id="L7" href="#L7"&gt;7&lt;/a&gt;&lt;br /&gt;&lt;a id="L8" href="#L8"&gt;8&lt;/a&gt;&lt;br /&gt;&lt;a id="L9" href="#L9"&gt;9&lt;/a&gt;&lt;br /&gt;&lt;a id="L10" href="#L10"&gt;10&lt;/a&gt;&lt;br /&gt;&lt;a id="L11" href="#L11"&gt;11&lt;/a&gt;&lt;br /&gt;&lt;a id="L12" href="#L12"&gt;12&lt;/a&gt;&lt;br /&gt;&lt;a id="L13" href="#L13"&gt;13&lt;/a&gt;&lt;br /&gt;&lt;a id="L14" href="#L14"&gt;14&lt;/a&gt;&lt;br /&gt;&lt;a id="L15" href="#L15"&gt;15&lt;/a&gt;&lt;br /&gt;&lt;a id="L16" href="#L16"&gt;16&lt;/a&gt;&lt;br /&gt;&lt;a id="L17" href="#L17"&gt;17&lt;/a&gt;&lt;br /&gt;&lt;a id="L18" href="#L18"&gt;18&lt;/a&gt;&lt;br /&gt;&lt;a id="L19" href="#L19"&gt;19&lt;/a&gt;&lt;br /&gt;&lt;a id="L20" href="#L20"&gt;20&lt;/a&gt;&lt;br /&gt;&lt;a id="L21" href="#L21"&gt;21&lt;/a&gt;&lt;br /&gt;&lt;a id="L22" href="#L22"&gt;22&lt;/a&gt;&lt;br /&gt;&lt;a id="L23" href="#L23"&gt;23&lt;/a&gt;&lt;br /&gt;&lt;a id="L24" href="#L24"&gt;24&lt;/a&gt;&lt;br /&gt;&lt;a id="L25" href="#L25"&gt;25&lt;/a&gt;&lt;br /&gt;&lt;a id="L26" href="#L26"&gt;26&lt;/a&gt;&lt;br /&gt;&lt;a id="L27" href="#L27"&gt;27&lt;/a&gt;&lt;br /&gt;&lt;a id="L28" href="#L28"&gt;28&lt;/a&gt;&lt;br /&gt;&lt;a id="L29" href="#L29"&gt;29&lt;/a&gt;&lt;br /&gt;&lt;a id="L30" href="#L30"&gt;30&lt;/a&gt;&lt;br /&gt;&lt;a id="L31" href="#L31"&gt;31&lt;/a&gt;&lt;br /&gt;&lt;a id="L32" href="#L32"&gt;32&lt;/a&gt;&lt;br /&gt;&lt;a id="L33" href="#L33"&gt;33&lt;/a&gt;&lt;br /&gt;&lt;a id="L34" href="#L34"&gt;34&lt;/a&gt;&lt;br /&gt;&lt;a id="L35" href="#L35"&gt;35&lt;/a&gt;&lt;br /&gt;&lt;a id="L36" href="#L36"&gt;36&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;
    &lt;/td&gt;
    &lt;td&gt;
      &lt;pre&gt;&lt;code id="sourcecode" class="diff"&gt;&lt;span id="line1" class="codeline "&gt;From: Alexander Smorkalov &amp;lt;alexander.smorkalov@opencv.ai&amp;gt;
&lt;/span&gt;&lt;span id="line2" class="codeline "&gt;Subject: FFmpeg 8.0 support 1/2
&lt;/span&gt;&lt;span id="line3" class="codeline "&gt;Origin: upstream, https://github.com/opencv/opencv/commit/90c444abd387ffa70b2e72a34922903a2f0f4f5a</code></pre>



<p class="wp-block-paragraph">パッチを適応します。</p>



<pre class="wp-block-code"><code>cd ~/opencv-build/opencv-4.11.0
patch --dry-run -p1 &lt; /tmp/ffmpeg-8.0-compat.patch

### 適応させます
patch -p1 &lt; /tmp/ffmpeg-8.0-compat.patch
patching file modules/videoio/src/cap_ffmpeg_impl.hpp
Hunk #1 succeeded at 685 (offset 5 lines).
Hunk #2 succeeded at 2008 (offset 66 lines).</code></pre>



<pre class="wp-block-code"><code>### 後続のパッチを取得します。
wget -O /tmp/ffmpeg-8.0-compat-2.patch \
  'https://sources.debian.org/data/main/o/opencv/4.10.0%2Bdfsg-8/debian/patches/ffmpeg-8.0-compat-2.patch'</code></pre>



<p class="wp-block-paragraph">パッチを確認します。</p>



<pre class="wp-block-code"><code>head -5 /tmp/ffmpeg-8.0-compat-2.patch
From: Dmitry Kurtaev &lt;dmitry.kurtaev@gmail.com&gt;
Subject: FFmpeg 8.0 support 2/2
Origin: upstream, https://github.com/opencv/opencv/commit/443d0ae63fad6dfd8c485d609203db16c8bd0ec3

--- a/modules/videoio/src/cap_ffmpeg_impl.hpp
</code></pre>



<pre class="wp-block-code"><code>grep -nE 'av_packet_side_data_get|mtx|NULL' \
  /tmp/ffmpeg-8.0-compat-2.patch

198:&lt;/span&gt;&lt;span id="line10" class="codeline "&gt;         const AVPacketSideData* mtx = av_packet_side_data_get(sd,  nb_sd, AV_PKT_DATA_DISPLAYMATRIX);
199:&lt;/span&gt;&lt;span id="line11" class="codeline "&gt;-        data = mtx-&amp;gt;data;
200:&lt;/span&gt;&lt;span id="line12" class="codeline "&gt;+        if (mtx)
202:&lt;/span&gt;&lt;span id="line14" class="codeline "&gt;+            data = mtx-&amp;gt;data;</code></pre>



<p class="wp-block-paragraph">後続のパッチを適応します。</p>



<pre class="wp-block-code"><code>patch -p1 &lt; /tmp/ffmpeg-8.0-compat-2.patch</code></pre>



<p class="wp-block-paragraph">パッチを確認します。</p>



<pre class="wp-block-code"><code>grep -n -A8 -B3 "avcodec_close( context )" \
  modules/videoio/src/cap_ffmpeg_impl.hpp
687-#ifdef CV_FFMPEG_CODECPAR
688-// avcodec_close removed in FFmpeg release 8.0
689-# if (LIBAVCODEC_BUILD &lt; CALC_FFMPEG_VERSION(62, 11, 100))
690:        avcodec_close( context );
691-# endif
692-#endif
693-        video_st = NULL;
694-    }
695-
696-    if (context)
697-    {
698-#ifdef CV_FFMPEG_CODECPAR</code></pre>



<pre class="wp-block-code"><code>grep -n -A20 -B3 "av_stream_get_side_data" \
  modules/videoio/src/cap_ffmpeg_impl.hpp
2008-    rotation_angle = 0;
2009-#if LIBAVFORMAT_BUILD &gt;= CALC_FFMPEG_VERSION(57, 68, 100)
2010-    const uint8_t *data = 0;
2011:    // av_stream_get_side_data removed in FFmpeg release 8.0
2012-# if (LIBAVCODEC_BUILD &lt; CALC_FFMPEG_VERSION(62, 11, 100))
2013:    data = av_stream_get_side_data(video_st, AV_PKT_DATA_DISPLAYMATRIX, NULL);
2014-# else
2015-    AVPacketSideData* sd = video_st-&gt;codecpar-&gt;coded_side_data;
2016-    int nb_sd = video_st-&gt;codecpar-&gt;nb_coded_side_data;
2017-    if (sd &amp;&amp; nb_sd &gt; 0)
2018-    {
2019-        const AVPacketSideData* mtx = av_packet_side_data_get(sd,  nb_sd, AV_PKT_DATA_DISPLAYMATRIX);
2020-        if (mtx)
2021-        {
2022-            data = mtx-&gt;data;
2023-        }
2024-    }
2025-# endif
2026-    if (data)
2027-    {
2028-        rotation_angle = -cvRound(av_display_rotation_get((const int32_t*)data));
2029-        if (rotation_angle &lt; 0)
2030-            rotation_angle += 360;
2031-    }
2032-#elif LIBAVUTIL_BUILD &gt;= CALC_FFMPEG_VERSION(52, 94, 100)
2033-    AVDictionaryEntry *rotate_tag = av_dict_get(video_st-&gt;metadata, "rotate", NULL, 0);</code></pre>



<p class="wp-block-paragraph">CMake 4対応<br>OpenCV 4.11.0 のソースコード内にあるCMake設定を、CMake 4.2.3でも受け付けられるように1箇所だけ書き換えます。</p>



<p class="wp-block-paragraph">ここでは、OpenCV 4.11.0の<br>opencv-4.11.0/cmake/OpenCVGenPkgconfig.cmake<br>の113行目にある</p>



<p class="wp-block-paragraph">cmake_minimum_required(VERSION 2.8.12.2)<br>を、<br>cmake_minimum_required(VERSION 3.5)</p>



<p class="wp-block-paragraph">に変更します。</p>



<pre class="wp-block-code"><code>cd opencv-build

sed -i \
  's/cmake_minimum_required(VERSION 2\.8\.12\.2)/cmake_minimum_required(VERSION 3.5)/' \
  opencv-4.11.0/cmake/OpenCVGenPkgconfig.cmake</code></pre>



<p class="wp-block-paragraph">sed：テキストファイルを編集するコマンド<br>-i：ファイルそのものを書き換える<br>s/変更前/変更後/：「変更前」を「変更後」に置換する<br>opencv-4.11.0/cmake/OpenCVGenPkgconfig.cmake：変更対象のファイル</p>



<p class="wp-block-paragraph">変更を確認します。</p>



<pre class="wp-block-code"><code>grep -n "cmake_minimum_required" \
  opencv-4.11.0/cmake/OpenCVGenPkgconfig.cmake

113:cmake_minimum_required(VERSION 3.5)</code></pre>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">変更前：cmake_minimum_required(VERSION 2.8.12.2) </p>



<p class="wp-block-paragraph">変更後：cmake_minimum_required(VERSION 3.5)</p>
</div>



<p class="wp-block-paragraph">CMake設定を行います。上記で変更させた部分を反映させます。</p>



<pre class="wp-block-code"><code>cd ~/opencv-build
mkdir -p build

cmake -S ~/opencv-build/opencv-4.11.0 \
      -B ~/opencv-build/build \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_INSTALL_PREFIX=/usr/local \
      -DOPENCV_GENERATE_PKGCONFIG=ON \
      -DOPENCV_EXTRA_MODULES_PATH=~/opencv-build/opencv_contrib-4.11.0/modules \
      -DCMAKE_POLICY_VERSION_MINIMUM=3.5</code></pre>



<p class="wp-block-paragraph">コンパイルを行います。（ここまでで既に困憊る）</p>



<pre class="wp-block-code"><code>cmake --build ~/opencv-build/build --parallel "$(nproc)"</code></pre>



<p class="wp-block-paragraph">&#8211;parallel &#8220;$(nproc)&#8221;は、処理するコア数<br>&#8211;parallel &#8220;$(nproc)&#8221;は、&#8211;parallel 16：最大16個のジョブを並列にコンパイル<br>CPU負荷を抑える → &#8211;parallel 4 や 8</p>



<p class="wp-block-paragraph">インストール先はどこかな？</p>



<pre class="wp-block-code"><code>grep CMAKE_INSTALL_PREFIX ~/opencv-build/build/CMakeCache.txt
CMAKE_INSTALL_PREFIX:PATH=/usr/local
//CMAKE_INSTALL_PREFIX during last run
_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/usr/local</code></pre>



<p class="wp-block-paragraph">OpenCV 4.11.0を <code>/usr/local</code> にインストールします。</p>



<pre class="wp-block-code"><code>sudo cmake --install ~/opencv-build/build
sudo ldconfig
pkg-config --modversion opencv4
4.11.0</code></pre>



<p class="wp-block-paragraph">build-and-install-pins-x64.sh を見てみます。</p>



<pre class="wp-block-code"><code>installed="$(get_opencv_version)"
local_pkg_version="$(get_local_opencv_pkgconfig_version)"

if opencv_matches_required_version "$installed" &amp;&amp; &#91;&#91; "$local_pkg_ok" == "true" ]]; then
  log "OpenCV version $installed already available"
  activate_opencv_environment
  return
fi</code></pre>



<p class="wp-block-paragraph">インストールされたopencvが判別できれば、build_and_install_opencv_required_version() は呼ばれません。</p>



<pre class="wp-block-code"><code>grep -n -E \
  "OPENCV_INSTALL_PREFIX|OPENCV_REQUIRE_LOCAL_PKGCONFIG|get_opencv_version|get_local_opencv_pkgconfig_version|activate_opencv_environment" \
  build-and-install-pins-x64.sh
113:OPENCV_INSTALL_PREFIX="${OPENCV_INSTALL_PREFIX:-/usr/local}"
115:OPENCV_REQUIRE_LOCAL_PKGCONFIG="${OPENCV_REQUIRE_LOCAL_PKGCONFIG:-true}"
460:get_opencv_version() {
463:  if &#91;&#91; -x "$OPENCV_INSTALL_PREFIX/bin/opencv_version" ]]; then
464:    version="$($OPENCV_INSTALL_PREFIX/bin/opencv_version 2&gt;/dev/null || true)"
472:    local_pkg_paths+=("$OPENCV_INSTALL_PREFIX/lib/pkgconfig")
473:    local_pkg_paths+=("$OPENCV_INSTALL_PREFIX/lib64/pkgconfig")
475:      local_pkg_paths+=("$OPENCV_INSTALL_PREFIX/lib/$multiarch/pkgconfig")
499:get_local_opencv_pkgconfig_version() {
508:  local_pkg_paths+=("$OPENCV_INSTALL_PREFIX/lib/pkgconfig")
509:  local_pkg_paths+=("$OPENCV_INSTALL_PREFIX/lib64/pkgconfig")
511:    local_pkg_paths+=("$OPENCV_INSTALL_PREFIX/lib/$multiarch/pkgconfig")
532:activate_opencv_environment() {
537:  local_pkg_paths+=("$OPENCV_INSTALL_PREFIX/lib/pkgconfig")
538:  local_pkg_paths+=("$OPENCV_INSTALL_PREFIX/lib64/pkgconfig")
540:    local_pkg_paths+=("$OPENCV_INSTALL_PREFIX/lib/$multiarch/pkgconfig")
555:  local opencv_cmake_dir="$OPENCV_INSTALL_PREFIX/lib/cmake/opencv4"
558:    export CMAKE_PREFIX_PATH="$OPENCV_INSTALL_PREFIX:${CMAKE_PREFIX_PATH:-}"
561:  export PATH="$OPENCV_INSTALL_PREFIX/bin:${PATH:-}"
562:  export LD_LIBRARY_PATH="$OPENCV_INSTALL_PREFIX/lib:${LD_LIBRARY_PATH:-}"
587:    -DCMAKE_INSTALL_PREFIX="$OPENCV_INSTALL_PREFIX"
607:  installed="$(get_opencv_version)"
609:  local_pkg_version="$(get_local_opencv_pkgconfig_version)"
612:  if is_truthy "$OPENCV_REQUIRE_LOCAL_PKGCONFIG"; then
620:    activate_opencv_environment
630:  if is_truthy "$OPENCV_REQUIRE_LOCAL_PKGCONFIG"; then
634:      warn "Local pkg-config metadata for opencv4 not found under $OPENCV_INSTALL_PREFIX"
640:  activate_opencv_environment
643:  final_version="$(get_opencv_version)"
646:  if is_truthy "$OPENCV_REQUIRE_LOCAL_PKGCONFIG"; then
648:    final_local_pkg_version="$(get_local_opencv_pkgconfig_version)"
1888:    export PKG_CONFIG_PATH="$OPENCV_INSTALL_PREFIX/lib/pkgconfig:${PKG_CONFIG_PATH:-}"
1889:    export LD_LIBRARY_PATH="$OPENCV_INSTALL_PREFIX/lib:${LD_LIBRARY_PATH:-}"
1890:    export CMAKE_PREFIX_PATH="$OPENCV_INSTALL_PREFIX:${CMAKE_PREFIX_PATH:-}"
1891:    export OpenCV_DIR="$OPENCV_INSTALL_PREFIX/lib/cmake/opencv4"</code></pre>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph"><code>OPENCV_INSTALL_PREFIX</code></p>



<ul class="wp-block-list">
<li>OpenCVのインストール先</li>



<li>今回は <code>/usr/local</code> になっているか確認したい</li>
</ul>



<p class="wp-block-paragraph"><code>OPENCV_REQUIRE_LOCAL_PKGCONFIG</code></p>



<ul class="wp-block-list">
<li><code>pkg-config</code> のOpenCV情報を必須にする設定</li>
</ul>



<p class="wp-block-paragraph"><code>get_opencv_version</code></p>



<ul class="wp-block-list">
<li>システムにインストールされているOpenCVのバージョンを取得する関数</li>
</ul>



<p class="wp-block-paragraph"><code>get_local_opencv_pkgconfig_version</code></p>



<ul class="wp-block-list">
<li><code>pkg-config</code> からOpenCVのバージョンを取得する関数</li>
</ul>



<p class="wp-block-paragraph"><code>activate_opencv_environment</code></p>



<ul class="wp-block-list">
<li>検出したOpenCVをPINSのビルド環境で使えるようにする関数</li>
</ul>
</div>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">opencv-4.11.0を別途で、コンパイル、インストールします。<br>その後、build-and-install-pins-x64.shへの変更は不要です。</p>
</div>



<pre class="wp-block-code"><code>./build-and-install-pins-x64.sh
&#91;INFO] OpenCV version 4.11.0 already available
&#91;INFO] LibXISF API is compatible: /usr/include/libxisf.h
&#91;INFO] Installing .NET 10 SDK
以前に未選択のパッケージ packages-microsoft-prod を選択しています。

以下の追加パッケージがインストールされます:
  aspnetcore-runtime-10.0 aspnetcore-targeting-pack-10.0 dotnet-apphost-pack-10.0 dotnet-host-10.0 dotnet-hostfxr-10.0 dotnet-runtime-10.0 dotnet-sdk-aot-10.0 dotnet-targeting-pack-10.0 dotnet-templates-10.0 liblttng-ust-common1t64
  liblttng-ust-ctl6 liblttng-ust1t64
提案パッケージ:
  aspnetcore-runtime-dbg-10.0 dotnet-runtime-dbg-10.0 dotnet-sdk-dbg-10.0
以下のパッケージが新たにインストールされます:
  aspnetcore-runtime-10.0 aspnetcore-targeting-pack-10.0 dotnet-apphost-pack-10.0 dotnet-host-10.0 dotnet-hostfxr-10.0 dotnet-runtime-10.0 dotnet-sdk-10.0 dotnet-sdk-aot-10.0 dotnet-targeting-pack-10.0 dotnet-templates-10.0
  liblttng-ust-common1t64 liblttng-ust-ctl6 liblttng-ust1t64
アップグレード: 0 個、新規インストール: 13 個、削除: 0 個、保留: 5 個。

&#91;INFO] Toolchain versions

Host:
  Version:      10.0.11
  Architecture: x64
  Commit:       e2f47b0110
  RID:          ubuntu.26.04-x64

.NET SDKs installed:
  10.0.111 &#91;/usr/lib/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 10.0.11 &#91;/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 10.0.11 &#91;/usr/lib/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  Not set

global.json file:
  /home/USERNAME/pins/global.json

Learn more:
  https:&#47;&#47;aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download
v22.23.2
10.9.8

fatal: Unable to find refs/remotes/origin/pins revision in submodule path 'Touch-N-Stars'
&#91;WARN] Remote update failed for Touch-N-Stars; falling back to pinned commit
&#91;INFO] Updating submodule NINA.Plugins/ninaAPI

&#91;INFO] Updating submodule NINA.Plugins/LiveStack
Submodule path 'NINA.Plugins/LiveStack': checked out '1c0d473a57eb60d1e07068ec55c7330eebbaec7f'
Submodule 'nina.plugin.livestack.benchmark/External' (https://github.com/isbeorn/nina.external.git) registered for path 'NINA.Plugins/LiveStack/nina.plugin.livestack.benchmark/External'
Submodule 'nina.plugin.livestack.test/External' (https://github.com/isbeorn/nina.external.git) registered for path 'NINA.Plugins/LiveStack/nina.plugin.livestack.test/External'
Cloning into '/home/USERNAME/pins/NINA.Plugins/LiveStack/nina.plugin.livestack.benchmark/External'...
Cloning into '/home/USERNAME/pins/NINA.Plugins/LiveStack/nina.plugin.livestack.test/External'...
Submodule path 'NINA.Plugins/LiveStack/nina.plugin.livestack.benchmark/External': checked out 'de19c6cf64128e93ed78944ddc057ba65fb12c49'
Submodule path 'NINA.Plugins/LiveStack/nina.plugin.livestack.test/External': checked out 'de19c6cf64128e93ed78944ddc057ba65fb12c49'
&#91;INFO] Updating submodule NINA.Plugins/PolarAlignment
Submodule path 'NINA.Plugins/PolarAlignment': checked out 'bafe381399b2d59dd2189d5d75a48da8f13b06d5'
Submodule path 'NINA.Plugins/PolarAlignment/NINA.Plugins.PolarAlignment.Test/External': checked out 'ee668b326e9106d55c12cae035bdc9db879d7b12'
&#91;INFO] Updating submodule NINA.Plugins/joko.nina.plugins

</code></pre>



<p class="wp-block-paragraph">先にビルド、インストールしたopencv4が認識され、PINSのビルドが進みました。</p>



<h2 class="wp-block-heading">Naval Observatory Vector Astrometry Software (NOVAS)</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">海軍天文台ベクトル天体測位ソフトウェア（NOVAS）<br>バージョン 3.1 Fortran、C、および Python 版NOVAS は現在、Astrophysics Source Code Library で入手可能です。</p>



<p class="wp-block-paragraph">NOVASは、位置天文学において一般的に必要とされる様々な量を計算するためのルーチンを統合したパッケージです。このパッケージを使用すると、1回または2回のサブルーチンまたは関数の呼び出しで、あらゆる恒星や惑星の瞬間座標を、様々な座標系で算出することができます。<br><a rel="noopener" target="_blank" href="https://aa.usno.navy.mil/software/novas_info">https://aa.usno.navy.mil/software/novas_info</a></p>
</blockquote>



<p class="wp-block-paragraph">NOVASビルドで止まりました。</p>



<pre class="wp-block-code"><code>du -sh ~/pins/NOVAS31/* 2&gt;/dev/null | sort -h
405G	/home/USERNAME/pins/NOVAS31/cio_ra.bin</code></pre>



<p class="wp-block-paragraph">cio_ra.binが、405GBは異常に大きなファイルになっています。<br>異常なcio_ra.binは削除します。</p>



<pre class="wp-block-code"><code>rm -f ~/pins/NOVAS31/cio_ra.bin
df -h ~
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       457G   29G  405G   7% /</code></pre>



<p class="wp-block-paragraph">NOVASの生成処理がなぜ異常に大きくなったのか、見ていきます。</p>



<pre class="wp-block-code"><code>cd ~/pins/NOVAS31
sed -n '35,50p' Makefile

# Build the CIO file utility and run it to generate cio_ra.bin
cio_ra.bin: $(SRCDIR)/cio_file.c $(SRCDIR)/CIO_RA.TXT | $(BUILDDIR)
	@echo "Building cio_file utility..."
	$(CC) $(CFLAGS) -o $(BUILDDIR)/cio_file $(SRCDIR)/cio_file.c $(LDLIBS)
	@echo "Generating cio_ra.bin from CIO_RA.TXT..."
	@if &#91; -f cio_ra.bin ]; then rm cio_ra.bin; fi
	@cp $(SRCDIR)/CIO_RA.TXT .
	@./$(BUILDDIR)/cio_file &gt; /dev/null
	@rm -f CIO_RA.TXT
	@if &#91; -f cio_ra.bin ]; then \
		echo "Created cio_ra.bin"; \
	else \
		echo "ERROR: Failed to create cio_ra.bin"; \
		exit 1; \
	fi</code></pre>



<pre class="wp-block-code"><code>CIO_RA.TXT
   ↓
cio_file
   ↓
cio_ra.bin</code></pre>



<p class="wp-block-paragraph">CIO_RA.TXT のサイズを確認します。そのサイズは、132バイト。</p>



<pre class="wp-block-code"><code>cd ~/pins/NOVAS31

ls -lh CIO_RA.TXT
-rw-rw-r-- 1 USERNAME 132 Sep  7 19:06 CIO_RA.TXT
ls -lh NOVAS31/CIO_RA.TXT
-rw-rw-r-- 1 USERNAME 132 Sep  7 09:07 NOVAS31/CIO_RA.TXT</code></pre>



<p class="wp-block-paragraph"><code>CIO_RA.TXT</code> が 132 bytes</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">User’s Guide to NOVAS Version C3.1<br>Naval Observatory Vector Astrometry Software<br><a rel="noopener" target="_blank" href="https://aa.usno.navy.mil/downloads/novas/NOVAS_C3.1_Guide.pdf?utm_source=chatgpt.com">https://aa.usno.navy.mil/downloads/novas/NOVAS_C3.1_Guide.pdf?utm_source=chatgpt.com</a></p>
</blockquote>



<p class="wp-block-paragraph">このガイドによると、CIO_RA.TXT は、<br>cio_ra * basic Computes true right ascension of the CIO, given TT Julian date<br>1700～2300年のデータを含み、約7.5 MB あります。そして cio_file が生成する cio_ra.bin は 約2.9 MB になるのが正常らしいです。<br>こちらのPCにあるデータ量と明らかに違う。。。</p>



<p class="wp-block-paragraph">CIO_RA.TXTを見てみます。</p>



<pre class="wp-block-code"><code>cd ~/pins/NOVAS31
cat -A CIO_RA.TXT
version https://git-lfs.github.com/spec/v1$
oid sha256:94af0088304f458dbb486b1c072c67bdc506edd8da1d3db722e4ae1dcc4b202d$
size 7671616$</code></pre>



<p class="wp-block-paragraph">これは NOVASのCIOデータではないようです。<br>本来のデータ量は、size 7671616、約7MB。<br>Gitで大きなファイルを扱うための仕組みらしい。ポインタみたいな物かな。。。</p>



<p class="wp-block-paragraph">LFS 、Git Large File Storage（Git LFS）を見てみます。</p>



<p class="wp-block-paragraph">git lfs pull を使い、<br>Git LFSの「ポインタファイル」を見て、対応する本物の大きなファイルをダウンロードし、作業ディレクトリに展開するさせます。</p>



<p class="wp-block-paragraph">次で、実体を取得できる。</p>



<pre class="wp-block-code"><code>cd ~/pins　###Git LFSはGitリポジトリ単位で動作する
git lfs pull

ects: 100% (2/2), 8.2 MB | 1.7 MB/s
</code></pre>



<p class="wp-block-paragraph">データが取得されたようです。<br>CIO_RA.TXTを確認します。</p>



<pre class="wp-block-code"><code>wc -c ~/pins/NOVAS31/CIO_RA.TXT
132 /home/USERNAME/pins/NOVAS31/CIO_RA.TXT</code></pre>



<p class="wp-block-paragraph">少ない。こちらは取得されていないようです。</p>



<pre class="wp-block-code"><code>cd ~/pins
git lfs status
On branch develop
Objects to be pushed to origin/develop:

Objects to be committed:

Objects not staged for commit:

	NINA.Plugins/LiveStack (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/NINA.Joko.Plugin.TenMicron (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/PolarAlignment (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/Touch-N-Stars (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/joko.nina.plugins (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/nina.plugin.orbuculum (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/nina.plugin.phd2tools (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/ninaAPI (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/pins.plugin (?: &lt;missing&gt; -&gt; File: deleted)
	NINA/External (?: &lt;missing&gt; -&gt; ?: &lt;missing&gt;)
	build-and-install-pins-x64.sh (Git: 8f458de -&gt; File: b52399e)

git lfs ls-files
4338325ad1 * NINA.Test/Autofocus/TestImage_Jelly.xisf
94af008830 * NOVAS31/NOVAS31/CIO_RA.TXT</code></pre>



<pre class="wp-block-preformatted">94af008830 * NOVAS31/NOVAS31/CIO_RA.TXT</pre>



<p class="wp-block-paragraph">NOVAS31/NOVAS31/CIO_RA.TXT なのでディレクトリが一層下だ。</p>



<pre class="wp-block-code"><code>cd ~/pins/NOVAS31
wc -c NOVAS31/CIO_RA.TXT
7671616 NOVAS31/CIO_RA.TXT</code></pre>



<p class="wp-block-paragraph">以前のビルド生成物を削除します</p>



<pre class="wp-block-code"><code>make clean
rm -rf build libnovas_c.so cio_ra.bin</code></pre>



<p class="wp-block-paragraph">再ビルドします。</p>



<pre class="wp-block-code"><code>make
log後半
gcc -fPIC -O2 -Wall -std=c99 -c -o build/solsys1.o NOVAS31/solsys1.c
gcc -fPIC -O2 -Wall -std=c99 -c -fPIC -o build/solsys1.pic.o NOVAS31/solsys1.c
gcc -shared -o libnovas_c.so build/cio_file.pic.o build/eph_manager.pic.o build/novas.pic.o build/novascon.pic.o build/nutation.pic.o build/readeph0.pic.o build/solsys1.pic.o -lm
Building cio_file utility...
gcc -fPIC -O2 -Wall -std=c99 -o build/cio_file NOVAS31/cio_file.c -lm
NOVAS31/cio_file.c: In function ‘main’:
NOVAS31/cio_file.c:74:4: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ &#91;-Wunused-result]
   74 |    fgets (identifier, sizeof(identifier), in_file);
      |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOVAS31/cio_file.c:88:7: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ &#91;-Wunused-result]
   88 |       fscanf (in_file, " %lf %lf ", &amp;jd_tdb, &amp;ra_cio);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOVAS31/cio_file.c:159:4: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ &#91;-Wunused-result]
  159 |    fread (&amp;jd_beg, double_size, (size_t) 1, out_file);
      |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOVAS31/cio_file.c:160:4: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ &#91;-Wunused-result]
  160 |    fread (&amp;jd_end, double_size, (size_t) 1, out_file);
      |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOVAS31/cio_file.c:161:4: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ &#91;-Wunused-result]
  161 |    fread (&amp;t_int, double_size, (size_t) 1, out_file);
      |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOVAS31/cio_file.c:162:4: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ &#91;-Wunused-result]
  162 |    fread (&amp;n_recs, long_size, (size_t) 1, out_file);
      |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOVAS31/cio_file.c:164:4: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ &#91;-Wunused-result]
  164 |    fread (&amp;jd_1, double_size, (size_t) 1, out_file);
      |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOVAS31/cio_file.c:165:4: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ &#91;-Wunused-result]
  165 |    fread (&amp;ra_1, double_size, (size_t) 1, out_file);
      |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOVAS31/cio_file.c:167:4: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ &#91;-Wunused-result]
  167 |    fread (&amp;jd_n, double_size, (size_t) 1, out_file);
      |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOVAS31/cio_file.c:168:4: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ &#91;-Wunused-result]
  168 |    fread (&amp;ra_n, double_size, (size_t) 1, out_file);
      |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Generating cio_ra.bin from CIO_RA.TXT...
Created cio_ra.bin
Built libnovas_c.so
rm build/novas.o build/readeph0.o build/solsys1.o build/novascon.o build/cio_file.o build/nutation.o build/eph_manager.o</code></pre>



<pre class="wp-block-code"><code>ls -lh ~/pins/NOVAS31/cio_ra.bin
-rw-rw-r-- 1 USERNAME USERNAME 2.8M Sep  8 12:42 /home/USERNAME/pins/NOVAS31/cio_ra.bin
ls -lh ~/pins/NOVAS31/libnovas_c.so
-rwxrwxr-x 1 USERNAME USERNAME 201K Sep  8 12:42 /home/USERNAME/pins/NOVAS31/libnovas_c.so</code></pre>



<p class="wp-block-paragraph">Git LFSで管理されている CIO_RA.TXT の実体が取得されておらず、132バイトのポインタファイルになっていたことが、解決しました。</p>



<p class="wp-block-paragraph">ここまででの、git状態を見ます。</p>



<pre class="wp-block-code"><code>cd ~/pins
git status --short
 M NINA.Plugins/LiveStack
 M NINA.Plugins/NINA.Joko.Plugin.TenMicron
 M NINA.Plugins/PolarAlignment
 M NINA.Plugins/Touch-N-Stars
 M NINA.Plugins/joko.nina.plugins
 M NINA.Plugins/nina.plugin.orbuculum
 M NINA.Plugins/nina.plugin.phd2tools
 M NINA.Plugins/ninaAPI
 M NINA.Plugins/pins.plugin
 m NINA/External
 M build-and-install-pins-x64.sh
?? NOVAS31/build/
?? NOVAS31/cio_ra.bin
?? NOVAS31/libnovas_c.so
?? artifacts/
?? build-and-install-pins-x64.sh.org

git lfs status
On branch develop
Objects to be pushed to origin/develop:


Objects to be committed:


Objects not staged for commit:

	NINA.Plugins/LiveStack (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/NINA.Joko.Plugin.TenMicron (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/PolarAlignment (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/Touch-N-Stars (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/joko.nina.plugins (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/nina.plugin.orbuculum (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/nina.plugin.phd2tools (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/ninaAPI (?: &lt;missing&gt; -&gt; File: deleted)
	NINA.Plugins/pins.plugin (?: &lt;missing&gt; -&gt; File: deleted)
	NINA/External (?: &lt;missing&gt; -&gt; ?: &lt;missing&gt;)
	build-and-install-pins-x64.sh (Git: 8f458de -&gt; File: b52399e)</code></pre>



<p class="wp-block-paragraph">LFS実体が取得済み / 再ビルドは行えました。そして次のエラーが。。。</p>



<h2 class="wp-block-heading">SDK version: 10.0.400 をインストール</h2>



<h3 class="wp-block-heading">Requested SDK version: 10.0.400</h3>



<pre class="wp-block-code"><code>log
Installing libsofa_c.so to ../../../NINA/External/linux-x64/SOFA/
Installed: ../../../NINA/External/linux-x64/SOFA//libsofa_c.so

*** Now type 'make test'  to install the library and run tests ***

&#91;INFO] External bundle populated from repository clone into NINA/External
&#91;INFO] Staging OpenCvSharp Linux runtime from NuGet
The command could not be loaded, possibly because:
  * You intended to execute a .NET application:
      The application 'nuget' does not exist or is not a managed .dll or .exe.
  * You intended to execute a .NET SDK command:
      A compatible .NET SDK was not found.

Requested SDK version: 10.0.400
global.json file: /home/USERNAME/pins/global.json

Installed SDKs:

Install the &#91;10.0.400] .NET SDK or update &#91;/home/USERNAME/pins/global.json] to match an installed SDK.

Learn about SDK resolution:
https:&#47;&#47;aka.ms/dotnet/sdk-not-found</code></pre>



<p class="wp-block-paragraph">build-and-install-pins-x64.shにある、&#8221;dotnet_10&#8243;をインストールしてる部分を確認します。</p>



<pre class="wp-block-code"><code>grep -n -i -E 'dotnet|sdk|10\.0' ~/pins/build-and-install-pins-x64.sh
68:PLUGIN_TARGET_FRAMEWORK="${PLUGIN_TARGET_FRAMEWORK:-net10.0}"
227:    "wandereretasdk|https://github.com/nitr57/WandererETASDK|"
796:  nuget_global_packages="$(dotnet nuget locals global-packages --list | sed -n 's/^global-packages: //p' | head -n 1)"
804:    dotnet restore NINA/NINA.csproj -r "$TARGET_RUNTIME"
817:install_dotnet_10() {
818:  local dotnet_ok="false"
820:  if command -v dotnet &gt;/dev/null 2&gt;&amp;1; then
821:    if dotnet --list-sdks | grep -q '^10\.'; then
822:      dotnet_ok="true"
826:  if &#91;&#91; "$dotnet_ok" == "true" ]]; then
827:    log ".NET 10 SDK already available"
831:  log "Installing .NET 10 SDK"
844:  run_as_root apt-get install -y dotnet-sdk-10.0
875:  dotnet --info</code></pre>



<p class="wp-block-paragraph">817:install_dotnet_10() {<br>818: local dotnet_ok=&#8221;false&#8221;<br>820: if command -v dotnet &gt;/dev/null 2&gt;&amp;1; then<br>821: if dotnet &#8211;list-sdks | grep -q &#8216;^10.&#8217;; then<br>822: dotnet_ok=&#8221;true&#8221;<br>826: if [[ &#8220;$dotnet_ok&#8221; == &#8220;true&#8221; ]]; then</p>



<p class="wp-block-paragraph">.NET 10.x SDKが何か1つ入っていれば&#8221;OK&#8221;良、入っていないならば、<br>apt-get install -y dotnet-sdk-10.0<br>これでUbuntu 26.04が用意（リポジトリ）しているSDKがインストールされました。<br></p>



<p class="wp-block-paragraph">でも、~/pins/global.jsonは、&#8221;10.0.400&#8243;を要求します。</p>



<pre class="wp-block-code"><code>cat global.json
{
  "sdk": {
    "version": "10.0.400",
    "rollForward": "latestPatch"
  }
}</code></pre>



<h3 class="wp-block-heading">SDK 10.0.400インストール スクリプトを使用</h3>



<p class="wp-block-paragraph">インストール スクリプトを使用するか、バイナリを抽出して linux に.NETをインストールする<br><a rel="noopener" target="_blank" href="https://learn.microsoft.com/ja-jp/dotnet/core/install/linux-scripted-manual">https://learn.microsoft.com/ja-jp/dotnet/core/install/linux-scripted-manual</a><br><a rel="noopener" target="_blank" href="https://learn.microsoft.com/en-us/dotnet/core/install/linux-scripted-manual?utm_source=chatgpt.com">https://learn.microsoft.com/en-us/dotnet/core/install/linux-scripted-manual?utm_source=chatgpt.com</a></p>



<p class="wp-block-paragraph">公式のインストールスクリプトを取得します。</p>



<pre class="wp-block-code"><code>cd /tmp
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
chmod +x ./dotnet-install.sh
</code></pre>



<p class="wp-block-paragraph">dotnet-install スクリプト リファレンス<br><a rel="noopener" target="_blank" href="https://learn.microsoft.com/ja-jp/dotnet/core/tools/dotnet-install-script">https://learn.microsoft.com/ja-jp/dotnet/core/tools/dotnet-install-script</a><br>バージョンとインストール先の指定は、こちらに案内されています。</p>



<p class="wp-block-paragraph">10.0.400を指定します。</p>



<pre class="wp-block-code"><code>/tmp/dotnet-install.sh --version 10.0.400 --install-dir "$HOME/.dotnet"</code></pre>



<pre class="wp-block-code"><code>/tmp/dotnet-install.sh --version 10.0.400 --install-dir "$HOME/.dotnet"
dotnet-install: Attempting to download using primary link https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.400/dotnet-sdk-10.0.400-linux-x64.tar.gz
dotnet-install: Remote file https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.400/dotnet-sdk-10.0.400-linux-x64.tar.gz size is 240133692 bytes.
dotnet-install: Extracting archive from https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.400/dotnet-sdk-10.0.400-linux-x64.tar.gz
dotnet-install: Downloaded file size is 240133692 bytes.
dotnet-install: The remote and local file sizes are equal.
dotnet-install: Installed version is 10.0.400
dotnet-install: Adding to current process PATH: `/home/USERNAME/.dotnet`. Note: This change will be visible only when sourcing script.
dotnet-install: Note that the script does not resolve dependencies during installation.
dotnet-install: To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install, select your operating system and check the "Dependencies" section.
dotnet-install: Installation finished successfully.
</code></pre>



<p class="wp-block-paragraph">インストール後に次を行います。</p>



<pre class="wp-block-code"><code>$HOME/.dotnet/dotnet --list-sdks
10.0.400 &#91;/home/USERNAME/.dotnet/sdk/10.0.400]</code></pre>



<p class="wp-block-paragraph">パスを通します。<br>PINSスクリプト内の dotnet コマンドにも10.0.400を使わせるため、シェルでPATHを変更します。</p>



<pre class="wp-block-code"><code>export PATH="$HOME/.dotnet:$PATH"</code></pre>



<pre class="wp-block-code"><code>export PATH="$HOME/.dotnet:$PATH"
 which dotnet
/home/USERNAME/.dotnet/dotnet
dotnet --version
10.0.400</code></pre>



<h3 class="wp-block-heading">PINSビルド再開</h3>



<p class="wp-block-paragraph">上記パスを通したシェルで行います。</p>



<pre class="wp-block-code"><code>cd ~/pins
./build-and-install-pins-x64.sh</code></pre>



<pre class="wp-block-code"><code>&#91;INFO] OpenCV version 4.11.0 already available
&#91;INFO] LibXISF API is compatible: /usr/include/libxisf.h
&#91;INFO] .NET 10 SDK already available
&#91;INFO] Node.js 22 already available
&#91;INFO] Toolchain versions
.NET SDK:
 Version:           10.0.400
 Commit:            14fbf8d527
 Workload version:  10.0.400-manifests.330ea142
 MSBuild version:   18.9.6+14fbf8d52

.NET SDKs installed:
  10.0.400 &#91;/home/USERNAME/.dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 10.0.11 &#91;/home/USERNAME/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 10.0.11 &#91;/home/USERNAME/.dotnet/shared/Microsoft.NETCore.App]

&#91;WARN] Remote update failed for Touch-N-Stars; falling back to pinned commit
&#91;INFO] Updating submodule NINA.Plugins/ninaAPI
&#91;INFO] Updating submodule NINA.Plugins/Touch-N-Stars
fatal: Unable to find refs/remotes/origin/main revision in submodule path 'NINA.Plugins/Touch-N-Stars'
&#91;WARN] Remote update failed for NINA.Plugins/Touch-N-Stars; falling back to pinned commit
Submodule path 'NINA.Plugins/Touch-N-Stars': checked out '23f08d5fc14421e9f42cf2d9e27981e49fc4bb8e'
&#91;INFO] Updating submodule NINA.Plugins/LiveStack
Submodule 'nina.plugin.livestack.benchmark/External' (https://github.com/isbeorn/nina.external.git) registered for path 'NINA.Plugins/LiveStack/nina.plugin.livestack.benchmark/External'
Submodule 'nina.plugin.livestack.test/External' (https://github.com/isbeorn/nina.external.git) registered for path 'NINA.Plugins/LiveStack/nina.plugin.livestack.test/External'
Cloning into '/home/USERNAME/pins/NINA.Plugins/LiveStack/nina.plugin.livestack.benchmark/External'...
Cloning into '/home/USERNAME/pins/NINA.Plugins/LiveStack/nina.plugin.livestack.test/External'...
Submodule path 'NINA.Plugins/LiveStack/nina.plugin.livestack.benchmark/External': checked out 'de19c6cf64128e93ed78944ddc057ba65fb12c49'
Submodule path 'NINA.Plugins/LiveStack/nina.plugin.livestack.test/External': checked out 'de19c6cf64128e93ed78944ddc057ba65fb12c49'
&#91;INFO] Updating submodule NINA.Plugins/PolarAlignment
Submodule 'NINA.Plugins.PolarAlignment.Test/External' (https://bitbucket.org/Isbeorn/nina.external.git) registered for path 'NINA.Plugins/PolarAlignment/NINA.Plugins.PolarAlignment.Test/External'
Cloning into '/home/USERNAME/pins/NINA.Plugins/PolarAlignment/NINA.Plugins.PolarAlignment.Test/External'...</code></pre>



<p class="wp-block-paragraph">.NET SDKs installed:<br>10.0.400 [/home/USERNAME/.dotnet/sdk]<br>ここで認識されています。</p>



<h3 class="wp-block-heading">pinsdaemon エラー</h3>



<p class="wp-block-paragraph">pinsdaemon は、PINS本体とは別のバックグラウンドサービス（daemon）です。<br>ログを見る限り、主に PINSのシステム管理・アップデート関連を担当するコンポーネントのようです。</p>



<pre class="wp-block-code"><code>以下のパッケージは「削除」されます:
  pinsdaemon
アップグレード: 0 個、新規インストール: 0 個、削除: 1 個、保留: 21 個。
1 個のパッケージが完全にインストールまたは削除されていません。
この操作後に追加で 0 B のディスク容量が消費されます。
(データベースを読み込んでいます ... 現在 229731 個のファイルとディレクトリがインストールされています。)
pinsdaemon (1.0.6-1788846944) を削除しています ...
dpkg: 警告: pinsdaemon の削除中、ディレクトリ '/usr/local/bin' が空でないため削除できませんでした
(データベースを読み込んでいます ... 現在 229706 個のファイルとディレクトリがインストールされています。)
.../pins_3.3.0.1057-nightly+1788846944_amd64_08092026.deb を展開する準備をしています ...
pins (3.3.0.1057-nightly+1788846944) で (3.3.0.1057-nightly+1788846944 に) 上書き展開しています ...
以前に未選択のパッケージ pinsdaemon を選択しています。
.../pinsdaemon_1.0.6-1788846944_amd64.deb を展開する準備をしています ...
pinsdaemon (1.0.6-1788846944) を展開しています...
.../pins-wandereretasdk_3.3.0.1057-nightly+1788846944_amd64_08092026.deb を展開する準備をしています ...
pins-wandereretasdk (3.3.0.1057-nightly+1788846944) で (3.3.0.1057-nightly+1788846944 に) 上書き展開しています ...
.../pins-plugin-joko_4.0.0.17+1788846944_amd64_08092026.deb を展開する準備をしています ...
pins-plugin-joko (4.0.0.17+1788846944) で (4.0.0.17+1788846944 に) 上書き展開しています ...
.../pins-plugin-tenmicron_3.0.0.13+1788846944_amd64_08092026.deb を展開する準備をしています ...
pins-plugin-tenmicron (3.0.0.13+1788846944) で (3.0.0.13+1788846944 に) 上書き展開しています ...
.../pins-plugin-livestack_1.0.1.2+1788846944_amd64_08092026.deb を展開する準備をしています ...
pins-plugin-livestack (1.0.1.2+1788846944) で (1.0.1.2+1788846944 に) 上書き展開しています ...
.../pins-plugin-ninaapi_2.2.15.2+1788846944_amd64_08092026.deb を展開する準備をしています ...
pins-plugin-ninaapi (2.2.15.2+1788846944) で (2.2.15.2+1788846944 に) 上書き展開しています ...
.../pins-plugin-orbuculum_2.0.0.2+1788846944_amd64_08092026.deb を展開する準備をしています ...
pins-plugin-orbuculum (2.0.0.2+1788846944) で (2.0.0.2+1788846944 に) 上書き展開しています ...
.../pins-plugin-phd2tools_1.0.5.3+1788846944_amd64_08092026.deb を展開する準備をしています ...
pins-plugin-phd2tools (1.0.5.3+1788846944) で (1.0.5.3+1788846944 に) 上書き展開しています ...
.../pins-plugin-polaralignment_2.2.3.4+1788846944_amd64_08092026.deb を展開する準備をしています ...
pins-plugin-polaralignment (2.2.3.4+1788846944) で (2.2.3.4+1788846944 に) 上書き展開しています ...
.../pins-plugin-touch-n-stars_1.4.0.1+1788846944_amd64_08092026.deb を展開する準備をしています ...
pins-plugin-touch-n-stars (1.4.0.1+1788846944) で (1.4.0.1+1788846944 に) 上書き展開しています ...
.../pins-plugin-pins_1.0.3.0+1788846944_amd64_08092026.deb を展開する準備をしています ...
pins-plugin-pins (1.0.3.0+1788846944) で (1.0.3.0+1788846944 に) 上書き展開しています ...
.../indi-bin_2.1.9+1788846944_amd64_08092026.deb を展開する準備をしています ...
indi-bin (2.1.9+1788846944) で (2.1.9+1788846944 に) 上書き展開しています ...
.../libindi1_2.1.9+1788846944_amd64_08092026.deb を展開する準備をしています ...
libindi1 (2.1.9+1788846944) で (2.1.9+1788846944 に) 上書き展開しています ...
.../libindi-data_2.1.9+1788846944_amd64_08092026.deb を展開する準備をしています ...
libindi-data (2.1.9+1788846944) で (2.1.9+1788846944 に) 上書き展開しています ...
.../libindi-dev_2.1.9+1788846944_amd64_08092026.deb を展開する準備をしています ...
libindi-dev (2.1.9+1788846944) で (2.1.9+1788846944 に) 上書き展開しています ...
.../phd2_2.6.14-1788846974_amd64.deb を展開する準備をしています ...
phd2 (2.6.14-1788846974) で (2.6.14-1788846974 に) 上書き展開しています ...

dpkg: 依存関係の問題により pinsdaemon の設定ができません:
 pinsdaemon は以下に依存 (depends) します: python3-venv ...しかし:
  パッケージ python3-venv はまだインストールされていません。
 pinsdaemon は以下に依存 (depends) します: wireless-tools ...しかし:
  パッケージ wireless-tools はまだインストールされていません。
 pinsdaemon は以下に依存 (depends) します: raspi-config ...しかし:
  パッケージ raspi-config はまだインストールされていません。

dpkg: パッケージ pinsdaemon の処理中にエラーが発生しました (--install):
 依存関係の問題 - 設定を見送ります
pins-wandereretasdk (3.3.0.1057-nightly+1788846944) を設定しています ...
pins-plugin-joko (4.0.0.17+1788846944) を設定しています ...
pins-plugin-tenmicron (3.0.0.13+1788846944) を設定しています ...
pins-plugin-livestack (1.0.1.2+1788846944) を設定しています ...
pins-plugin-ninaapi (2.2.15.2+1788846944) を設定しています ...
pins-plugin-orbuculum (2.0.0.2+1788846944) を設定しています ...
pins-plugin-phd2tools (1.0.5.3+1788846944) を設定しています ...
pins-plugin-polaralignment (2.2.3.4+1788846944) を設定しています ...
pins-plugin-touch-n-stars (1.4.0.1+1788846944) を設定しています ...
pins-plugin-pins (1.0.3.0+1788846944) を設定しています ...
libindi1 (2.1.9+1788846944) を設定しています ...
libindi-data (2.1.9+1788846944) を設定しています ...
libindi-dev (2.1.9+1788846944) を設定しています ...
phd2 (2.6.14-1788846974) を設定しています ...
indi-bin (2.1.9+1788846944) を設定しています ...
libc-bin (2.43-2ubuntu2.3) のトリガを処理しています ...
gnome-menus (3.38.1-1ubuntu1) のトリガを処理しています ...
desktop-file-utils (0.28-1build1) のトリガを処理しています ...
処理中にエラーが発生しました:
 pinsdaemon</code></pre>



<p class="wp-block-paragraph">pinsdaemon は以下に依存:<br>python3-venv<br>wireless-tools<br>raspi-config<br>特に raspi-config が依存に入っているため、Raspberry Pi環境を想定した機能を含んでいることが分かります。</p>



<p class="wp-block-paragraph">次のパッケージは入っています。<br>pins<br>pins-wandereretasdk<br>pins-plugin-joko<br>pins-plugin-tenmicron<br>pins-plugin-livestack<br>pins-plugin-ninaapi<br>pins-plugin-orbuculum<br>pins-plugin-phd2tools<br>pins-plugin-polaralignment<br>pins-plugin-touch-n-stars<br>pins-plugin-pins<br>indi-bin<br>libindi1<br>libindi-data<br>libindi-dev<br>phd2</p>



<p class="wp-block-paragraph">build-and-install-pins-x64.sh の pinsdaemon を作っている箇所を見てみる。</p>



<pre class="wp-block-code"><code>grep -n -i -C 5 'pinsdaemon' ~/pins/build-and-install-pins-x64.sh
221-    "orbuculum|https://github.com/nitr57/nina.plugin.orbuculum|"
222-    "polaralignment|https://github.com/nitr57/nina.plugin.polaralignment|"
223-    "livestack|https://github.com/nitr57/nina.plugin.livestack|"
224-    "tenmicron|https://github.com/nitr57/NINA.Joko.Plugin.TenMicron|"
225-    "pins-plugin|https://github.com/nitr57/pins.plugin|"
226:    "pinsdaemon|https://github.com/Touch-N-Stars/pinsdaemon|"
227-    "wandereretasdk|https://github.com/nitr57/WandererETASDK|"
228-    "touch-frontend|https://github.com/Touch-N-Stars/Touch-N-Stars|develop"
229-  )
230-
231-  local item
--
1146-  ) &gt; "$CORE_EXCLUDES_FILE"
1147-
1148-  log "Built core package: $deb_path"
1149-}
1150-
1151:build_pinsdaemon_package() {
1152:  log "Building pinsdaemon package"
1153-
1154:  rm -rf pinsdaemon
1155:  git clone https://github.com/Touch-N-Stars/pinsdaemon pinsdaemon
1156-
1157:  pushd pinsdaemon &gt;/dev/null
1158:  mkdir -p build/opt/pinsdaemon
1159-  mkdir -p build/usr/local/bin
1160-  mkdir -p build/etc/systemd/system
1161-  mkdir -p build/etc/sudoers.d
1162-  mkdir -p build/home/$TARGET_USER/pins-scripts
1163-  mkdir -p build/lib/udev/rules.d
1164-  mkdir -p build/DEBIAN
1165-
1166:  cp -r app build/opt/pinsdaemon/
1167:  cp requirements.txt build/opt/pinsdaemon/
1168:  cp README.md build/opt/pinsdaemon/
1169-
1170-  cp scripts/system-upgrade.sh build/usr/local/bin/
1171-  cp scripts/manage-samba.sh build/usr/local/bin/
1172-  cp scripts/wifi-connect.sh build/usr/local/bin/
1173-  cp scripts/wifi-automanage.py build/usr/local/bin/
--
1186-  chmod 755 build/DEBIAN/postinst
1187-  chmod 755 build/DEBIAN/prerm
1188-
1189-  local base_version
1190-  base_version="$(grep '^Version:' packaging/DEBIAN/control | awk '{print $2}')"
1191:  &#91;&#91; -n "$base_version" ]] || fail "Unable to parse pinsdaemon base version"
1192-
1193-  local full_version="${base_version}-${BUILD_NUMBER}"
1194-  sed -i -E "s/^Version:.*/Version: ${full_version}/" build/DEBIAN/control
1195-  sed -i -E "s/^Architecture:.*/Architecture: ${DEB_ARCH}/" build/DEBIAN/control
1196-
1197:  local deb_path="../artifacts/pinsdaemon_${full_version}_${DEB_ARCH}.deb"
1198-  dpkg-deb --root-owner-group --build build "$deb_path"
1199-  sha256sum "$deb_path" &gt; "$deb_path.sha256"
1200-  record_built_deb "$deb_path"
1201-
1202-  popd &gt;/dev/null
1203-
1204:  log "Built pinsdaemon package"
1205-}
1206-
1207-build_wandereretasdk_package() {
1208-  log "Building WandererETASDK package"
1209-
--
2132-  populate_external_bundle
2133-  stage_opencvsharp_runtime_from_nuget
2134-
2135-  determine_versions
2136-  build_core_pins_package
2137:  build_pinsdaemon_package
2138-  build_wandereretasdk_package
2139-  build_plugins
2140-  build_indi_debian_packages
2141-  build_phd2_package
2142-  if is_truthy "$CREATE_FIRMWARE_BUNDLE"; then</code></pre>



<p class="wp-block-paragraph">&#8220;pinsdaemon|https://github.com/Touch-N-Stars/pinsdaemon|&#8221;<br>ここでGitHubから取得しています。<br>build_pinsdaemon_package() {<br>で .deb を作っています。</p>



<p class="wp-block-paragraph">pinsdaemon の DEBIAN/control を見て、どの依存関係を要求しているのかを確認します。</p>



<pre class="wp-block-code"><code>grep -n -E '^(Package|Version|Architecture|Depends|Recommends):' \
  ~/pins/pinsdaemon/packaging/DEBIAN/control
1:Package: pinsdaemon
2:Version: 1.0.6
5:Architecture: arm64
7:Depends: python3, python3-venv, sudo, bash, util-linux, network-manager, wireless-tools, unzip, usbutils, rfkill, iw, iputils-ping, avahi-daemon, raspi-config, locales, keyboard-configuration</code></pre>



<p class="wp-block-paragraph">raspi-config はRaspberry Pi用の設定ツールで、公式リポジトリの実装にもPiのアーキテクチャ・ボード判定が入っています。</p>



<p class="wp-block-paragraph">公式リポジトリ<br><a rel="noopener" target="_blank" href="https://github.com/RPi-Distro/raspi-config/blob/trixie/raspi-config?utm_source=chatgpt.com">https://github.com/RPi-Distro/raspi-config/blob/trixie/raspi-config?utm_source=chatgpt.com</a></p>



<p class="wp-block-paragraph">Raspberry Pi固有の機能は不要なので、今回はpinsdaemonの機能は除外します。</p>



<h3 class="wp-block-heading">build_pinsdaemon_package の呼び出しをスキップさせる</h3>



<p class="wp-block-paragraph">pinsdaemonの機能は除外します。</p>



<p class="wp-block-paragraph">build_pinsdaemon_package の呼び出しだけを、x86_64ではスキップさせます。</p>



<pre class="wp-block-code"><code>  determine_versions
  build_core_pins_package
  # pinsdaemon is Raspberry Pi/ARM64-specific; skip on x86_64
  if &#91;&#91; "$DEB_ARCH" == "arm64" ]]; then
    build_pinsdaemon_package
  fi
  build_wandereretasdk_package
  build_plugins
  build_indi_debian_packages
  build_phd2_package
  if is_truthy "$CREATE_FIRMWARE_BUNDLE"; then
    create_firmware_bundle
  else
    log "Skipping firmware bundle zip creation"
  fi
  install_built_packages
  setup_runtime_prerequisites
  save_successful_build_state

  print_summary
}
</code></pre>



<pre class="wp-block-code"><code>nano build-and-install-pins-x64.sh</code></pre>



<p class="wp-block-paragraph">変更前：</p>



<pre class="wp-block-code"><code>build_core_pins_package
build_pinsdaemon_package
build_wandereretasdk_package</code></pre>



<p class="wp-block-paragraph">変更後：</p>



<pre class="wp-block-code"><code>build_core_pins_package
# pinsdaemon is Raspberry Pi/ARM64-specific; skip on x86_64
if &#91;&#91; "$DEB_ARCH" == "arm64" ]]; then
  build_pinsdaemon_package
fi
build_wandereretasdk_package</code></pre>



<p class="wp-block-paragraph">スクリプトが「作成済み .deb を全部インストール」する仕組みなので、<br>以前作った、artifacts/pinsdaemon_1.0.6-&#8230;.debパッケージをインストールするかもしれません。<br>そこで、今回生成された pinsdaemon のdebだけを削除します。</p>



<pre class="wp-block-code"><code>rm -f artifacts/pinsdaemon_*.deb
rm -f artifacts/pinsdaemon_*.deb.sha256</code></pre>



<p class="wp-block-paragraph">ビルドを再実行</p>



<pre class="wp-block-code"><code>パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了

これらを直すためには 'apt --fix-broken install' を実行する必要があるかもしれません。
以下のパッケージには満たせない依存関係があります:
 pinsdaemon : 依存: python3-venv しかし、インストールされようとしていません
              依存: wireless-tools しかし、インストールすることができません
              依存: raspi-config しかし、インストールされようとしていません
E: 未解決の依存関係です。'apt --fix-broken install' を実行してみてください (または解法を明示してください)。</code></pre>



<pre class="wp-block-code"><code>dpkg -l pinsdaemon
+-- Desired=Unknown/Install/Remove/Purge/Hold
|+- Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
||+ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||| 名前           バージョン       アーキテクチ 説明
+++-==============-================-============-=================================
iU  pinsdaemon     1.0.6-1788846944 amd64        System Upgrade API Daemon</code></pre>



<p class="wp-block-paragraph">pinsdaemon を使わないので、削除します。pinsdaemon を先に除去します。</p>



<pre class="wp-block-code"><code>sudo dpkg --remove --force-remove-reinstreq pinsdaemon
sudo dpkg --configure -a
sudo apt --fix-broken install</code></pre>



<p class="wp-block-paragraph">sudo dpkg &#8211;configure -a ：システム内で未完了となっている全ての設定を自動で片付ける。ソフトウェアのアップデート中にエラーが起きたときの修復手順です。</p>



<pre class="wp-block-code"><code>dpkg -l pinsdaemon
dpkg-query: pinsdaemon に一致するパッケージが見つかりません</code></pre>



<p class="wp-block-paragraph">./build-and-install-pins-x64.sh　を行います。</p>



<h2 class="wp-block-heading">PHD2エラー</h2>



<p class="wp-block-paragraph">phd2をビルド時に、libindiが見つからないと言ってます。</p>



<pre class="wp-block-code"><code>-- Using system's libindi
-- Checking for module 'libindi'
--   Package 'libindi' not found
CMake Error at cmake_modules/FindINDI.cmake:136 (message):
  INDI not found.  Please install INDI and try again.
Call Stack (most recent call first):
  thirdparty/thirdparty.cmake:487 (find_package)
  CMakeLists.txt:125 (include)

==&gt; CMakeCache.txt &lt;==
# This is the CMakeCache file.
# For build in directory: /home/USERNAME/pins-build-src/artifacts/src/phd2/obj-x86_64-linux-gnu
# It was generated by CMake: /usr/bin/cmake
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:</code></pre>



<pre class="wp-block-code"><code>dpkg -l | grep -E 'libindi|indi-bin'
ii  indi-bin                                        2.1.9+1788846944                           amd64        INDI core library, server, and drivers built from upstream v2.1.9
ii  libindi-data                                    2.1.9+1788846944                           amd64        INDI shared data files built from upstream v2.1.9
ii  libindi-dev                                     2.1.9                                      all          Dummy libindi-dev package (local build)
ii  libindi1                                        2.1.9+1788846944                           amd64        INDI runtime shared libraries built from upstream v2.1.9</code></pre>



<p class="wp-block-paragraph">ii libindi-dev 2.1.9 all Dummy libindi-dev package (local build)<br>ダミーバージョンになってます。（なんでやねん）</p>



<p class="wp-block-paragraph">なぜダミーを作るのか、見てみます。</p>



<pre class="wp-block-code"><code>grep -Rni "libindi-dev" ~/pins/build-and-install-pins-x64.sh
1698:    echo "Package: libindi-dev"
1705:    echo "Replaces: libindi-dev (&lt;&lt; $INDI_VERSION)"
1717:  local dev_output="artifacts/libindi-dev_${package_version}_${DEB_ARCH}_${RELEASE_DATE}.deb"
1814:  local equivs_dir="/tmp/libindi-dev-equivs"
1822:Package: libindi-dev
1826:Description: Dummy libindi-dev package (local build)
1833:  run_as_root dpkg -i "$equivs_dir/libindi-dev_${PHD2_INDI_VERSION}_all.deb"

grep -Rni "Dummy libindi-dev" ~/pins ~/pins-build-src 2&gt;/dev/null
/home/USERNAME/pins/artifacts/src/phd2/.github/workflows/build-arm64-deb.yml:84:          Description: Dummy libindi-dev package (CI)
/home/USERNAME/pins/build-and-install-pins-x64.sh.bak:1826:Description: Dummy libindi-dev package (local build)
/home/USERNAME/pins/build-and-install-pins-x64.sh.org:1821:Description: Dummy libindi-dev package (local build)
/home/USERNAME/pins/build-and-install-pins-x64.sh:1826:Description: Dummy libindi-dev package (local build)
/home/USERNAME/pins-build-src/artifacts/src/phd2/.github/workflows/build-arm64-deb.yml:84:          Description: Dummy libindi-dev package (CI)
/home/USERNAME/pins-build-src/build-and-install-pins-x64.sh:1821:Description: Dummy libindi-dev package (local build)</code></pre>



<p class="wp-block-paragraph">1826行目にあります。</p>



<p class="wp-block-paragraph">PHD2 のビルド<br>↓<br>「libindi-dev が必要」と言われる<br>↓<br>equivs でダミー libindi-dev を作る<br>↓<br>依存関係だけ満たす</p>



<p class="wp-block-paragraph">しかし、既にスクリプト自身が、<br>artifacts/libindi-dev_2.1.9+1788846944_amd64.deb<br>という本物の開発パッケージを生成しています。</p>



<p class="wp-block-paragraph">ダミーを作る部分を訂正します。</p>



<pre class="wp-block-code"><code>sed -n '1790,1840p' ~/pins/build-and-install-pins-x64.sh

    if &#91; -f /etc/apt/sources.list.d/ubuntu.sources ]; then \
      sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/ubuntu.sources; \
    elif &#91; -f /etc/apt/sources.list.d/debian.sources ]; then \
      sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.sources; \
    elif &#91; -f /etc/apt/sources.list ]; then \
      sed -i '/^deb /p; s/^deb /deb-src /' /etc/apt/sources.list; \
    fi"
  run_as_root apt-get update

  local projects_home
  projects_home="${HOME}/Projects"
  mkdir -p "$projects_home" "$projects_home/build"

  local indi_core_src="$projects_home/indi-core"
  local indi_core_build="$projects_home/build/indi-core"
  rm -rf "$indi_core_src" "$indi_core_build"
  git clone --depth 1 --branch "v$PHD2_INDI_VERSION" https://github.com/indilib/indi.git "$indi_core_src"
  cmake -S "$indi_core_src" -B "$indi_core_build" \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_BUILD_TYPE=Release
  cmake --build "$indi_core_build" --parallel "$(nproc)"
  run_as_root cmake --install "$indi_core_build"
  run_as_root ldconfig

  local equivs_dir="/tmp/libindi-dev-equivs"
  rm -rf "$equivs_dir"
  mkdir -p "$equivs_dir"
  cat &gt; "$equivs_dir/control" &lt;&lt;EOF
Section: misc
Priority: optional
Standards-Version: 4.7.0

Package: libindi-dev
Version: ${PHD2_INDI_VERSION}
Maintainer: Local Builder &lt;builder@local&gt;
Architecture: all
Description: Dummy libindi-dev package (local build)
 Dummy package to satisfy Build-Depends when INDI is built from source.
EOF
  (
    cd "$equivs_dir"
    equivs-build control
  )
  run_as_root dpkg -i "$equivs_dir/libindi-dev_${PHD2_INDI_VERSION}_all.deb"

  (
    cd "$phd2_src"
    run_as_root mk-build-deps --install --remove \
      --tool "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y" \
      debian/control
  )</code></pre>



<pre class="wp-block-code"><code>  local equivs_dir="/tmp/libindi-dev-equivs"
  rm -rf "$equivs_dir"
  mkdir -p "$equivs_dir"
  cat &gt; "$equivs_dir/control" &lt;&lt;EOF
Section: misc
Priority: optional
Standards-Version: 4.7.0

Package: libindi-dev
Version: ${PHD2_INDI_VERSION}
Maintainer: Local Builder &lt;builder@local&gt;
Architecture: all
Description: Dummy libindi-dev package (local build)
 Dummy package to satisfy Build-Depends when INDI is built from source.
EOF</code></pre>



<p class="wp-block-paragraph">この部分で、PHD2 のビルド依存を満たすために、わざとダミーの libindi-dev を作っています。<br>そして、ダミーをインストールしています。</p>



<pre class="wp-block-code"><code>  run_as_root dpkg -i "$equivs_dir/libindi-dev_${PHD2_INDI_VERSION}_all.deb"</code></pre>



<p class="wp-block-paragraph">ダミーではなく、<br>artifacts/libindi-dev_2.1.9+1788846944_amd64.deb<br>をインストールするように変更するべきです。</p>



<p class="wp-block-paragraph">./build-and-install-pins-x64.shを変更します。</p>



<p class="wp-block-paragraph">変更前：</p>



<pre class="wp-block-code"><code>  cmake --build "$indi_core_build" --parallel "$(nproc)"
  run_as_root cmake --install "$indi_core_build"
  run_as_root ldconfig

  local equivs_dir="/tmp/libindi-dev-equivs"
  rm -rf "$equivs_dir"
  mkdir -p "$equivs_dir"
  cat &gt; "$equivs_dir/control" &lt;&lt;EOF
Section: misc
Priority: optional
Standards-Version: 4.7.0

Package: libindi-dev
Version: ${PHD2_INDI_VERSION}
Maintainer: Local Builder &lt;builder@local&gt;
Architecture: all
Description: Dummy libindi-dev package (local build)
 Dummy package to satisfy Build-Depends when INDI is built from source.
EOF
  (
    cd "$equivs_dir"
    equivs-build control
  )
  run_as_root dpkg -i "$equivs_dir/libindi-dev_${PHD2_INDI_VERSION}_all.deb"

  (
    cd "$phd2_src"
    run_as_root mk-build-deps --install --remove \
      --tool "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y" \
      debian/control
  )</code></pre>



<p class="wp-block-paragraph">変更後：上記ブロック以下に変更します。</p>



<pre class="wp-block-code"><code>  cmake --build "$indi_core_build" --parallel "$(nproc)"
  run_as_root cmake --install "$indi_core_build"
  run_as_root ldconfig

  local libindi_dev_deb
  libindi_dev_deb="$(find artifacts -maxdepth 1 -type f -name "libindi-dev_*_${DEB_ARCH}_*.deb" | sort -V | tail -1)"
  &#91;&#91; -n "$libindi_dev_deb" ]] || fail "libindi-dev package not found"

  run_as_root dpkg -i "$libindi_dev_deb"

  (
    cd "$phd2_src"
    run_as_root mk-build-deps --install --remove \
      --tool "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y" \
      debian/control
  )</code></pre>



<p class="wp-block-paragraph">PHD2 のビルド部分には、<br>必要な依存パッケージを揃える処理を加えます。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">mk-build-deps<br>↓<br>PHD2 の debian/control を読む<br>↓<br>必要なビルド依存パッケージを解析<br>↓<br>一時的な依存パッケージを生成<br>↓<br>apt-get で依存パッケージをインストール<br>↓<br>&#8211;remove により一時メタパッケージを削除</p>
</div>



<p class="wp-block-paragraph"></p>



<pre class="wp-block-code"><code>sudo dpkg --remove libindi-dev
dpkg: 依存関係の問題により、libindi-dev の削除ができません:
 phd2-build-deps は以下に依存 (depends) します: libindi-dev (&gt;= 2.0).

dpkg: パッケージ libindi-dev の処理中にエラーが発生しました (--remove):
 依存関係の問題 - 削除しません
処理中にエラーが発生しました:
 libindi-dev</code></pre>



<pre class="wp-block-code"><code>sudo dpkg --remove phd2-build-deps
sudo dpkg --remove libindi-dev</code></pre>



<p class="wp-block-paragraph">確認します。</p>



<pre class="wp-block-code"><code>dpkg -l libindi-dev
dpkg-query: libindi-dev に一致するパッケージが見つかりません</code></pre>



<p class="wp-block-paragraph">./build-and-install-pins-x64.sh再実行</p>



<h2 class="wp-block-heading">libindi-dev のバージョンが libindi1 と一致しない</h2>



<pre class="wp-block-code"><code>以前に未選択のパッケージ libindi-dev を選択しています。
(データベースを読み込んでいます ... 現在 229568 個のファイルとディレクトリがインストールされています。)
.../libindi-dev_2.1.9+1788858200_amd64_08092026.deb を展開する準備をしています ...
libindi-dev (2.1.9+1788858200) を展開しています...
dpkg: 依存関係の問題により libindi-dev の設定ができません:
 libindi-dev は以下に依存 (depends) します: libindi1 (= 2.1.9+1788858200) ...しかし:
  システム上の libindi1 のバージョンは 2.1.9+1788846944 です。

dpkg: パッケージ libindi-dev の処理中にエラーが発生しました (--install):
 依存関係の問題 - 設定を見送ります
処理中にエラーが発生しました:
 libindi-dev</code></pre>



<p class="wp-block-paragraph">libindi-dev のバージョンが libindi1 と一致していません。<br>build_indi_debian_packages<br>↓<br>libindi1 = 2.1.9+1788846944<br>libindi-dev = 2.1.9+1788858200libindi1 が古い</p>



<pre class="wp-block-code"><code>dpkg -l | grep -E '^ii  (libindi1|libindi-dev|indi-bin|libindi-data)'
ii  indi-bin                                        2.1.9+1788846944                           amd64        INDI core library, server, and drivers built from upstream v2.1.9
ii  libindi-data                                    2.1.9+1788846944                           amd64        INDI shared data files built from upstream v2.1.9
ii  libindi1                                        2.1.9+1788846944                           amd64        INDI runtime shared libraries built from upstream v2.1.9</code></pre>



<p class="wp-block-paragraph">あら、そろってる。。。でも、</p>



<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<p class="wp-block-paragraph">libindi-dev 未インストール<br>今回スクリプトがインストールしようとした libindi-dev は、<br>2.1.9+1788858200</p>
</div>



<pre class="wp-block-code"><code>ls -l artifacts/indi-bin_*.deb
ls -l artifacts/libindi1_*.deb
ls -l artifacts/libindi-data_*.deb
ls -l artifacts/libindi-dev_*.deb</code></pre>



<pre class="wp-block-code"><code>artifacts/indi-bin_2.1.9+1788846944_amd64_08092026.deb
artifacts/libindi1_2.1.9+1788846944_amd64_08092026.deb
artifacts/libindi-data_2.1.9+1788846944_amd64_08092026.deb
artifacts/libindi-dev_2.1.9+1788846944_amd64_08092026.deb</code></pre>



<p class="wp-block-paragraph">古い libindi-dev が残っていたのではなく、build_phd2_package が別の libindi-dev を拾っています。</p>



<pre class="wp-block-code"><code>dpkg -l libindi-dev
+-- Desired=Unknown/Install/Remove/Purge/Hold
|+- Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
||+ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||| 名前           バージョン       アーキテクチ 説明
+++-==============-================-============-======================================================================
iU  libindi-dev    2.1.9+1788858200 amd64        INDI development headers and build metadata built from upstream v2.1.9</code></pre>



<p class="wp-block-paragraph"> iU の意味は、<br>i = インストールする。<br>U = Unpacked（展開済み）だが、設定（configure）されていない。</p>



<p class="wp-block-paragraph">古い iU を削除します。<br>依存関係で phd2-build-deps が残っていると削除できないので、</p>



<pre class="wp-block-code"><code>sudo dpkg --remove phd2-build-deps
sudo dpkg --remove libindi-dev</code></pre>



<p class="wp-block-paragraph">古い3パッケージを、新しいビルドでまとめて置き換えます。<br>再実行前にやること：</p>



<pre class="wp-block-code"><code>sudo dpkg --remove phd2-build-deps 2&gt;/dev/null || true
sudo dpkg --remove libindi-dev 2&gt;/dev/null || true</code></pre>



<p class="wp-block-paragraph">既存の古い INDI パッケージも削除します。</p>



<pre class="wp-block-code"><code>sudo dpkg --remove indi-bin libindi1 libindi-data</code></pre>



<p class="wp-block-paragraph">削除を確認します。</p>



<pre class="wp-block-code"><code>dpkg -l | grep -E '^ii  (indi-bin|libindi1|libindi-data|libindi-dev)'
何も表示がなければ、削除できている。</code></pre>



<p class="wp-block-paragraph">スクリプトを再実行</p>



<pre class="wp-block-code"><code>./build-and-install-pins-x64.sh</code></pre>



<h3 class="wp-block-heading">build_phd2_package() を修正</h3>



<pre class="wp-block-code"><code>dpkg: 依存関係の問題により libindi-dev の設定ができません:
 libindi-dev は以下に依存 (depends) します: libindi1 (= 2.1.9+1788864166) ...しかし:
  パッケージ libindi1 はまだインストールされていません。</code></pre>



<p class="wp-block-paragraph">libindi1を入れてから、libindi-devをインストールするはずが、逆になっています。</p>



<p class="wp-block-paragraph">build-and-install-pins-x64.shにある1814行付近、 <br><code>local libindi1_deb</code><br>run_as_root dpkg -i &#8220;$libindi1_deb&#8221;<br>追加します。</p>



<pre class="wp-block-code"><code>  cmake --build "$indi_core_build" --parallel "$(nproc)"
  run_as_root cmake --install "$indi_core_build"
  run_as_root ldconfig

  local libindi1_deb
  libindi1_deb="$(find artifacts -maxdepth 1 -type f -name "libindi1_*_${DEB_ARCH}_*.deb" | sort -V | tail -1)"
  &#91;&#91; -n "$libindi1_deb" ]] || fail "libindi1 package not found"
  
  local libindi_dev_deb
  libindi_dev_deb="$(find artifacts -maxdepth 1 -type f -name "libindi-dev_*_${DEB_ARCH}_*.deb" | sort -V | tail -1)"
  &#91;&#91; -n "$libindi_dev_deb" ]] || fail "libindi-dev package not found"

  run_as_root dpkg -i "$libindi1_deb"
  run_as_root dpkg -i "$libindi_dev_deb"

  (
    cd "$phd2_src"
    run_as_root mk-build-deps --install --remove \
      --tool "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y" \
      debian/control
  )
</code></pre>



<pre class="wp-block-code"><code>エラー
zip はすでに最新バージョン (3.0-15ubuntu3) です。
zlib1g-dev はすでに最新バージョン (1:1.3.dfsg+really1.3.1-1ubuntu3.1) です。
これらを直すためには 'apt --fix-broken install' を実行する必要があるかもしれません。
以下のパッケージには満たせない依存関係があります:
 libindi-dev : 依存: libindi1 (= 2.1.9+1788864166) しかし、インストールすることができません
E: 未解決の依存関係です。'apt --fix-broken install' を実行してみてください (または解法を明示してください)。</code></pre>



<pre class="wp-block-code"><code>grep -n -A20 -B5 'local libindi1_deb' ~/pins/build-and-install-pins-x64.sh
1809-    -DCMAKE_BUILD_TYPE=Release
1810-  cmake --build "$indi_core_build" --parallel "$(nproc)"
1811-  run_as_root cmake --install "$indi_core_build"
1812-  run_as_root ldconfig
1813-
1814:  local libindi1_deb
1815-  libindi1_deb="$(find artifacts -maxdepth 1 -type f -name "libindi1_*_${DEB_ARCH}_*.deb" | sort -V | tail -1)"
1816-  &#91;&#91; -n "$libindi1_deb" ]] || fail "libindi1 package not found"
1817-  
1818-  local libindi_dev_deb
1819-  libindi_dev_deb="$(find artifacts -maxdepth 1 -type f -name "libindi-dev_*_${DEB_ARCH}_*.deb" | sort -V | tail -1)"
1820-  &#91;&#91; -n "$libindi_dev_deb" ]] || fail "libindi-dev package not found"
1821-
1822-  run_as_root dpkg -i "$libindi1_deb"
1823-  run_as_root dpkg -i "$libindi_dev_deb"
1824-
1825-  (
1826-    cd "$phd2_src"
1827-    run_as_root mk-build-deps --install --remove \
1828-      --tool "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y" \
1829-      debian/control
1830-  )
1831-
1832-  ensure_opencv_required_version
1833-
1834-  if is_truthy "$PHD2_BUILD_INDI_3RDPARTY"; then</code></pre>



<p class="wp-block-paragraph">この2行が変更対象です。<br>libindi1_deb=&#8221;$(find artifacts -maxdepth 1 -type f -name &#8220;libindi1_*_${DEB_ARCH}_*.deb&#8221; | sort -V | tail -1)&#8221;</p>



<p class="wp-block-paragraph">libindi_dev_deb=&#8221;$(find artifacts -maxdepth 1 -type f -name &#8220;libindi-dev_*_${DEB_ARCH}_*.deb&#8221; | sort -V | tail -1)&#8221;</p>



<p class="wp-block-paragraph">*でバージョンを指定しているため、artifacts に古い .deb が残っていると、それを拾う可能性があります。</p>



<p class="wp-block-paragraph">1814〜1823行を置き換え</p>



<p class="wp-block-paragraph">変更前：</p>



<pre class="wp-block-code"><code>  local libindi1_deb
  libindi1_deb="$(find artifacts -maxdepth 1 -type f -name "libindi1_*_${DEB_ARCH}_*.deb" | sort -V | tail -1)"
  &#91;&#91; -n "$libindi1_deb" ]] || fail "libindi1 package not found"
  
  local libindi_dev_deb
  libindi_dev_deb="$(find artifacts -maxdepth 1 -type f -name "libindi-dev_*_${DEB_ARCH}_*.deb" | sort -V | tail -1)"
  &#91;&#91; -n "$libindi_dev_deb" ]] || fail "libindi-dev package not found"

  run_as_root dpkg -i "$libindi1_deb"
  run_as_root dpkg -i "$libindi_dev_deb"</code></pre>



<p class="wp-block-paragraph">変更後：</p>



<pre class="wp-block-code"><code>  local libindi_package_version="${INDI_VERSION}+${BUILD_NUMBER}"

  local libindi1_deb
  libindi1_deb="$(find artifacts -maxdepth 1 -type f \
    -name "libindi1_${libindi_package_version}_${DEB_ARCH}_*.deb" \
    | head -1)"
  &#91;&#91; -n "$libindi1_deb" ]] || fail "libindi1 package not found: version=$libindi_package_version"

  local libindi_dev_deb
  libindi_dev_deb="$(find artifacts -maxdepth 1 -type f \
    -name "libindi-dev_${libindi_package_version}_${DEB_ARCH}_*.deb" \
    | head -1)"
  &#91;&#91; -n "$libindi_dev_deb" ]] || fail "libindi-dev package not found: version=$libindi_package_version"

  run_as_root dpkg -i "$libindi1_deb"
  run_as_root dpkg -i "$libindi_dev_deb"
</code></pre>



<p class="wp-block-paragraph">一度クリーンにして再実行します。</p>



<pre class="wp-block-code"><code>sudo dpkg --remove libindi-dev</code></pre>



<p class="wp-block-paragraph">古いindi debを削除します。</p>



<pre class="wp-block-code"><code>rm -f artifacts/indi-bin_*.deb
rm -f artifacts/libindi1_*.deb
rm -f artifacts/libindi-data_*.deb
rm -f artifacts/libindi-dev_*.deb</code></pre>



<p class="wp-block-paragraph">削除確認</p>



<pre class="wp-block-code"><code>dpkg -l | grep -E '^ii  (libindi1|libindi-dev|indi-bin|libindi-data)'</code></pre>



<p class="wp-block-paragraph">PINSビルドインストール、再開</p>



<pre class="wp-block-code"><code>./build-and-install-pins-x64.sh</code></pre>



<pre class="wp-block-code"><code>&#91;INFO] PHD2 service auto-start disabled (set PHD2_AUTOSTART_SERVICE=true to enable)
&#91;INFO] Installed 16 package(s)
&#91;INFO] Applying runtime prerequisites from BUILD_PINS.md
&#91;INFO] Setting up Offline Sky Map Cache (FramingAssistantCache)
  % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                 Dload  Upload  Total   Spent   Left   Speed
  0  3.28G   0  5.75M   0      0 223.6k      0 4:16:39   00:26 4:16:13 376.2k</code></pre>



<p class="wp-block-paragraph">3.28 GB の Offline Sky Map Cache をダウンロード中なので、中座します。<br>4時間くらいかかるかな。Zzz&#8230;&#8230;&#8230;</p>



<p class="wp-block-paragraph">インストールログ。パスワード入力を求められていたようだ。</p>



<pre class="wp-block-code"><code>&#91;INFO] PHD2 service auto-start disabled (set PHD2_AUTOSTART_SERVICE=true to enable)
&#91;INFO] Installed 16 package(s)
&#91;INFO] Applying runtime prerequisites from BUILD_PINS.md
&#91;INFO] Setting up Offline Sky Map Cache (FramingAssistantCache)
  % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                 Dload  Upload  Total   Spent   Left   Speed
100  3.28G 100  3.28G   0      0 471.4k      0 2:01:45 2:01:45         434.7k
&#91;sudo: authenticate] パスワード: 
sudo: timed out
&#91;INFO] FramingAssistant cache installed at: /home/USERNAME/.local/share/NINA/FramingAssistantCache
&#91;INFO] Setting up ASTAP
&#91;sudo: authenticate] パスワード: 
sudo: timed out
&#91;sudo: authenticate] パスワード: 
sudo: timed out
&#91;WARN] ASTAP not found in apt and ASTAP_CLI_SOURCE is not set
&#91;WARN] Set ASTAP_CLI_SOURCE to a local astap_cli binary to install manually
&#91;WARN] Failed to set up ASTAP
&#91;WARN] Runtime setup completed with 1 warning(s)
&#91;INFO] Build and install completed

Release: v08092026-1788872749
Artifacts:
  - /home/USERNAME/pins-build-src/artifacts/indi-bin_2.1.9+1788872749_amd64_08092026.deb
  - /home/USERNAME/pins-build-src/artifacts/libindi1_2.1.9+1788872749_amd64_08092026.deb
  - /home/USERNAME/pins-build-src/artifacts/libindi-data_2.1.9+1788872749_amd64_08092026.deb
  - /home/USERNAME/pins-build-src/artifacts/libindi-dev_2.1.9+1788872749_amd64_08092026.deb
  - /home/USERNAME/pins-build-src/artifacts/phd2_2.6.14-1788872779_amd64.deb
  - /home/USERNAME/pins-build-src/artifacts/pins_3.3.0.1057-nightly+1788872749_amd64_08092026.deb
  - /home/USERNAME/pins-build-src/artifacts/pins-wandereretasdk_3.3.0.1057-nightly+1788872749_amd64_08092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-joko_4.0.0.17+1788872749_amd64_08092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-livestack_1.0.1.2+1788872749_amd64_08092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-ninaapi_2.2.15.2+1788872749_amd64_08092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-orbuculum_2.0.0.2+1788872749_amd64_08092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-phd2tools_1.0.5.3+1788872749_amd64_08092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-pins_1.0.3.0+1788872749_amd64_08092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-polaralignment_2.2.3.4+1788872749_amd64_08092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-tenmicron_3.0.0.13+1788872749_amd64_08092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-touch-n-stars_1.4.0.1+1788872749_amd64_08092026.deb</code></pre>



<p class="wp-block-paragraph">indi関連を確認します。</p>



<pre class="wp-block-code"><code>dpkg -l | grep -E '^ii  (libindi1|libindi-dev|indi-bin|libindi-data)'
ii  indi-bin      2.1.9+1788872749  amd64    INDI core library, server, and drivers built from upstream v2.1.9
ii  libindi-data  2.1.9+1788872749  amd64    INDI shared data files built from upstream v2.1.9
ii  libindi-dev   2.1.9+1788872749  amd64    INDI development headers and build metadata built from upstream v2.1.9
ii  libindi1      2.1.9+1788872749  amd64    INDI runtime shared libraries built from upstream v2.1.9</code></pre>



<pre class="wp-block-code"><code>pkg-config --modversion libindi
2.1.9</code></pre>



<p class="wp-block-paragraph">INDI liblary 関連はインストールできました。</p>



<h3 class="wp-block-heading">ASTAP 落ち穂ひろい</h3>



<p class="wp-block-paragraph">次は、寝ていた間にパスワードを入力できずに、時間切れになってしまった、ASTAPをインストールし直します。</p>



<pre class="wp-block-code"><code>&#91;WARN] ASTAP not found in apt and ASTAP_CLI_SOURCE is not set
&#91;WARN] Set ASTAP_CLI_SOURCE to a local astap_cli binary to install manually
&#91;WARN] Failed to set up ASTAP
&#91;WARN] Runtime setup completed with 1 warning(s)
&#91;INFO] Build and install completed</code></pre>



<p class="wp-block-paragraph">ASTAP は、天体画像のプレートソルビング（Plate Solving）を行うソフトウェアです。<br>ASTAP は、N.I.N.Aでのプレートソルビングを行います。天体の導入と、修正を行います。</p>



<pre class="wp-block-code"><code>sudo -v</code></pre>



<p class="wp-block-paragraph">vオプション：-v(validate) 保存された認証情報（タイムスタンプ）を更新します。<br>パスワードを入力しておきます。sudoがパスワード入力を一定時間、持っているらしいです。</p>



<p class="wp-block-paragraph">ビルドインストールスクリプトを再開</p>



<pre class="wp-block-code"><code>./build-and-install-pins-x64.sh</code></pre>



<p class="wp-block-paragraph">1時間経つと無効になるらしく、パスワード入力を行いました。</p>



<p class="wp-block-paragraph">ダウンロードにかかる時間を見計らって、ダウンロード状況を見ました。なんともアナログな対応</p>



<pre class="wp-block-code"><code>&#91;INFO] PHD2 service auto-start disabled (set PHD2_AUTOSTART_SERVICE=true to enable)
&#91;INFO] Installed 16 package(s)
&#91;INFO] Applying runtime prerequisites from BUILD_PINS.md
&#91;INFO] Setting up Offline Sky Map Cache (FramingAssistantCache)
  % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                 Dload  Upload  Total   Spent   Left   Speed
100  3.28G 100  3.28G   0      0 652.5k      0 1:27:58 1:27:58         602.5k
&#91;sudo: authenticate] パスワード:          
&#91;INFO] FramingAssistant cache installed at: /home/USERNAME/.local/share/NINA/FramingAssistantCache
&#91;INFO] Setting up ASTAP
ヒット:1 https://deb.nodesource.com/node_22.x nodistro InRelease
ヒット:2 http://jp.archive.ubuntu.com/ubuntu resolute InRelease                                                                                                             
ヒット:3 http://security.ubuntu.com/ubuntu resolute-security InRelease                                                                                                      
取得:4 http://jp.archive.ubuntu.com/ubuntu resolute-updates InRelease &#91;137 kB]
取得:5 https://packages.microsoft.com/ubuntu/26.04/prod resolute InRelease &#91;3,964 B]
取得:6 https://packages.microsoft.com/ubuntu/26.04/prod resolute/main amd64 Packages &#91;54.4 kB]
取得:7 https://packages.microsoft.com/ubuntu/26.04/prod resolute/main arm64 Packages &#91;47.3 kB]
ヒット:8 http://jp.archive.ubuntu.com/ubuntu resolute-backports InRelease
取得:9 http://jp.archive.ubuntu.com/ubuntu resolute-updates/main Sources &#91;298 kB]
取得:10 http://jp.archive.ubuntu.com/ubuntu resolute-updates/main amd64 Packages &#91;601 kB]
取得:11 http://jp.archive.ubuntu.com/ubuntu resolute-updates/universe amd64 Packages &#91;268 kB]
1,410 kB を 3秒 で取得しました (464 kB/s)                   
パッケージリストを読み込んでいます... 完了
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
Solving dependencies... 完了
以下の追加パッケージがインストールされます:
  libqt5pas1 libqt5printsupport5t64 libqt5x11extras5 libraw-bin
以下のパッケージが新たにインストールされます:
  astap libqt5pas1 libqt5printsupport5t64 libqt5x11extras5 libraw-bin
アップグレード: 0 個、新規インストール: 5 個、削除: 0 個、保留: 53 個。
4,390 kB のアーカイブを取得する必要があります。
この操作後に追加で 14.4 MB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu resolute/universe amd64 libqt5printsupport5t64 amd64 5.15.18+dfsg-1ubuntu1 &#91;209 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu resolute/universe amd64 libqt5x11extras5 amd64 5.15.18-1 &#91;11.0 kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu resolute/universe amd64 libqt5pas1 amd64 4.4+dfsg-1 &#91;521 kB]
取得:4 http://jp.archive.ubuntu.com/ubuntu resolute-updates/universe amd64 libraw-bin amd64 0.21.5b-1ubuntu1.1 &#91;50.2 kB]
取得:5 http://jp.archive.ubuntu.com/ubuntu resolute/universe amd64 astap amd64 2024.11.13-1 &#91;3,599 kB]
4,390 kB を 3秒 で取得しました (1,415 kB/s)
以前に未選択のパッケージ libqt5printsupport5t64:amd64 を選択しています。
(データベースを読み込んでいます ... 現在 229706 個のファイルとディレクトリがインストールされています。)
.../libqt5printsupport5t64_5.15.18+dfsg-1ubuntu1_amd64.deb を展開する準備をしています ...
libqt5printsupport5t64:amd64 (5.15.18+dfsg-1ubuntu1) を展開しています...
以前に未選択のパッケージ libqt5x11extras5:amd64 を選択しています。
.../libqt5x11extras5_5.15.18-1_amd64.deb を展開する準備をしています ...
libqt5x11extras5:amd64 (5.15.18-1) を展開しています...
以前に未選択のパッケージ libqt5pas1:amd64 を選択しています。
.../libqt5pas1_4.4+dfsg-1_amd64.deb を展開する準備をしています ...
libqt5pas1:amd64 (4.4+dfsg-1) を展開しています...
以前に未選択のパッケージ libraw-bin を選択しています。
.../libraw-bin_0.21.5b-1ubuntu1.1_amd64.deb を展開する準備をしています ...
libraw-bin (0.21.5b-1ubuntu1.1) を展開しています...
以前に未選択のパッケージ astap を選択しています。
.../astap_2024.11.13-1_amd64.deb を展開する準備をしています ...
astap (2024.11.13-1) を展開しています...
libraw-bin (0.21.5b-1ubuntu1.1) を設定しています ...
libqt5x11extras5:amd64 (5.15.18-1) を設定しています ...
libqt5printsupport5t64:amd64 (5.15.18+dfsg-1ubuntu1) を設定しています ...
libqt5pas1:amd64 (4.4+dfsg-1) を設定しています ...
astap (2024.11.13-1) を設定しています ...
libc-bin (2.43-2ubuntu2.3) のトリガを処理しています ...
&#91;INFO] ASTAP available at: /usr/bin/astap
&#91;WARN] ASTAP star database files are still required and must be installed separately
&#91;INFO] Runtime prerequisites setup completed
&#91;INFO] Build and install completed

Release: v09092026-1788910328
Artifacts:
  - /home/USERNAME/pins-build-src/artifacts/indi-bin_2.1.9+1788910328_amd64_09092026.deb
  - /home/USERNAME/pins-build-src/artifacts/libindi1_2.1.9+1788910328_amd64_09092026.deb
  - /home/USERNAME/pins-build-src/artifacts/libindi-data_2.1.9+1788910328_amd64_09092026.deb
  - /home/USERNAME/pins-build-src/artifacts/libindi-dev_2.1.9+1788910328_amd64_09092026.deb
  - /home/USERNAME/pins-build-src/artifacts/phd2_2.6.14-1788910358_amd64.deb
  - /home/USERNAME/pins-build-src/artifacts/pins_3.3.0.1057-nightly+1788910328_amd64_09092026.deb
  - /home/USERNAME/pins-build-src/artifacts/pins-wandereretasdk_3.3.0.1057-nightly+1788910328_amd64_09092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-joko_4.0.0.17+1788910328_amd64_09092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-livestack_1.0.1.2+1788910328_amd64_09092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-ninaapi_2.2.15.2+1788910328_amd64_09092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-orbuculum_2.0.0.2+1788910328_amd64_09092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-phd2tools_1.0.5.3+1788910328_amd64_09092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-pins_1.0.3.0+1788910328_amd64_09092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-polaralignment_2.2.3.4+1788910328_amd64_09092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-tenmicron_3.0.0.13+1788910328_amd64_09092026.deb
  - /home/USERNAME/pins-build-src/artifacts/plugins/pins-plugin-touch-n-stars_1.4.0.1+1788910328_amd64_09092026.deb</code></pre>



<p class="wp-block-paragraph">インストール完了！！　ようやく。。。</p>



<h2 class="wp-block-heading">使い方は？</h2>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">PINSを入れたPCのブラウザから、<br>http://127.0.0.1:5000<br><br>若しくは、他のPCから<br>http://NINA PC アドレス:5000</p>



<p class="wp-block-paragraph">PINS設定画面になります。</p>
</div>



<p class="wp-block-paragraph">PCのブラウザから、</p>



<pre class="wp-block-code"><code>http:&#47;&#47;127.0.0.1:5000</code></pre>



<pre class="wp-block-code"><code>http://NINA PC アドレス:5000</code></pre>



<p class="wp-block-paragraph">これで各種設定が行えるようです。</p>



<p class="wp-block-paragraph">NINA/PINS にどう接続して使うかを確認します。ポートを見ます。<br>この作業を初めたら、「N.I.N.Aをコマンドで単独に起動できる」と思い込んでしまった。</p>



<pre class="wp-block-code"><code>systemctl list-units --type=service | grep -Ei 'pins|nina|touch|stars'
  pins.service   loaded active running NINA Service

ps aux | grep -Ei 'pins|nina|touch' | grep -v grep
USERNAME    434153  2.3  1.1 69040056 349192 ?     Ssl  08:55   2:16 /home/USERNAME/pins/NINA</code></pre>



<p class="wp-block-paragraph">ポート番号が、サイトの一番下にある。。。<br><a rel="noopener" target="_blank" href="https://touch-n-stars.eu/">https://touch-n-stars.eu/</a><br>5000辺りを使うのかな、見てみます。NINA APIなどはネット検索しました。</p>



<pre class="wp-block-code"><code>sudo ss -lntp | grep -E 'NINA|pins|dotnet|1888|5000'
LISTEN 0      512          0.0.0.0:4782      0.0.0.0:*    users:(("NINA",pid=434153,fd=382))        
LISTEN 0      500                *:5000            *:*    users:(("NINA",pid=434153,fd=452))        
LISTEN 0      500                *:1889            *:*    users:(("NINA",pid=434153,fd=499))        
LISTEN 0      500                *:1888            *:*    users:(("NINA",pid=434153,fd=421))</code></pre>



<p class="wp-block-paragraph">NINA（PID 434153）は、4つのポートで待ち受け中です。<br>ポート ：状態 　　：用途<br>4782 ：LISTEN  ：NINA内部/デバイス通信など<br>5000 ：LISTEN  ：Webインターフェース<br>1888 ：LISTEN  ：NINA API<br>1889 ：LISTEN  ：API関連の別エンドポイント等</p>



<p class="wp-block-paragraph">PCのブラウザから、</p>



<pre class="wp-block-code"><code>http:&#47;&#47;127.0.0.1:5000</code></pre>



<pre class="wp-block-code"><code>http://NINA PC アドレス:5000</code></pre>



<p class="wp-block-paragraph">Setup Assistant が表示されました。</p>



<p class="wp-block-paragraph">5000番でWebサービスが正常に動いていることを確認します。</p>



<pre class="wp-block-code"><code>curl -I http://127.0.0.1:5000
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, X-Suppress-Toast-404, X-Requested-With, X-Bahtinov-Metadata
Access-Control-Allow-Origin: *
Vary: Accept-Encoding
Content-Encoding: identity
ETag: "ACp3sQIO3wgPA4AAAAAAAA"
Last-Modified: Tue, 08 Sep 2026 23:41:24 GMT
Cache-Control: max-age=0, must-revalidate
Accept-Ranges: bytes
Content-Type: text/html; charset=utf-8
Server: EmbedIO/3.5.2
Date: Wed, 09 Sep 2026 03:02:59 GMT
Content-Length: 0
Connection: keep-alive
Keep-Alive: timeout=15,max=100</code></pre>



<p class="wp-block-paragraph">NINAプロセスにGUIがある構成なのか、Web版として動かしている構成なのかを確認します。</p>



<pre class="wp-block-code"><code>file /home/USERNAME/pins/NINA
/home/USERNAME/pins/NINA: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID&#91;sha1]=93c65abf3ff66427178d065d36972e8969f06f4e, stripped</code></pre>



<p class="wp-block-paragraph">インストールされているパッケージを確認</p>



<pre class="wp-block-code"><code>dpkg -l | grep -E '^ii.*pins'
ii  pins                                            3.3.0.1057-nightly+1788910328              amd64        Pins build for Ubuntu x64
ii  pins-plugin-joko                                4.0.0.17+1788910328                        amd64        NINA plugin package for joko.nina.plugins
ii  pins-plugin-livestack                           1.0.1.2+1788910328                         amd64        NINA plugin package for LiveStack
ii  pins-plugin-ninaapi                             2.2.15.2+1788910328                        amd64        NINA plugin package for ninaAPI
ii  pins-plugin-orbuculum                           2.0.0.2+1788910328                         amd64        NINA plugin package for Orbuculum
ii  pins-plugin-phd2tools                           1.0.5.3+1788910328                         amd64        NINA plugin package for Phd2 Tools
ii  pins-plugin-pins                                1.0.3.0+1788910328                         amd64        NINA plugin package for pins.plugin
ii  pins-plugin-polaralignment                      2.2.3.4+1788910328                         amd64        NINA plugin package for PolarAlignment
ii  pins-plugin-tenmicron                           3.0.0.13+1788910328                        amd64        NINA plugin package for NINA.Joko.Plugin.TenMicron
ii  pins-plugin-touch-n-stars                       1.4.0.1+1788910328                         amd64        NINA plugin package for Touch-N-Stars
ii  pins-wandereretasdk                             3.3.0.1057-nightly+1788910328              amd64        WandererETA SDK shared library package

pkg -L pins 2&gt;/dev/null | head -100
/.
/etc
/etc/systemd
/etc/systemd/system
/etc/systemd/system/pins.service
/home
/home/USERNAME
/home/USERNAME/pins
/home/USERNAME/pins/.install_path
/home/USERNAME/pins/ASCOM.Alpaca.Device.dll
/home/USERNAME/pins/ASCOM.Alpaca.dll
/home/USERNAME/pins/ASCOM.Com.dll
/home/USERNAME/pins/ASCOM.Common.dll
/home/USERNAME/pins/ASCOM.Exceptions.dll
/home/USERNAME/pins/ASCOM.Tools.dll
/home/USERNAME/pins/Accord.Math.Core.dll
/home/USERNAME/pins/Accord.Math.dll
/home/USERNAME/pins/Accord.Statistics.dll
/home/USERNAME/pins/Accord.dll
/home/USERNAME/pins/Accord.dll.config
/home/USERNAME/pins/AsyncEnumerable.dll
/home/USERNAME/pins/Castle.Core.AsyncInterceptor.dll
/home/USERNAME/pins/Castle.Core.dll
/home/USERNAME/pins/CommandLine.dll
/home/USERNAME/pins/CommunityToolkit.Mvvm.dll
/home/USERNAME/pins/CsvHelper.dll
/home/USERNAME/pins/Database
/home/USERNAME/pins/Database/Initial
/home/USERNAME/pins/Database/Initial/initial_data.sql
/home/USERNAME/pins/Database/Initial/initial_schema.sql
/home/USERNAME/pins/Database/Migration
/home/USERNAME/pins/Database/Migration/1.sql
/home/USERNAME/pins/Database/Migration/10.sql
/home/USERNAME/pins/Database/Migration/11.sql
/home/USERNAME/pins/Database/Migration/12.sql
/home/USERNAME/pins/Database/Migration/13.sql
/home/USERNAME/pins/Database/Migration/14.sql
/home/USERNAME/pins/Database/Migration/15.sql
/home/USERNAME/pins/Database/Migration/16.sql
/home/USERNAME/pins/Database/Migration/2.sql
/home/USERNAME/pins/Database/Migration/3.sql
/home/USERNAME/pins/Database/Migration/5.sql
/home/USERNAME/pins/Database/Migration/6.sql
/home/USERNAME/pins/Database/Migration/7.sql
/home/USERNAME/pins/Database/Migration/8.sql
/home/USERNAME/pins/Database/Migration/9.sql
/home/USERNAME/pins/EntityFramework.SqlServer.dll
/home/USERNAME/pins/EntityFramework.dll
/home/USERNAME/pins/ExtendedNumerics.BigDecimal.dll
/home/USERNAME/pins/External
/home/USERNAME/pins/External/.git
/home/USERNAME/pins/External/.git/HEAD
/home/USERNAME/pins/External/.git/config
/home/USERNAME/pins/External/.git/description
/home/USERNAME/pins/External/.git/hooks
/home/USERNAME/pins/External/.git/hooks/applypatch-msg.sample
/home/USERNAME/pins/External/.git/hooks/commit-msg.sample
/home/USERNAME/pins/External/.git/hooks/fsmonitor-watchman.sample
/home/USERNAME/pins/External/.git/hooks/post-checkout
/home/USERNAME/pins/External/.git/hooks/post-commit
/home/USERNAME/pins/External/.git/hooks/post-merge
/home/USERNAME/pins/External/.git/hooks/post-update.sample
/home/USERNAME/pins/External/.git/hooks/pre-applypatch.sample
/home/USERNAME/pins/External/.git/hooks/pre-commit.sample
/home/USERNAME/pins/External/.git/hooks/pre-merge-commit.sample
/home/USERNAME/pins/External/.git/hooks/pre-push
/home/USERNAME/pins/External/.git/hooks/pre-push.sample
/home/USERNAME/pins/External/.git/hooks/pre-rebase.sample
/home/USERNAME/pins/External/.git/hooks/pre-receive.sample
/home/USERNAME/pins/External/.git/hooks/prepare-commit-msg.sample
/home/USERNAME/pins/External/.git/hooks/push-to-checkout.sample
/home/USERNAME/pins/External/.git/hooks/sendemail-validate.sample
/home/USERNAME/pins/External/.git/hooks/update.sample
/home/USERNAME/pins/External/.git/index
/home/USERNAME/pins/External/.git/info
/home/USERNAME/pins/External/.git/info/exclude
/home/USERNAME/pins/External/.git/lfs
/home/USERNAME/pins/External/.git/lfs/incomplete
/home/USERNAME/pins/External/.git/lfs/objects
/home/USERNAME/pins/External/.git/lfs/objects/06
/home/USERNAME/pins/External/.git/lfs/objects/06/f9
/home/USERNAME/pins/External/.git/lfs/objects/06/f9/06f9da829af05e280a01c9566677883bb9af42385b7af82acc018b8ccd347765
/home/USERNAME/pins/External/.git/lfs/objects/18
/home/USERNAME/pins/External/.git/lfs/objects/18/19
/home/USERNAME/pins/External/.git/lfs/objects/18/19/18191689141077cd31f58a294838bb9650908a02cb423eff60a81cbda0b18efc
/home/USERNAME/pins/External/.git/lfs/objects/1d
/home/USERNAME/pins/External/.git/lfs/objects/1d/b4
/home/USERNAME/pins/External/.git/lfs/objects/1d/b4/1db4dac54f2a2dd4588c6f2f6ce75d41bbfeb6bf58034e317253911c628c1e6c
/home/USERNAME/pins/External/.git/lfs/objects/29
/home/USERNAME/pins/External/.git/lfs/objects/29/6b
/home/USERNAME/pins/External/.git/lfs/objects/29/6b/296b1a044cdfbc1a7f82f08c28aefd60f25761aa188916e26eab46281c02595a
/home/USERNAME/pins/External/.git/lfs/objects/2b
/home/USERNAME/pins/External/.git/lfs/objects/2b/de
/home/USERNAME/pins/External/.git/lfs/objects/2b/de/2bde7d5e84caac944356543ff5cf6755564664bf07834418ede708d1de243172
/home/USERNAME/pins/External/.git/lfs/objects/32
/home/USERNAME/pins/External/.git/lfs/objects/32/ff
/home/USERNAME/pins/External/.git/lfs/objects/32/ff/32ff8f1e702b93ee2a7537e5399f1a2a26a9e51f0752d11f914de8293ae66a0b
/home/USERNAME/pins/External/.git/lfs/objects/3c
/home/USERNAME/pins/External/.git/lfs/objects/3c/b5
/home/USERNAME/pins/External/.git/lfs/objects/3c/b5/3cb59e2d6cb7dbefb2d87c3b5b25654207ceee18b285f52d4e8edaeb2ffb6548</code></pre>



<p class="wp-block-paragraph">PINSの実行ファイルを探します。</p>



<pre class="wp-block-code"><code>find /home/USERNAME/pins -maxdepth 2 -type f -executable -printf '%p\n'
/home/USERNAME/pins/System.AppContext.dll
/home/USERNAME/pins/System.Security.Cryptography.OpenSsl.dll
/home/USERNAME/pins/System.Runtime.InteropServices.dll
/home/USERNAME/pins/System.Xml.XPath.XDocument.dll
/home/USERNAME/pins/System.Data.SQLite.dll
/home/USERNAME/pins/System.Configuration.ConfigurationManager.dll
/home/USERNAME/pins/System.Linq.Queryable.dll
/home/USERNAME/pins/Accord.Math.Core.dll
/home/USERNAME/pins/System.Formats.Cbor.dll
/home/USERNAME/pins/System.Net.Security.dll
/home/USERNAME/pins/System.Runtime.Serialization.Xml.dll
/home/USERNAME/pins/System.ValueTuple.dll
/home/USERNAME/pins/Microsoft.Extensions.Configuration.Json.dll
/home/USERNAME/pins/Microsoft.Win32.Registry.dll
/home/USERNAME/pins/System.Data.DataSetExtensions.dll
/home/USERNAME/pins/System.Memory.dll
/home/USERNAME/pins/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/USERNAME/pins/zh-Hans/Microsoft.CodeAnalysis.resources.dll
/home/USERNAME/pins/System.Core.dll
/home/USERNAME/pins/System.Reflection.Emit.Lightweight.dll
/home/USERNAME/pins/ASCOM.Exceptions.dll
/home/USERNAME/pins/System.Threading.Timer.dll
/home/USERNAME/pins/System.Web.dll
/home/USERNAME/pins/System.Private.Xml.dll
/home/USERNAME/pins/System.Diagnostics.Process.dll
/home/USERNAME/pins/System.Net.WebSockets.WebSocketProtocol.dll
/home/USERNAME/pins/System.Net.Requests.dll
/home/USERNAME/pins/Nito.AsyncEx.Tasks.dll
/home/USERNAME/pins/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll
/home/USERNAME/pins/Microsoft.AspNetCore.Razor.dll
/home/USERNAME/pins/System.Net.Ping.dll
/home/USERNAME/pins/Nito.Cancellation.dll
/home/USERNAME/pins/de/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/USERNAME/pins/de/Microsoft.CodeAnalysis.resources.dll
/home/USERNAME/pins/System.Collections.dll
/home/USERNAME/pins/Parlot.dll
/home/USERNAME/pins/System.Threading.Overlapped.dll
/home/USERNAME/pins/Microsoft.AspNetCore.SignalR.Common.dll
/home/USERNAME/pins/System.Resources.ResourceManager.dll
/home/USERNAME/pins/build-and-install-pins-x64.sh.after-phd2
/home/USERNAME/pins/System.ObjectModel.dll
/home/USERNAME/pins/Microsoft.Extensions.FileProviders.Abstractions.dll
/home/USERNAME/pins/Microsoft.Extensions.Caching.Memory.dll
/home/USERNAME/pins/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll
/home/USERNAME/pins/Microsoft.AspNetCore.Razor.Runtime.dll
/home/USERNAME/pins/System.ComponentModel.Primitives.dll
/home/USERNAME/pins/Microsoft.AspNetCore.SignalR.dll
/home/USERNAME/pins/Swashbuckle.AspNetCore.Swagger.dll
/home/USERNAME/pins/ru/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/USERNAME/pins/ru/Microsoft.CodeAnalysis.resources.dll
/home/USERNAME/pins/System.Diagnostics.FileVersionInfo.dll
/home/USERNAME/pins/System.Security.Cryptography.Xml.dll
/home/USERNAME/pins/Microsoft.Extensions.Diagnostics.dll
/home/USERNAME/pins/System.Runtime.Loader.dll
/home/USERNAME/pins/Microsoft.Extensions.FileSystemGlobbing.dll
/home/USERNAME/pins/AsyncEnumerable.dll
/home/USERNAME/pins/System.Net.NameResolution.dll
/home/USERNAME/pins/Microsoft.CodeAnalysis.CSharp.dll
/home/USERNAME/pins/System.Security.Cryptography.Pkcs.dll
/home/USERNAME/pins/System.Diagnostics.Tracing.dll
/home/USERNAME/pins/libSystem.IO.Ports.Native.so
/home/USERNAME/pins/Microsoft.AspNetCore.Mvc.Localization.dll
/home/USERNAME/pins/NINA</code></pre>



<p class="wp-block-paragraph">単純に、/home/USERNAME/pins/NINA　でした。</p>



<pre class="wp-block-code"><code>~/pins$ ./NINA

コアダンプします

2026-09-09T12:29:09.8032|INFO|Program.cs|&lt;Main&gt;$|78|Launched with command line arguments: /home/USERNAME/pins/NINA.dll
2026-09-09T12:29:09.9222|INFO|DllLoader.cs|LoadDll|76|DllLoader: Trying system library via LD_LIBRARY_PATH: libudev.so.1
2026-09-09T12:29:09.9239|INFO|DllLoader.cs|LoadDll|76|DllLoader: Trying system library via LD_LIBRARY_PATH: libhidapi-hidraw.so
2026-09-09T12:29:09.9241|INFO|DllLoader.cs|LoadDll|76|DllLoader: Trying system library via LD_LIBRARY_PATH: libusb-1.0.so.0
2026-09-09T12:29:09.9604|INFO|INDIClient.cs|KillExistingServer|1501|Killed existing indiserver processes
2026-09-09T12:29:09.9611|INFO|INDIClient.cs|CreateFifo|1424|FIFO already exists: /tmp/indiFIFO
2026-09-09T12:29:09.9619|INFO|INDIClient.cs|StartServerInFifoMode|1368|INDI server started in FIFO mode with PID 445854, port: 7624, using FIFO: /tmp/indiFIFO
2026-09-09T12:29:09.9677|INFO|DllLoader.cs|LoadDll|61|DllLoader: Loading bundled library: /home/USERNAME/pins/External/linux-x64/SOFA/libsofa_c.so
2026-09-09T12:29:10.0758|INFO|INDIClient.cs|Connect|153|Connected to INDI server
2026-09-09T12:29:10.0760|INFO|INDIClient.cs|StartServerInFifoMode|1399|Connected to INDI server on attempt 1
2026-09-09T12:29:10.5237|INFO|DllLoader.cs|LoadDll|61|DllLoader: Loading bundled library: /home/USERNAME/pins/External/linux-x64/NOVAS/libnovas_c.so
2026-09-09T12:29:10.5493|INFO|DllLoader.cs|LoadDll|76|DllLoader: Trying system library via LD_LIBRARY_PATH: libatikcameras.so
2026-09-09T12:29:10.5558|INFO|DllLoader.cs|LoadDll|76|DllLoader: Trying system library via LD_LIBRARY_PATH: libASICamera2.so
2026-09-09T12:29:10.5596|INFO|DllLoader.cs|LoadDll|76|DllLoader: Trying system library via LD_LIBRARY_PATH: libNitecrawlerSDK.so
2026-09-09T12:29:10.5599|ERROR|DllLoader.cs|LoadDllFromAbsolutePath|137|DllLoader failed to load library libNitecrawlerSDK.so: Unknown error
2026-09-09T12:29:10.5610|ERROR|RotatorChooserVM.cs|GetEquipment|56
System.DllNotFoundException: Unable to load shared library 'libNitecrawlerSDK.so' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable: 
/home/USERNAME/pins/libNitecrawlerSDK.so: cannot open shared object file: No such file or directory
/home/USRNAME/pins/liblibNitecrawlerSDK.so: cannot open shared object file: No such file or directory
/home/USRNAME/pins/libNitecrawlerSDK.so.so: cannot open shared object file: No such file or directory
/home/USRNAME/pins/liblibNitecrawlerSDK.so.so: cannot open shared object file: No such file or directory

   at Nitecrawler.NitecrawlerSDK.NCRotatorScan(Int32&amp; number, Int32&#91;] ids)
   at Nitecrawler.NitecrawlerSDK.ScanRotators(Int32&amp; number, Int32&#91;] ids) in /home/USRNAME/pins-build-src/NINA.Equipment/SDK/RotatorSDKs/NitecrawlerSDK/NitecrawlerSDK.cs:line 294
   at NINA.WPF.Base.ViewModel.Equipment.Rotator.RotatorChooserVM.GetEquipment() in /home/USRNAME/pins-build-src/NINA.WPF.Base/ViewModel/Equipment/Rotator/RotatorChooserVM.cs:line 47
2026-09-09T12:29:10.5643|INFO|DllLoader.cs|LoadDll|76|DllLoader: Trying system library via LD_LIBRARY_PATH: libWandererRotatorSDK.so
2026-09-09T12:29:10.5644|ERROR|DllLoader.cs|LoadDllFromAbsolutePath|137|DllLoader failed to load library libWandererRotatorSDK.so: libWandererRotatorSDK.so: cannot open shared object file: No such file or directory
2026-09-09T12:29:10.5645|INFO|DllLoader.cs|LoadDll|76|DllLoader: Trying system library via LD_LIBRARY_PATH: libWandererCoverSDK.so
2026-09-09T12:29:10.5646|ERROR|DllLoader.cs|LoadDllFromAbsolutePath|137|DllLoader failed to load library libWandererCoverSDK.so: libWandererCoverSDK.so: cannot open shared object file: No such file or directory
2026-09-09T12:29:10.5649|ERROR|RotatorChooserVM.cs|GetEquipment|78|Failed to scan for WandererRotators: System.DllNotFoundException: Unable to load shared library 'libWandererRotatorSDK.so' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable: 
/home/USRNAME/pins/libWandererRotatorSDK.so: cannot open shared object file: No such file or directory
/home/USRNAME/pins/liblibWandererRotatorSDK.so: cannot open shared object file: No such file or directory
/home/USRNAME/pins/libWandererRotatorSDK.so.so: cannot open shared object file: No such file or directory
/home/USRNAME/pins/liblibWandererRotatorSDK.so.so: cannot open shared object file: No such file or directory

   at Wanderer.WandererRotatorSDK.WRRotatorScan(Int32&amp; number, Int32&#91;] ids)
   at Wanderer.WandererRotatorSDK.RotatorScan(Int32&amp; number, Int32&#91;] ids) in /home/USRNAME/pins-build-src/NINA.Equipment/SDK/RotatorSDKs/WandererRotatorSDK/WandererRotatorSDK.cs:line 139
   at NINA.WPF.Base.ViewModel.Equipment.Rotator.RotatorChooserVM.GetEquipment() in /home/USRNAME/pins-build-src/NINA.WPF.Base/ViewModel/Equipment/Rotator/RotatorChooserVM.cs:line 64
2026-09-09T12:29:10.5656|ERROR|FlatDeviceChooserVM.cs|GetEquipment|60|Failed to scan for WandererCovers: System.DllNotFoundException: Unable to load shared library 'libWandererCoverSDK.so' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable: 
/home/USRNAME/pins/libWandererCoverSDK.so: cannot open shared object file: No such file or directory
/home/USRNAME/pins/liblibWandererCoverSDK.so: cannot open shared object file: No such file or directory
/home/USRNAME/pins/libWandererCoverSDK.so.so: cannot open shared object file: No such file or directory
/home/USRNAME/pins/liblibWandererCoverSDK.so.so: cannot open shared object file: No such file or directory

   at Wanderer.WandererCoverSDK.WCCoverScan(Int32&amp; number, Int32&#91;] ids)
   at Wanderer.WandererCoverSDK.CoverScan(Int32&amp; number, Int32&#91;] ids) in /home/USRNAME/pins-build-src/NINA.Equipment/SDK/FlatDeviceSDKs/WandererCoverSDK/WandererCoverSDK.cs:line 129
   at NINA.WPF.Base.ViewModel.Equipment.FlatDevice.FlatDeviceChooserVM.GetEquipment() in /home/USRNAME/pins-build-src/NINA.WPF.Base/ViewModel/Equipment/FlatDevice/FlatDeviceChooserVM.cs:line 46
2026-09-09T12:29:10.5737|INFO|CameraChooserVM.cs|GetEquipment|61|Found 0 ASI Cameras
2026-09-09T12:29:10.5741|INFO|DllLoader.cs|LoadDll|76|DllLoader: Trying system library via LD_LIBRARY_PATH: libaltaircam.so
2026-09-09T12:29:10.5841|INFO|DllLoader.cs|LoadDll|76|DllLoader: Trying system library via LD_LIBRARY_PATH: libqhyccd.so
2026-09-09T12:29:10.5949|INFO|CameraChooserVM.cs|GetEquipment|76|Found 0 Altair Cameras
2026-09-09T12:29:10.5950|INFO|CameraChooserVM.cs|GetEquipment|91|Found 0 Atik Cameras
-- qhyccd.cpp param
QHYCCD|QHYCCD.CPP|InitQHYCCDResource()|START
QHYCCD|QHYCCD.CPP|InitQHYCCDResource|auto_detect_camera:false,call InitQHYCCDResourceInside
QHYCCD|QHYCCD.CPP|InitQHYCCDResourceInside|START
2026-09-09T12:29:10.5999|INFO|Program.cs|&lt;Main&gt;$|131|Server fully initialized and running.
QHYCCD|QHYCCD.CPP|libusb_version 1.0.29.11953
QHYCCD|QHYCCD.CPP|libusb_init(libqhyccd_context) called...
QHYCCD|QHYCCD.CPP|InitQHYCCDResourceInside|numdev set to 0
QHYCCD|QHYCCD.CPP|InitQHYCCDResourceInside|END
************************** config file path  26.2.1.12 svn: 1  ************************************
QHYCCD|QHYCCD.CPP|InitQHYCCDResource|Load ini filePath = /home/USRNAME/pins  fileName = qhyccd.ini
2026-09-09T12:29:10.6190|INFO|UsbDeviceWatcher.cs|Stop|42|USB Device Watcher stopped
Unhandled exception. System.IO.IOException: Failed to bind to address http://0.0.0.0:4782: address already in use.
 ---&gt; Microsoft.AspNetCore.Connections.AddressInUseException: Address already in use
 ---&gt; System.Net.Sockets.SocketException (98): Address already in use
   at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName)
   at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.Bind(EndPoint localEP)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.&lt;&gt;c__DisplayClass28_0`1.&lt;&lt;StartAsync&gt;g__OnBind|0&gt;d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.EndpointsStrategy.BindAsync(AddressBindContext context, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.BindAsync(CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.StartAsync&#91;TContext](IHttpApplication`1 application, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.&lt;StartAsync&gt;b__14_1(IHostedService service, CancellationToken token)
   at Microsoft.Extensions.Hosting.Internal.Host.ForeachService&#91;T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
   at Program.&lt;Main&gt;$(String&#91;] args) in /home/USRNAME/pins-build-src/NINA/Program.cs:line 154
中止                     (コアダンプ) ./NINA</code></pre>



<pre class="wp-block-code"><code>System.IO.IOException: Failed to bind to address http://0.0.0.0:4782: address already in use.
...
SocketException (98): Address already in use</code></pre>



<p class="wp-block-paragraph">既に何かのプロセスが、ポート4782を使ってるようです。調べます。</p>



<pre class="wp-block-code"><code>sudo ss -ltnp 'sport = :4782'
&#91;sudo: authenticate] パスワード:          
State   Recv-Q   Send-Q   Local Address:Port   Peer Address:Port       Process
LISTEN    　 0      512         0.0.0.0:4782          0.0.0.0:*        users:

(("NINA",pid=434153,fd=382))</code></pre>



<p class="wp-block-paragraph">NINAがすでに使っている模様です。ブラウザに表示させているプロセスかな？</p>



<pre class="wp-block-code"><code>ps aux | grep -i '&#91;N]INA'
USERNAME   434153  2.2  1.3 69173980 415112 ?    Ssl  08:55   5:00 /home/USRNAME/pins/NINA</code></pre>



<p class="wp-block-paragraph">止めます。</p>



<pre class="wp-block-code"><code>kill 434153</code></pre>



<pre class="wp-block-code"><code>~/pins$ ./NINA</code></pre>



<p class="wp-block-paragraph">コアダンプするので、調べます。</p>



<pre class="wp-block-code"><code>sudo ss -ltnp 'sport = :4782'
State　　 Recv-   Send-Q    Local Address:Port   Peer Address:Port     Process
LISTEN       0       512          0.0.0.0:4782            0.0.0.0:*                    users:(("NINA",pid=446716,fd=375))</code></pre>



<p class="wp-block-paragraph">PID 446716 の NINA が4782を使っている。</p>



<p class="wp-block-paragraph">PID 446716は何かな？</p>



<pre class="wp-block-code"><code>ps -fp 446716
UID          PID    PPID  C STIME TTY          TIME CMD
USERNAME    446716       1  3 12:42 ?        00:00:15 /home/USERNAME/pins/NINA

readlink -f /proc/446716/exe
/home/USERNAME/pins/NINA

pgrep -a -f 'NINA|NINA.dll'
446716 /home/USERNAME/pins/NINA</code></pre>



<p class="wp-block-paragraph">NINAが起動途中ですでに4782を開いているが、別の処理でもう一度4782を開こうとしているらしい。</p>



<p class="wp-block-paragraph">NINAを終了し、4782ポートを見てます</p>



<pre class="wp-block-code"><code>kill 446716
sudo ss -ltnp 'sport = :4782'
State   Recv-Q  Send-Q    Local Address:Port   Peer Address:Port    Process
LISTEN  　   0     512          0.0.0.0:4782           0.0.0.0:*    users:(("NINA",pid=447228,fd=377))</code></pre>



<p class="wp-block-paragraph">NINAは別のプロセスに監視されていて、終了すると自動再起動されています。</p>



<p class="wp-block-paragraph">systemd登録されているかもしれません。見てみます。</p>



<pre class="wp-block-code"><code>systemctl list-units --type=service --all | grep -i nina
  pins.service        loaded    active   running NINA Service</code></pre>



<p class="wp-block-paragraph">pins.service が NINAをsystemdサービスとして常駐、自動再起動させています。</p>



<pre class="wp-block-code"><code>sudo systemctl status pins.service
&#91;sudo: authenticate] パスワード:          
● pins.service - NINA Service
     Loaded: loaded (/etc/systemd/system/pins.service; enabled; preset: enabled)
     Active: active (running) since Wed 2026-09-09 12:53:12 JST; 18min ago
 Invocation: 5f43ce878bb14399981177d51f6f1149
   Main PID: 447228 (NINA)
      Tasks: 35 (limit: 36763)
     Memory: 189.5M (peak: 191M)
        CPU: 31.537s
     CGroup: /system.slice/pins.service
             ├─447228 /home/USRNAME/pins/NINA
             └─447243 indiserver -v -p 7624 -m 1000 -f /tmp/indiFIFO

 9月 09 12:53:19 a7g NINA&#91;447228]: 2026-09-09T12:53:19.4883|INFO|SafetyMonitorChooserVM.cs|GetEquipment|74|Found 0 INDI Safety Monitors
 9月 09 12:53:19 a7g NINA&#91;447228]: 2026-09-09T12:53:19.4901|INFO|FilterWheelChooserVM.cs|GetEquipment|279|Found 1 Alpaca Filter Wheels
 9月 09 12:53:19 a7g NINA&#91;447228]: 2026-09-09T12:53:19.9883|INFO|DomeChooserVM.cs|GetEquipment|70|Found 0 INDI Domes
 9月 09 12:53:19 a7g NINA&#91;447228]: 2026-09-09T12:53:19.9894|INFO|FocuserChooserVM.cs|GetEquipment|137|Found 1 Alpaca Focusers
 9月 09 12:53:20 a7g NINA&#91;447228]: 2026-09-09T12:53:20.4889|INFO|SwitchChooserVM.cs|GetEquipment|75|Found 0 INDI Switch Hubs
 9月 09 12:53:20 a7g NINA&#91;447228]: 2026-09-09T12:53:20.4902|INFO|WeatherDataChooserVM.cs|GetEquipment|70|Found 1 Alpaca Observing Conditions
 9月 09 12:53:20 a7g NINA&#91;447228]: 2026-09-09T12:53:20.9917|INFO|CameraChooserVM.cs|GetEquipment|259|Found 1 Alpaca Cameras
 9月 09 12:53:20 a7g NINA&#91;447228]: 2026-09-09T12:53:20.9942|INFO|DllLoader.cs|LoadDll|76|DllLoader: Trying system library via LD_LIBRARY_PATH: libgphoto2.so
 9月 09 12:53:20 a7g NINA&#91;447228]: 2026-09-09T12:53:20.9947|INFO|DllLoader.cs|LoadDll|76|DllLoader: Trying system library via LD_LIBRARY_PATH: libgphoto2_port.so
 9月 09 12:53:21 a7g NINA&#91;447228]: 2026-09-09T12:53:21.0380|INFO|CameraChooserVM.cs|GetEquipment|267|Found 0 libgphoto2 Cameras</code></pre>



<p class="wp-block-paragraph">pins.serviceの内容を見てみます。</p>



<pre class="wp-block-code"><code>sudo systemctl cat pins.service
&#91;sudo: authenticate] パスワード:          
# /etc/systemd/system/pins.service
&#91;Unit]
Description=NINA Service
After=network.target

&#91;Service]
Type=simple
Environment="LD_LIBRARY_PATH=/opt/opencvsharp/lib:/usr/lib/x86_64-linux-gnu"
ExecStart=/home/USERNAME/pins/NINA
WorkingDirectory=/home/USERNAME/pins/
User=USERNAME
Group=USERNAME
Restart=always
RestartSec=5

&#91;Install]
WantedBy=multi-user.target</code></pre>



<p class="wp-block-paragraph">Restart=always<br>この行があるので、killしてもNINA Serviceが再起動されます。</p>



<p class="wp-block-paragraph">いったんsystemd版を止めて、ポート4782が空いたことを確認し、~/pins$ ./NINA を用い、<br>NINAを表示させます。</p>



<pre class="wp-block-code"><code>sudo systemctl stop pins.service
sudo ss -ltnp 'sport = :4782'
~/pins$ ./NINA</code></pre>



<pre class="wp-block-code"><code>2026-09-09T14:11:09.7789|ERROR|FocuserChooserVM.cs|GetEquipment|117
System.DllNotFoundException: Unable to load shared library 'libNitecrawlerSDK.so' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable: 
/home/USERNAME/pins/libNitecrawlerSDK.so: cannot open shared object file: No such file or directory
/home/USERNAME/pins/liblibNitecrawlerSDK.so: cannot open shared object file: No such file or directory
/home/USERNAME/pins/libNitecrawlerSDK.so.so: cannot open shared object file: No such file or directory
/home/USERNAME/pins/liblibNitecrawlerSDK.so.so: cannot open shared object file: No such file or directory

   at Nitecrawler.NitecrawlerSDK.NCFocuserScan(Int32&amp; number, Int32&#91;] ids)
   at Nitecrawler.NitecrawlerSDK.ScanFocusers(Int32&amp; number, Int32&#91;] ids) in /home/USERNAME/pins-build-src/NINA.Equipment/SDK/RotatorSDKs/NitecrawlerSDK/NitecrawlerSDK.cs:line 268
   at NINA.WPF.Base.ViewModel.Equipment.Focuser.FocuserChooserVM.GetEquipment() in /home/USERNAME/pins-build-src/NINA.WPF.Base/ViewModel/Equipment/Focuser/FocuserChooserVM.cs:line 108
2026-09-09T14:11:09.7796|INFO|CameraChooserVM.cs|GetEquipment|235|Found 1 Hocus Focus Cameras
2026-09-09T14:11:09.7799|INFO|CameraChooserVM.cs|GetEquipment|235|Found 1 Hocus Focus Cameras
2026-09-09T14:11:09.7831|INFO|SwitchChooserVM.cs|GetEquipment|48|Found 0 PINS.PowerBox Switch Hubs
2026-09-09T14:11:09.7857|INFO|WeatherDataChooserVM.cs|GetEquipment|46|Found 0 PINS.MeteoStation Weather Data
2026-09-09T14:11:09.7940|INFO|SwitchChooserVM.cs|GetEquipment|48|Found 0 PINS.PowerBox Switch Hubs
2026-09-09T14:11:09.7962|INFO|WeatherDataChooserVM.cs|GetEquipment|46|Found 0 PINS.MeteoStation Weather Data
2026-09-09T14:11:10.2695|INFO|TelescopeChooserVM.cs|GetEquipment|58|Found 0 INDI Telescopes
2026-09-09T14:11:10.7711|INFO|FlatDeviceChooserVM.cs|GetEquipment|82|Found 0 INDI FlatDevices
2026-09-09T14:11:11.2711|INFO|RotatorChooserVM.cs|GetEquipment|100|Found 0 INDI Rotators
2026-09-09T14:11:11.7710|INFO|FilterWheelChooserVM.cs|GetEquipment|267|Found 0 INDI Filter Wheels
2026-09-09T14:11:11.7735|INFO|SafetyMonitorChooserVM.cs|GetEquipment|62|Found 1 Alpaca Safety Monitors
2026-09-09T14:11:11.7735|INFO|DomeChooserVM.cs|GetEquipment|58|Found 1 Alpaca Domes
2026-09-09T14:11:11.7960|INFO|SwitchChooserVM.cs|GetEquipment|62|Found 1 Alpaca Switch Hubs
2026-09-09T14:11:12.2713|INFO|CameraChooserVM.cs|GetEquipment|247|Found 0 INDI Cameras
2026-09-09T14:11:12.2715|INFO|TelescopeChooserVM.cs|GetEquipment|81|Found 1 Alpaca Telescopes
2026-09-09T14:11:12.7710|INFO|FocuserChooserVM.cs|GetEquipment|125|Found 0 INDI Focusers
2026-09-09T14:11:12.7731|INFO|FlatDeviceChooserVM.cs|GetEquipment|94|Found 1 Alpaca Cover Calibrators
2026-09-09T14:11:13.2715|INFO|WeatherDataChooserVM.cs|GetEquipment|58|Found 0 INDI Weather Data
2026-09-09T14:11:13.2741|INFO|RotatorChooserVM.cs|GetEquipment|112|Found 1 Alpaca Rotators
2026-09-09T14:11:13.7719|INFO|SafetyMonitorChooserVM.cs|GetEquipment|74|Found 0 INDI Safety Monitors
2026-09-09T14:11:13.7728|INFO|FilterWheelChooserVM.cs|GetEquipment|279|Found 1 Alpaca Filter Wheels
2026-09-09T14:11:14.2723|INFO|DomeChooserVM.cs|GetEquipment|70|Found 0 INDI Domes
2026-09-09T14:11:14.2740|INFO|CameraChooserVM.cs|GetEquipment|259|Found 1 Alpaca Cameras
2026-09-09T14:11:14.2766|INFO|DllLoader.cs|LoadDll|76|DllLoader: Trying system library via LD_LIBRARY_PATH: libgphoto2.so
2026-09-09T14:11:14.2771|INFO|DllLoader.cs|LoadDll|76|DllLoader: Trying system library via LD_LIBRARY_PATH: libgphoto2_port.so
2026-09-09T14:11:14.3224|INFO|CameraChooserVM.cs|GetEquipment|267|Found 0 libgphoto2 Cameras
2026-09-09T14:11:14.3258|INFO|PluginFetcher.cs|RequestAll|57|Found 96 valid plugins at https://nighttime-imaging.eu/wp-json/nina/v1/plugins/manifests
2026-09-09T14:11:14.7716|INFO|SwitchChooserVM.cs|GetEquipment|75|Found 0 INDI Switch Hubs
2026-09-09T14:11:14.7732|INFO|FocuserChooserVM.cs|GetEquipment|137|Found 1 Alpaca Focusers
2026-09-09T14:11:15.2749|INFO|WeatherDataChooserVM.cs|GetEquipment|70|Found 1 Alpaca Observing Conditions</code></pre>



<p class="wp-block-paragraph">Found 1 Alpaca Observing Conditions<br>ここで、処理が止まっている。機器スキャンで止まっている。</p>



<p class="wp-block-paragraph">状態を見ます。</p>



<pre class="wp-block-code"><code>ps -o pid,ppid,stat,%cpu,%mem,etime,cmd -C NINA
    PID    PPID STAT %CPU %MEM     ELAPSED CMD
 450039    9160 Sl+   3.1  1.2       13:17 ./NINA

sudo ss -tnp | grep 450039
&#91;sudo: authenticate] パスワード:          
ESTAB 0      0                        &#91;::ffff:127.0.0.1]:40670               &#91;::ffff:127.0.0.1]:7624  users:(("NINA",pid=450039,fd=311))</code></pre>



<p class="wp-block-paragraph">sudo ss -uap は、現在PC上で開かれているUDPソケットと、それを使っているプロセスを表示するコマンドです。</p>



<pre class="wp-block-code"><code>sudo ss -uap
State             Recv-Q            Send-Q                                          Local Address:Port                                Peer Address:Port             Process                                              
UNCONN            0                 0                                                192.168.0.13:3702                                     0.0.0.0:*                 users:(("python3",pid=162082,fd=10))                
UNCONN            0                 0                                             239.255.255.250:3702                                     0.0.0.0:*                 users:(("python3",pid=162082,fd=8))                 
UNCONN            0                 0                                                     0.0.0.0:37426                                    0.0.0.0:*                 users:(("python3",pid=162082,fd=9))                 
UNCONN            0                 0                                                192.168.0.13:mdns                                     0.0.0.0:*                 users:(("NINA",pid=450039,fd=491))                  
UNCONN            0                 0                                                     0.0.0.0:mdns                                     0.0.0.0:*                 users:(("NINA",pid=450039,fd=489))                  
UNCONN            0                 0                                                192.168.0.13:mdns                                     0.0.0.0:*                 users:(("NINA",pid=450039,fd=467))                  
UNCONN            0                 0                                                     0.0.0.0:mdns                                     0.0.0.0:*                 users:(("NINA",pid=450039,fd=465))                  
UNCONN            0                 0                                                     0.0.0.0:mdns                                     0.0.0.0:*                 users:(("avahi-daemon",pid=1613,fd=12))             
UNCONN            0                 0                                                  127.0.0.54:domain                                   0.0.0.0:*                 users:(("systemd-resolve",pid=564,fd=18))           
UNCONN            0                 0                                               127.0.0.53%lo:domain                                   0.0.0.0:*                 users:(("systemd-resolve",pid=564,fd=16))           
ESTAB             0                 0                                           192.168.0.13%eno1:bootpc                               192.168.0.2:bootps            users:(("NetworkManager",pid=2067,fd=26))           
UNCONN            0                 0                                                   127.0.0.1:323                                      0.0.0.0:*                 users:(("chronyd",pid=1813,fd=4))                   
UNCONN            0                 0                                                           *:35462                                          *:*                 users:(("python3",pid=162082,fd=12))                
UNCONN            0                 0                            &#91;fe80::b225:aaff:fe9f:a2b9]%eno1:3702                                        &#91;::]:*                 users:(("python3",pid=162082,fd=13))                
UNCONN            0                 0                                              &#91;ff02::c]%eno1:3702                                        &#91;::]:*                 users:(("python3",pid=162082,fd=11))                
UNCONN            0                 0                                                        &#91;::]:mdns                                        &#91;::]:*                 users:(("avahi-daemon",pid=1613,fd=13))             
UNCONN            0                 0                                                        &#91;::]:mdns                                        &#91;::]:*                 users:(("NINA",pid=450039,fd=466))                  
UNCONN            0                 0                            &#91;fe80::b225:aaff:fe9f:a2b9]%eno1:mdns                                        &#91;::]:*                 users:(("NINA",pid=450039,fd=468))                  
UNCONN            0                 0                                                        &#91;::]:mdns                                        &#91;::]:*                 users:(("NINA",pid=450039,fd=490))                  
UNCONN            0                 0                            &#91;fe80::b225:aaff:fe9f:a2b9]%eno1:mdns                                        &#91;::]:*                 users:(("NINA",pid=450039,fd=492))                  
UNCONN            0                 0                                                           *:39160                                          *:*                 users:(("firefox",pid=4884,fd=163))                 
UNCONN            0                 0                                                           *:46782                                          *:*                 users:(("firefox",pid=4884,fd=139))                 
UNCONN            0                 0                                                       &#91;::1]:323                                         &#91;::]:*                 users:(("chronyd",pid=1813,fd=5))                   
UNCONN            0                 0                            &#91;fe80::b225:aaff:fe9f:a2b9]%eno1:dhcpv6-client                               &#91;::]:*                 users:(("NetworkManager",pid=2067,fd=28))</code></pre>



<p class="wp-block-paragraph">NINA pid=450039<br>192.168.0.13:mdns<br>0.0.0.0:mdns<br>[::]:mdns<br>これは、Alpacaデバイスなどのネットワーク探索で使われる模様です。</p>



<p class="wp-block-paragraph">python3 pid=162082<br>192.168.0.13:3702<br>239.255.255.250:3702<br>0.0.0.0:37426<br>*:35462<br>239.255.255.250:3702 は WS-Discovery で使われるマルチキャストアドレス/ポートです。<br>Alpaca/ASCOMデバイス探索と関係するネットワーク探索を行っているかもしれません。</p>



<p class="wp-block-paragraph">この段階で、PCには何も機器を接続していません。</p>



<p class="wp-block-paragraph"><em>:35462 : users:((&#8220;python3&#8221;,pid=162082,fd=12))<br>UNCONN 0 0 [fe80::b225:aaff:fe9f:a2b9]%eno1:3702 [::]:</em> users:((&#8220;python3&#8221;,pid=162082,fd=13))<br>UNCONN 0 0 [ff02::c]%eno1:3702 [::]:* users:((&#8220;python3&#8221;,pid=162082,fd=11))<br>これを調べます。</p>



<pre class="wp-block-code"><code>ps -fp 162082
UID          PID    PPID  C STIME TTY          TIME CMD
USERNAME    162082  162077  0  9月08 ?      00:00:02 python3 /usr/bin/wsdd --no-host --discovery --listen /run/user/1000/gvfsd/wsdd</code></pre>



<p class="wp-block-paragraph">現在動いているNINA（PID 450039）が、ネットワーク通信で何をしているかをリアルタイムで見てみます。</p>



<pre class="wp-block-code"><code>sudo strace -p 450039 -f -e trace=network -tt
strace: Process 450039 attached with 34 threads
strace: Process 451155 attached
&#91;pid 451155] 14:37:41.931321 +++ exited with 0 +++
strace: Process 451187 attached
&#91;pid 451187] 14:38:13.247452 +++ exited with 0 +++</code></pre>



<p class="wp-block-paragraph">NINAがだんまりを決め込んでるように見えてますが、そうではないらしい。</p>



<p class="wp-block-paragraph">クラッシュしていない、CPUを多少使用している、INDI接続は存在、ネットワークエラーも発生していない。</p>



<p class="wp-block-paragraph">NINAの各スレッド、CPU使用率、wchan（カーネル内で何を待っているか）を表示します。</p>



<pre class="wp-block-code"><code>ps -L -p 450039 -o pid,tid,stat,pcpu,wchan:32,comm --sort=-pcpu</code></pre>



<p class="wp-block-paragraph">待機中です。</p>



<p class="wp-block-paragraph">全スレッドを対象に、どこで待っているかを見てみます。</p>



<pre class="wp-block-code"><code>ps -T -p 450039 -o pid,tid,stat,pcpu,wchan:32,comm</code></pre>



<p class="wp-block-paragraph">ん〜</p>



<pre class="wp-block-code"><code>ps -T -p 450039 -o pid,tid,stat,pcpu,wchan:32,comm
    PID     TID STAT %CPU WCHAN                            COMMAND
 450039  450039 Sl+   0.0 futex_do_wait                    NINA
 450039  450040 Sl+   0.0 poll_schedule_timeout.constprop. .NET SynchManag
 450039  450041 Sl+   0.0 poll_schedule_timeout.constprop. .NET EventPipe
 450039  450042 Sl+   0.0 wait_for_partner                 .NET DebugPipe
 450039  450043 Sl+   0.0 futex_do_wait                    .NET Debugger
 450039  450044 Sl+   0.0 futex_do_wait                    .NET Finalizer
 450039  450047 Sl+   0.5 futex_do_wait                    .NET Timer
 450039  450049 Sl+   0.0 futex_do_wait                    .NET TP Gate
 450039  450051 Sl+   0.0 anon_pipe_read                   .NET SigHandler
 450039  450058 Sl+   0.0 ep_poll                          .NET Sockets
 450039  450060 Sl+   0.0 poll_schedule_timeout.constprop. .NET TP Worker
 450039  450061 Sl+   0.0 hrtimer_nanosleep                .NET TP Worker
 450039  450062 Sl+   0.0 poll_schedule_timeout.constprop. libusb_event
 450039  450067 Sl+   0.0 poll_schedule_timeout.constprop. .NET TP Worker
 450039  450068 Sl+   0.0 futex_do_wait                    Kestrel Timer
 450039  450071 Sl+   0.0 futex_do_wait                    API Thread
 450039  450072 Sl+   0.0 futex_do_wait                    Log watcher thr
 450039  450073 Sl+   0.0 wait_woken                       .NET File Watch
 450039  450074 Sl+   0.0 futex_do_wait                    Touch-N-Stars A
 450039  450075 Sl+   0.0 wait_woken                       .NET File Watch
 450039  450076 Sl+   0.0 wait_woken                       .NET File Watch
 450039  450077 Sl+   0.0 wait_woken                       .NET File Watch
 450039  450078 Sl+   0.0 wait_woken                       .NET File Watch
 450039  450087 Sl+   0.0 futex_do_wait                    API Thread
 450039  450088 Sl+   0.0 futex_do_wait                    Log watcher thr
 450039  450089 Sl+   0.0 wait_woken                       .NET File Watch
 450039  450098 Sl+   0.0 wait_woken                       .NET File Watch
 450039  450099 Sl+   0.0 wait_woken                       .NET File Watch
 450039  450100 Sl+   0.2 poll_schedule_timeout.constprop. .NET TP Worker
 450039  451049 Sl+   0.6 futex_do_wait                    .NET TP Worker
 450039  451093 Sl+   0.4 futex_do_wait                    .NET TP Worker
 450039  451837 Sl+   0.3 futex_do_wait                    .NET TP Worker
 450039  451922 Sl+   0.3 futex_do_wait                    .NET TP Worker
 450039  451945 Sl+   0.3 futex_do_wait                    .NET TP Worker</code></pre>



<p class="wp-block-paragraph">全て、待機状態だ。ループやデッドロックで固まってないようです。<br>ん〜〜。。。NINAのGUI初期化中に何かの非同期処理を待っているように感じる。。。</p>



<p class="wp-block-paragraph">PCのブラウザから、</p>



<pre class="wp-block-code"><code>http:&#47;&#47;127.0.0.1:5000</code></pre>



<p class="wp-block-paragraph">ここで全て行うのか？<br>NINAが実際にどのポートをLISTENしているか見てみます。</p>



<pre class="wp-block-code"><code>sudo ss -ltnp | grep NINA
LISTEN 0      512          0.0.0.0:4782      0.0.0.0:*    users:(("NINA",pid=450039,fd=385))        
LISTEN 0      500                *:5000            *:*    users:(("NINA",pid=450039,fd=452))        
LISTEN 0      500                *:1889            *:*    users:(("NINA",pid=450039,fd=499))        
LISTEN 0      500                *:1888            *:*    users:(("NINA",pid=450039,fd=422))</code></pre>



<p class="wp-block-paragraph">NINAは以下のポートをLISTENしています。<br>4782 → NINA<br>5000 → NINA<br>1889 → NINA<br>1888 → NINA</p>



<p class="wp-block-paragraph">初めに分かっていたのに、スルーしちゃった。</p>



<pre class="wp-block-code"><code>http:&#47;&#47;127.0.0.1:5000</code></pre>



<p class="has-text-align-right wp-block-paragraph">「なーんだ、ブラウザでひとまず全てができるかな&#8230;」</p>



<p class="wp-block-paragraph">機器を接続した際には、まず</p>



<pre class="wp-block-code"><code>lsusb</code></pre>



<p class="wp-block-paragraph">Althiba3をUSB接続すると、下記のデバイス表示になりました。</p>



<pre class="wp-block-code"><code>Bus 003 Device 004: ID 04b4:6572 Cypress Semiconductor Corp. Unprogrammed CY7C65642 hub
Bus 003 Device 005: ID 16c0:0483 Van Ooijen Technische Informatica Teensyduino Serial</code></pre>



<p class="wp-block-paragraph">Cypress Semiconductor<br>CY7C65642: HX2VL &#8211; 超低消費電力USB 2.0 TetraHub™ コントローラー</p>



<p class="wp-block-paragraph">Vendor ID (ベンダーID): 16C0 (Van Ooijen Technische Informatica)<br>Device ID (デバイスID): 0483 (Teensyduino Serial)</p>



<p class="wp-block-paragraph">ModemManager がデバイスを制御を行うので、これを削除します。</p>



<pre class="wp-block-code"><code>sudo apt remove modemmanager</code></pre>



<p class="wp-block-paragraph">PI.N.S.のログにもあるように、ユーザーアカウントをdialoutグループに加えます。</p>



<pre class="wp-block-code"><code>sudo adduser ${USER} dialout</code></pre>



<p class="wp-block-paragraph">これで、Althiba3、Teensyduino Serialが制御できます。</p>



<p class="wp-block-paragraph">ガイドカメラとphd2の設定は、PI.N.S.からではなく、phd2から設定を行います。</p>



<p class="wp-block-paragraph">http://127.0.0.1:5000/equipment<br>一括切断<br>PHD2設定画面で、機器と接続、カメラとマウントをそれぞれ、<br>ZWO ASI462MC<br>INDI Mount [LX200 TeenAsto]を指定し、「全て接続」<br>http://127.0.0.1:5000/equipment<br>一括接続</p>



<p class="wp-block-paragraph">その後、PI.N.S.機器制御から指定できます。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="800" height="673" src="https://globe3.ddns.net/wp/wp-content/uploads/2026/09/INDI_setup.jpg" alt="" class="wp-image-5982" srcset="https://globe3.ddns.net/wp/wp-content/uploads/2026/09/INDI_setup.jpg 800w, https://globe3.ddns.net/wp/wp-content/uploads/2026/09/INDI_setup-300x252.jpg 300w, https://globe3.ddns.net/wp/wp-content/uploads/2026/09/INDI_setup-150x126.jpg 150w, https://globe3.ddns.net/wp/wp-content/uploads/2026/09/INDI_setup-768x646.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<h2 class="wp-block-heading">試行錯誤の跡</h2>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<p class="wp-block-paragraph">上記でPI.N.S. 及び、N.I.N.Aが動いたので、ここより、以下は未実施</p>
</div>



<p class="wp-block-paragraph">ビルド時のAPI／互換性問題を解決します。</p>



<p class="wp-block-paragraph">CMake 4.2.3対応：VERSION 2.8.12.2 → VERSION 3.5<br>FFmpeg 8対応：avcodec_close()　をFFmpeg 8未満の場合だけ実行<br>FFmpeg 8対応：av_stream_get_side_data()</p>



<p class="wp-block-paragraph">OpenCV 4.11.0の cap_ffmpeg_impl.hpp を修正します。</p>



<p class="wp-block-paragraph">現在の状態をバックアップします。</p>



<pre class="wp-block-code"><code>cd ~/pins/artifacts/src/opencv/opencv-4.11.0

cp modules/videoio/src/cap_ffmpeg_impl.hpp \
   /tmp/cap_ffmpeg_impl.hpp.org</code></pre>



<p class="wp-block-paragraph">avcodec_close() を修正します。</p>



<pre class="wp-block-code"><code>cd ~/pins/artifacts/src/opencv/opencv-4.11.0
sed -n '682,700p' modules/videoio/src/cap_ffmpeg_impl.hpp

#endif
    }

    if( video_st )
    {
#ifdef CV_FFMPEG_CODECPAR
        avcodec_close( context );
#endif
        video_st = NULL;
    }

    if (context)
    {
#ifdef CV_FFMPEG_CODECPAR
        avcodec_free_context(&amp;context);
#endif
    }

    if( ic )
</code></pre>



<pre class="wp-block-code"><code>#ifdef CV_FFMPEG_CODECPAR
        avcodec_close( context );
#endif</code></pre>



<p class="wp-block-paragraph">元のOpenCVコードをFFmpeg 8.0に合わせて変更します。<br>cap_ffmpeg_impl.hpp 682行以降です。</p>



<pre class="wp-block-code"><code>nano ~/pins/artifacts/src/opencv/opencv-4.11.0/modules/videoio/src/cap_ffmpeg_impl.hpp</code></pre>



<pre class="wp-block-code"><code>### 変更前
#ifdef CV_FFMPEG_CODECPAR
        avcodec_close( context );
#endif</code></pre>



<pre class="wp-block-code"><code>### 変更後
#ifdef CV_FFMPEG_CODECPAR
// avcodec_close removed in FFmpeg release 8.0
# if (LIBAVCODEC_BUILD &lt; CALC_FFMPEG_VERSION(62, 11, 100))
        avcodec_close( context );
# endif
#endif</code></pre>



<p class="wp-block-paragraph">CV_FFMPEG_CODECPAR が有効<br>↓<br>FFmpegのバージョンを確認<br>↓<br>62.11.100 より古い<br>├─ Yes → avcodec_close() を使う<br>└─ No → avcodec_close() を使わない</p>



<p class="wp-block-paragraph">続けて、av_stream_get_side_data()　を修正します。</p>



<pre class="wp-block-code"><code>nano ~/pins/artifacts/src/opencv/opencv-4.11.0/modules/videoio/src/cap_ffmpeg_impl.hpp</code></pre>



<p class="wp-block-paragraph">2000行以降です。</p>



<pre class="wp-block-code"><code>### 変更前
#if LIBAVFORMAT_BUILD &gt;= CALC_FFMPEG_VERSION(57, 68, 100)
    const uint8_t *data = 0;
    data = av_stream_get_side_data(video_st, AV_PKT_DATA_DISPLAYMATRIX, NULL);
    if (data)</code></pre>



<pre class="wp-block-code"><code>### 変更後
#if LIBAVFORMAT_BUILD &gt;= CALC_FFMPEG_VERSION(57, 68, 100)
    const uint8_t *data = 0;
// av_stream_get_side_data removed in FFmpeg release 8.0
# if (LIBAVCODEC_BUILD &lt; CALC_FFMPEG_VERSION(62, 11, 100))
    data = av_stream_get_side_data(video_st, AV_PKT_DATA_DISPLAYMATRIX, NULL);
# else
    AVPacketSideData* sd = video_st-&gt;codecpar-&gt;coded_side_data;
    int nb_sd = video_st-&gt;codecpar-&gt;nb_coded_side_data;
    if (sd &amp;&amp; nb_sd &gt; 0)
    {
        const AVPacketSideData* mtx =
            av_packet_side_data_get(sd, nb_sd, AV_PKT_DATA_DISPLAYMATRIX);
        if (mtx)
            data = mtx-&gt;data;
    }
# endif
    if (data)</code></pre>



<p class="wp-block-paragraph">OpenCVソースに対する変更を確認を行います。</p>



<pre class="wp-block-code"><code>cd ~/pins
git status --short</code></pre>



<p class="wp-block-paragraph">再度、スクリプトを実行します。</p>



<pre class="wp-block-code"><code>./build-and-install-pins-x64.sh</code></pre>



<pre class="wp-block-code"><code>grep -n -E \
  "OPENCV_INSTALL_PREFIX|OPENCV_REQUIRE_LOCAL_PKGCONFIG|get_opencv_version|get_local_opencv_pkgconfig_version|activate_opencv_environment" \
  build-and-install-pins-x64.sh
113:OPENCV_INSTALL_PREFIX="${OPENCV_INSTALL_PREFIX:-/usr/local}"
115:OPENCV_REQUIRE_LOCAL_PKGCONFIG="${OPENCV_REQUIRE_LOCAL_PKGCONFIG:-true}"
460:get_opencv_version() {</code></pre>



<p class="wp-block-paragraph">113行目で、opencv4をインストールした、/usr/local　を見に行っています。</p>



<pre class="wp-block-code"><code>OPENCV_INSTALL_PREFIX="${OPENCV_INSTALL_PREFIX:-/usr/local}"
↓
OPENCV_INSTALL_PREFIX=/usr/local
↓
要求バージョンと一致
↓
activate_opencv_environment
↓
以降のPINSビルドでそのOpenCVを使用</code></pre>



<h3 class="wp-block-heading">Node.js 22をインストール</h3>



<p class="wp-block-paragraph">Node.js 22をインストール<br>　JavaScriptをPC上で実行するための実行環境です</p>



<p class="wp-block-paragraph">Node.js 22は、<br><a rel="noopener" target="_blank" href="https://github.com/nitr57/pins/blob/develop/build-and-install-pins-x64.sh">https://github.com/nitr57/pins/blob/develop/build-and-install-pins-x64.sh</a><br>ここで指定されています。</p>



<pre class="wp-block-code"><code>install_node_22() {
local node_ok="false"

if command -v node &gt;/dev/null 2&gt;&amp;1; then
local node_major
node_major="$(node -p 'process.versions.node.split(".")&#91;0]')"
if &#91;&#91; "$node_major" == "22" ]]; then
node_ok="true"
fi</code></pre>



<p class="wp-block-paragraph">ここに案内があります。<br><a rel="noopener" target="_blank" href="https://nodejs.org/ja/download">https://nodejs.org/ja/download</a><br>「全ての過去のリリース」にリンクがあり、v22.23.2 (Jod) を選べます。<br><a rel="noopener" target="_blank" href="https://nodejs.org/dist/v22.23.2/node-v22.23.2-linux-x64.tar.xz">node-v22.23.2-linux-x64.tar.xz</a> を用います。</p>



<p class="wp-block-paragraph">バージョン確認</p>



<pre class="wp-block-code"><code>~/Downloads/node-v22.23.2-linux-x64/bin/node --version
v22.23.2</code></pre>



<pre class="wp-block-code"><code>### 一時的にPATHを設定
export PATH="$HOME/Downloads/node-v22.23.2-linux-x64/bin:$PATH"
npm --version
10.9.8</code></pre>



<h3 class="wp-block-heading">.NET SDK Linux x64をインストール</h3>



<p class="wp-block-paragraph">.NET SDK Linux x64をインストール<br>　PINS develop が指定するバージョンを確認します。</p>



<pre class="wp-block-code"><code>~/pins$ less global.json
{
  "sdk": {
    "version": "10.0.400",
    "rollForward": "latestPatch"
  }
}</code></pre>



<p class="wp-block-paragraph">PINS develop は .NET SDK 10.0.400 を指定しています。</p>



<p class="wp-block-paragraph">PINSをclone</p>



<h3 class="wp-block-heading">SDKバージョン</h3>



<p class="wp-block-paragraph">global.json を10.0.302に変更</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">NINA.Sequencer.Generators を新しい Roslyn 5.6 でビルドした DLL を、古い Roslyn 5.0 相当の SDK 10.0.111 でアナライザーとして実行していることが原因なので、</p>



<p class="wp-block-paragraph"><br>PINSビルドには、SDK 10.0.302 / Linux x64を入れる。</p>
</div>



<p class="wp-block-paragraph">.NET SDK 10.0.302 をインストール</p>



<p class="wp-block-paragraph">Microsoft の公式 .NET SDK ダウンロードページから SDK 10.0.302 / Linux x64 を入れます。<br>Microsoft が提供している .NET SDK 10.0.302 のバイナリ/パッケージを直接入れるます。</p>



<p class="wp-block-paragraph">.NET SDK 10.0.302<br>10.0.10にSDK 10.0.302の案内があります。<br><a rel="noopener" target="_blank" href="https://dotnet.microsoft.com/ja-jp/download/dotnet/10.0">https://dotnet.microsoft.com/ja-jp/download/dotnet/10.0</a></p>



<p class="wp-block-paragraph">手動インストール<br><a rel="noopener" target="_blank" href="https://learn.microsoft.com/ja-jp/dotnet/core/install/linux-scripted-manual">https://learn.microsoft.com/ja-jp/dotnet/core/install/linux-scripted-manual</a></p>



<p class="wp-block-paragraph">.NET 10.0 SDK (v10.0.302) &#8211; Linux x64 Binariesをインストールします。<br>apt版とは別に共存できるようです。</p>



<p class="wp-block-paragraph">Microsoft の公式手順ではホームディレクトリに：<br>$HOME/dotnet/<br>として展開します。公式手順も mkdir -p $HOME/dotnet → tar 展開 → DOTNET_ROOT と PATH を設定、という方式です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">mkdir -p $HOME/dotnet &amp;&amp; tar zxf dotnet-sdk-10.0.302-linux-x64.tar.gz -C $HOME/dotnet<br>export DOTNET_ROOT=$HOME/dotnet<br>export PATH=$PATH:$HOME/dotnet<br><br><a rel="noopener" target="_blank" href="https://dotnet.microsoft.com/ja-jp/download/dotnet/thank-you/sdk-10.0.302-linux-x64-binaries-targz">https://dotnet.microsoft.com/ja-jp/download/dotnet/thank-you/sdk-10.0.302-linux-x64-binaries-targz</a></p>
</blockquote>



<pre class="wp-block-code"><code>pwd /home/USERNAME/
mkdir -p "$HOME/.dotnet"</code></pre>



<p class="wp-block-paragraph">既にディレクトがある場合は、そのまま使います。</p>



<pre class="wp-block-code"><code>cd .dotnet/
~/.dotnet$ ll
total 16

0 Sep  4 16:28 .workloadAdvertisingManifestSentinel10.0.100
0 Sep  4 16:21 10.0.111.aspNetCertificateSentinel
0 Sep  4 16:21 10.0.111.dotnetFirstUseSentinel
0 Sep  4 16:21 10.0.111.toolpath.sentinel
4096 Sep  4 16:21 corefx/
4096 Sep  4 16:28 sdk-advertising/</code></pre>



<p class="wp-block-paragraph">SDK本体はこのディレクトリにはありません。<br>SDK 10.0.111 本体は /usr/lib/dotnet にあります。</p>



<p class="wp-block-paragraph">dotnet-sdk-10.0.302-linux-x64.tar.gz を、 ~/.dotnetへ展開します。</p>



<pre class="wp-block-code"><code>tar -xzf ~/Downloads/dotnet-sdk-10.0.302-linux-x64.tar.gz -C ~/.dotnet</code></pre>



<p class="wp-block-paragraph">PINS GitHub　&lt;&gt;codeの案内に沿って、PINSコードを~/pins へ収めます。</p>



<pre class="wp-block-code"><code>### https://github.com/nitr57/pins.git

git clone --branch develop https://github.com/nitr57/pins.git
cd pins

git branch --show-current
develop</code></pre>



<p class="wp-block-paragraph">clone 直後の状態を確認します。</p>



<pre class="wp-block-code"><code>cd ~/pins/NINA
git status
git status
ブランチ develop
Your branch is up to date with 'origin/develop'.
nothing to commit, working tree clean

git branch --show-current
develop

git rev-parse HEAD
d9acaf5488bbf8b07cf1e8f4ea0c52edb1fa1ff7</code></pre>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">~/pins/NINA<br>ブランチ: develop<br>HEAD: d9acaf5488bbf8b07cf1e8f4ea0c52edb1fa1ff7<br>working tree: clean</p>
</div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://globe3.ddns.net/wp/porting-pins-to-x86_64-gun-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Seti Astro Suite Pro を Python仮想環境で使う</title>
		<link>https://globe3.ddns.net/wp/seti-astro-suite-pro-python-virtual-environment/</link>
					<comments>https://globe3.ddns.net/wp/seti-astro-suite-pro-python-virtual-environment/#respond</comments>
		
		<dc:creator><![CDATA[minmin]]></dc:creator>
		<pubDate>Sat, 15 Aug 2026 11:10:33 +0000</pubDate>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[画像処理]]></category>
		<guid isPermaLink="false">https://globe3.ddns.net/wp/?p=4774</guid>

					<description><![CDATA[Seti Astro Suite Pro は、作者のFrankin Marekさんが、『綺麗な画像を得るのみではなく、マニアックな科学的なソフトにしたい。画像に含まれるデータを深く掘り下げ、他にどのような情報があるのか探 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Seti Astro Suite Pro は、作者のFrankin Marekさんが、『綺麗な画像を得るのみではなく、マニアックな科学的なソフトにしたい。画像に含まれるデータを深く掘り下げ、他にどのような情報があるのか探ることができる。』と話しています。</p>



<p class="wp-block-paragraph">賛同したので、<br>Python仮想環境を作り、ソースコードからローカル開発環境を構築して、Seti Astro Suite Pro 使います。</p>



<p class="wp-block-paragraph">Seti Astro Suite Proを使ってみると、データを扱う事に特化してる印象を受けます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="653" src="https://globe3.ddns.net/wp/wp-content/uploads/2026/08/SetiAstroSuitePro_SPCC-1200x653.jpg" alt="" class="wp-image-4847" srcset="https://globe3.ddns.net/wp/wp-content/uploads/2026/08/SetiAstroSuitePro_SPCC-1200x653.jpg 1200w, https://globe3.ddns.net/wp/wp-content/uploads/2026/08/SetiAstroSuitePro_SPCC-300x163.jpg 300w, https://globe3.ddns.net/wp/wp-content/uploads/2026/08/SetiAstroSuitePro_SPCC-150x82.jpg 150w, https://globe3.ddns.net/wp/wp-content/uploads/2026/08/SetiAstroSuitePro_SPCC-768x418.jpg 768w, https://globe3.ddns.net/wp/wp-content/uploads/2026/08/SetiAstroSuitePro_SPCC.jpg 1280w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure>



<p class="wp-block-paragraph">Seti Astro Suite Pro (SASpro) , Author: Franklin Marek<br><a rel="noopener" target="_blank" href="https://pypi.org/project/setiastrosuitepro/">https://pypi.org/project/setiastrosuitepro/</a></p>



<h2 class="wp-block-heading">ソースコードからローカル開発環境を構築する</h2>



<p class="wp-block-paragraph">GUN/Linux でも Windows OS でも Pythonを導入すれば、仮想環境から SetiAstro Suite Pro が使えます。</p>



<h3 class="wp-block-heading">仮想環境ディレクトリを作成</h3>



<pre class="wp-block-code"><code># Seti Astro Suite Pro Python仮想環境ディレクトリを作成（SASP）
# setiastrosuitepro ディレクトリで良いならば、不要
# その場合は、
# python3 -m venv .venv
# source .venv/bin/activate
mkdir -p /home/$USER/.local/share/SASP

# Python 3.12.13 を使って指定パスに仮想環境を作成
python3.12 -m venv /home/$USER/.local/share/SASP/venv

# ワーキングディレクトリへ
# cd ~/.local/share/SASP 

# 仮想環境を有効化 (アクティベート)
source /home/$USER/.local/share/SASP/venv/bin/activate</code></pre>



<h3 class="wp-block-heading">pip, PyTorch のインストール</h3>



<pre class="wp-block-code"><code>python3.12 -m pip install --upgrade pip</code></pre>



<pre class="wp-block-code"><code>python3.12 -m pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128</code></pre>



<pre class="wp-block-code"><code>Successfully installed MarkupSafe-3.0.3 cuda-bindings-12.9.7 cuda-pathfinder-1.6.0 cuda-toolkit-12.8.1 filelock-3.32.3 fsspec-2026.7.0 jinja2-3.1.6 mpmath-1.3.0 networkx-3.6.1 numpy-2.5.2 nvidia-cublas-cu12-12.8.4.1 nvidia-cuda-cupti-cu12-12.8.90 nvidia-cuda-nvrtc-cu12-12.8.93 nvidia-cuda-runtime-cu12-12.8.90 nvidia-cudnn-cu12-9.19.0.56 nvidia-cufft-cu12-11.3.3.83 nvidia-cufile-cu12-1.13.1.3 nvidia-curand-cu12-10.3.9.90 nvidia-cusolver-cu12-11.7.3.90 nvidia-cusparse-cu12-12.5.8.93 nvidia-cusparselt-cu12-0.7.1 nvidia-nccl-cu12-2.28.9 nvidia-nvjitlink-cu12-12.8.93 nvidia-nvshmem-cu12-3.4.5 nvidia-nvtx-cu12-12.8.90 pillow-12.3.0 setuptools-78.1.0 sympy-1.14.0 torch-2.11.0+cu128 torchvision-0.26.0+cu128 triton-3.6.0 typing-extensions-4.16.0</code></pre>



<p class="wp-block-paragraph">全体で、3.2GBくらいになるでしょうか。</p>



<h2 class="wp-block-heading">onnxruntime-gpu-1.26.0 を有効化</h2>



<p class="wp-block-paragraph">先に、pip、PyTorch 、onnxruntime-gpuを入れる必要がある。<br>若しくは、pip、PyTorch 、onnxruntime-cpu かな。<br>続いて、requirements.txt を編集する。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">WWW<br><a rel="noopener" target="_blank" href="https://onnxruntime.ai/docs/install/">https://onnxruntime.ai/docs/install/</a><br><a rel="noopener" target="_blank" href="https://dev.to/deskpai/the-hidden-pitfalls-of-onnxruntime-gpu-setup-4kb7">https://dev.to/deskpai/the-hidden-pitfalls-of-onnxruntime-gpu-setup-4kb7</a></p>
</blockquote>



<pre class="wp-block-code"><code>### PyTorch 2.11.0+cu128 をインストール
### python3.12 -m pip install torch==2.11.0+cu128 torchvision==2.11.0+cu128 --index-url https://download.pytorch.org/whl/cu128

### CUDA 12.8 に必要な cuDNN 9 を導入
### python3.12 -m pip install nvidia-cudnn-cu12

# ONNX Runtime GPU版 1.26.0 を導入
python3.12 -m pip install onnxruntime-gpu==1.26.0</code></pre>



<pre class="wp-block-code"><code>Successfully installed flatbuffers-25.12.19 onnxruntime-gpu-1.26.0 packaging-26.3 protobuf-7.35.1</code></pre>



<pre class="wp-block-code"><code># 環境変数（LD_LIBRARY_PATH）の追加は不要？

# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.local/lib/python3.12/site-packages/nvidia/cudnn/lib/

# .bashrc へ追記
# Seti Astro Suite Pro Python仮想環境ディレクトリ で使う
# Seti Astro Suite Pro Python仮想環境ディレクトリ の標準的な仮想環境内のパス

### Windows OSならば、システム環境変数に追加かな？

export LD_LIBRARY_PATH="$HOME/.local/share/SASP/venv/lib/python3.12/site-packages/nvidia/cudnn/lib:$LD_LIBRARY_PATH"</code></pre>



<h3 class="wp-block-heading">Seti Astro Suite Pro (SASpro), github</h3>



<p class="wp-block-paragraph">こちらに案内があります。<br><a rel="noopener" target="_blank" href="https://github.com/setiastro/setiastrosuitepro/wiki/Build:-Linux">https://github.com/setiastro/setiastrosuitepro/wiki/Build:-Linux</a><br><br>インストールはこちらに案内があります。<br>Development Setup<br>The following procedure describes how to establish a local development environment from source. The instructions apply to all supported platforms; platform-specific commands are noted where they differ.<br><a rel="noopener" target="_blank" href="https://pypi.org/project/setiastrosuitepro/1.20.6/">https://pypi.org/project/setiastrosuitepro/1.20.6/</a></p>



<pre class="wp-block-code"><code>git clone https://github.com/setiastro/setiastrosuitepro.git
cd setiastrosuitepro

# 全てのファイル、ディレクトリを親ディレクトリへ (~/.local/share/SASP)</code></pre>



<h3 class="wp-block-heading">依存関係をインストールする</h3>



<h4 class="wp-block-heading">依存関係から、&#8221;torch&#8221; や &#8220;onnxruntime-gpu&#8221;を削除、編集</h4>



<p class="wp-block-paragraph">setiastrosuitepro にある requirements.txt から、 &#8220;torch&#8221; や &#8220;onnxruntime&#8221; に関連する行を削除、もしくは、コメントアウトし、残りのパッケージ（UI用のPyQtなど）を pip install -r requirements.txt でインストール</p>



<p class="wp-block-paragraph">&#8220;torch&#8221;は無いようです。</p>



<pre class="wp-block-code"><code>onnxruntime-directml==1.23.0 ; python_version &gt;= "3.10" and python_version &lt; "3.15" and sys_platform == "win32"
onnxruntime-gpu==1.24.3 ; python_version == "3.10" and sys_platform == "linux"
onnxruntime-gpu==1.25.1 ; python_version &gt;= "3.11" and python_version &lt; "3.15" and sys_platform == "linux"
onnxruntime==1.23.2 ; python_version &gt;= "3.10" and python_version &lt; "3.15" and sys_platform != "linux" and sys_platform != "win32"</code></pre>



<p class="wp-block-paragraph">PyTorchとONNX Runtimeを確認します。後でもう一度、確認します。</p>



<pre class="wp-block-code"><code>python -m pip show torch onnx onnxruntime-gpu</code></pre>



<pre class="wp-block-code"><code>WARNING: Package(s) not found: onnx
Name: torch
Version: 2.11.0+cu128
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration
Home-page: https://pytorch.org
Author: 
Author-email: PyTorch Team &lt;packages@pytorch.org>
License: BSD-3-Clause
Location: /home/minmin/.local/share/SASP/venv/lib/python3.12/site-packages
Requires: cuda-bindings, cuda-toolkit, filelock, fsspec, jinja2, networkx, nvidia-cudnn-cu12, nvidia-cusparselt-cu12, nvidia-nccl-cu12, nvidia-nvshmem-cu12, setuptools, sympy, triton, typing-extensions
Required-by: torchvision
---
Name: onnxruntime-gpu
Version: 1.26.0
Summary: ONNX Runtime is a runtime accelerator for Machine Learning models
Home-page: https://onnxruntime.ai
Author: Microsoft Corporation
Author-email: onnxruntime@microsoft.com
License: MIT License
Location: /home/minmin/.local/share/SASP/venv/lib/python3.12/site-packages
Requires: flatbuffers, numpy, packaging, protobuf
Required-by: </code></pre>



<h4 class="wp-block-heading">依存関係をインストール</h4>



<pre class="wp-block-code"><code>python3.12 -m pip install --upgrade pip
python3.12 -m pip install -r requirements.txt</code></pre>



<p class="wp-block-paragraph">インストールログを確認。onnxruntimeは、無い</p>



<pre class="wp-block-code"><code>Successfully installed aenum-3.1.17 aiobotocore-2.26.0 aiohappyeyeballs-2.6.1 aiohttp-3.13.2 aioitertools-0.13.0 aiosignal-1.4.0 astropy-7.2.0 astropy-healpix-1.1.2 astropy-iers-data-0.2025.12.8.0.38.44 astroquery-0.4.11 attrs-25.4.0 autograd-1.8.0 beautifulsoup4-4.14.3 bokeh-3.8.1 botocore-1.41.5 certifi-2025.11.12 cffi-2.0.0 charset-normalizer-3.4.4 click-8.3.1 cloudpickle-3.1.2 colorama-0.4.6 contourpy-1.3.3 cryptography-46.0.3 cycler-0.12.1 dask-2025.12.0 dask-image-2025.11.0 docopt-0.6.2 donfig-0.8.1.post1 exifread-3.5.1 fastavro-1.12.2 fbpca-1.0 flatbuffers-25.9.23 fonttools-4.61.1 frozenlist-1.8.0 fsspec-2025.12.0 gaiaxpy-2.1.4 google-crc32c-1.7.1 hdfs-2.7.3 html5lib-1.1 idna-3.11 imagecodecs-2025.11.11 imageio-2.37.2 jaraco-classes-3.4.0 jaraco-context-6.0.1 jaraco-functools-4.3.0 jeepney-0.9.0 jmespath-1.0.1 joblib-1.5.2 jplephem-2.23 keyring-25.7.0 kiwisolver-1.4.9 lazy-loader-0.5 lightkurve-2.5.1 llvmlite-0.46.0 locket-1.0.0 lz4-4.4.5 matplotlib-3.10.8 memoization-0.4.0 ml-dtypes-0.5.4 more-itertools-10.8.0 multidict-6.7.0 narwhals-2.13.0 numba-0.63.1 numcodecs-0.16.5 numpy-2.2.6 oktopus-0.1.2 onnx-1.20.0 opencv-python-headless-4.12.0.88 packaging-25.0 pandas-2.3.3 partd-1.4.2 patsy-1.0.2 photutils-2.3.0 pillow-12.0.0 pims-0.7 plotly-6.5.0 propcache-0.4.1 protobuf-6.33.2 psutil-7.1.3 py-cpuinfo-9.0.0 pyarrow-22.0.0 pyavm-0.9.8 pycparser-2.23 pyerfa-2.0.1.5 pyopengl-3.1.10 pyparsing-3.2.5 pypdfium2-5.7.1 pyqt6-6.10.1 pyqt6-qt6-6.10.1 pyqt6-sip-13.10.3 pyqtgraph-0.14.0 python-dateutil-2.9.0.post0 pytz-2025.2 pyvo-1.8 pywavelets-1.9.0 pyyaml-6.0.3 rawpy-0.27.0 reproject-0.19.0 requests-2.32.5 s3fs-2025.12.0 scikit-image-0.26.0 scikit-learn-1.8.0 scipy-1.16.3 secretstorage-3.5.0 sep-1.4.1 sgp4-2.25 six-1.17.0 skyfield-1.53 slicerator-1.1.0 soupsieve-2.8 threadpoolctl-3.6.0 tifffile-2025.12.12 toolz-1.1.0 tornado-6.5.3 tqdm-4.67.1 typing-extensions-4.15.0 tzdata-2025.3 tzlocal-5.3.1 uncertainties-3.2.3 urllib3-2.6.2 webencodings-0.5.1 wrapt-1.17.3 xisf-0.9.5 xyzservices-2025.11.0 yarl-1.22.0 zarr-3.1.5 zstandard-0.25.0</code></pre>



<h3 class="wp-block-heading">Seti Astro Suite Proをインストール</h3>



<pre class="wp-block-code"><code>python3.12 -m pip install -e .</code></pre>



<pre class="wp-block-code"><code>Obtaining file:///home/minmin/.local/share/SASP
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Preparing editable metadata (pyproject.toml) ... done
Requirement already satisfied: GaiaXPy&lt;3.0.0,>=2.1.4 in ./venv/lib/python3.12/site-packages (from setiastrosuitepro==1.21.0) (2.1.4)
途中略
Requirement already satisfied: sgp4>=2.13 in ./venv/lib/python3.12/site-packages (from skyfield->setiastrosuitepro==1.21.0) (2.25)
Building wheels for collected packages: setiastrosuitepro
  Building editable for setiastrosuitepro (pyproject.toml) ... done
  Created wheel for setiastrosuitepro: filename=setiastrosuitepro-1.21.0-py3-none-any.whl size=22553 sha256=7fd2451c21bb5eaf826a707fbd42705be5ca0acd1554a7b2bbdb22e26d8e2006
  Stored in directory: /tmp/pip-ephem-wheel-cache-a1cs7u8j/wheels/39/e1/49/25a60d18eecf364dc5470f48a41e18da4ecbe898526782c568
Successfully built setiastrosuitepro
Installing collected packages: setiastrosuitepro
Successfully installed setiastrosuitepro-1.21.0</code></pre>



<h4 class="wp-block-heading">pip install -e .</h4>



<p class="wp-block-paragraph">&#8220;pip install -e . &#8220;が大切だとフランクは言っている。<br>『GitHubから取得したい場合は、まず必ず pip install -e を実行してください。』</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">この操作は、Python 環境に対して次を行う。</p>



<pre class="wp-block-code"><code>・パッケージメタデータを登録
・site-packages に .pth またはシンボリックリンクを作成
・元ディレクトリを import 対象として恒久的に追加</code></pre>



<pre class="wp-block-code"><code>「このディレクトリは常に import 可能な正式ライブラリである」</code></pre>



<p class="wp-block-paragraph">と Python に宣言している。<br><a rel="noopener" target="_blank" href="https://zenn.dev/colorfulwave/articles/7df566052ea674">https://zenn.dev/colorfulwave/articles/7df566052ea674</a><br>解説、有難うございます。</p>
</blockquote>



<p class="wp-block-paragraph">pip install -e . は、現在いるSASPのソースコードディレクトリを、Python環境に「編集可能モード（editable install）」でインストールするとの意味です。<br><br>~/.local/share/SASP/で行う、pip install -e .<br>&#8221; . &#8221; は、現在のディレクトリ ~/.local/share/SASPを示しています。</p>



<p class="wp-block-paragraph">-e は &#8211;editable（編集可能） の略です。</p>



<p class="wp-block-paragraph">「このディレクトリにあるSASPを、このvenvからPythonパッケージとして利用できるよう登録する」との意味になります。</p>



<h4 class="wp-block-heading">インストールログ</h4>



<pre class="wp-block-code"><code>python3.12 -m pip install -e .
Obtaining file:///home/USERNAME/.local/share/SASP
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Preparing editable metadata (pyproject.toml) ... done
Requirement already satisfied: GaiaXPy&lt;3.0.0,&gt;=2.1.4 in ./venv/lib/python3.12/site-packages (from setiastrosuitepro==1.20.6) (2.1.4)

Requirement already satisfied: sgp4&gt;=2.13 in ./venv/lib/python3.12/site-packages (from skyfield-&gt;setiastrosuitepro==1.20.6) (2.25)
Building wheels for collected packages: setiastrosuitepro
  Building editable for setiastrosuitepro (pyproject.toml) ... done
  Created wheel for setiastrosuitepro: filename=setiastrosuitepro-1.20.6-py3-none-any.whl size=22537 sha256=7813563576e9afcba9f55435e449963c0be07a60945e45d51db0f3894be781f3
  Stored in directory: /tmp/pip-ephem-wheel-cache-t9fp98bf/wheels/39/e1/49/25a60d18eecf364dc5470f48a41e18da4ecbe898526782c568
Successfully built setiastrosuitepro
Installing collected packages: setiastrosuitepro
Successfully installed setiastrosuitepro-1.20.6</code></pre>



<pre class="wp-block-code"><code>python3.12 -m pip check</code></pre>



<p class="wp-block-paragraph">python3.12 -m pip check  は、現在のPython環境にインストールされているパッケージ同士の依存関係に問題がないか検査するコマンドです。</p>



<p class="wp-block-paragraph">PyTorchとONNX Runtimeが変わっていないか確認します。</p>



<pre class="wp-block-code"><code>python -m pip show torch onnx onnxruntime-gpu</code></pre>



<h3 class="wp-block-heading">Seti Astro Suite Pro起動</h3>



<pre class="wp-block-code"><code># source venv/bin/activate
/home/$USER/.local/share/SASP/venv/bin/activate

### python3.12 -m setiastro.saspro
python3.12 setiastrosuitepro.py</code></pre>



<h3 class="wp-block-heading">Seti Astro Suite Pro 起動ログ</h3>



<pre class="wp-block-code"><code>Qt platform: wayland
QuitOnLastWindowClosed: True
XDG_SESSION_TYPE: wayland
QT_QPA_PLATFORM: None
QT_OPENGL: None
Looking in links: /tmp/tmpo0ecqee2
Requirement already satisfied: pip in /home/USERNAME/.local/share/SASpro/runtime/py312/venv/lib/python3.12/site-packages (25.0.1)
Requirement already satisfied: pip in /home/USERNAME/.local/share/SASpro/runtime/py312/venv/lib/python3.12/site-packages (25.0.1)
Collecting pip
  Using cached pip-26.2.1-py3-none-any.whl.metadata (4.6 kB)
Collecting wheel
  Using cached wheel-0.48.0-py3-none-any.whl.metadata (2.3 kB)
Collecting setuptools
  Using cached setuptools-84.0.0-py3-none-any.whl.metadata (6.6 kB)
Collecting packaging&gt;=24.0 (from wheel)
  Using cached packaging-26.3-py3-none-any.whl.metadata (3.5 kB)
Using cached pip-26.2.1-py3-none-any.whl (1.8 MB)
Using cached wheel-0.48.0-py3-none-any.whl (33 kB)
Using cached setuptools-84.0.0-py3-none-any.whl (818 kB)
Using cached packaging-26.3-py3-none-any.whl (129 kB)
Installing collected packages: setuptools, pip, packaging, wheel
  Attempting uninstall: pip
    Found existing installation: pip 25.0.1
    Uninstalling pip-25.0.1:
      Successfully uninstalled pip-25.0.1
Successfully installed packaging-26.3 pip-26.2.1 setuptools-84.0.0 wheel-0.48.0
root - INFO - Logging initialized -&gt; logs/saspro.log
root - INFO - Platform: linux
root - INFO - PyInstaller bundle: False
root - INFO - Faulthandler crash log: logs/saspro_crash.log
System is in Dark Mode
root - INFO - Qt: OpenType support missing for "Ubuntu Sans", script 11 (None:0)

   _____      __  _ ___         __            _____       _ __       ____           
  / ___/___  / /_(_)   |  _____/ /__________ / ___/__  __(_) /____  / __ \_________ 
  \__ \/ _ \/ __/ / /| | / ___/ __/ ___/ __ \\__ \/ / / / / __/ _ \/ /_/ / ___/ __ \
 ___/ /  __/ /_/ / ___ |(__  ) /_/ /  / /_/ /__/ / /_/ / / /_/  __/ ____/ /  / /_/ /
/____/\___/\__/_/_/  |_/____/\__/_/   \____/____/\__,_/_/\__/\___/_/   /_/   \____/                                                                                                 

Seti Astro Suite Pro v1.20.6.post1 (build 2026-08-16T17:54:03Z) up and running!
2026-08-17 13:03:46,080 - root - INFO - Numba threading layer resolved: tbb</code></pre>



<p class="wp-block-paragraph">&#8220;pip-26.2.1&#8221; を削除し、&#8221;pip-25.0.1&#8243;をインストールし直しています。</p>



<h2 class="wp-block-heading">From Franklin</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">SASproは巨大なプロジェクトです。何千時間もの開発時間を費やして、私が心から誇りに思うもの――誰でも利用できる、本格的な機能を備えた天体写真処理および科学分析プラットフォーム――を構築しました。<br>このプロジェクトは、深宇宙の撮影に対する純粋な愛情と、「高性能なツールは誰もが利用できるようにすべきだ」という信念から生まれました。光害のある裏庭から撮影する場合でも、暗い空の観測地から撮影する場合でも、微かな星雲を追いかける場合でも、トランジット系外惑星を追いかける場合でも、SASproは常に皆様のそばに寄り添うよう設計されています。</p>



<p class="wp-block-paragraph">この旅に共に参加してくださり、ありがとうございます。晴天を祈ります。<br>&#8212; フランクリン・マレク</p>
</blockquote>



<p class="wp-block-paragraph">Franklin Marek さんに感謝します。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">&#8220;onnxruntime-gpu-1.25.1&#8243;がインストールされた時のログ</p>



<pre class="wp-block-code"><code>Successfully installed aenum-3.1.17 aiobotocore-2.26.0 aiohappyeyeballs-2.6.1 aiohttp-3.13.2 aioitertools-0.13.0 aiosignal-1.4.0 astropy-7.2.0 astropy-healpix-1.1.2 astropy-iers-data-0.2025.12.8.0.38.44 astroquery-0.4.11 attrs-25.4.0 autograd-1.8.0 beautifulsoup4-4.14.3 bokeh-3.8.1 botocore-1.41.5 certifi-2025.11.12 cffi-2.0.0 charset-normalizer-3.4.4 click-8.3.1 cloudpickle-3.1.2 colorama-0.4.6 contourpy-1.3.3 cryptography-46.0.3 cycler-0.12.1 dask-2025.12.0 dask-image-2025.11.0 docopt-0.6.2 donfig-0.8.1.post1 exifread-3.5.1 fastavro-1.12.2 fbpca-1.0 flatbuffers-25.9.23 fonttools-4.61.1 frozenlist-1.8.0 fsspec-2025.12.0 gaiaxpy-2.1.4 google-crc32c-1.7.1 hdfs-2.7.3 html5lib-1.1 idna-3.11 imagecodecs-2025.11.11 imageio-2.37.2 jaraco-classes-3.4.0 jaraco-context-6.0.1 jaraco-functools-4.3.0 jeepney-0.9.0 jmespath-1.0.1 joblib-1.5.2 jplephem-2.23 keyring-25.7.0 kiwisolver-1.4.9 lazy-loader-0.5 lightkurve-2.5.1 llvmlite-0.46.0 locket-1.0.0 lz4-4.4.5 matplotlib-3.10.8 memoization-0.4.0 ml-dtypes-0.5.4 more-itertools-10.8.0 multidict-6.7.0 narwhals-2.13.0 numba-0.63.1 numcodecs-0.16.5 numpy-2.2.6 oktopus-0.1.2 onnx-1.20.0 onnxruntime-gpu-1.25.1 opencv-python-headless-4.12.0.88 packaging-25.0 pandas-2.3.3 partd-1.4.2 patsy-1.0.2 photutils-2.3.0 pillow-12.0.0 pims-0.7 plotly-6.5.0 propcache-0.4.1 protobuf-6.33.2 psutil-7.1.3 py-cpuinfo-9.0.0 pyarrow-22.0.0 pyavm-0.9.8 pycparser-2.23 pyerfa-2.0.1.5 pyopengl-3.1.10 pyparsing-3.2.5 pypdfium2-5.7.1 pyqt6-6.10.1 pyqt6-qt6-6.10.1 pyqt6-sip-13.10.3 pyqtgraph-0.14.0 python-dateutil-2.9.0.post0 pytz-2025.2 pyvo-1.8 pywavelets-1.9.0 pyyaml-6.0.3 rawpy-0.27.0 reproject-0.19.0 requests-2.32.5 s3fs-2025.12.0 scikit-image-0.26.0 scikit-learn-1.8.0 scipy-1.16.3 secretstorage-3.5.0 sep-1.4.1 sgp4-2.25 six-1.17.0 skyfield-1.53 slicerator-1.1.0 soupsieve-2.8 threadpoolctl-3.6.0 tifffile-2025.12.12 toolz-1.1.0 tornado-6.5.3 tqdm-4.67.1 typing-extensions-4.15.0 tzdata-2025.3 tzlocal-5.3.1 uncertainties-3.2.3 urllib3-2.6.2 webencodings-0.5.1 wrapt-1.17.3 xisf-0.9.5 xyzservices-2025.11.0 yarl-1.22.0 zarr-3.1.5 zstandard-0.25.0</code></pre>



<p class="wp-block-paragraph">setiastrosuitepro というパッケージの情報と、関連ファイルの一覧を表示</p>



<pre class="wp-block-code"><code>python3.12 -m pip show -f setiastrosuitepro</code></pre>



<pre class="wp-block-code"><code>Name: setiastrosuitepro
Version: 1.21.0
Summary: Seti Astro Suite Pro - Advanced astrophotography toolkit for image calibration, stacking, registration, photometry, and visualization
Home-page: https://www.setiastro.com
Author: Franklin Marek
Author-email: frank@setiastro.com
License: GPL-3.0
Location: /home/USERNAME/.local/share/SASP/venv/lib/python3.12/site-packages
Editable project location: /home/USERNAME/.local/share/SASP
Requires: astropy, astroquery, exifread, GaiaXPy, imagecodecs, imageio, jplephem, lightkurve, lz4, matplotlib, numba, numpy, nvidia-ml-py, oktopus, onnx, onnxruntime-gpu, opencv-python-headless, pandas, photutils, Pillow, plotly, psutil, py-cpuinfo, PyOpenGL, pypdfium2, PyQt6, pyqtgraph, pytz, pywavelets, rawpy, reproject, requests, scikit-image, scipy, sep, skyfield, tifffile, tzlocal, xisf, zstandard
Required-by: 
Files:
  ../../../bin/cosmicclarity
  ../../../bin/saspro-export-requirements
  ../../../bin/saspro-prime-matplotlib-cache
  ../../../bin/saspro-write-build-info
  ../../../bin/setiastrosuitepro
  setiastrosuitepro-1.21.0.dist-info/INSTALLER
  setiastrosuitepro-1.21.0.dist-info/METADATA
  setiastrosuitepro-1.21.0.dist-info/RECORD
  setiastrosuitepro-1.21.0.dist-info/REQUESTED
  setiastrosuitepro-1.21.0.dist-info/WHEEL
  setiastrosuitepro-1.21.0.dist-info/direct_url.json
  setiastrosuitepro-1.21.0.dist-info/entry_points.txt
  setiastrosuitepro-1.21.0.dist-info/licenses/LICENSE
  setiastrosuitepro.pth</code></pre>



<h3 class="wp-block-heading">Seti Astro Suite Pro 起動スクリプト</h3>



<p class="wp-block-paragraph">~/.local/share/SASP/start-saspro.sh を作ります。</p>



<pre class="wp-block-code"><code>#!/bin/bash

SASP_DIR="$HOME/.local/share/SASP"
VENV_DIR="$SASP_DIR/venv"

cd "$SASP_DIR" || exit 1

source "$VENV_DIR/bin/activate"

exec python3.12 setiastrosuitepro.py</code></pre>



<p class="wp-block-paragraph">若しくは、<br>../../../bin/setiastrosuitepro<br>との記述があるので、<br>~/.local/share/SASP/venv/bin/setiastrosuitepro<br>起動ファイルを用いるならば。</p>



<pre class="wp-block-code"><code>#!/bin/bash

SASP_DIR="$HOME/.local/share/SASP"
VENV_DIR="$SASP_DIR/venv"

cd "$SASP_DIR" || exit 1
source "$VENV_DIR/bin/activate"

exec setiastrosuitepro</code></pre>



<h3 class="wp-block-heading">TensorRT を確認 </h3>



<pre class="wp-block-code"><code>python3.12 -m pip list | grep -i tensorrt</code></pre>



<p class="wp-block-paragraph">無い。</p>



<p class="wp-block-paragraph">[&#8216;TensorrtExecutionProvider&#8217;, &#8216;CUDAExecutionProvider&#8217;, &#8216;CPUExecutionProvider&#8217;]</p>



<p class="wp-block-paragraph">onnxruntime-gpu は、ビルド/パッケージに応じて TensorRT Execution Provider のサポートを持っていても、Pythonから import tensorrt するTensorRT Pythonパッケージが別途存在するとは限らないらしい。</p>



<pre class="wp-block-code"><code>### 現在の環境
onnxruntime-gpu 1.26.0
        │
        ├── CUDAExecutionProvider       ✓
        │
        └── TensorrtExecutionProvider  ✓ ← プロバイダーとして登録可能
                                          
tensorrt Python package
        └── 未インストール</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">((venv) ) pip install setiastrosuitepro　を使ったインストール</h2>



<p class="wp-block-paragraph">こちらは試していません。</p>



<h3 class="wp-block-heading">仮想環境ディレクトリを作成</h3>



<pre class="wp-block-code"><code># Seti Astro Suite Pro Python仮想環境ディレクトリを作成
mkdir -p /home/$USER/.local/share/SASP

# Python 3.12.13 を使って指定パスに仮想環境を作成
python3.12 -m venv /home/$USER/.local/share/SASP/venv

# 仮想環境を有効化 (アクティベート)
source /home/$USER/.local/share/SASP/venv/bin/activate</code></pre>



<h3 class="wp-block-heading">pip, PyTorch のインストール</h3>



<pre class="wp-block-code"><code>python3.12 -m pip install --upgrade pip</code></pre>



<pre class="wp-block-code"><code>python3.12 -m pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128</code></pre>



<h3 class="wp-block-heading">ONNX Runtime GPU インストール</h3>



<pre class="wp-block-code"><code>### 以前にruntimeをインストールしているならば、その関連パッケージを削除
### python3.12 -m pip uninstall onnxruntime onnxruntime-gpu

# version 1.26をインストールします。
# これ以降のバージョンは、CUDA 13.0 を使用してビルドされています。
python3.12 -m pip install onnxruntime-gpu==1.26.0</code></pre>



<h3 class="wp-block-heading">SetiAstroSuitePro インストール</h3>



<pre class="wp-block-code"><code>pip install setiastrosuitepro</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://globe3.ddns.net/wp/seti-astro-suite-pro-python-virtual-environment/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cosmic Clarity Suite, Cosmic Clarity Sharpening &#038; Cosmic Clarity denoise, CosmicClaritySuite_Linux_AlternateBuild, Ubuntu 26.04 + Siril 1.5</title>
		<link>https://globe3.ddns.net/wp/cosmic-clarity-sharpening-denoise-cosmicclaritysuite_linux_alternatebuild-ubuntu2604-siril-15/</link>
					<comments>https://globe3.ddns.net/wp/cosmic-clarity-sharpening-denoise-cosmicclaritysuite_linux_alternatebuild-ubuntu2604-siril-15/#respond</comments>
		
		<dc:creator><![CDATA[minmin]]></dc:creator>
		<pubDate>Mon, 10 Aug 2026 05:16:14 +0000</pubDate>
				<category><![CDATA[Siril]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[画像処理]]></category>
		<guid isPermaLink="false">https://globe3.ddns.net/wp/?p=4623</guid>

					<description><![CDATA[Siril 1.5 Pythonスクリプトの一つである、Cosmic Clarity Sharpeningを、Ubuntu 26.04 + RTX5060 GPUで使います。 &#8220;SetiAstroCosmic [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Siril 1.5 Pythonスクリプトの一つである、Cosmic Clarity Sharpeningを、<br>Ubuntu 26.04 + RTX5060 GPUで使います。</p>



<h2 class="wp-block-heading">&#8220;SetiAstroCosmicClarity&#8221;, &#8220;SetiAstroCosmicClarity_denoise&#8221;エラー</h2>



<p class="wp-block-paragraph">CosmicClaritySuite_Linux_AlternateBuild にある、&#8221;SetiAstroCosmicClarity&#8221;、&#8221;SetiAstroCosmicClarity_denoise&#8221;は単体ではエラーが表示されます。</p>



<p class="wp-block-paragraph">エラー表示</p>



<pre class="wp-block-code"><code>PyInstaller/loader/pyimod02_importers.py:450: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools&lt;81.

/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_variant_builder_init_static
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so
/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_variant_builder_init_static
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgioremote-volume-monitor.so
Using device: cuda (CUDA)
Loaded TIFF image with dtype: float32
Final bit depth set to: 32-bit floating point
Sharpening Image: result_drizzle_19620s.fit.tif
Total Chunks: 225
Stellar Sharpening:
Traceback (most recent call last):
  File "setiastrocosmicclaritylinux.py", line 1374, in &lt;module&gt;
  File "setiastrocosmicclaritylinux.py", line 1199, in process_images
  File "setiastrocosmicclaritylinux.py", line 921, in sharpen_image
RuntimeError: CUDA error: no kernel image is available for execution on the device
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

&#91;PYI-7815:ERROR] Failed to execute script 'setiastrocosmicclaritylinux' due to unhandled exception!</code></pre>



<p class="wp-block-paragraph">RuntimeError: CUDA error: no kernel image is available for execution on the device</p>



<ul class="wp-block-list">
<li>RuntimeError: CUDA エラー: デバイス上で実行可能なカーネルイメージがありません。</li>



<li><code>SetiAstroCosmicClarity</code>にパッケージされているPyTorchのバイナリが、システム環境（Ubuntu 26.04 + CUDA 12.8）のGPUを扱えない。</li>
</ul>



<p class="wp-block-paragraph">UserWarning: pkg_resources is deprecated as an API</p>



<ul class="wp-block-list">
<li>pkg_resources は API として非推奨となっています。</li>



<li>Pythonの古い内部ツールが使われているという警告です。</li>
</ul>



<p class="wp-block-paragraph">SetiAstroCosmicClarity&#8221;, &#8220;SetiAstroCosmicClarity_denoise&#8221; を単体で動かし、動作確認を行います。<br>その後に Siril 1.5 Pythonスクリプトから動かします。</p>



<p class="wp-block-paragraph">SetiAstroCosmicClarity&#8221;, &#8220;SetiAstroCosmicClarity_denoise&#8221; それぞれをpyinstxtractor.py を使って展開し動作確認、後に、ラッパーを作成し、Siril 1.5から動かします。</p>



<h2 class="wp-block-heading">pyinstxtractor.py</h2>



<p class="wp-block-paragraph">pyinstxtractor.py を使って、SetiAstroCosmicClarity を展開します。</p>



<h3 class="wp-block-heading">Cosmic Clarity Sharpening を展開</h3>



<pre class="wp-block-code"><code># Siril 1.5 仮想環境で行う
pwd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild

python3.12 pyinstxtractor.py ./SetiAstroCosmicClarity

&#91;+] Processing ./SetiAstroCosmicClarity
&#91;+] Pyinstaller version: 2.1+
&#91;+] Python version: 3.12
&#91;+] Length of package: 57264312 bytes
&#91;+] Found 17 files in CArchive
&#91;+] Beginning extraction...please standby
&#91;+] Possible entry point: pyiboot01_bootstrap.pyc
&#91;+] Possible entry point: pyi_rth_inspect.pyc
&#91;+] Possible entry point: pyi_rth_pkgutil.pyc
&#91;+] Possible entry point: pyi_rth_multiprocessing.pyc
&#91;+] Possible entry point: pyi_rth_pkgres.pyc
&#91;+] Possible entry point: pyi_rth_setuptools.pyc
&#91;+] Possible entry point: pyi_rth_mplconfig.pyc
&#91;+] Possible entry point: pyi_rth_cryptography_openssl.pyc
&#91;+] Possible entry point: pyi_rth_pyqt6.pyc
&#91;+] Possible entry point: pyi_rth__tkinter.pyc
&#91;+] Possible entry point: setiastrocosmicclaritylinux.pyc
&#91;+] Found 7078 files in PYZ archive
&#91;+] Successfully extracted pyinstaller archive: ./SetiAstroCosmicClarity

You can now use a python decompiler on the pyc files within the extracted directory</code></pre>



<p class="wp-block-paragraph">SetiAstroCosmicClarity_extracted ディレクトリにある、<br>setiastrocosmicclaritylinux.pyc を<br>CosmicClaritySuite_Linux_AlternateBuild ディレクトリに配置</p>



<pre class="wp-block-code"><code># 動作確認
python3.12 ./setiastrocosmicclaritylinux.pyc

Using device: cuda (CUDA)
Identified 32bit floating point FITS iamge.
Sharpening Image: result_drizzle_19620s.fit
Total Chunks: 225
Stellar Sharpening:
Progress: 100.00% (225/225 chunks processed)
Stellar sharpening complete. Shape: (2877, 2877)
Saved 32-bit float sharpened image to: /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/./output/result_drizzle_19620s_sharpened.fit</code></pre>



<h4 class="wp-block-heading">Cosmic Clarity Sharpening ラッパーを作成</h4>



<pre class="wp-block-code"><code>### ラッパーファイルを作成 run_Sharpen.sh
cd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/</code></pre>



<p class="wp-block-paragraph">以下が、run_Sharpen.sh</p>



<pre class="wp-block-code"><code>#!/bin/bash
source "$HOME/.local/share/siril/venv/bin/activate"
cd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/
python3.12 ./setiastrocosmicclaritylinux.pyc "$@"

# 実行権
chmod +x ./run_Sharpen.sh</code></pre>



<p class="wp-block-paragraph"><code>"$@"</code>　について<br></p>



<h4 class="wp-block-heading">Cosmic Clarity Sharpening を設定</h4>



<p class="wp-block-paragraph">Cosmic Clarity Sharpening Settings<br>Cosmic Clarity Executable:  run_Sharpen.sh (上記ラッパー)を指定する。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading">RTX 5060 動作確認</h4>



<pre class="wp-block-code"><code>source /home/$USER/.local/share/siril/venv/bin/activate
pip list |grep torch
torch                    2.11.0+cu128
torchaudio               2.11.0+cu128
torchvision              0.26.0+cu128

pip list |grep torch-cuda80
pip list |grep torch-model-archiver
pip list |grep torchrec-cpu</code></pre>



<pre class="wp-block-code"><code># 動作確認
python3.12 -c "import torch; print(torch.__version__, torch.cuda.is_available(), torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')"
2.11.0+cu128 True NVIDIA GeForce RTX 5060 Laptop GPU</code></pre>



<pre class="wp-block-code"><code># 動作確認
python3.12 -c "import torch; print('Version:', torch.__version__); print('CUDA:', torch.cuda.is_available()); print('Device Name:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')"
Version: 2.11.0+cu128
CUDA: True
Device Name: NVIDIA GeForce RTX 5060 Laptop GPU</code></pre>



<h3 class="wp-block-heading">Cosmic Clarity denoise を展開</h3>



<p class="wp-block-paragraph">python3.12 pyinstxtractor.py /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/SetiAstroCosmicClarity_denoise</p>



<pre class="wp-block-code"><code># Siril 1.5 仮想環境で行う
pwd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild
python3.12 pyinstxtractor.py ./SetiAstroCosmicClarity_denoise</code></pre>



<pre class="wp-block-code"><code># 動作確認
python3.12 ./setiastrocosmicclaritylinux.pyc
</code></pre>



<h4 class="wp-block-heading">Cosmic Clarity denoise ラッパーを作成</h4>



<pre class="wp-block-code"><code>### ラッパーファイルを作成 run_Denoise.sh
cd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/</code></pre>



<p class="wp-block-paragraph">以下が、run_Denoise.sh</p>



<pre class="wp-block-code"><code>#!/bin/bash

### RTX 5060（12.0）
### export TORCH_CUDA_ARCH_LIST="9.0"
### export TORCH_CUDA_ARCH_LIST="12.0"

source "$HOME/.local/share/siril/venv/bin/activate"
cd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/
python3.12 ./SetiAstroCosmicClarity_denoise.pyc "$@"</code></pre>



<h4 class="wp-block-heading">Cosmic Clarity Denoise を設定</h4>



<p class="wp-block-paragraph">Cosmic Clarity Executable<br>run_Sharpen.sh (上記ラッパー)を指定する。</p>



<p class="wp-block-paragraph">🥂</p>
]]></content:encoded>
					
					<wfw:commentRss>https://globe3.ddns.net/wp/cosmic-clarity-sharpening-denoise-cosmicclaritysuite_linux_alternatebuild-ubuntu2604-siril-15/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Siril 1.5 + starnet2_linux_2.5.4-0214_ORT_x64_cli + Ubuntu 26.04 + GPU</title>
		<link>https://globe3.ddns.net/wp/siril-15-starnet2_linux_2-5-4-0214_ort_x64_cli_ubuntu2604/</link>
					<comments>https://globe3.ddns.net/wp/siril-15-starnet2_linux_2-5-4-0214_ort_x64_cli_ubuntu2604/#respond</comments>
		
		<dc:creator><![CDATA[minmin]]></dc:creator>
		<pubDate>Thu, 06 Aug 2026 06:01:40 +0000</pubDate>
				<category><![CDATA[Siril]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[画像処理]]></category>
		<guid isPermaLink="false">https://globe3.ddns.net/wp/?p=4534</guid>

					<description><![CDATA[onnxruntime-linux-x64-gpu-1.26.0に含まれる、libonnxruntime.so.1.26.0を用いるとStarnet2-2.5.4がGPU (RTX5060) を使えます。 CUDA To [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">onnxruntime-linux-x64-gpu-1.26.0に含まれる、libonnxruntime.so.1.26.0を用いると<br>Starnet2-2.5.4がGPU (RTX5060) を使えます。</p>



<p class="wp-block-paragraph">CUDA Toolkit 12.8.2 (April 2026)runfile + Ubuntu 26.04 + nvidia-driver 580 + python version 3.12.13 + PyTorch は、あらかじめインストールし動作するようにして下さい。</p>



<p class="wp-block-paragraph">例えば、<br><a target="_self" href="https://globe3.ddns.net/wp/cudatoolkit-12-8-2runfile-ubuntu-2604-nvidiadriver580-python3-12-13-cosmic-clarity-suite-siril-15/">https://globe3.ddns.net/wp/cudatoolkit-12-8-2runfile-ubuntu-2604-nvidiadriver580-python3-12-13-cosmic-clarity-suite-siril-15/</a></p>



<p class="wp-block-paragraph">Open Neural Network Exchange (ONNX)<br>推論・学習高速化を行う実行エンジンを、GPU適応に置き換えて、GPU（ここではRTX5060）が動作するように設定します。</p>



<p class="wp-block-paragraph">Windows 11 OS環境での、<br>Siril 1.5 + Windows 11 + starnet2_win_2.5.4-0214_ORT_x64_cli + RTX5060については、後述しています。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">アップデートがありました。<br>2026-09-15　StarNet2 2.6.2 and DeepSNR 1.3.2 command-line release<br><br>starnet2_linux_2.5.4-0214_ORT_x64_cli を、<br>starnet2_linux_2.6.2-0241_ORT_x64_cli へアップデートできます。</p>
</div>



<p class="wp-block-paragraph">starnet2_linux_2.6.2-0241 では以前に感じていた色調の違和感が無くなりました。有り難い。</p>



<h2 class="wp-block-heading">StarNet.py</h2>



<h3 class="wp-block-heading">Siril へ StarNet.pyを導入する</h3>



<p class="wp-block-paragraph">[Set paths] で &#8220;starnet2&#8221; 及び &#8220;StarNet2_weights.onnx &#8220;を指定<br>[Run StarNet] → CPUが動作する。</p>



<pre class="wp-block-code"><code>Linear mode: applied MTF autostretch to the StarNet input.
Reading input from /tmp/siril_starnet_8mjx6poe/input.tif...
Color image is detected!
Image size: 3996x2721
Restoring neural network checkpoint...
Loading ONNX model from file: /usr/local/share/starnet2_linux_2.5.4-0214_ORT_x64_cli/StarNet2_weights.onnx
Backend: ONNX Runtime (CPU execution provider) # ← CPUが動いている</code></pre>



<p class="wp-block-paragraph">GPUが動作するように、設定していきます。</p>



<h2 class="wp-block-heading">weights.onnx, libonnxruntime</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">こちらを参考にします。<br>Method 1: System-wide NVIDIA installer setup<br><a rel="noopener" target="_blank" href="https://starnetastro.com/documentation/windows-cuda/">https://starnetastro.com/documentation/windows-cuda/</a></p>
</blockquote>



<p class="wp-block-paragraph">libonnxruntime.so.1 をlibonnxruntime.so.1.26.0に入れ替えます。<br>次の様にシンボリックリンクを用います。</p>



<pre class="wp-block-code"><code>ln -s libonnxruntime.so.1.26.0 libonnxruntime.so.1
ln -s libonnxruntime.so.1 libonnxruntime.so

lrwxrwxrwx 1  libonnxruntime.so@ -> libonnxruntime.so.1
lrwxrwxrwx 1  libonnxruntime.so.1@ -> libonnxruntime.so.1.26.0</code></pre>



<h3 class="wp-block-heading">libonnxruntime.so.1.26.0 を導入</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">then download and extract ONNX Runtime GPU 1.26.0 for Windows x64 from GitHub.<br><a rel="noopener" target="_blank" href="https://starnetastro.com/documentation/windows-cuda/">https://starnetastro.com/documentation/windows-cuda/</a><br></p>
</blockquote>



<p class="wp-block-paragraph">onnxruntime-linux-x64-gpu-1.26.0.tgzを導入します。</p>



<p class="wp-block-paragraph">ONNX Runtime v1.27.0 は、<br>CUDA 12 packages are deprecated, please move to CUDA 13 ASAP.<br>CUDA 12 パッケージは非推奨となりました。できるだけ早く CUDA 13 へ移行してください。</p>



<p class="wp-block-paragraph">ここではCUDA12を用いているので、1.27ではなく、1.26を導入します。</p>



<p class="wp-block-paragraph"><a rel="noopener" target="_blank" href="https://github.com/microsoft/onnxruntime/releases">https://github.com/microsoft/onnxruntime/releases</a><br>onnxruntime-linux-x64-gpu-1.26.0.tgz をダウンロード、展開します。</p>



<pre class="wp-block-code"><code>onnxruntime-linux-x64-gpu-1.26.0/lib を確認
libonnxruntime.so.1.26.0
libonnxruntime_providers_cuda.so
libonnxruntime_providers_shared.so
libonnxruntime_providers_tensorrt.so #TensorRTを使わないので不要？</code></pre>



<p class="wp-block-paragraph">/usr/local/share/starnet2_linux_2.5.4-0214_ORT_x64_cli/lib にある、<br>libonnxruntime.so.1 を別名にします。</p>



<pre class="wp-block-code"><code>sudo mv libonnxruntime.so.1 libonnxruntime.so.1.backup</code></pre>



<p class="wp-block-paragraph">/usr/local/share/starnet2_linux_2.5.4-0214_ORT_x64_cli/libに、<br>libonnxruntime_providers_shared.so<br>があるならば、これも別名にします。</p>



<p class="wp-block-paragraph"><s>/usr/local/share/starnet2_linux_2.5.4-0214_ORT_x64_cli/lib/ にある、</s> （2026,9,18 訂正）<br>onnxruntime-linux-x64-gpu-1.26.0/lib にある、<br>libonnxruntime.so.1.26.0<br>libonnxruntime_providers_cuda.so<br>libonnxruntime_providers_shared.so<br>libonnxruntime_providers_tensorrt.so<br>これらを、<br>/usr/local/share/starnet2_linux_2.5.4-0214_ORT_x64_cli/lib へコピーします。</p>



<pre class="wp-block-code"><code>sudo cp libonnxruntime.so.1.26.0 /usr/local/share/starnet2_linux_2.5.4-0214_ORT_x64_cli/lib/</code></pre>



<p class="wp-block-paragraph">下記のリンクを作ります。<br>libonnxruntime.so@ -&gt; libonnxruntime.so.1<br>libonnxruntime.so.1@ -&gt; libonnxruntime.so.1.26.0</p>



<pre class="wp-block-code"><code>sudo ln -s libonnxruntime.so.1.26.0 libonnxruntime.so.1
sudo ln -s libonnxruntime.so.1 libonnxruntime.so</code></pre>



<h3 class="wp-block-heading">deepsnr_linux_1.3.2-0147_ORT_x64_cli</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">deepsnr_linux_1.3.2-0147_ORT_x64_cli/README.txt, LICENSE.txt<br>本契約は、お客様とミキタ（ニキタ）・ミシウラ（以下「ライセンサー」という）との間で締結されるものです。<br><br>オプションのGPUアクセラレーション<br>同梱のONNX RuntimeファイルはCPUで実行されるため、GPUの設定は不要です。<br>NVIDIAに精通したユーザーは、同梱のONNX Runtimeファイルを互換性のあるONNX Runtime GPUランタイムに置き換え、必要なCUDA/cuDNNランタイムライブラリをダイナミックローダーから認識できるようにすることができます。CUDAの初期化に成功した場合、DeepSNRは次のように報告します：<br>バックエンド：ONNX Runtime (CUDA実行プロバイダー)<br>CUDAが利用できない、または不完全な場合、DeepSNRは同じ実行ファイルからCPU実行に切り替わります。手動でのGPUランタイムの変更により起動や処理に失敗した場合は、元のパッケージファイルを復元してください。</p>
</blockquote>



<p class="wp-block-paragraph">deepsnr_linux_1.3.2-0147_ORT_x64_cliも、上記 starnet2_linux_2.5.4-0214_ORT_x64_cli と同様にonnxruntime-linux-x64-gpu-1.26.0.tgzを用いてGPUが使えます。</p>



<h3 class="wp-block-heading">環境変数を追加</h3>



<p class="wp-block-paragraph">1: cuda runtime, cudnn, torch 各ライブラリがあるディレクトリにパスを通します。</p>



<p class="wp-block-paragraph">2: NVIDIA TensorRT（ディープラーニングの推論（予測・実行）を高速化するためのソフトウェア開発キット）が使えない場合でもCPU使用を禁止させる。処理できないならば、エラー表示で停止させる。</p>



<p class="wp-block-paragraph">3: 使用する計算エンジンを列挙し指定する。CUDA GPU、NVIDIA GPU、仕方がないからCPUの順番</p>



<pre class="wp-block-code"><code>export LD_LIBRARY_PATH=/home/$USER/.local/share/siril/venv/lib/python3.12/site-packages/nvidia/cuda_runtime/lib:/home/$USER/.local/share/siril/venv/lib/python3.12/site-packages/nvidia/cudnn/lib:/home/$USER/.local/share/siril/venv/lib/python3.12/site-packages/torch/lib:$LD_LIBRARY_PATH

export ORT_TENSORRT_UNAVAILABLE_FALLBACK=0

export ONNXRUNTIME_PROVIDER_PRIORITY="CUDAExecutionProvider,TensorrtExecutionProvider,CPUExecutionProvider"</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">動作log</p>



<pre class="wp-block-code"><code>Linear mode: applied MTF autostretch to the StarNet input.
Reading input from /tmp/siril_starnet_qcse_6ma/input.tif...
Color image is detected!
Image size: 3996x2721
Restoring neural network checkpoint...
Loading ONNX model from file: /usr/local/share/starnet2_linux_2.5.4-0214_ORT_x64_cli/StarNet2_weights.onnx
&#91;0;93m2026-08-11 19:21:51.880234368 &#91;W:onnxruntime:, session_state.cc:1367 VerifyEachNodeIsAssignedToAnEp] Some nodes were not assigned to the preferred execution providers which may or may not have an negative impact on performance. e.g. ORT explicitly assigns shape related ops to CPU to improve perf.&#91;m
&#91;0;93m2026-08-11 19:21:51.880253284 &#91;W:onnxruntime:, session_state.cc:1369 VerifyEachNodeIsAssignedToAnEp] Rerunning with verbose output on a non-minimal build will show node assignments.&#91;m
Backend: ONNX Runtime (CUDA execution provider) # ← CUDA GPUが動いている
Working: Done!
Writing starless image to: /tmp/siril_starnet_qcse_6ma/starless.tif
Writing mask to: /tmp/siril_starnet_qcse_6ma/mask.tif
Saved Starmask to starnetmask_image.fit
StarNet finished.</code></pre>



<pre class="wp-block-code"><code># log
Linear mode: applied MTF autostretch to the StarNet input.
Reading input from /tmp/siril_starnet_tyv_jll2/input.tif...
Color image is detected!
Image size: 3008x3008
Restoring neural network checkpoint...
Loading ONNX model from file: /usr/local/share/starnet2_linux_2.5.4-0214_ORT_x64_cli/StarNet2_weights.onnx
&#91;0;93m2026-08-06 14:39:54.576734905 &#91;W:onnxruntime:, session_state.cc:1367 VerifyEachNodeIsAssignedToAnEp] Some nodes were not assigned to the preferred execution providers which may or may not have an negative impact on performance. e.g. ORT explicitly assigns shape related ops to CPU to improve perf.&#91;m
&#91;0;93m2026-08-06 14:39:54.576760112 &#91;W:onnxruntime:, session_state.cc:1369 VerifyEachNodeIsAssignedToAnEp] Rerunning with verbose output on a non-minimal build will show node assignments.&#91;m
Backend: ONNX Runtime (CUDA execution provider) # ← GPUが動いている
Working: Done!
Writing starless image to: /tmp/siril_starnet_tyv_jll2/starless.tif
Writing mask to: /tmp/siril_starnet_tyv_jll2/mask.tif
Saved Starmask to starnetmask_image.fit
StarNet finished.</code></pre>



<h2 class="wp-block-heading">Windows11 と Starnet2</h2>



<p class="wp-block-paragraph">Windows での GPU アクセラレーションの設定手順<br><a rel="noopener" target="_blank" href="https://starnetastro.com/documentation/windows-cuda/">https://starnetastro.com/documentation/windows-cuda/</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Use CUDA 12.x for the current ONNX Runtime 1.26.0 GPU path. Do not use CUDA 13.x runtime DLLs with the current CUDA-12 ONNX Runtime GPU DLLs.<br>現在の ONNX Runtime 1.26.0 の GPU パスでは、CUDA 12.x を使用してください。現在の CUDA-12 ONNX Runtime GPU DLL では、CUDA 13.x ランタイム DLL を使用しないでください。</p>
</blockquote>



<p class="wp-block-paragraph">こちらで (globe3.ddns.net) 確認された内容:</p>



<p class="wp-block-paragraph">以下の設定は、この Windows 11, Siril 1.5 環境で確認しています：</p>



<p class="wp-block-paragraph">オペレーティングシステム: Windows 11<br>GPU およびドライバー: NVIDIA GeForce RTX 5060、NVIDIA ドライバー 610.88 | WHQL<br>CUDA Toolkit: CUDA Toolkit 12.8.2 (April 2026). nvcc &#8211;version の出力は CUDA XX.x / VXX.x.x <br>cuDNN: CUDA 12.8 対応の cuDNN 9.24.0<br>ONNX Runtime GPU: Windows x64 対応の ONNX Runtime GPU 1.26.0</p>



<p class="wp-block-paragraph">NVIDIAドライバー、CUDA Toolkit、およびcuDNNをインストールし、Windowsの$PATH変数を通じて、これらのランタイムライブラリをSirilから使えるようにします。<br>以下を参照します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Method 1: System-wide NVIDIA installer setup<br><a rel="noopener" target="_blank" href="https://starnetastro.com/documentation/windows-cuda/">https://starnetastro.com/documentation/windows-cuda/</a></p>
</blockquote>



<p class="wp-block-paragraph">1. Install NVIDIA driver</p>



<p class="wp-block-paragraph">2. Install CUDA Toolkit 12.8.2</p>



<pre class="wp-block-code"><code>where.exe nvcc</code></pre>



<p class="wp-block-paragraph">3. Install cuDNN 9.24.0</p>



<p class="wp-block-paragraph">CUDA 13.x フォルダではなく、CUDA 12.9 cuDNN フォルダを使用してください。cuDNN インストーラによって、以下の CUDA 13.3 フォルダが作成される場合がありますが、この ONNX Runtime 1.26.0 CUDA-12 のセットアップでは使用しないでください：</p>



<p class="wp-block-paragraph">4. Replace ONNX Runtime DLLs</p>



<p class="wp-block-paragraph">ONNX Runtime GPU 1.26.0 for Windows x64 from GitHub.<br>onnxruntime-win-x64-gpu-1.26.0.zip をダウンロード、展開<br><a rel="noopener" target="_blank" href="https://github.com/microsoft/onnxruntime/releases/">https://github.com/microsoft/onnxruntime/releases/</a></p>



<p class="wp-block-paragraph">onnxruntime.dll<br> ONNX Runtimeのメインエンジン。全ての計算命令を受け付けます。</p>



<p class="wp-block-paragraph">onnxruntime_providers_cuda.dll<br> NVIDIAのCUDAを使って計算するための専用プラグインです。</p>



<p class="wp-block-paragraph">onnxruntime_providers_shared.dll<br> メインエンジンと、CUDAプラグイン（および他のGPUプラグイン）との間で、データを仲介、共有するための共通ライブラリです。</p>



<p class="wp-block-paragraph">StarNet2 CLI と、Python仮想環境下に3つのdllファイルをそれぞれ置きます。<br>　starnet++.exe がC++アプリとして直接GPUを使うため。<br>　StarNet.py スクリプトが、Pythonを用いてGPUを使うため。</p>



<pre class="wp-block-code"><code>C:\local\starnet2_win_2.5.3-0208_ORT
C:\Users\USERNAME\AppData\Local\siril\venv\Lib\site-packages\onnxruntime\backend</code></pre>



<p class="wp-block-paragraph">5. CUDA 12.8DLLを配置する</p>



<p class="wp-block-paragraph">cublas64_12.dll 、 cudart64_12.dll （あれば cublasLt64_12.dll 、 cufft64_11.dll）を<br>C:\local\starnet2_win_2.5.3-0208_ORTディレクトリに置く。</p>



<pre class="wp-block-code"><code>### CUDA Toolkit 12.8 Update ディレクトリは以下
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\bin</code></pre>



<p class="wp-block-paragraph">ここからコピーします。</p>



<p class="wp-block-paragraph">6. cudnn64_9.dll、cudnn_ops_infer64_9.dll、cudnn_cnn_infer64_9.dll　を配置する</p>



<p class="wp-block-paragraph">pythonコマンドを使って、それぞれのdllファイルをダウンロードします。<br>これはSiril 1.5仮想環境下ではなく、通常のPowerShell（またはターミナル）で行います。</p>



<pre class="wp-block-code"><code>python -m pip install --target "$env:TEMP\starnet-cuda-libs" "onnxruntime-gpu&#91;cuda,cudnn]==1.26.0"</code></pre>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">以下のファイルが starnet++.exe があるディレクトリに配置します。<br> ONNX 1.26 GPU版の3つ: onnxruntime.dll, onnxruntime_providers_shared.dll, onnxruntime_providers_cuda.dll<br><br> CUDA 12.8（システムからコピーしたもの）: cublas64_12.dll, cudart64_12.dll<br><br> cuDNN 9（pythonを用いてダウンロード）: cudnn64_9.dll（およびその他の cudnn_*.dll）</p>
</div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Windows11での StarNet2.py を使用し、GPUを動かす</h3>



<p class="wp-block-paragraph">Siril Pythonスクリプト、StarNet2.pyをSiril に導入し、GPUを使って画像処理を行う為の設定をします。</p>



<p class="wp-block-paragraph">OS、ツール環境</p>



<pre class="wp-block-code"><code>Windows 11
RTX 5060（Blackwell / Compute Capability 12.0）
CUDA Toolkit 12.8
Python 3.12.13
StarNet2 2.5.4-0214 ORT x64 CLI</code></pre>



<p class="wp-block-paragraph">Windows11での設定手順</p>



<p class="wp-block-paragraph">各種ファイルを確認します。</p>



<pre class="wp-block-code"><code> nvidia-smi
Mon Aug 31 17:25:13 2026
+-----------------------------------------------------------------------------------------
| NVIDIA-SMI 616.56                 KMD Version: 616.56        CUDA UMD Version: 13.4     
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                Driver-Model | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf        Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                       |                        |               MIG M. |
|=======================================+========================+======================|
|   0  NVIDIA GeForce RTX 5060 ...  WDDM  |   00000000:65:00.0 Off |                N/A |</code></pre>



<pre class="wp-block-code"><code>nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:42:46_Pacific_Standard_Time_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0</code></pre>



<pre class="wp-block-code"><code>where.exe nvcc
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\bin\nvcc.exe</code></pre>



<p class="wp-block-paragraph">cuDNN関連</p>



<pre class="wp-block-code"><code>where.exe cudnn64_9.dll
C:\Program Files\NVIDIA\CUDNN\v9.24\bin\12.9\x64\cudnn64_9.dll</code></pre>



<pre class="wp-block-code"><code>where.exe cudnn_ops64_9.dll
C:\Program Files\NVIDIA\CUDNN\v9.24\bin\12.9\x64\cudnn_ops64_9.dll</code></pre>



<pre class="wp-block-code"><code>where.exe cudnn_cnn64_9.dll
C:\Program Files\NVIDIA\CUDNN\v9.24\bin\12.9\x64\cudnn_cnn64_9.dll</code></pre>



<h4 class="wp-block-heading">starnet2_win_2.5.4-0214_ORT_x64_cli を眺める</h4>



<pre class="wp-block-code"><code>starnet2_win_2.5.4-0214_ORT_x64_cli.zip
展開</code></pre>



<p class="wp-block-paragraph">StarNetに同梱されているONNX Runtimeのバージョンを確認します。</p>



<pre class="wp-block-code"><code># powershell 
(Get-Item "C:\local\starnet2_win_2.5.4-0214_ORT_x64_cli\onnxruntime.dll").VersionInfo | Format-List FileVersion,ProductVersion


FileVersion    : 1.24.20260316.9.2d92497
ProductVersion : 1.24.20260316.9.2d92497</code></pre>



<p class="wp-block-paragraph">現在の環境<br>────────────────────────<br>RTX 5060<br>NVIDIA Driver 616.56<br>CUDA Toolkit 12.8<br>cuDNN 9.24 / CUDA 12.9</p>



<p class="wp-block-paragraph">StarNet CUDA構成<br>────────────────────────<br>ONNX Runtime 1.26.0<br>CUDA 12.x<br>cuDNN 9.x</p>



<h3 class="wp-block-heading">ONNX Runtime GPU 1.26.0 をstarnet2_win_2.5.4-0214_ORT_x64_cli へ導入</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">then download and extract ONNX Runtime GPU 1.26.0 for Windows x64 from GitHub.<br><a rel="noopener" target="_blank" href="https://starnetastro.com/documentation/windows-cuda/">https://starnetastro.com/documentation/windows-cuda/</a></p>
</blockquote>



<p class="wp-block-paragraph">onnxruntime-win-x64-gpu-1.26.0.zipを導入します。</p>



<p class="wp-block-paragraph">onnxruntime-win-x64-gpu-1.26.0.zipを展開し、onnxruntime-win-x64-gpu-1.26.0\libにある次のファイルを、starnet2_win_2.5.4-0214_ORT_x64_cliへ配置します。</p>



<p class="wp-block-paragraph">C:\local\starnet2_win_2.5.4-0214_ORT_x64_cli<br>│<br>├─ starnet2.exe<br>├─ StarNet2_weights.onnx<br>│<br>├─ onnxruntime.dll ← 1.26.0版に置換<br>├─ onnxruntime_providers_cuda.dll ← 新規<br>└─ onnxruntime_providers_shared.dll ← 1.26.0版に置換</p>



<pre class="wp-block-code"><code>### パス確認
where.exe cudnn_ops64_9.dll
C:\Program Files\NVIDIA\CUDNN\v9.24\bin\12.9\x64\cudnn_ops64_9.dll

where.exe cudnn_cnn64_9.dll
C:\Program Files\NVIDIA\CUDNN\v9.24\bin\12.9\x64\cudnn_cnn64_9.dll

where.exe cublas64_12.dll
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\bin\cublas64_12.dll</code></pre>



<pre class="wp-block-code"><code>Get-ChildItem "C:\local\starnet2_win_2.5.4-0214_ORT_x64_cli\" -Filter "onnxruntime*"
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2026/08/31     19:15       15336248 onnxruntime.dll
-a----        2026/08/31     17:53           1094 ONNXRUNTIME_LICENSE.txt
-a----        2026/08/31     19:15      298998584 onnxruntime_providers_cuda.dll
-a----        2026/08/31     19:15          21816 onnxruntime_providers_shared.dll</code></pre>



<p class="wp-block-paragraph">Siril Pythonスクリプト StarNet.py から、starnet2_win_2.5.4-0214_ORT_x64_cliにある、<br>starnet2<br>StarNet2_weights.onnx<br>をそれぞれ指定します。</p>



<p class="wp-block-paragraph">タスクマネージャーから、GPUの動作を確認します。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://globe3.ddns.net/wp/siril-15-starnet2_linux_2-5-4-0214_ort_x64_cli_ubuntu2604/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>CUDA Toolkit 12.8.2 (April 2026)runfile +  Ubuntu 26.04 + nvidia-driver 580 + python version 3.12.13  + PyTorch + GraXpert + Cosmic Clarity Suite + Siril 1.5</title>
		<link>https://globe3.ddns.net/wp/cudatoolkit-12-8-2runfile-ubuntu-2604-nvidiadriver580-python3-12-13-graxpert-3-1-cosmicclaritysuite-siril-15/</link>
					<comments>https://globe3.ddns.net/wp/cudatoolkit-12-8-2runfile-ubuntu-2604-nvidiadriver580-python3-12-13-graxpert-3-1-cosmicclaritysuite-siril-15/#respond</comments>
		
		<dc:creator><![CDATA[minmin]]></dc:creator>
		<pubDate>Wed, 05 Aug 2026 01:14:42 +0000</pubDate>
				<category><![CDATA[Siril]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://globe3.ddns.net/wp/?p=4440</guid>

					<description><![CDATA[Ubuntu 26.04 に、天体画像処理ソフトを入れて、RTX5060で処理を行います。 Note: Starting with version 1.27, GPU packages published to PyPI [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ubuntu 26.04 に、天体画像処理ソフトを入れて、RTX5060で処理を行います。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">CUDA 12.xでは、ONNX Runtime: onnxruntime-gpu 1.28.0 を用いても、<br>GPU (RTX5060) は、動きません。<br><br>ONNX Runtime: 1.26.x-1.21.x<br>CUDA: 12.8<br>cuDNN: 9.x<br>この3つを組み合わせます。</p>
</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Note: Starting with version 1.27, GPU packages published to PyPI (onnxruntime-gpu) and NuGet (Microsoft.ML.OnnxRuntime.Gpu) are built with CUDA 13.0 by default. Older GPU package versions are built with CUDA 12.8 by default.<br>バージョン 1.27 以降、PyPI（onnxruntime-gpu）および NuGet（Microsoft.ML.OnnxRuntime.Gpu）に公開されている GPU パッケージは、デフォルトで CUDA 13.0 を使用してビルドされています。それ以前のバージョンの GPU パッケージは、デフォルトで CUDA 12.8 を使用してビルドされています。<br><a rel="noopener" target="_blank" href="https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements">https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements</a></p>
</blockquote>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">CosmicClaritySuite_Linux_AlternateBuildは、ラッパーコマンドを作り、ラッパーを介して、Siril Pythonスクリプトから動作させています。(2026, 08. 08)</p>
</div>



<p class="wp-block-paragraph">CUDA Toolkit 13系では、Cosmic Clarity Suiteが動作しない様なので、<br>CUDA Toolkit 12.8.2を用いて、Ubuntu + CUDA環境を作ります。</p>



<p class="wp-block-paragraph">バージョンの組み合わせは、<br><a rel="noopener" target="_blank" href="https://docs.nvidia.com/deeplearning/cudnn/backend/v9.24.0/reference/support-matrix.html">https://docs.nvidia.com/deeplearning/cudnn/backend/v9.24.0/reference/support-matrix.html</a></p>



<p class="wp-block-paragraph">福山大学 工学部 情報工学科 『金子邦彦研究室へようこそ』<br>こちらで綺麗にまとめられています。<br>「推奨フロー図解」は、作業の流れをつかみ易くしてくれます。<br></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Ubuntu 24.04 開発・研究環境構築ガイド<br><a rel="noopener" target="_blank" href="https://www.kkaneko.jp/tools/ubuntu/ubuntu.html">https://www.kkaneko.jp/tools/ubuntu/ubuntu.html</a></p>
</blockquote>



<h2 class="wp-block-heading">インストールとインストール後の落ち穂拾い</h2>



<h3 class="wp-block-heading">時刻：ハードウェアクロック</h3>



<p class="wp-block-paragraph">Windows OSとLinux OSが、デュアルブートさせていると、時刻表示が日本標準時から8時間ずれる。<br>これを日本標準時（JST +9h）に指定します。</p>



<pre class="wp-block-code"><code># ハードウェアクロックにローカルタイムを、ローカル時刻に指定
sudo timedatectl set-local-rtc 1

# ハードウェアクロックにローカルタイムを、UTC時刻に指定
sudo timedatectl set-local-rtc 0</code></pre>



<h3 class="wp-block-heading">C/C++コンパイラ、make、パッケージツール</h3>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install build-essential gcc g++ make libtool dpkg-dev pkg-config dkms</code></pre>



<h2 class="wp-block-heading">Ubuntuのリポジトリからnvidia-driver-580-open, CUDA 12.x の runfile をダウンロードし、インストール</h2>



<pre class="wp-block-code"><code># インストールされているCUDA関連パッケージを確認
dpkg -l | grep cuda
dpkg -l | grep nvidia

# NVIDIA関連パッケージを削除
sudo apt --purge remove '*nvidia*'

# CUDA はrunfile を用いてインストールしているので、"cuda-uninstaller"を使う
# sudo apt --purge remove '*cuda*'
sudo apt --purge remove '*cudnn*'
</code></pre>



<pre class="wp-block-code"><code># 不要になった依存関係を自動削除
sudo apt autoremove --purge

# パッケージリストの情報を更新
sudo apt update

# Update device list 必要ならば
sudo update-pciids</code></pre>



<h3 class="wp-block-heading">ドライバのビルドに必要なカーネルヘッダー等をインストールする</h3>



<pre class="wp-block-code"><code>sudo apt update
sudo apt -y install linux-headers-$(uname -r) build-essential dkms</code></pre>



<pre class="wp-block-code"><code># システムが認識しているGPUと利用可能なドライバを表示
ubuntu-drivers devices
driver   : nvidia-driver-???-open - distro non-free recommended

# 2026年7月現在では、580
sudo apt install nvidia-driver-580-open

# initramfsを更新
sudo update-initramfs -u

# ドライバの有効化のためにシステムを再起動
reboot</code></pre>



<pre class="wp-block-code"><code>NVIDIA製GPUの稼働状況やシステム情報を確認します。
nvidia-smi</code></pre>



<h4 class="wp-block-heading">Boot miss ! 起動しなくなったら、Boot Repair</h4>



<pre class="wp-block-code"><code>sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt update
sudo apt install boot-repair
boot-repair</code></pre>



<pre class="wp-block-code"><code>sudo chroot "/mnt/boot-sav/sda2" dpkg --configure -a
sudo chroot "/mnt/boot-sav/sda2" apt-get install -fy
sudo chroot "/mnt/boot-sav/sda2" apt-get purge --allow-remove-essential -y grub-com*
sudo chroot "/mnt/boot-sav/sda2" apt-get purge --allow-remove-essential -y grub2-com*
sudo chroot "/mnt/boot-sav/sda2" apt-get purge --allow-remove-essential -y shim-signed
sudo chroot "/mnt/boot-sav/sda2" apt-get purge --allow-remove-essential -y grub-common:*
sudo chroot "/mnt/boot-sav/sda2" apt-get purge --allow-remove-essential -y grub2-common:*
</code></pre>



<pre class="wp-block-code"><code>sudo chroot "/mnt/boot-sav/sda2" apt-get install -y grub-efi</code></pre>



<pre class="wp-block-code"><code>Boot successfully repaired.

A new file (/var/log/boot-repair/20260805_015552/Boot-Info_20260805_0155.txt) will open in your text viewer.

In case you still experience boot problem, indicate its content to:
boot.repair@gmail.com or to your favorite support forum.

Locked-NVram detected. Please do not forget to make your UEFI firmware boot on the Ubuntu 26.04 LTS entry (sda1/efi/ubuntu/grubx64.efi file) !</code></pre>



<h3 class="wp-block-heading">CUDA Toolkit 12.8.2 (April 2026)runfile</h3>



<pre class="wp-block-code"><code>wget https://developer.download.nvidia.com/compute/cuda/12.8.2/local_installers/cuda_12.8.2_570.211.01_linux.run
sudo sh cuda_12.8.2_570.211.01_linux.run</code></pre>



<p class="wp-block-paragraph">先に、nvidia-driver-580-openをインストールしているので、Driverを外す。</p>



<h4 class="wp-block-heading"><strong>環境変数を設定する</strong></h4>



<pre class="wp-block-code"><code>echo 'export CUDA_HOME=/usr/local/cuda-12.8' &gt;&gt; ${HOME}/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:${LD_LIBRARY_PATH}' &gt;&gt; ${HOME}/.bashrc
echo 'export PATH=/usr/local/cuda-12.8/bin:${PATH}' &gt;&gt; ${HOME}/.bashrc

# 確認
tail ${HOME}/.bashrc

# 設定を即時反映（現在のシェルのみ）
source ${HOME}/.bashrc

# 詳細バージョンを確認
cat /usr/local/cuda-12.8/version.json # version.json

# nvcc コマンドでバージョンを確認
nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0</code></pre>



<h3 class="wp-block-heading">cuDNN</h3>



<p class="wp-block-paragraph">アーカイブからもダウンロード出来るでしょう。<br><a rel="noopener" target="_blank" href="https://developer.nvidia.com/cudnn-archive">https://developer.nvidia.com/cudnn-archive</a></p>



<pre class="wp-block-code"><code># ローカルインストール (FULL)
wget https://developer.download.nvidia.com/compute/cudnn/9.24.0/local_installers/cudnn-local-repo-ubuntu2604-9.24.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2604-9.24.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2604-9.24.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update

# CUDA 12 をインストールするには、パッケージを指定します。
sudo apt-get install cudnn9-cuda-12

### CUDA 13 をインストールするには、パッケージを指定します。
### sudo apt-get install cudnn9-cuda-13</code></pre>



<pre class="wp-block-code"><code># cuDNN　インストールを確認
dpkg -l | grep cudnn</code></pre>



<pre class="wp-block-code"><code>ii  cudnn-local-repo-ubuntu2604-9.24.0         1.0-1                                      amd64        cudnn-local repository configuration files
ii  cudnn9-cuda-12                             9.24.0.43-1                                amd64        NVIDIA cuDNN for CUDA 12
ii  cudnn9-cuda-12-9                           9.24.0.43-1                                amd64        NVIDIA cuDNN for CUDA 12.9
ii  libcudnn9-cuda-12                          9.24.0.43-1                                amd64        cuDNN runtime libraries for CUDA 12.9
ii  libcudnn9-dev-cuda-12                      9.24.0.43-1                                amd64        cuDNN development libraries for CUDA 12.9
ii  libcudnn9-headers-cuda-12                  9.24.0.43-1                                amd64        cuDNN header files for CUDA 12.9
ii  libcudnn9-static-cuda-12                   9.24.0.43-1                                amd64        cuDNN static libraries for CUDA 12.9</code></pre>



<h3 class="wp-block-heading">Siril Pytonスクリプトが GPUモードを設定</h3>



<p class="wp-block-paragraph">CPU内蔵グラフィックスが画面表示を行い、NVIDIA GeForceは計算ユニットとして使います。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">On-demand mode (recommended for laptop users)<br><a rel="noopener" target="_blank" href="https://ubuntu.fan/en/docs/ref/hardware/nvidia#dual-gpu-switching-prime">https://ubuntu.fan/en/docs/ref/hardware/nvidia#dual-gpu-switching-prime</a></p>
</blockquote>



<p class="wp-block-paragraph"></p>



<pre class="wp-block-code"><code># Check current mode
prime-select query

# On-demand mode (recommended for laptop users) #GPUモードを On-Demand に設定
sudo prime-select on-demand

# sudo reboot</code></pre>



<p class="wp-block-paragraph">CUDA、Python、Hashcatなどの場合では、TensorFlowやPyTorchやライブラリ経由でCUDAを使うならば、環境変数などの指定は要らないようです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Dual GPU Intel-Nvidia / Prime Render Offloading / Ubuntu 20.04 – does not offload<br><a rel="noopener" target="_blank" href="https://forums.developer.nvidia.com/t/dual-gpu-intel-nvidia-prime-render-offloading-ubuntu-20-04-does-not-offload/166864">https://forums.developer.nvidia.com/t/dual-gpu-intel-nvidia-prime-render-offloading-ubuntu-20-04-does-not-offload/166864</a></p>
</blockquote>



<h3 class="wp-block-heading">python version 3.12.13</h3>



<pre class="wp-block-code"><code># sudo make altinstall</code></pre>



<p class="wp-block-paragraph">ソースから構築したpython3.x コマンドはインストールされますが、python3 コマンドはインストールされません。<br>これにより、python3 コマンドでは主に使用するバージョンのPythonを起動し、それ以外のバージョンのPythonは、 python3.12 のように、バージョンを指定して実行します。</p>



<p class="wp-block-paragraph">Ubuntu環境のPython<br><a rel="noopener" target="_blank" href="https://www.python.jp/install/ubuntu/index.html">https://www.python.jp/install/ubuntu/index.html</a></p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install build-essential libbz2-dev libdb-dev \
  libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
  libncursesw5-dev libsqlite3-dev libssl-dev \
  zlib1g-dev uuid-dev tk-dev</code></pre>



<pre class="wp-block-code"><code>cd Python-3.12.13
./configure
make
sudo make altinstall</code></pre>



<pre class="wp-block-code"><code>python3.12 --version

Python 3.12.13</code></pre>



<h3 class="wp-block-heading">python アップデート (Python version 3.12.14)</h3>



<ul class="wp-block-list">
<li><code>make uninstall</code> できるかな？</li>



<li>手動でインストールされた関連ファイルを削除
<ul class="wp-block-list">
<li><code>cd /usr/local/bin</code></li>



<li><code>実行ファイル（バイナリ）の削除</code>
<ul class="wp-block-list">
<li>sudo rm -f /usr/local/bin/python3.12 /usr/local/bin/python3.12-config /usr/local/bin/pip3.12 /usr/local/bin/pydoc3.12 /usr/local/bin/idle3.12 /usr/local/bin/2to3-3.12</li>
</ul>
</li>



<li>ライブラリ（標準モジュール）の削除
<ul class="wp-block-list">
<li>sudo rm -rf /usr/local/lib/python3.12</li>
</ul>
</li>



<li>ヘッダーファイルの削除
<ul class="wp-block-list">
<li>sudo rm -rf /usr/local/include/python3.12</li>
</ul>
</li>



<li><code>マニュアルページの削除</code>
<ul class="wp-block-list">
<li>sudo rm -f /usr/local/share/man/man1/python3.12.1</li>
</ul>
</li>



<li>共有ライブラリキャッシュの更新
<ul class="wp-block-list">
<li>sudo ldconfig</li>
</ul>
</li>
</ul>
</li>



<li>Python version 3.12.14をソースビルド、インストール
<ul class="wp-block-list">
<li>sudo make altinstallを用いる</li>
</ul>
</li>



<li>Siril 1.5 仮想環境デイレクトリをワーキングディレクトリとする
<ul class="wp-block-list">
<li>仮想環境を 3.12.14 用に更新
<ul class="wp-block-list">
<li><code>python3.12 -m venv --upgrade</code> <code>venv</code></li>
</ul>
</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">Siril 1.5 Python仮想環境を作ります</h3>



<p class="wp-block-paragraph">以下の作業は、仮想環境下で行います。<br>全ては、/home/$USER/.local/share/siril 以下にインストールされます。</p>



<pre class="wp-block-code"><code># Siril 1.5 Python仮想環境ディレクトリを作成
mkdir -p /home/$USER/.local/share/siril

# Python 3.12.13 を使って指定パスに仮想環境を作成
python3.12 -m venv /home/$USER/.local/share/siril/venv

# 仮想環境を有効化 (アクティベート)
source /home/$USER/.local/share/siril/venv/bin/activate

### 仮想環境内にpip のベースを生成する
### python -m ensurepip --upgrade

# pip 自身をインストール、最新版にアップデートする
python -m pip install --upgrade pip

### pip 確認
pip3 --version</code></pre>



<h3 class="wp-block-heading">PyTorch のインストール</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">PyTorchの旧バージョンのインストール<br>最新バージョンのインストールを推奨しますが、便宜上、旧バージョンのバイナリおよびインストール手順を以下に掲載しています。<br><a rel="noopener" target="_blank" href="https://pytorch.org/get-started/previous-versions/">https://pytorch.org/get-started/previous-versions/</a></p>
</blockquote>



<p class="wp-block-paragraph">上記を参考にします。</p>



<pre class="wp-block-code"><code># Siril 1.5 仮想環境で行う
python3.12 -m pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128

### python3.12 -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128</code></pre>



<pre class="wp-block-code"><code># インストールログ
Successfully installed MarkupSafe-3.0.3 cuda-bindings-12.9.4 cuda-pathfinder-1.2.2 cuda-toolkit-12.8.1 filelock-3.29.0 fsspec-2026.4.0 jinja2-3.1.6 mpmath-1.3.0 networkx-3.6.1 numpy-2.4.4 nvidia-cublas-cu12-12.8.4.1 nvidia-cuda-cupti-cu12-12.8.90 nvidia-cuda-nvrtc-cu12-12.8.93 nvidia-cuda-runtime-cu12-12.8.90 nvidia-cudnn-cu12-9.19.0.56 nvidia-cufft-cu12-11.3.3.83 nvidia-cufile-cu12-1.13.1.3 nvidia-curand-cu12-10.3.9.90 nvidia-cusolver-cu12-11.7.3.90 nvidia-cusparse-cu12-12.5.8.93 nvidia-cusparselt-cu12-0.7.1 nvidia-nccl-cu12-2.28.9 nvidia-nvjitlink-cu12-12.8.93 nvidia-nvshmem-cu12-3.4.5 nvidia-nvtx-cu12-12.8.90 pillow-12.2.0 setuptools-78.1.0 sympy-1.14.0 torch-2.11.0+cu128 torchaudio-2.11.0+cu128 torchvision-0.26.0+cu128 triton-3.6.0 typing-extensions-4.15.0</code></pre>



<h4 class="wp-block-heading">動作テスト</h4>



<pre class="wp-block-code"><code># インストール確認
python3.12 -c "import torch; print('PyTorch Version:', torch.__version__); print('CUDA Available:', torch.cuda.is_available()); print('GPU Device:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')"</code></pre>



<pre class="wp-block-code"><code>PyTorch Version: 2.11.0+cu128
CUDA Available: True
GPU Device: NVIDIA GeForce RTX 5060 Laptop GPU</code></pre>



<h3 class="wp-block-heading">ONNX Runtime GPU インストール</h3>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">CUDA 12.xでは、ONNX Runtime: onnxruntime-gpu 1.28.0 を用いても、<br>GPU (RTX5060) は、動きません。<br><br>ONNX Runtime: 1.26.x-1.21.x ,  CUDA: 12.8 ,  cuDNN: 9.x<br>この3つの要素を組み合わせます。<br><br>onnxruntime-gpu==1.26.0,  version 1.26をインストールします。</p>
</div>



<p class="wp-block-paragraph">ONNX RuntimeとCUDAのバージョンの互換性<br><a rel="noopener" target="_blank" href="https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements">https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements</a><br>CUDA 12.X<br><a rel="noopener" target="_blank" href="https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#cuda-12x">https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#cuda-12x</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Note: Starting with version 1.27, GPU packages published to PyPI (onnxruntime-gpu) and NuGet (Microsoft.ML.OnnxRuntime.Gpu) are built with CUDA 13.0 by default. Older GPU package versions are built with CUDA 12.8 by default.<br>バージョン 1.27 以降、PyPI（onnxruntime-gpu）および NuGet（Microsoft.ML.OnnxRuntime.Gpu）に公開されている GPU パッケージは、デフォルトで CUDA 13.0 を使用してビルドされています。それ以前のバージョンの GPU パッケージは、デフォルトで CUDA 12.8 を使用してビルドされています。<br><a rel="noopener" target="_blank" href="https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements">https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements</a></p>
</blockquote>



<p class="wp-block-paragraph">この互換性を元に、ONNX Runtime をインストールするのが大切らしい。</p>



<pre class="wp-block-code"><code># Siril 仮想環境で行う
source /home/$USER/.local/share/siril/venv/bin/activate

# 以前にruntimeをインストールしているならば、バージョン確認
pip list | grep onnxruntime
pip show onnxruntime-gpu

### 以前にruntimeをインストールしているならば、その関連パッケージを削除
### python3.12 -m pip uninstall onnxruntime onnxruntime-gpu

# python3.12 -m pip install onnxruntime-gpu

# version 1.26をインストールします。
# これ以降のバージョンは、CUDA 13.0 を使用してビルドされています。
python3.12 -m pip install onnxruntime-gpu==1.26.0

Successfully installed flatbuffers-25.12.19 onnxruntime-gpu-1.26.0 packaging-26.3 protobuf-7.35.1</code></pre>



<pre class="wp-block-code"><code># 動作テスト
python3.12 -c "import onnxruntime as ort; print(ort.get_available_providers())"</code></pre>



<h4 class="wp-block-heading">RTX 5060 動作確認</h4>



<pre class="wp-block-code"><code>source /home/$USER/.local/share/siril/venv/bin/activate
pip list |grep torch
torch                    2.11.0+cu128
torchaudio               2.11.0+cu128
torchvision              0.26.0+cu128</code></pre>



<pre class="wp-block-code"><code># 動作確認
python3.12 -c "import torch; print(torch.__version__, torch.cuda.is_available(), torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')"
2.11.0+cu128 True NVIDIA GeForce RTX 5060 Laptop GPU</code></pre>



<pre class="wp-block-code"><code># 動作確認
python3.12 -c "import torch; print('Version:', torch.__version__); print('CUDA:', torch.cuda.is_available()); print('Device Name:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')"
Version: 2.11.0+cu128
CUDA: True
Device Name: NVIDIA GeForce RTX 5060 Laptop GPU</code></pre>



<h3 class="wp-block-heading">CUDA 12.8に適合するPyTorch、ONNX、天体処理用ライブラリを導入</h3>



<pre class="wp-block-code"><code>python3.12 -m pip install xisf tifffile astropy pillow pyqt6 sep lz4 zstandard

### python3.12 -m pip install onnxruntime-gpu xisf tifffile astropy pillow pyqt6 sep lz4 zstandard</code></pre>



<pre class="wp-block-code"><code># インストールログ
Installing collected packages: PyQt6-Qt6, flatbuffers, zstandard, tifffile, sep, PyYAML, PyQt6-sip, pyerfa, protobuf, packaging, lz4, astropy-iers-data, xisf, pyqt6, onnxruntime-gpu, astropy
Successfully installed PyQt6-Qt6-6.11.1 PyQt6-sip-13.12.0 PyYAML-6.0.3 astropy-8.0.1 astropy-iers-data-0.2026.8.3.0.53.6 flatbuffers-25.12.19 lz4-4.4.5 onnxruntime-gpu-1.28.0 packaging-26.3 protobuf-7.35.1 pyerfa-2.0.1.5 pyqt6-6.11.0 sep-1.4.1 tifffile-2026.7.31 xisf-0.9.7 zstandard-0.25.0</code></pre>



<h2 class="wp-block-heading">Siril 1.5</h2>



<h3 class="wp-block-heading">Siril 1.5 リビルド</h3>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install meson git cmake
sudo apt install libglib2.0-dev libgtk-3-dev libgsl-dev liblcms2-dev \
  libcfitsio-dev libfftw3-dev libopencv-dev libgtksourceview-4-dev \
  libexiv2-dev libraw-dev libjxl-dev libheif-dev libxisf-dev \
  libpugixml-dev liblz4-dev libgit2-dev libffms2-dev libcurl4-gnutls-dev

#2026年7月　追加
sudo apt install wcslib-tools libgtk-4-dev libgtksourceview-5-dev

# Sirilソース
git clone --recurse-submodules https://gitlab.com/free-astro/siril.git

# Siril 開発版ビルド、インストール
cd siril
meson setup --prefix /usr/local --buildtype release _build
ninja -C _build
sudo ninja -C _build install
</code></pre>



<h2 class="wp-block-heading">GraXpert</h2>



<h3 class="wp-block-heading">GraXpert 3.1.0rc2</h3>



<p class="wp-block-paragraph">Set GraXpert Executable にて GraXpertファイルを指定して、GraXpert 3.1.0rc2を使います。</p>



<pre class="wp-block-code"><code># graxpert log
Starting script /home/minmin/.local/share/siril-scripts/processing/GraXpert-AI.py
Installing platformdirs. This may take a few seconds...
Collecting platformdirs
Downloading platformdirs-4.11.0-py3-none-any.whl.metadata (5.5 kB)
Downloading platformdirs-4.11.0-py3-none-any.whl (23 kB)
Installing collected packages: platformdirs
Successfully installed platformdirs-4.11.0
Successfully installed platformdirs
Installing onnx. This may take a few seconds...
Collecting onnx
Downloading onnx-1.22.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (8.5 kB)
Requirement already satisfied: numpy&gt;=1.23.2 in /home/minmin/.local/share/siril/venv/lib/python3.12/site-packages (from onnx) (2.4.4)
Requirement already satisfied: protobuf&gt;=4.25.1 in /home/minmin/.local/share/siril/venv/lib/python3.12/site-packages (from onnx) (7.35.1)
Requirement already satisfied: typing_extensions&gt;=4.15.0 in /home/minmin/.local/share/siril/venv/lib/python3.12/site-packages (from onnx) (4.15.0)
Collecting ml_dtypes&gt;=0.5.4 (from onnx)
Downloading ml_dtypes-0.5.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (8.9 kB)
Downloading onnx-1.22.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (19.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 19.1/19.1 MB 8.9 MB/s  0:00:02
17:49:44: Downloading ml_dtypes-0.5.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.0/5.0 MB 8.4 MB/s  0:00:00
Installing collected packages: ml_dtypes, onnx
Successfully installed ml_dtypes-0.5.4 onnx-1.22.0
Successfully installed onnx
Detected ONNX Runtime with providers: &#91;'TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider']
ONNX Runtime is already installed: onnxruntime-gpu
numpy is installed
astropy is installed
Installing appdirs. This may take a few seconds...
Collecting appdirs
Downloading appdirs-1.4.4-py2.py3-none-any.whl.metadata (9.0 kB)
Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Installing collected packages: appdirs
Successfully installed appdirs-1.4.4
Successfully installed appdirs
Installing opencv-python. This may take a few seconds...
Collecting opencv-python
Downloading opencv_python-5.0.0.93-cp37-abi3-manylinux_2_28_x86_64.whl.metadata (19 kB)
Requirement already satisfied: numpy&gt;=2 in /home/minmin/.local/share/siril/venv/lib/python3.12/site-packages (from opencv-python) (2.4.4)
Downloading opencv_python-5.0.0.93-cp37-abi3-manylinux_2_28_x86_64.whl (73.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.8/73.8 MB 8.9 MB/s  0:00:08
Installing collected packages: opencv-python
Successfully installed opencv-python-5.0.0.93
Successfully installed opencv-python
PyQt6 is installed
Running command: requires
OK! This script is compatible with this version of Siril.

</code></pre>



<pre class="wp-block-code"><code># Deconvolution log
Python communication worker finished...
Starting script /home/minmin/.local/share/siril-scripts/processing/GraXpert-AI.py
platformdirs is installed
onnx is installed
Detected ONNX Runtime with providers: &#91;'TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider']
ONNX Runtime is already installed: onnxruntime-gpu
numpy is installed
astropy is installed
appdirs is installed
opencv-python is installed
PyQt6 is installed
Running command: requires
OK! This script is compatible with this version of Siril.

Starting deconvolution
Calculated normalized PSFsize value: 0.2951167728237792
=== ONNX Execution Provider Tester ===
Creating ONNX model...
Model saved to temporary file: /tmp/tmpnm_0t04i.onnx
Running reference on CPU...
OK: CPU output computed.
Available execution providers:
- TensorrtExecutionProvider
- CUDAExecutionProvider
- CPUExecutionProvider
Testing each provider without fallback...
Testing TensorrtExecutionProvider...
*************** EP Error ***************
EP Error /onnxruntime_src/onnxruntime/python/onnxruntime_pybind_state.cc:534 void onnxruntime::python::RegisterTensorRTPluginsAsCustomOps(PySessionOptions&amp;, const onnxruntime::ProviderOptions&amp;) Please install TensorRT libraries as mentioned in the GPU requirements page, make sure they're in the PATH or LD_LIBRARY_PATH, and that your GPU is supported.

when using &#91;'TensorrtExecutionProvider']
Falling back to &#91;'CPUExecutionProvider'] and retrying.
****************************************
(x) TensorrtExecutionProvider: fallback occurred (used CPUExecutionProvider)

Testing CUDAExecutionProvider...
OK: CUDAExecutionProvider ran successfully
Testing CPUExecutionProvider...
OK: CPUExecutionProvider ran successfully
=== Summary ===
OK: Working providers (in priority order):
- CUDAExecutionProvider
- CPUExecutionProvider

→ Best available provider: CUDAExecutionProvider
Cached execution providers to /home/minmin/.config/siril/siril_onnx.conf
Using inference providers: &#91;'CUDAExecutionProvider', 'CPUExecutionProvider']
Finished deconvolution</code></pre>



<h2 class="wp-block-heading">Cosmic Clarity Suite</h2>



<h3 class="wp-block-heading">CosmicClaritySuite_Linux_AlternateBuildを展開</h3>



<p class="wp-block-paragraph">/use/local/share/CosmicClaritySuite_Linux/<br>├── SetiAstroCosmicClarity.py<br>├── SetiAstroCosmicClarity_denoise.py <br>│<br>├── *.onnx, *.pth (下記にある各種ファイル）<br>│ <br>└── run_Sharpen.sh, run_Sharpen.sh, 及びその他の付属ファイル群</p>



<h4 class="wp-block-heading">Linux Files Excluding _internal を導入</h4>



<p class="wp-block-paragraph">Linux Files Excluding _internal<br><a rel="noopener" target="_blank" href="https://github.com/setiastro/cosmicclarity/releases/tag/Linux">https://github.com/setiastro/cosmicclarity/releases/tag/Linux</a><br>ここにあるファイルを/use/local/share/CosmicClaritySuite_Linux/へ配置して、アップデートします。</p>



<p class="wp-block-paragraph">darkstar_*.onnx<br>darkstar_*.pth<br>deep_*.onnx<br>deep_*.pth<br>satellite*.onnx<br>satellite*.pth<br>setiastro*.exe<br>superres_*.onnx<br>superres_*.pth<br>各ファイルを入れ替えます。</p>



<h4 class="wp-block-heading">CosmicClaritySuite_Linux へ SetiAstroCosmicClarity.py を導入</h4>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph"><a rel="noopener" target="_blank" href="https://github.com/setiastro/cosmicclarity">https://github.com/setiastro/cosmicclarity</a><br>ここにある、&#8221;SetiAstroCosmicClarity.py&#8221; を使います。</p>



<p class="wp-block-paragraph">ラッパーファイルを作成 run_Sharpen.shは次の様です。<br>#!/bin/bash<br>source &#8220;$HOME/.local/share/siril/venv/bin/activate&#8221;<br>cd /usr/local/share/CosmicClaritySuite_Linux/<br>python3.12 ./SetiAstroCosmicClarity.py &#8220;$@&#8221;</p>
</div>



<p class="wp-block-paragraph">setiastrosuiteにある、SetiAstroCosmicClarity.py、SetiAstroCosmicClarity_denoise.pyをダウンロードし配置します。<br><a rel="noopener" target="_blank" href="https://github.com/setiastro/cosmicclarity">https://github.com/setiastro/cosmicclarity</a></p>



<p class="wp-block-paragraph">不足するパッケージをインストールします。</p>



<pre class="wp-block-code"><code>python -m pip install xisf astropy sep opencv-python</code></pre>



<h4 class="wp-block-heading">CosmicClaritySuite, Sharpening, denoise のラッパーを作成</h4>



<p class="wp-block-paragraph">[SetiAstroCosmicClarity.py]　へSiril から諸設定などの情報を受け取れるラッパーファイルを作ります。&#8221;run_Sharpen.sh&#8221;とします。</p>



<pre class="wp-block-code"><code>### ラッパーファイルを作成 run_Sharpen.sh
cd /usr/local/share/CosmicClaritySuite_Linux/</code></pre>



<p class="wp-block-paragraph">以下が、run_Sharpen.sh<br>SetiAstroCosmicClarity.pyに対して。</p>



<pre class="wp-block-code"><code>#!/bin/bash
source "$HOME/.local/share/siril/venv/bin/activate"
cd /usr/local/share/CosmicClaritySuite_Linux/
python3.12 ./SetiAstroCosmicClarity.py "$@"</code></pre>



<pre class="wp-block-code"><code># 実行権
chmod +x ./run_Sharpen.sh</code></pre>



<p class="wp-block-paragraph">[SetiAstroCosmicClarity_denoise.py]　へSiril から諸設定などの情報を受け取れるラッパーファイルを作ります。&#8221;run_Denoise.sh&#8221; とします。</p>



<p class="wp-block-paragraph">以下が、run_Denoise.sh<br>SetiAstroCosmicClarity_denoise.pyに対して。</p>



<pre class="wp-block-code"><code>#!/bin/bash
source "$HOME/.local/share/siril/venv/bin/activate"
cd /usr/local/share/CosmicClaritySuite_Linux/
python3.12 ./SetiAstroCosmicClarity_denoise.py "$@"</code></pre>



<pre class="wp-block-code"><code># 実行権
chmod +x ./run_Denoise.sh</code></pre>



<h4 class="wp-block-heading">SetiAstroCosmicClarity_satellitelinux.pyを導入, satellitelinuxのラッパーを作成</h4>



<pre class="wp-block-code"><code>source "$HOME/.local/share/siril/venv/bin/activate"
python3.12 ./SetiAstroCosmicClarity_satellitelinux.py

Traceback (most recent call last):
  File "/usr/local/share/CosmicClaritySuite_Linux/./SetiAstroCosmicClarity_satellitelinux.py", line 52, in &lt;module>
    import rawpy
ModuleNotFoundError: No module named 'rawpy'

Traceback (most recent call last):
  File "/usr/local/share/CosmicClaritySuite_Linux/./SetiAstroCosmicClarity_satellitelinux.py", line 58, in &lt;module>
    from skimage.transform import resize
ModuleNotFoundError: No module named 'skimage'

</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">rawpy は、LibRaw ライブラリ用の使いやすい Python ラッパーです。 また、ホットピクセル/デッドピクセルの検出と修復のための追加機能も備えています。<br><a rel="noopener" target="_blank" href="https://pypi.org/project/rawpy/">https://pypi.org/project/rawpy/</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">scikit-image は画像処理のためのアルゴリズムの集合体です。<br><a rel="noopener" target="_blank" href="https://scikit-image.org/">https://scikit-image.org/</a></p>
</blockquote>



<pre class="wp-block-code"><code>python3.12 -m pip install rawpy

Collecting rawpy
  Downloading rawpy-0.27.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (9.7 kB)
Requirement already satisfied: numpy>=1.26.0 in /home/minmin/.local/share/siril/venv/lib/python3.12/site-packages (from rawpy) (2.4.4)
Downloading rawpy-0.27.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.0 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.0/3.0 MB 8.9 MB/s  0:00:00
Installing collected packages: rawpy
Successfully installed rawpy-0.27.1

python3.12 -m pip install scikit-image</code></pre>



<pre class="wp-block-code"><code>Error during headless execution: &#91;Errno 2] そのようなファイルやディレクトリはありません: '/usr/local/share/CosmicClaritySuite_Linux/./satellite_trail_detector_AI3.pth'

Error during headless execution: &#91;Errno 2] そのようなファイルやディレクトリはありません: '/usr/local/share/CosmicClaritySuite_Linux/./satellite_trail_detector_mobilenetv2.pth'

Error during headless execution: &#91;Errno 2] そのようなファイルやディレクトリはありません: '/usr/local/share/CosmicClaritySuite_Linux/./satelliteremovalAI3.pth'</code></pre>



<p class="wp-block-paragraph">上記ファイルは、<br>satellite_trail_detector_AI3.pth　→　satellite_trail_detector_AI3.5.pth<br>satellite_trail_detector_mobilenetv2.pth　→　satellite_trail_detector_mobilenetv2.5.pth<br>satelliteremovalAI3.pth　→　satelliteremovalAI3.5.pth</p>



<p class="wp-block-paragraph">satellite_trail_detector_AI3.onnx　→　satellite_trail_detector_AI3.5.onnx<br>satellite_trail_detector_mobilenetv2.onnx　→　satellite_trail_detector_mobilenetv2.5.onnx<br>satelliteremovalAI3.onnx　→　satelliteremovalAI3.5.onnx</p>



<p class="wp-block-paragraph">SetiAstroCosmicClarity_satellitelinux.py　をそれぞれ、書き換えます。</p>



<h3 class="wp-block-heading"><code>"$@"</code>　について</h3>



<p class="wp-block-paragraph">シェルスクリプトにおける &#8220;$@&#8221; は、<br>スクリプトに渡されたすべての引数を、元の区切り（スペースなど）を完全に保ったまま展開する特殊な変数</p>



<p class="wp-block-paragraph"><code>"$@"</code>　について参考にしたサイト<br><a rel="noopener" target="_blank" href="https://qiita.com/ko1nksm/items/98952723d7a71799673c">https://qiita.com/ko1nksm/items/98952723d7a71799673c</a><br></p>



<h4 class="wp-block-heading">Cosmic Clarity Sharpening を設定</h4>



<p class="wp-block-paragraph">Cosmic Clarity Sharpening Settings<br>Cosmic Clarity Executable:  run_Sharpen.sh (上記ラッパー)を指定する。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading">Cosmic Clarity Denoise を設定</h4>



<p class="wp-block-paragraph">Cosmic Clarity Executable<br>run_Sharpen.sh (上記ラッパー)を指定する。</p>



<h2 class="wp-block-heading">SyQon,  Prizm, Starless</h2>



<p class="wp-block-paragraph">/home/$USER/.local/share/siril <br>以下に、次のディレクトリがあり、そこへそれぞれのファイルを配置します。<br>syqon_prism　→　prism_mini.pt<br>syqon_starless　→　zenith.pt</p>



<p class="wp-block-paragraph">それぞれのスクリプトを起動すると、.ptファイルが読み込まれます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">ここまでが、本記事の本文になります。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">参考：SetiAstroCosmicClarityが動かない時の試行錯誤</h2>



<p class="wp-block-paragraph">これ以下は試行錯誤した経過です。全ては、途中で作業を止めています。または用いていません。</p>



<p class="wp-block-paragraph">./SetiAstroCosmicClarity を動作確認</p>



<pre class="wp-block-code"><code>./SetiAstroCosmicClarity

PyInstaller/loader/pyimod02_importers.py:450: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools&lt;81.

/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_variant_builder_init_static
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so</code></pre>



<p class="wp-block-paragraph">動かない。。。</p>



<p class="wp-block-paragraph">githubにある [SetiAstroCosmicClarity.py] を使ってみる。<br><a rel="noopener" target="_blank" href="https://github.com/setiastro/cosmicclarity">https://github.com/setiastro/cosmicclarity</a></p>



<p class="wp-block-paragraph">[SetiAstroCosmicClarity.py] を /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/へ置く。</p>



<pre class="wp-block-code"><code>source /home/$USER/.local/share/siril/venv/bin/activate
cd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/
python3.12 SetiAstroCosmicClarity.py</code></pre>



<p class="wp-block-paragraph">CUDA 12.8.2（2026年4月リリース版）は、CUDA 12系のビルドであり、古いONNX RuntimeやPyTorchの安定版との親和性があるらしい。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">ONNX Runtime: <code>onnxruntime-gpu==1.26.0</code> を用いる</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">直面した問題と原因</p>



<p class="wp-block-paragraph">配布されているポータブルバイナリ（<code>AlternateBuild</code> 版の <code>SetiAstroCosmicClarity</code> や <code>setiastrobenchmark</code>）をそのまま実行した際、問題が発生。</p>



<ol class="wp-block-list">
<li><strong>GLib/GIOライブラリの衝突</strong>:
<ul class="wp-block-list">
<li>現象: <code>libgvfscommon.so: undefined symbol</code> エラー</li>



<li>原因: バイナリに内包された古い <code>libglib</code> が、Ubuntu 26.04の最新デスクトップ環境（GVFS）と競合</li>
</ul>
</li>



<li><strong>CUDAカーネルのミスマッチ（致命的）</strong>:
<ul class="wp-block-list">
<li>現象: <code>RuntimeError: CUDA error: no kernel image is available for execution on the device</code>（コアダンプ）。</li>



<li>原因: バイナリに内包されていたPyTorchが <code>2.4.1+cu124</code> (CUDA 12.4用) であったため、RTX5060 GPUを駆動するための計算データ（カーネル）が不足し、処理開始と同時にクラッシュ。</li>
</ul>
</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">バイナリの仕様を諦め、公式の生のソースコード（<code>.py</code>）を改変する。</p>



<p class="wp-block-paragraph">１）本体スクリプトの取得と配置</p>



<ol class="wp-block-list">
<li>ディレクトリ <code>/usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/</code> に移動。</li>



<li>公式GitHubより <strong><code>SetiAstroCosmicClarity.py</code></strong> をダウンロード。<br><a rel="noopener" target="_blank" href="https://github.com/setiastro/cosmicclarity">https://github.com/setiastro/cosmicclarity</a></li>



<li>同フォルダ内のモデルデータ（<code>models/</code> 内の <code>~_AI4.onnx</code> など）をそのまま利用できる状態に統合。</li>
</ol>



<p class="wp-block-paragraph">２）本体スクリプト（<code>SetiAstroCosmicClarity.py</code>）の改造</p>



<p class="wp-block-paragraph">Sirilからの自動連携（画面を開かないCLI処理）に対応させるため、ファイル最末尾の引数解析ブロックを以下のように書き換えました。</p>



<pre class="wp-block-code"><code># --- 引数に --input を追加 ---
parser.add_argument('--input', type=str, help="Path to the input TIFF/FIT image")
args = parser.parse_args()
use_gpu = not args.disable_gpu

# --- 引数があれば入力パスを上書き ---
if args.input:
    input_dir = args.input
    print(f"&#91;CLI Mode] Input file overrides to: {input_dir}")

# --- 処理を実行 ---
process_images(input_dir, output_dir, args.sharpening_mode, args.nonstellar_strength, args.stellar_amount, args.nonstellar_amount, use_gpu, args.sharpen_channels_separately, args.auto_detect_psf)
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">３）Siril用スクリプトの配置</p>



<p class="wp-block-paragraph">ディレクトリ <code>~/.local/share/siril-scripts/processing/</code> に、新しく <code>CosmicClarity_Sharpen_CUDA.py</code> を作成し、以下の完全版コードを配置（他のファイルと同様、実行権限 <code>+x</code> は不要）。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">~/.local/share/siril-scripts/processing/ は、Sirilにより上書きされます。</p>
</div>



<pre class="wp-block-code"><code>#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys, subprocess os

# ユーザー名($USER)を自動取得して最新のCUDA環境を直接指定
current_user = os.environ.get("USER")
PYTHON_ENV = f"/home/{current_user}/.local/share/siril/venv/bin/python3.12"
CC_SCRIPT  = "/usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/SetiAstroCosmicClarity.py"

def main():
    args = sys.argv&#91;1:]
    cleaned_args = &#91;]
    for arg in args:
        if "SetiAstroCosmicClarity" in arg or arg.endswith(".py"):
            continue
        cleaned_args.append(arg)

    # 完璧に構築したPython仮想環境で本体スクリプトをキック
    cmd = &#91;PYTHON_ENV, CC_SCRIPT] + cleaned_args
    print(f"&#91;Siril-CUDA-CC] Redirecting execution via CUDA 12.8.2...")

    try:
        subprocess.run(cmd, check=True, text=True)
        print("&#91;Siril-CUDA-CC] CosmicClarity sharpening process completed successfully!")
    except subprocess.CalledProcessError as e:
        sys.exit(1)

if __name__ == "__main__":
    main()
</code></pre>



<p class="wp-block-paragraph">４）Siril上のGUI設定</p>



<ol class="wp-block-list">
<li>Siril 1.5の設定画面にある「Cosmic Clarity Executable」のBrowseボタンから、ダミーの実行トリガーとして <code>/usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/SetiAstroCosmicClarity.py</code> を指定。</li>



<li>Siril上部メニューの「スクリプト」から、追加された <code>CosmicClarity_Sharpen_CUDA</code> を選択して実行。</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">こちらは一度、設定したものです。今は用いていません。</p>



<h4 class="wp-block-heading">Cosmic Clarity Sharpening を展開</h4>



<p class="wp-block-paragraph">pyinstxtractor.py を使って、SetiAstroCosmicClarity を展開します。</p>



<pre class="wp-block-code"><code># Siril 1.5 仮想環境で行う
source /home/$USER/.local/share/siril/venv/bin/activate

cd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild

python3.12 pyinstxtractor.py ./SetiAstroCosmicClarity

&#91;+] Processing ./SetiAstroCosmicClarity
&#91;+] Pyinstaller version: 2.1+
&#91;+] Python version: 3.12
&#91;+] Length of package: 57264312 bytes
&#91;+] Found 17 files in CArchive
&#91;+] Beginning extraction...please standby
&#91;+] Possible entry point: pyiboot01_bootstrap.pyc
&#91;+] Possible entry point: pyi_rth_inspect.pyc
&#91;+] Possible entry point: pyi_rth_pkgutil.pyc
&#91;+] Possible entry point: pyi_rth_multiprocessing.pyc
&#91;+] Possible entry point: pyi_rth_pkgres.pyc
&#91;+] Possible entry point: pyi_rth_setuptools.pyc
&#91;+] Possible entry point: pyi_rth_mplconfig.pyc
&#91;+] Possible entry point: pyi_rth_cryptography_openssl.pyc
&#91;+] Possible entry point: pyi_rth_pyqt6.pyc
&#91;+] Possible entry point: pyi_rth__tkinter.pyc
&#91;+] Possible entry point: setiastrocosmicclaritylinux.pyc
&#91;+] Found 7078 files in PYZ archive
&#91;+] Successfully extracted pyinstaller archive: ./SetiAstroCosmicClarity

You can now use a python decompiler on the pyc files within the extracted directory</code></pre>



<p class="wp-block-paragraph">SetiAstroCosmicClarity_extracted ディレクトリにある、<br>setiastrocosmicclaritylinux.pyc を<br>CosmicClaritySuite_Linux_AlternateBuild ディレクトリに配置</p>



<pre class="wp-block-code"><code># 動作確認
python3.12 ./setiastrocosmicclaritylinux.pyc

Using device: cuda (CUDA)
Identified 32bit floating point FITS iamge.
Sharpening Image: result_drizzle_19620s.fit
Total Chunks: 225
Stellar Sharpening:
Progress: 100.00% (225/225 chunks processed)
Stellar sharpening complete. Shape: (2877, 2877)
Saved 32-bit float sharpened image to: /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/./output/result_drizzle_19620s_sharpened.fit</code></pre>



<pre class="wp-block-code"><code>#!/bin/bash
source "$HOME/.local/share/siril/venv/bin/activate"
cd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/
python3.12 ./setiastrocosmicclaritylinux.pyc "$@"

# 実行権
chmod +x ./run_Sharpen.sh</code></pre>



<h3 class="wp-block-heading">Cosmic Clarity denoise を展開</h3>



<p class="wp-block-paragraph">python3.12 pyinstxtractor.py /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/SetiAstroCosmicClarity_denoise</p>



<pre class="wp-block-code"><code># Siril 1.5 仮想環境で行う
pwd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild
python3.12 pyinstxtractor.py ./SetiAstroCosmicClarity_denoise</code></pre>



<pre class="wp-block-code"><code># 動作確認
python3.12 ./setiastrocosmicclaritylinux.pyc
</code></pre>



<h4 class="wp-block-heading">Cosmic Clarity denoise ラッパーを作成</h4>



<pre class="wp-block-code"><code>### ラッパーファイルを作成 run_Denoise.sh
cd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/</code></pre>



<p class="wp-block-paragraph">以下が、run_Denoise.sh</p>



<pre class="wp-block-code"><code>#!/bin/bash

### RTX 5060（12.0）
### export TORCH_CUDA_ARCH_LIST="9.0"
### export TORCH_CUDA_ARCH_LIST="12.0"

source "$HOME/.local/share/siril/venv/bin/activate"
cd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/
python3.12 ./SetiAstroCosmicClarity_denoise.pyc "$@"</code></pre>



<p class="wp-block-paragraph">/use/local/share/Legacy_Linux_2004/<br>├── SetiAstroCosmicClarity.py<br>├── SetiAstroCosmicClarity_denoise.py <br>├── 📁 models/ （← ここにmodelsフォルダごと置く）<br>│ 　　├── 各種AIモデルファイル（.onnx や .pth など）<br>└── run_Sharpen.sh, run_Sharpen.sh, 及びその他の付属ファイル群</p>
]]></content:encoded>
					
					<wfw:commentRss>https://globe3.ddns.net/wp/cudatoolkit-12-8-2runfile-ubuntu-2604-nvidiadriver580-python3-12-13-graxpert-3-1-cosmicclaritysuite-siril-15/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ubuntu 26.04 LTS, Windows11, PCを天文セットアップ</title>
		<link>https://globe3.ddns.net/wp/setting-up-ubuntu26-and-windows11-for-astronomy/</link>
					<comments>https://globe3.ddns.net/wp/setting-up-ubuntu26-and-windows11-for-astronomy/#respond</comments>
		
		<dc:creator><![CDATA[minmin]]></dc:creator>
		<pubDate>Thu, 16 Jul 2026 02:11:48 +0000</pubDate>
				<category><![CDATA[Siril]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[画像処理]]></category>
		<guid isPermaLink="false">https://globe3.ddns.net/wp/?p=3551</guid>

					<description><![CDATA[ノートPCを天文趣味PCにします。インストールをメモします。ノートPC構成は次ですCPU: AMD Ryzen AI 7 350 プロセッサグラフィックス: NVIDIA GeForce RTX™ 5060 Laptop [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ノートPCを天文趣味PCにします。インストールをメモします。<br>ノートPC構成は次です<br>CPU: AMD Ryzen AI 7 350 プロセッサ<br>グラフィックス: NVIDIA GeForce RTX™ 5060 Laptop GPU　← ここを活用したい。</p>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<p class="wp-block-paragraph">「開封」と言えば、梱包やパッケージを開けることでしょうが、私にとっては、中を見てパーツを確認することなので、ノートPCの裏蓋を開けることが「開封」です 😉<br>そんなアイキャッチ画像です</p>
</div>



<p class="wp-block-paragraph">天体画像処理には、Siril 1.5 を使います。ソースからビルドします。</p>



<p class="wp-block-paragraph">以下は、時系列では無く、間にメモがあり、まとまっていなので、とても見にくいかと思います。ごめんなさい。</p>



<p class="wp-block-paragraph">以下はインストール作業をまとめています。<br><a target="_self" href="https://globe3.ddns.net/wp/cudatoolkit-12-8-2runfile-ubuntu-2604-nvidiadriver580-python3-12-13-graxpert-3-1-cosmicclaritysuite-siril-15/">https://globe3.ddns.net/wp/cudatoolkit-12-8-2runfile-ubuntu-2604-nvidiadriver580-python3-12-13-graxpert-3-1-cosmicclaritysuite-siril-15/</a></p>



<p class="wp-block-paragraph"><br>試行錯誤した部分もそのまま残しています。貴方にとって不必要な操作もあります。<br>参考にする際は、前後の操作を確認して下さい。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">CosmicClaritySuite_Linux_AlternateBuild<br>Python共有ライブラリを見てみる。<br>libpython3.12.so*<br>libpython3.12.so.1.0*</p>



<p class="wp-block-paragraph">Active Python releasesを見ると、Python 3.12 は &#8220;security&#8221; とあるので、<br>Python 3.12.13 &#8211; March 3, 2026を入れてみよう。<br><br>Ubuntu 26.04 + RTX5060 + CUDA 12.x + Python 3.12.13 + onnxruntime-gpu 1.26 + GraXPert  + Cosmic Clarity + ラッパーコマンド = Cheers🥂<br>かな？</p>
</div>



<h2 class="wp-block-heading">Ubuntu 26.04 LTS</h2>



<p class="wp-block-paragraph">福山大学 工学部 情報工学科 『金子邦彦研究室へようこそ』<br>こちらで綺麗にまとめられています。公開されていて、とても有り難いです。金子邦彦さん、感謝です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">金子邦彦研究室へようこそ <a rel="noopener" target="_blank" href="https://www.kkaneko.jp/index.html">https://www.kkaneko.jp/index.html</a><br>Ubuntu 24.04 開発・研究環境構築ガイド<br>【概要】本ガイドでは、Ubuntu 24.04 LTSにおける各種ソフトウェアのインストール手順を説明する。プログラミング環境（C/C++、Python、Java、R）、NVIDIA GPU環境（ドライバ、CUDA Toolkit、cuDNN）、データベース（PostgreSQL）、人工知能・機械学習ライブラリ、3次元コンピュータグラフィックス・地理情報システム・メディア処理ツール、エディタ・統合開発環境などを扱う。<br><a rel="noopener" target="_blank" href="https://www.kkaneko.jp/tools/ubuntu/ubuntu.html">https://www.kkaneko.jp/tools/ubuntu/ubuntu.html</a><br><a rel="noopener" target="_blank" href="https://www.kkaneko.jp/tools/ubuntu/ubuntu_cudnn.html">https://www.kkaneko.jp/tools/ubuntu/ubuntu_cudnn.html</a></p>
</blockquote>



<h3 class="wp-block-heading">インストールできない。。。</h3>



<p class="wp-block-paragraph">インストール不具合があるならば、「セキュアブートを無効」は優先すべき選択肢と思います。</p>



<p class="wp-block-paragraph">SDDに問題があり、次のエラー表示。インストールが始まらない。。。</p>



<pre class="wp-block-code"><code>&#91;8768]:raise ValueError("Failed to find storage volume id='%s' config: %s"
&#91;8768]:ValueError: Failed to find storage volume id='disk-sda' config: {'ptable': 'gpt', 'serial': 'ELECOM_ESD-EYB_055Y00400047-0:0', 'path': '/dev/sda', 'wipe': 'superblock-recursive', 'preserve': False, 'name': '', 'grub_device': False, 'id': 'disk-sda', 'type': 'disk'}</code></pre>



<pre class="wp-block-code"><code>ストレージに対する指定は、

path	/dev/sda	対象となる物理ディスクのパス
wipe	superblock-recursive	ディスク上の古いファイルシステムやLVMのメタデータ（スーパーブロック）を完全に消去する
preserve   False	既存のパーティションやデータを保持しない（すべて上書きする）
name	''	ディスクの名前やラベルを指定しない（空白、指定なし）
grub_device	False	このディスク自体にはGRUB（ブートローダ）をインストールしない（※通常、GRUBはEFIパーティションなどの特定のパーティションにインストールされます）
type	disk	対象のタイプが「ディスク（物理ドライブ）」であることを示す
id	disk-sda	このディスク設定に対するユニークな識別子（ID）</code></pre>



<p class="wp-block-paragraph">インストールストレージのデバイス諸要件と、実際のストレージの要件が一致しないエラーのようです。何度もインストールを試し、パーティションを作り直しているので、このような症状になったのかと思い、インストールメディアの先頭データ512バイトを削除します。<br>これで、そのディスクの構成を記録してあるパーティションテーブルが無くなります。（乱暴。。。）</p>



<pre class="wp-block-code"><code>sudo dd if=/dev/zero of=/dev/sda bs=512 count=1
sudo dd if=/dev/zero of=/dev/sda bs=1M count=100 conv=fdatasync

sync</code></pre>



<p class="wp-block-paragraph"><code>/dev/sda</code> に残っているファイルシステムやパーティションなどの識別情報（署名）を削除します。</p>



<pre class="wp-block-code"><code>sudo wipefs -a /dev/sda</code></pre>



<p class="wp-block-paragraph">/dev/sda GPTパーティションテーブルを新しく作ります。</p>



<pre class="wp-block-code"><code>sudo parted /dev/sda mklabel gpt</code></pre>



<p class="wp-block-paragraph">この後、インストールを行います。</p>



<h3 class="wp-block-heading">インストール後の「落ち穂拾い」</h3>



<pre class="wp-block-code"><code>sudo apt update
sudo apt upgrade
reboot</code></pre>



<h4 class="wp-block-heading">バッテリーの話し</h4>



<p class="wp-block-paragraph">TLP: 電源管理</p>



<pre class="wp-block-code"><code>sudo apt install tlp tlp-rdw
REMOVING:
  power-profiles-daemon</code></pre>



<p class="wp-block-paragraph">TLP有効化</p>



<pre class="wp-block-code"><code>sudo systemctl enable tlp
sudo systemctl start tlp</code></pre>



<p class="wp-block-paragraph">TLP設定ファイルを編集</p>



<p class="wp-block-paragraph">こちらのノートPCでは、GNOME 拡張機能ではバッテリーのコントロールが出来ませんでした。<br>Windows11にてバッテリーマネージャー で設定すると、Ubuntu 26でも引き継がれている。<br>制御チップに指定がされ、残っているのだろうか？</p>



<pre class="wp-block-code"><code>電源デバイスのパスを表示
upower -e
/org/freedesktop/UPower/devices/battery_BAT0
/org/freedesktop/UPower/devices/line_power_AC0

upower -i /org/freedesktop/UPower/devices/battery_BAT0
charge-cycles:       N/A
</code></pre>



<pre class="wp-block-code"><code>/sys/class/power_supply/BAT
charge_full         6400000
charge_full_design  6400000

充電80% の時
charge_now　　　　　5120000

77%
current_now         2040000

voltage_min_design 15480000
voltage_now        16795000</code></pre>



<p class="wp-block-paragraph">GNOME 拡張機能を使用する場合は、以下の指定をします。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">

<a rel="noopener" target="_blank" href="https://www.youtube.com/watch?v=yDHEKpmSLO0" title="How to Limit Battery Charging to 80% in Ubuntu Linux" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://globe3.ddns.net/wp/wp-content/uploads/cocoon-resources/blog-card-cache/b99086c1ba963e2f2442d4f69908ca1e.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">How to Limit Battery Charging to 80% in Ubuntu Linux</div><div class="blogcard-snippet external-blogcard-snippet">Keeping your laptop constantly charged at 100% may reduce its battery health over time.So, in this quick tutorial, I’ll ...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.youtube.com/watch?v=yDHEKpmSLO0" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.youtube.com</div></div></div></div></a>



<ul class="wp-block-list">
<li>sudo apt install gnome-shell-extension-manager ：拡張機能マネージャーをインストール</li>



<li>「アプリを表示」→「Extension Manager」を開く→「Battery Health Charging」を検索</li>



<li>拡張機能の設定画面（歯車アイコン）を開き、 Install user privileges for this user</li>



<li>sudo 機能が必要なので、Install からパスワードを入れます。</li>



<li>パスワードを入力して権限が適用されると、画面右上のステータスバーから充電モード（100%、80%、60%など）を切り替えられる。</li>
</ul>
</blockquote>



<ul class="wp-block-list">
<li>sudo apt install gnome-shell-extension-manager ：拡張機能マネージャーをインストール</li>



<li>Extension Manager」アプリを開き、「Browse」 タブから 「Battery Health Charging」 を検索</li>



<li>拡張機能の設定画面（歯車アイコン）を開き、一番下にある Install user privileges</li>



<li>パスワードを入力して権限が適用されると、画面右上のステータスバーから充電モード（100%、80%、60%など）を切り替えられる</li>
</ul>



<h4 class="wp-block-heading">ファンコントロール</h4>



<pre class="wp-block-code"><code>lsmod | grep -E 'ec_sys|wmi|asus|dell|ideapad|thinkpad|hp'</code></pre>



<pre class="wp-block-code"><code>asus_wmi              106496  0
sparse_keymap          12288  1 asus_wmi
wmi_bmof               12288  0
nvidia_wmi_ec_backlight    12288  0
snd_rawmidi            57344  1 snd_seq_midi
snd_seq_device         16384  3 snd_seq,snd_seq_midi,snd_rawmidi
snd                   147456  23 snd_hda_codec_generic,snd_seq,snd_hda_codec_conexant,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_sof,snd_soc_sdca,snd_timer,snd_compress,snd_soc_core,snd_pcm,snd_rawmidi
platform_profile       20480  2 amd_pmf,asus_wmi
video                  77824  4 nvidia_wmi_ec_backlight,asus_wmi,amdgpu,nvidia_modeset
wmi                    36864  4 video,nvidia_wmi_ec_backlight,asus_wmi,wmi_bmof</code></pre>



<p class="wp-block-paragraph"><code>asus_wmi</code> がロードされています。</p>



<p class="wp-block-paragraph">EC（Embedded Controller：エンベデッド・コントローラー）は、パソコンのマザーボード上に搭載され、キーボードの入力監視や電源管理、温度・ファン制御などのシステム基本動作を常時監視・制御する小型のマイクロコントローラーです。</p>



<p class="wp-block-paragraph">Linuxカーネルは、このECをASUS系のWMIインターフェースとして認識しているかもしれない。</p>



<p class="wp-block-paragraph">DMI情報は、PCのメーカー名・機種名・製品型番などを、ファームウェア（BIOS/UEFI）からLinuxが読み取った情報です。</p>



<h4 class="wp-block-heading">時刻表示が8時間ずれる</h4>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">ハードウェアクロック:  PC集積回路上あるCMOSに保存されている、時刻情報<br>システムクロック: OSのカーネルが管理している時刻情報<br><br>OSの起動時にハードウェアクロックの情報をシステムクロックに反映させることで、時刻情報を取得している。<br><br>Linux : UTC（世界標準時）をNTPサーバから取得し、<strong>UTC時刻情報をハードウェアクロックに設定している</strong>。その後システムクロックは、ハードウェアクロックから取得した時刻情報はUTCと解釈しているため、その時刻情報をローカルタイムに合わせて調整する。<br><br>Windows : ハードウェアクロックに設定する時刻情報はローカルタイムであるため、システムクロックはその時刻情報をローカルタイムと解釈して、そのままの値で取得したものを設定している。<br><a rel="noopener" target="_blank" href="https://qiita.com/Juice/items/63279e93f818ba74312d">https://qiita.com/Juice/items/63279e93f818ba74312d</a></p>
</blockquote>



<p class="wp-block-paragraph">SSDなどを替えて、OSを同じPCで起動した場合、Windowsが世界標準時になり、Linuxが日本時刻（JST）になる。</p>



<pre class="wp-block-code"><code># ハードウェアクロックにローカルタイムを、ローカル時刻に指定
sudo timedatectl set-local-rtc 1

# ハードウェアクロックにローカルタイムを、UTC時刻に指定
sudo timedatectl set-local-rtc 0</code></pre>



<h4 class="wp-block-heading">Linux GPU Control Application</h4>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Linux GPU Control Application<br><a rel="noopener" target="_blank" href="https://github.com/ilya-zlobintsev/LACT">https://github.com/ilya-zlobintsev/LACT</a></p>
</blockquote>



<p class="wp-block-paragraph">Ubuntu 26.04 へインストールします。</p>



<pre class="wp-block-code"><code>wget https://github.com/ilya-zlobintsev/LACT/releases/download/v0.10.0/lact-0.10.0-0.amd64.ubuntu-2604.deb
sudo apt install ./lact-0.10.0-0.amd64.ubuntu-2604.deb</code></pre>



<pre class="wp-block-code"><code>sudo systemctl enable --now lactd</code></pre>



<h3 class="wp-block-heading">C/C++コンパイラ、make、パッケージツール</h3>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install build-essential gcc g++ make libtool dpkg-dev pkg-config dkms</code></pre>



<pre class="wp-block-code"><code>### sudo apt update
### sudo apt install build-essential gcc g++ make libtool pkg-config</code></pre>



<h3 class="wp-block-heading">NVIDIA関連ソフトウェア（ドライバ、CUDA Toolkit、cuDNN）</h3>



<p class="wp-block-paragraph">ここが今回の主役とも言えます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">NVIDIA ドライバ、NVIDIA CUDA ツールキット 11.8、NVIDIA cuDNN 8 のインストール<br><a rel="noopener" target="_blank" href="https://www.kkaneko.jp/tools/ubuntu/ubuntu_cudnn.html">https://www.kkaneko.jp/tools/ubuntu/ubuntu_cudnn.html</a></p>



<p class="wp-block-paragraph">26.04 LTSとNVIDIA/AMDのGPGPU事情<br><a rel="noopener" target="_blank" href="https://gihyo.jp/admin/serial/01/ubuntu-recipe/0912">https://gihyo.jp/admin/serial/01/ubuntu-recipe/0912</a><br><br>Linux向けCUDAインストールガイド<br><a rel="noopener" target="_blank" href="https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html">https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">NVIDIA CUDA ツールキットとは？<br>NVIDIA® CUDA® ツールキットは、高性能な GPU アクセラレーション対応アプリケーションを作成するための開発環境を提供します。<br>このツールキットには、GPU アクセラレーション対応ライブラリ、デバッグおよび最適化ツール、C/C++ コンパイラ、およびランタイムライブラリが含まれています。<br><a rel="noopener" target="_blank" href="https://developer.nvidia.com/cuda/toolkit">https://developer.nvidia.com/cuda/toolkit</a></p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">cuDNN とは？<br>NVIDIA® CUDA® ディープニューラルネットワークライブラリ（cuDNN）は、ディープニューラルネットワーク用のGPUアクセラレーション対応プリミティブライブラリです。cuDNNは、順方向および逆方向畳み込み、アテンション、行列乗算、プーリング、正規化などの標準ルーチンに対して、高度に最適化された実装を提供します。<br><a rel="noopener" target="_blank" href="https://developer.nvidia.com/cudnn">https://developer.nvidia.com/cudnn</a></p>
</blockquote>



<p class="wp-block-paragraph">インストールの流れは、</p>



<ul class="wp-block-list">
<li>目的にあった<code>nvidia-driver</code>が入っているかを、確認します。
<ul class="wp-block-list">
<li>R595がインストールされる （2026年7月現在）</li>



<li>NVIDIAのプロプライエタリなドライバーが入っているならば、削除</li>



<li><code>nvidia-driver</code>を入れ直す</li>
</ul>
</li>



<li>Ubuntu 公式リポジトリの <code>nvidia-driver-???-open</code> をインストール</li>



<li>CUDA ツールキット　<code>cuda-toolkit-</code>12.x.x runfileにてインストール</li>



<li>cuDNN</li>



<li>GPUアーキテクチャをサポートする最新のPyTorch、CUDA（CUDA 12.x）の組み合わせにアップデート</li>
</ul>



<pre class="wp-block-code"><code># システム内容を確認します。
dpkg -l | grep nvidia

nvidia-driver-595-open
linux-modules-nvidia-595-open-7.0.0-28-generic
linux-modules-nvidia-595-open-generic-hwe-26.04
libnvidia-compute-595:amd64
nvidia-utils-595</code></pre>



<pre class="wp-block-code"><code>nvidia-smi

+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.71.05              Driver Version: 595.71.05      CUDA Version: 13.2   |  
+-----------------------------------------+------------------------+--------------------+
|   0  NVIDIA GeForce RTX
| N/A   41C    P8              6W /   75W |      26MiB /   8151MiB |      0%      Default </code></pre>



<pre class="wp-block-code"><code>nvidia-smi

+--------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.173.02             Driver Version: 580.173.02     CUDA Version: 13.0  |
+-----------------------------------------+------------------------+-------------------+</code></pre>



<p class="wp-block-paragraph">ここに表示されている、&#8221;CUDA Version: 13.2&#8243; や、&#8221;CUDA Version: 13.0&#8243;は、インストールされているCUDAではなくて、GPUがサポート出来るCUDAのバージョンです。</p>



<h4 class="wp-block-heading">どこの配布元のドライバを入れれば良いのか？</h4>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><a rel="noopener" target="_blank" href="https://www.nemotos.net/?p=5792">https://www.nemotos.net/?p=5792</a><br>Ubuntu 公式リポジトリと NVIDIA 公式リポジトリの両方に NVIDIA 関連パッケージが存在する状態になります。<code>apt-get full-upgrade</code> 時に、どちらのリポジトリからパッケージが引かれるかは優先度（priority）設定に依存し、意図しないバージョンが入る可能性があります。</p>
</blockquote>



<p class="wp-block-paragraph">アップデートなどで意図しないバージョンが更新されたり、ビルドに失敗することがあるらしい。</p>



<p class="wp-block-paragraph">2026年7月現在は、&#8221;Ubuntu 公式リポジトリの <code>restricted</code> セクションに <code>nvidia-driver-XXX-open</code> パッケージが収録され、NVIDIAのリポジトリを追加しなくても、nvidia-driverがインストールできます。</p>



<p class="wp-block-paragraph">Ubuntu 公式リポジトリの <code>nvidia-driver-580-open</code> を使えば、ドライバをインストールでき、カーネル更新との互換性も高まるそうです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">NVIDIA ドライバのブランチ体系<br>NVIDIA は Linux GPU ドライバを “Long Term Support Branch”, “Production Branch”, “New Feature Branch” にわけてリリースしている<br><a rel="noopener" target="_blank" href="https://www.nemotos.net/?p=5792">https://www.nemotos.net/?p=5792</a></p>
</blockquote>



<p class="wp-block-paragraph">Ubuntu 26 04 インストール時に、プロプライエタリなドライバーを選択すると、<br>R595がインストールされます。（2026年7月19日現在）<br>しかし、R580を使いたいと思います。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Supported Drivers and CUDA Toolkit Versions を見ると、<br><a rel="noopener" target="_blank" href="https://docs.nvidia.com/datacenter/tesla/drivers/supported-drivers-and-cuda-toolkit-versions.html">https://docs.nvidia.com/datacenter/tesla/drivers/supported-drivers-and-cuda-toolkit-versions.html</a><br><br>R595は、2027年3月までのサポート<br>R580は、2028年6月までのサポート</p>
</blockquote>



<p class="wp-block-paragraph">Long Term Support Branch である 580が良いな。<br>サポート期間が終わったならば、NVIDIA ドライバを次のLong Term Support Branchへ移行し、<br>CUDAもNVIDIA ドライバに合わせて、runファイルを使って、アップデートを行う予定にする。</p>



<h4 class="wp-block-heading">CUDAバージョンに関して</h4>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">GPUの型番にあったCUDAバージョンと、CUDA バージョンに対応した cuDNNをインストールすることが、「鍵」の一つになります。</p>
</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">GPUの型番にあったCUDAバージョンの選び方<br><a rel="noopener" target="_blank" href="https://zenn.dev/yumizz/articles/73d6c7d1085d2f">https://zenn.dev/yumizz/articles/73d6c7d1085d2f</a></p>
</blockquote>



<p class="wp-block-paragraph">こちらの表を参照します。<br>Wiki CUDA<br><a rel="noopener" target="_blank" href="https://en.wikipedia.org/wiki/CUDA">https://en.wikipedia.org/wiki/CUDA</a></p>



<p class="wp-block-paragraph">GPUが、RTX 5060 だと、Compute capability (version)は [12.0]、[Blackwell]</p>



<p class="wp-block-paragraph">CUDA SDK support vs. microarchitecture (cell: compute capability)表を見ると、<br>&#8220;Blackwell&#8221; → [12.0] → &#8220;CUDA SDK version(s)&#8221; → 12.8 と辿れます。</p>



<p class="wp-block-paragraph">CUDA 12.8 をインストールし、使用すれば良いと判ります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">PyTorchはすでに CUDA 13.0 を標準（Stable）としてサポートするフェーズ<br><a rel="noopener" target="_blank" href="https://dev-discuss.pytorch.org/t/introducing-cuda-13-2-and-deprecating-cuda-12-8-release-2-12/3337">https://dev-discuss.pytorch.org/t/introducing-cuda-13-2-and-deprecating-cuda-12-8-release-2-12/3337</a></p>
</blockquote>



<h2 class="wp-block-heading">Ubuntuのリポジトリからnvidia-driver-580-open, <br>CUDA 12.x の runfile をダウンロードし、インストール</h2>



<h3 class="wp-block-heading">現在のNVIDIA関連パッケージを設定ファイルを含めて削除</h3>



<p class="wp-block-paragraph">Ubuntu 26インストール時に、プロプライエタリなドライバーインストールを選択したならば、</p>



<pre class="wp-block-code"><code># インストールされているCUDA関連パッケージを確認
dpkg -l | grep cuda
dpkg -l | grep nvidia

# NVIDIA関連パッケージを削除
sudo apt --purge remove '*nvidia*'
# CUDA はrunfile を用いてインストールしているので、"cuda-uninstaller"を使う
# sudo apt --purge remove '*cuda*'
sudo apt --purge remove '*cudnn*'

# 若しくは、
sudo apt --purge remove \
  'nvidia-driver-*' \
  'nvidia-dkms-*' \
  'nvidia-kernel-*' \
  'libnvidia-*' \
  'nvidia-utils-*' \
  'nvidia-compute-utils-*' \
  'nvidia-modprobe' \
  'nvidia-settings' \
  'xserver-xorg-video-nvidia-*'</code></pre>



<pre class="wp-block-code"><code># 削除結果
# nvidia-settings control panelが残る
dpkg -l | grep nvidia
ii  screen-resolution-extr 0.18.5build1 all Extension for the nvidia-settings control panel

# nvidia-settings control panelを削除
sudo apt --purge remove screen-resolution-extra
</code></pre>



<h3 class="wp-block-heading">現在のNVIDIA CUDA 関連パッケージの設定ファイルを含めて削除</h3>



<pre class="wp-block-code"><code>sudo apt --purge remove \
  'cuda*' \
  'libcudnn*' \
  'libnccl*' \
  'libcublas*' \
  'libcufft*' \
  'libcurand*' \
  'libcusolver*' \
  'libcusparse*' \
  'libnpp*' \
  'libnvjpeg*' \
  'libnvjitlink*' \
  'nsight-*'</code></pre>



<h3 class="wp-block-heading">NVIDIA repositoryの削除 、更新が固定されたNVIDIA, CUDA関連の固定解除</h3>



<pre class="wp-block-code"><code>ファイルがあれば、sudo rm -f　を用いて削除
/etc/apt/sources.list.d/cuda-ubuntu${UBUNTU_VER}-x86_64.list
/etc/apt/sources.list.d/cuda-*.list
/usr/share/keyrings/cuda-archive-keyring.gpg
/etc/apt/trusted.gpg.d/cuda-*.gpg</code></pre>



<pre class="wp-block-code"><code># 更新が固定されているNVIDIA、又は、CUDA関連のパッケージを検索し、
# 変数の"hold" を "remaining" に変更する
# Author: K. Nemoto
# Date: 2026-05-23
# Show remaining holds (should be empty)
echo "--- Remaining apt-mark holds for nvidia/cuda ---"
remaining=$(apt-mark showhold | grep -E 'nvidia|cuda' || true)
if &#91; -z "$remaining" ]; then
  echo "(none)"
else
  echo "$remaining"
fi

#”https://gitlab.com/kytk/lin4neuro-jammy/-/raw/main/installer-scripts/cuda_cleanup.sh”</code></pre>



<h3 class="wp-block-heading">依存関係の削除と、パッケージリスト情報を更新</h3>



<pre class="wp-block-code"><code># 不要になった依存関係を自動削除
sudo apt autoremove --purge

# パッケージリストの情報を更新
sudo apt update

# Update device list 必要ならば
sudo update-pciids</code></pre>



<h3 class="wp-block-heading">ドライバのビルドに必要なカーネルヘッダー等をインストールする</h3>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install linux-headers-$(uname -r) build-essential dkms

### ヘッダー無しならば
### sudo apt update
### sudo apt install build-essential dkms</code></pre>



<h3 class="wp-block-heading">Ubuntuが推奨するドライバを指定してインストール</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">NVIDIA が GPU カーネルモジュールのソースコードを open source（GPL/MIT デュアルライセンス）で公開したことに伴い、Ubuntu は公式リポジトリの <code>restricted</code> セクションに <code>nvidia-driver-XXX-open</code> パッケージを収録するようになりました。つまり、NVIDIAのリポジトリを追加しなくても、nvidia-driverがインストールできるようになったということです。<br><a rel="noopener" target="_blank" href="https://www.nemotos.net/?p=5792">https://www.nemotos.net/?p=5792</a></p>
</blockquote>



<p class="wp-block-paragraph">Ubuntuのリポジトリからnvidia-driver-580-open　をインストールします。</p>



<pre class="wp-block-code"><code>Ubuntu 26インストール時に、プロプライエタリなドライバーインストールを選択せず、
コマンドでnvidiaドライバをインストールするならば、以下を行います。

# システムが認識しているGPUと利用可能なドライバを表示
ubuntu-drivers devices
driver   : nvidia-driver-???-open - distro non-free recommended

# "recommended" 推奨されるドライバをインストール
sudo apt install nvidia-driver-???-open

# 2026年7月現在では、580
sudo apt install nvidia-driver-580-open

# initramfsを更新
# /bootにある既存のInitramfsの更新や削除、/bootへの新規Initramfsの作成に使うコマンド
sudo update-initramfs -u

# 内容を確認
#  sudo lsinitramfs /boot/initrd.img-`uname -r`

# ドライバの有効化のためにシステムを再起動
sudo /sbin/shutdown -r now</code></pre>



<p class="wp-block-paragraph">モジュール関連</p>



<pre class="wp-block-code"><code>Building module(s)........... done.
Signing module /var/lib/dkms/nvidia/580.173.02/build/nvidia.ko
Signing module /var/lib/dkms/nvidia/580.173.02/build/nvidia-modeset.ko
Signing module /var/lib/dkms/nvidia/580.173.02/build/nvidia-drm.ko
Signing module /var/lib/dkms/nvidia/580.173.02/build/nvidia-uvm.ko
Signing module /var/lib/dkms/nvidia/580.173.02/build/nvidia-peermem.ko
Installing /lib/modules/7.0.0-28-generic/updates/dkms/nvidia.ko.zst
Installing /lib/modules/7.0.0-28-generic/updates/dkms/nvidia-modeset.ko.zst
Installing /lib/modules/7.0.0-28-generic/updates/dkms/nvidia-drm.ko.zst
Installing /lib/modules/7.0.0-28-generic/updates/dkms/nvidia-uvm.ko.zst
Installing /lib/modules/7.0.0-28-generic/updates/dkms/nvidia-peermem.ko.zst
Running depmod... done.
xserver-xorg-video-nvidia-580 (580.173.02-0ubuntu0.26.04.1) を設定しています ...
libnvidia-compute-580:amd64 (580.173.02-0ubuntu0.26.04.1) を設定しています ...
libnvidia-fbc1-580:amd64 (580.173.02-0ubuntu0.26.04.1) を設定しています ...
nvidia-compute-utils-580 (580.173.02-0ubuntu0.26.04.1) を設定しています ...
libnvidia-gl-580:amd64 (580.173.02-0ubuntu0.26.04.1) を設定しています ...
libnvidia-decode-580:amd64 (580.173.02-0ubuntu0.26.04.1) を設定しています ...
nvidia-utils-580 (580.173.02-0ubuntu0.26.04.1) を設定しています ...
libnvidia-encode-580:amd64 (580.173.02-0ubuntu0.26.04.1) を設定しています ...
nvidia-driver-580-open (580.173.02-0ubuntu0.26.04.1) を設定しています ...
gnome-menus (3.38.1-1ubuntu1) のトリガを処理しています ...
libc-bin (2.43-2ubuntu2) のトリガを処理しています ...
man-db (2.13.1-1build1) のトリガを処理しています ...
dbus (1.16.2-2ubuntu4) のトリガを処理しています ...
dracut (110-11) のトリガを処理しています ...
update-initramfs: Generating /boot/initrd.img-7.0.0-28-generic
desktop-file-utils (0.28-1build1) のトリガを処理しています ...</code></pre>



<pre class="wp-block-code"><code>何がインストールされたか確認
dpkg -l | grep nvidia
libnvidia-cfg1-580:amd64   580.159.03-0ubuntu0.26.04.1   amd64   NVIDIA binary OpenGL/GLX configuration library
libnvidia-common-580      580.159.03-0ubuntu0.26.04.1    amd64   Shared files used by the NVIDIA libraries
libnvidia-compute-580:amd64   580.159.03-0ubuntu0.26.04.1   amd64    NVIDIA libcompute package
libnvidia-decode-580:amd64  580.159.03-0ubuntu0.26.04.1  amd64   NVIDIA Video Decoding runtime libraries
libnvidia-egl-wayland1:amd64  1:1.1.21-1  amd64  Wayland EGL External Platform library -- shared library
libnvidia-encode-580:amd64   580.159.03-0ubuntu0.26.04.1   amd64   NVENC Video Encoding runtime library
libnvidia-extra-580:amd64     580.159.03-0ubuntu0.26.04.1     amd64   Extra libraries for the NVIDIA driver
libnvidia-fbc1-580:amd64    580.159.03-0ubuntu0.26.04.1    amd64   NVIDIA OpenGL-based Framebuffer Capture runtime library
libnvidia-gl-580:amd64  580.159.03-0ubuntu0.26.04.1   amd64  NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
nvidia-compute-utils-580 　580.159.03-0ubuntu0.26.04.1   amd64  NVIDIA compute utilities
nvidia-dkms-580-open    580.159.03-0ubuntu0.26.04.1  amd64    NVIDIA DKMS package (open kernel module)
nvidia-driver-580-open  580.159.03-0ubuntu0.26.04.1  amd64 NVIDIA driver (open kernel) metapackage
nvidia-firmware-580-580.159.03  580.159.03-0ubuntu0.26.04.1   amd64  Firmware files used by the kernel module
nvidia-kernel-common-580  580.159.03-0ubuntu0.26.04.1   amd64    Shared files used with the kernel module
nvidia-kernel-source-580-open  580.159.03-0ubuntu0.26.04.1  amd64    NVIDIA kernel source package
nvidia-prime      0.8.17.2build1       all       Tools to enable NVIDIA's Prime
nvidia-settings    510.47.03-0ubuntu7    amd64    Tool for configuring the NVIDIA graphics driver
nvidia-utils-580    580.159.03-0ubuntu0.26.04.1    amd64     NVIDIA driver support binaries
screen-resolution-extra    0.18.5build1  all    Extension for the nvidia-settings control panel
xserver-xorg-video-nvidia-580 580.159.03-0ubuntu0.26.04.1   amd64    NVIDIA binary Xorg driver</code></pre>



<pre class="wp-block-code"><code>NVIDIA製GPUの稼働状況やシステム情報を確認します。
nvidia-smi

+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.173.02             Driver Version: 580.173.02     CUDA Version: 13.0   |
+---------------------------------------+------------------------+----------------------+</code></pre>



<h3 class="wp-block-heading">CUDA Toolkit runfile</h3>



<p class="wp-block-paragraph">CUDA Toolkit 12.8.2 (April 2026) runfile をインストールする。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph"><code>--toolkit</code> : オプションを指定して、ドライバーをインストールしない。<br>との案内がありましたが、2026年7月では、CUDA 13.x , 12.xともドライバーにチェックが入っています。<br><br>ドライバは Ubuntu 公式リポジトリの deb で管理し、CUDA Toolkit は runfile で管理することができる。<br>とありますが、インストールツールには、マークされているので、ドライバーが不要ならば、マークを外します。</p>
</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">NVIDIA CUDA Toolkit <a rel="noopener" target="_blank" href="https://developer.nvidia.com/cuda-downloads">https://developer.nvidia.com/cuda-downloads</a> で利用可能です。<br><br>archive からでもファイルをダウンロードできます。<br><a rel="noopener" target="_blank" href="https://developer.nvidia.com/cuda-toolkit-archive">https://developer.nvidia.com/cuda-toolkit-archive</a><br><a rel="noopener" target="_blank" href="https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html">https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html</a></p>
</blockquote>



<pre class="wp-block-code"><code># CUDA Toolkit 12.8.2
wget https://developer.download.nvidia.com/compute/cuda/12.8.2/local_installers/cuda_12.8.2_570.211.01_linux.run
sudo sh cuda_12.8.2_570.211.01_linux.run --toolkit</code></pre>



<pre class="wp-block-code"><code># CUDA Toolkit 13.0.3

wget https://developer.download.nvidia.com/compute/cuda/13.0.3/local_installers/cuda_13.0.3_580.126.20_linux.run
sudo sh cuda_13.0.3_580.126.20_linux.run</code></pre>



<pre class="wp-block-code"><code>wget https://developer.download.nvidia.com/compute/cuda/12.8.2/local_installers/cuda_12.8.2_570.211.01_linux.run</code></pre>



<p class="wp-block-paragraph">「nvidia-fs をインストールするには、mofedを先にインストールしなさいよ」とインストールログ</p>



<pre class="wp-block-code"><code># インストールログ
&#91;INFO]: previous version of nvidia-fs is not installed, nvidia-fs version: 2.24.3 will be installed.
&#91;INFO]: getting mofed Status
&#91;INFO]: installation status shows that mofed is not installed,please install mofed before continuing nvidia_fs install.
&#91;ERROR]: Install of nvidia-fs failed, quitting</code></pre>



<h4 class="wp-block-heading">nvidia-fs と mofed</h4>



<p class="wp-block-paragraph">複数のGPUユニットがある場合に有効でしょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">nvidia-fs とは、<br><a rel="noopener" target="_blank" href="https://jp.ubuntu.com/blog/canonical-announces-it-will-distribute-nvidia-doca-ofed-in-ubuntu-jp">https://jp.ubuntu.com/blog/canonical-announces-it-will-distribute-nvidia-doca-ofed-in-ubuntu-jp</a></p>



<p class="wp-block-paragraph">RDMA（リモートダイレクトメモリアクセス）やNVIDIA GPUDirectといった高度な機能により、CPUのオフロード、テールレイテンシの短縮と予測、負荷時におけるスループットの維持を実現します。<br><br>NVIDIA GPUDirect とは、<br><a rel="noopener" target="_blank" href="https://developer.nvidia.com/gpudirect">https://developer.nvidia.com/gpudirect</a><br><br>システムメモリを介さずに、NVMeやNVMe over Fabric（NVMe-oF）などのローカルまたはリモートストレージと、GPUメモリとの間に、直接的なデータパスを実現します。</p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Canonical、UbuntuでのNVIDIA DOCA-OFEDの配布を発表　by Canonical on 21 April 2026<br><a rel="noopener" target="_blank" href="https://jp.ubuntu.com/blog/canonical-announces-it-will-distribute-nvidia-doca-ofed-in-ubuntu-jp">https://jp.ubuntu.com/blog/canonical-announces-it-will-distribute-nvidia-doca-ofed-in-ubuntu-jp</a><br><br>インストール<br>Install and maintain DOCA-OFED<br><a rel="noopener" target="_blank" href="https://ubuntu.com/server/docs/how-to/networking/install-doca-ofed/">https://ubuntu.com/server/docs/how-to/networking/install-doca-ofed/</a></p>
</blockquote>



<pre class="wp-block-code"><code># インストール
uname -r
sudo add-apt-repository ppa:canonical-nvidia/doca-stable
sudo apt update
sudo apt install -y doca-ofed-&lt;your_kernel_flavor&gt;
## もしも、uname -r -&gt; 7.0.0-28-generic などならば、以下
sudo apt install doca-ofed-generic
Finally, reboot the machine.!!</code></pre>



<pre class="wp-block-code"><code># インストールログ
Installing: doca-ofed-generic

Installing dependencies: doca-ofed-userspace-26.01  ibsim-doc-26.01  libibmad5-26.01 libnl-3-dev  linux-main-modules-doca-ofed-26.01-7.0.0-28-generic  mlnx-iproute2-26.01
opensm-doc-26.01  ucx-26.01

dpcp-26.01  ibutils2-26.01  libibnetdisc5-26.01 libnl-route-3-dev linux-modules-doca-ofed-26.01-generic
mlnx-ofed-kernel-utils-26.01  perftest-26.01

ibacm-26.01  ibverbs-providers-26.01  libibumad-dev-26.01   libopensm-26.01
mft-26.01    mlnx-tools-26.01    rdma-core-26.01

ibarr-26.01  ibverbs-utils-26.01  libibumad3-26.01  libopensm-devel-26.01
mft-mlx5-26.01    ofed-scripts-26.01   rdmacm-utils-26.01

ibdump-26.01 infiniband-diags-26.01 libibverbs-dev-26.01  librdmacm-dev-26.01
mft-nvredfish-26.01    openmpi-26.01  rshim-26.01

ibsim-26.01  libibmad-dev-26.01  libibverbs1-26.01  librdmacm1-26.01  mlnx-ethtool-26.01
opensm-26.01    srptools-26.01
</code></pre>



<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<p class="wp-block-paragraph">OSの再起動をお忘れなく</p>
</div>



<pre class="wp-block-code"><code>DOCA-OFED をアップグレード
apt list --upgradable
sudo apt update &amp;&amp; sudo apt full-upgrade</code></pre>



<pre class="wp-block-code"><code>#--silent 使用許諾やオプション表示がされない
sudo sh cuda_12.8.2_570.211.01_linux.run --silent --toolkit</code></pre>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">既存のパッケージマネージャーによるドライバのインストールが検出されました。続行する前に、これを削除することを強くお勧めします。</p>



<p class="wp-block-paragraph">エンドユーザー使用許諾契約書<br>NVIDIA ソフトウェア使用許諾契約書およびソフトウェア使用許諾契約書の CUDA 補足条項。CUDA ツールキットエンドユーザー使用許諾契約書は、NVIDIA CUDA ツールキット、NVIDIA CUDA サンプル、NVIDIA ディスプレイドライバ、NVIDIA Nsight ツール（Visual Studio Edition）、および CUDA API、プログラミングモデル、開発ツールに関する関連ドキュメントに適用されます。</p>
</div>



<pre class="wp-block-code"><code># インストールログ
===========
= Summary =
===========
Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-12.8/

Please make sure that
 -   PATH includes /usr/local/cuda-12.8/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-12.8/lib64, or, add /usr/local/cuda-12.8/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-12.8/bin
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 570.00 is required for CUDA 12.8 functionality to work.
To install the driver using this installer, run the following command, replacing &lt;CudaInstaller&gt; with the name of this run file:
    sudo &lt;CudaInstaller&gt;.run --silent --driver

警告：インストールが不完全です！このインストールでは、CUDA ドライバーがインストールされませんでした。CUDA 12.8 の機能を利用するには、バージョン 570.00 以上のドライバーが必要です。
このインストーラーを使用してドライバーをインストールするには、以下のコマンドを実行してください。この際、&lt;CudaInstaller&gt; をこの実行ファイルの名前に置き換えてください：
    sudo &lt;CudaInstaller&gt;.run --silent --driver

Logfile is /var/log/cuda-installer.log
</code></pre>



<pre class="wp-block-code"><code>sudo sh cuda_12.8.2_570.211.01_linux.run --silent --driver

 Existing package manager installation of the driver found. It is strongly recommended that you remove this before continuing.
 Override this check by passing --override-driver-check
</code></pre>



<pre class="wp-block-code"><code># CUDA Toolkit 13.3
wget https://developer.download.nvidia.com/compute/cuda/13.3.1/local_installers/cuda_13.3.1_610.43.02_linux.run
sudo sh cuda_13.3.1_610.43.02_linux.run --toolkit

Logfile is /var/log/cuda-installer.log</code></pre>



<h4 class="wp-block-heading"><strong>環境変数を設定する</strong></h4>



<pre class="wp-block-code"><code>echo 'export CUDA_HOME=/usr/local/cuda-12.8' &gt;&gt; ${HOME}/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:${LD_LIBRARY_PATH}' &gt;&gt; ${HOME}/.bashrc
echo 'export PATH=/usr/local/cuda-12.8/bin:${PATH}' &gt;&gt; ${HOME}/.bashrc

# 確認
tail ${HOME}/.bashrc

# 設定を即時反映（現在のシェルのみ）
source ${HOME}/.bashrc

# 詳細バージョンを確認
cat /usr/local/cuda-12.8/version.json # version.json

# nvcc コマンドでバージョンを確認
nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Aug_20_01:58:59_PM_PDT_2025
Cuda compilation tools, release 13.0, V13.0.88
Build cuda_13.0.r13.0/compiler.36424714_0</code></pre>



<pre class="wp-block-code"><code>echo 'export CUDA_HOME=/usr/local/cuda-13.0' &gt;&gt; ${HOME}/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-13.0/lib64:${LD_LIBRARY_PATH}' &gt;&gt; ${HOME}/.bashrc
echo 'export PATH=/usr/local/cuda-13.0/bin:${PATH}' &gt;&gt; ${HOME}/.bashrc</code></pre>



<pre class="wp-block-code"><code>export CUDA_HOME=/usr/local/cuda-12.8/
echo 'export CUDA_HOME=/usr/local/cuda-12.8' &gt;&gt; ${HOME}/.bashrc
export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:${LD_LIBRARY_PATH}
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:${LD_LIBRARY_PATH}' &gt;&gt; ${HOME}/.bashrc
export PATH=/usr/local/cuda-12.8/bin:${PATH}
echo 'export PATH=/usr/local/cuda-12.8/bin:${PATH}' &gt;&gt; ${HOME}/.bashrc</code></pre>



<pre class="wp-block-code"><code>echo 'export CUDA_HOME=/usr/local/cuda-13.3' &gt;&gt; ${HOME}/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-13.3/lib64:${LD_LIBRARY_PATH}' &gt;&gt; ${HOME}/.bashrc
echo 'export PATH=/usr/local/cuda-13.3/bin:${PATH}' &gt;&gt; ${HOME}/.bashrc</code></pre>



<pre class="wp-block-code"><code># .bashrc
export CUDA_HOME=/usr/local/cuda-12.8
export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:${LD_LIBRARY_PATH}
export PATH=/usr/local/cuda-12.8/bin:${PATH}</code></pre>



<h3 class="wp-block-heading">CUDA Toolkit を削除する場合</h3>



<pre class="wp-block-code"><code>sudo ./cuda-uninstaller
./cuda-uninstaller: error while loading shared libraries: libxml2.so.2: cannot open shared object file: No such file or directory

sudo ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.16 /usr/lib/x86_64-linux-gnu/libxml2.so.2

sudo ./cuda-uninstaller
./cuda-uninstaller: /lib/x86_64-linux-gnu/libxml2.so.2: no version information available (required by ./cuda-uninstaller)
./cuda-uninstaller: /lib/x86_64-linux-gnu/libxml2.so.2: no version information available (required by ./cuda-uninstaller)
./cuda-uninstaller: /lib/x86_64-linux-gnu/libxml2.so.2: no version information available (required by ./cuda-uninstaller)
cat: /var/log/nvidia/.uninstallManifests/kernelobjects-components/uninstallManifest-nvidia_fs: No such file or directory
make: *** ターゲット 'uninstall' を make するルールがありません.  中止.
rmmod: ERROR: Module nvidia_fs is not currently loaded

 Successfully uninstalled</code></pre>



<h3 class="wp-block-heading">cuDNN</h3>



<p class="wp-block-paragraph">バージョンの互換性がとても重要らしい。多くの方がサイトで苦労話を綴っています。<br>CUDA バージョンに対応した cuDNNを探します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">cuDNN version9.24.0 は、CUDA Toolkit Version 13と12に互換しています。<br><a rel="noopener" target="_blank" href="https://docs.nvidia.com/deeplearning/cudnn/backend/latest/reference/support-matrix.html">https://docs.nvidia.com/deeplearning/cudnn/backend/latest/reference/support-matrix.html</a></p>
</blockquote>



<p class="wp-block-paragraph">こちらから、cuDNNインストール手順を表示させます。<br><a rel="noopener" target="_blank" href="https://developer.nvidia.com/cudnn-downloads">https://developer.nvidia.com/cudnn-downloads</a></p>



<p class="wp-block-paragraph">アーカイブからもダウンロード出来るでしょう。<br><a rel="noopener" target="_blank" href="https://developer.nvidia.com/cudnn-archive">https://developer.nvidia.com/cudnn-archive</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">FULL と JIT の違いは、NVIDIA Ampere GPU アーキテクチャおよびそれ以降GPUに適応しています。ダウンロードサイズ及び、インストール後のバイナリサイズを大幅に削減します。cuDNN JIT は、グラフ API を通じてランタイム・フュージョン・エンジンのみをサポートすることでこのサイズ削減を実現していますが、その代わりにサポート範囲やパフォーマンスが若干低下します。<br><a rel="noopener" target="_blank" href="https://docs.nvidia.com/deeplearning/cudnn/latest/developer/graph-api.html#cudnn-jit">https://docs.nvidia.com/deeplearning/cudnn/latest/developer/graph-api.html#cudnn-jit</a></p>
</blockquote>



<pre class="wp-block-code"><code>libcudnn9-headers-cuda-12 9.25.0.15-1 &#91;75.2 kB]
libcudnn9-cuda-12 9.25.0.15-1 &#91;505 MB]</code></pre>



<pre class="wp-block-code"><code># ローカルインストール (FULL)
wget https://developer.download.nvidia.com/compute/cudnn/9.24.0/local_installers/cudnn-local-repo-ubuntu2604-9.24.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2604-9.24.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2604-9.24.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update

# CUDA 12 をインストールするには、パッケージを指定します。
sudo apt-get install cudnn9-cuda-12

# CUDA 13 をインストールするには、パッケージを指定します。
sudo apt-get install cudnn9-cuda-13</code></pre>



<pre class="wp-block-code"><code># keyring 使用 ネットワークインストール
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2604/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update

# FULLをインストール
# CUDA 12 用に&#91;FULL]インストールするには、CUDA 12 固有のパッケージをインストールします。
# sudo apt-get -y install cudnn
sudo apt-get -y install cudnn9-cuda-12

CUDA 13 用に&#91;FULL]インストールするには、CUDA 13 の特定のパッケージをインストールします。
# sudo apt-get -y install cudnn9-cuda-13</code></pre>



<pre class="wp-block-code"><code>sudo dpkg -i cudnn-local-repo-ubuntu2604-9.24.0_1.0-1_amd64.deb

#The public cudnn-local-repo-ubuntu2604-9.24.0 GPG key does not appear to be installed.
#To install the key, run this command:
#sudo cp /var/cudnn-local-repo-ubuntu2604-9.24.0/cudnn-local-B991B0EF-keyring.gpg /usr/share/keyrings/</code></pre>



<p class="wp-block-paragraph">cuDNN　インストールを確認</p>



<pre class="wp-block-code"><code>dpkg -l | grep cudnn</code></pre>



<pre class="wp-block-code"><code>cudnn9-cuda-12     9.25.0.15-1 　　amd64        NVIDIA cuDNN for CUDA 12
cudnn9-cuda-12-9   9.25.0.15-1     amd64        NVIDIA cuDNN for CUDA 12.9
libcudnn9-cuda-12  9.25.0.15-1     amd64        cuDNN runtime libraries for CUDA 12.9
libcudnn9-dev-cuda-12      9.25.0.15-1   amd64   cuDNN development libraries for CUDA 12.9
libcudnn9-headers-cuda-12  9.25.0.15-1    amd64    cuDNN header files for CUDA 12.9
libcudnn9-static-cuda-12   9.25.0.15-1   amd64   cuDNN static libraries for CUDA 12.9
</code></pre>



<h2 class="wp-block-heading">Python は、どのバージョンを入れるのか？</h2>



<h3 class="wp-block-heading"> PyTorch の対応</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Python 3.14 でのいくつかの変更が PyTorch 全体に影響を与えました：<br><a rel="noopener" target="_blank" href="https://dev-discuss.pytorch.org/t/torch-compile-support-for-python-3-14-completed/3276">https://dev-discuss.pytorch.org/t/torch-compile-support-for-python-3-14-completed/3276</a><br><br>Python 3.13 のサポートにおいて直面した重要な技術的課題について説明します。<br><a rel="noopener" target="_blank" href="https://dev-discuss.pytorch.org/t/torch-compile-support-for-python-3-13-completed/2738">https://dev-discuss.pytorch.org/t/torch-compile-support-for-python-3-13-completed/2738</a></p>
</blockquote>



<h3 class="wp-block-heading">Python 3.12.x + Cosmic Clarity</h3>



<p class="wp-block-paragraph">CosmicClaritySuite_Linux_AlternateBuild.tar.xz<br>　&#8221;AlternateBuildパッケージ&#8221;<br>/usr/local/share/CosmicClaritySuite_Linux/_internal/ にあるPython関連</p>



<pre class="wp-block-code"><code>/usr/local/share/Legacy_CosmicClaritySuite_Linux/_internal/
libpython3.12.so*
libpython3.12.so.1.0*</code></pre>



<p class="wp-block-paragraph">Python 3.12.x をインストールします。</p>



<pre class="wp-block-code"><code># sudo make altinstall</code></pre>



<p class="wp-block-paragraph">ソースから構築した&#8221;python3.x&#8221; コマンドはインストールされますが、&#8221;python3&#8243; コマンドはインストールされません。<br>これにより、python3 コマンドでは主に使用するバージョンのPythonを起動し、それ以外のバージョンのPythonは、 python3.12 のように、バージョンを指定して実行します。</p>



<p class="wp-block-paragraph">Python 3.12 をインストールします。<br><br>Python 3.12.14 Release date: Aug. 12, 2026<br><a rel="noopener" target="_blank" href="https://www.python.org/downloads/release/python-31214/">https://www.python.org/downloads/release/python-31214/</a><br>Python 3.12.10 Release date: April 8, 2025<br><a rel="noopener" target="_blank" href="https://www.python.org/downloads/release/python-31210/">https://www.python.org/downloads/release/python-31210/</a></p>



<p class="wp-block-paragraph">Ubuntu環境のPython<br><a rel="noopener" target="_blank" href="https://www.python.jp/install/ubuntu/index.html">https://www.python.jp/install/ubuntu/index.html</a></p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install build-essential libbz2-dev libdb-dev \
  libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
  libncursesw5-dev libsqlite3-dev libssl-dev \
  zlib1g-dev uuid-dev tk-dev</code></pre>



<pre class="wp-block-code"><code>cd Python-3.12.13
./configure
make
sudo make altinstall</code></pre>



<pre class="wp-block-code"><code>python3 --version

python3.12 --version
Python 3.12.13</code></pre>



<h3 class="wp-block-heading">Siril 1.5 Python仮想環境を作ります</h3>



<p class="wp-block-paragraph">以下の作業は、仮想環境下で行います。<br>全ては、/home/$USER/.local/share/siril 以下にインストールされます。</p>



<pre class="wp-block-code"><code># Siril 1.5 Python仮想環境ディレクトリを作成
mkdir -p /home/$USER/.local/share/siril

# Python 3.12.13 を使って指定パスに仮想環境を作成
python3.12 -m venv /home/$USER/.local/share/siril/venv

# 仮想環境を有効化 (アクティベート)
source /home/$USER/.local/share/siril/venv/bin/activate

# 仮想環境内にpip のベースを生成する
python -m ensurepip --upgrade

# pip 自身を最新版にアップデートする
python -m pip install --upgrade pip

### pip 確認
pip3 --version</code></pre>



<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<p class="wp-block-paragraph">WARNING: Running pip as the &#8216;root&#8217; user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the &#8211;root-user-action option if you know what you are doing and want to suppress this warning.<br>警告：「root」ユーザーとして pip を実行すると、権限設定が破損したり、システムのパッケージマネージャーとの競合が発生したりし、システムが使用不能になる可能性があります。代わりに仮想環境を使用することをお勧めします：https://pip.pypa.io/warnings/venv。操作内容を十分に理解しており、この警告を抑制したい場合は、&#8211;root-user-action オプションを使用してください。</p>
</div>



<h2 class="wp-block-heading">GPUアーキテクチャをサポートする、PyTorch、CUDA（CUDA 12.x）の組み合わせにする</h2>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">th.install_torch を用いたPyTorchとcudaインストール方法を試した経過を掲載しますが、<br>途中で止めました。<br>こちらでは、Siril仮想環境下で、pipを用いてPyTorchをインストールしました。<br></p>
</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Sirilのスクリプトエディタにソースコードをコピーして、[run]<br><a rel="noopener" target="_blank" href="https://www.facebook.com/groups/841870683930320/posts/1375756583875058/">https://www.facebook.com/groups/841870683930320/posts/1375756583875058/</a></p>
</blockquote>



<p class="wp-block-paragraph">Sirilの画面上部にある Scripts をクリック、スクリプトエディタを表示します。<br>次のコードをコピーしました。<br>2026年7月現在、このスクリプトは試していません。</p>



<pre class="wp-block-code"><code>import sirilpy as s
th = s.TorchHelper()
th.install_torch(cuda_version='cu128', force_reinstall=True)
th.test_torch()</code></pre>



<pre class="wp-block-code"><code># エラーコード cu130
Traceback (most recent call last):
16:50:11:   File "/tmp/siril-script-S7EUS3.py", line 3, in &lt;module&gt;
16:50:11:     th.install_torch(cuda_version='cu130', force_reinstall=True)
16:50:11: TypeError: TorchHelper.install_torch() got an unexpected keyword argument 'force_reinstall'
16:50:11: Python process (PID: 53902) exited with status 1
16:50:11: Python communication worker finished...</code></pre>



<h3 class="wp-block-heading">force_reinstall 引数が削除、cuda versionを指定</h3>



<p class="wp-block-paragraph">Sirilのアップデート（バージョン1.4.2以降〜1.5）に伴い、<code>sirilpy</code> 内の <code>TorchHelper.install_torch()</code> から <code>force_reinstall</code><strong> </strong>が削除</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Facebookで見つけたんですが、残念ながらもう使えなくなってしまいました。<br><a rel="noopener" target="_blank" href="https://discuss.pixls.us/t/syqon-starless-and-pytorch-install-failure/56239">https://discuss.pixls.us/t/syqon-starless-and-pytorch-install-failure/56239</a><br><a rel="noopener" target="_blank" href="https://www.facebook.com/groups/841870683930320/posts/1398410764942973/">https://www.facebook.com/groups/841870683930320/posts/1398410764942973/</a><br><br><a rel="noopener" target="_blank" href="https://blog.qualiteg.com/pytorch_and_supported_gpu_version/">https://blog.qualiteg.com/pytorch_and_supported_gpu_version/</a><br><a rel="noopener" target="_blank" href="https://discuss.pixls.us/t/syqon-starless-and-pytorch-install-failure/56239">https://discuss.pixls.us/t/syqon-starless-and-pytorch-install-failure/56239</a></p>
</blockquote>



<p class="wp-block-paragraph">以下をSirilのPython script editor にペースト、-&gt; run</p>



<pre class="wp-block-code"><code>import sirilpy as s
th = s.TorchHelper()
th.install_torch(cuda_version='cu128')
th.test_torch()</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"># cu126 の場合<br>cuda_version=&#8217;cu126&#8242;<br><a rel="noopener" target="_blank" href="https://discuss.pytorch.org/t/when-i-install-torch-2-6-0-with-whl-cu126-none-of-cuda-dependencies-get-installed-i-have-cu126-in-the-environment-already-is-this-expected/218014">https://discuss.pytorch.org/t/when-i-install-torch-2-6-0-with-whl-cu126-none-of-cuda-dependencies-get-installed-i-have-cu126-in-the-environment-already-is-this-expected/218014</a><br><br><a rel="noopener" target="_blank" href="https://techjacksolutions.com/ai-tools/pytorch/how-to-install-pytorch/">https://techjacksolutions.com/ai-tools/pytorch/how-to-install-pytorch/</a><br></p>
</blockquote>



<pre class="wp-block-code"><code># インストール　ログ
16:59:15: &#91;notice] A new release of pip is available: 25.0.1 -&gt; 26.2
16:59:15: &#91;notice] To update, run: pip install --upgrade pip
16:59:15: PyTorch installation completed successfully
16:59:15: Torch is already installed
16:59:15: === PyTorch GPU Test ===
16:59:18: OK: PyTorch 2.13.0+cu130 imported successfully!
16:59:18: === Device Information ===
16:59:18: PyTorch version: 2.13.0+cu130
16:59:18: CUDA available: True
16:59:18: CUDA version: 13.0
16:59:18: GPU count: 1
16:59:18:   GPU 0: NVIDIA GeForce RTX 5060 Laptop GPU
16:59:18: Creating model and test data...
16:59:18: Model parameters: 459,904
16:59:18: Input shape: torch.Size(&#91;64, 256])
16:59:18: Testing CPU execution (for accuracy reference)...
16:59:18: Using CUDA (NVidia / AMD)
16:59:18: Testing GPU execution...
16:59:19: OK: GPU execution successful!
16:59:19: OK: CPU and GPU outputs match within tolerance!
16:59:19: ==================================================
16:59:19: === Tensor Operations Test ===
16:59:19: OK: PyTorch 2.13.0+cu130 imported successfully!
16:59:19: Creating 2048x2048 tensors...
16:59:19: OK: Results match within tolerance!
16:59:19: CPU time: 0.0343s
16:59:19: GPU time: 0.0020s
16:59:19: Speedup: 17.51x
16:59:19: ==================================================
16:59:20: Python communication worker finished...</code></pre>



<h3 class="wp-block-heading">コマンドラインからPyTorchをインストール</h3>



<pre class="wp-block-code"><code># 参考
# 1. 既存の torch パッケージを完全にアンインストール
# pip3 uninstall torch torchvision torchaudio -y

# 2. CUDA 12.8 専用インデックスを指定してクリーンインストール
# pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128</code></pre>



<pre class="wp-block-code"><code>python3.12 -m venv ~/siril_cosmic_env
source ~/siril_cosmic_env/bin/activate
pip install --upgrade pip
pip install torch torchvision torchaudio --index-url https://pytorch.org</code></pre>



<p class="wp-block-paragraph">Pytorch バージョン確認</p>



<pre class="wp-block-code"><code>### Siril 1.5 仮想環境で行う
python3.12 -c "import torch; print(torch.__version__)"

2.11.0+cu128</code></pre>



<h3 class="wp-block-heading">onnxruntime-gpu,  NVIDIA CUDA</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">onnxruntime-gpu,  NVIDIA CUDA<br><a rel="noopener" target="_blank" href="https://onnxruntime.ai/docs/install/#install-onnx-runtime-gpu-cuda-or-tensorrt">https://onnxruntime.ai/docs/install/#install-onnx-runtime-gpu-cuda-or-tensorrt</a></p>
</blockquote>



<p class="wp-block-paragraph">デフォルトのインストールは、pip install onnxruntime-gpu</p>



<pre class="wp-block-code"><code># CUDA 12.x
# The default CUDA version for onnxruntime-gpu in pypi is 12.x since 1.19.0.
# pip install onnxruntime-gpu
</code></pre>



<h4 class="wp-block-heading">Siril仮想環境へ、onnxruntime-gpuパッケージをインストール</h4>



<pre class="wp-block-code"><code># Siril 仮想環境で行う
source /home/$USER/.local/share/siril/venv/bin/activate

pip3 uninstall -y onnxruntime onnxruntime-gpu
pip3 install onnxruntime-gpu --upgrade

# onnxruntime-gpu==1.26.0 を指定
python3.12 -m pip install onnxruntime-gpu==1.26.0
Successfully installed flatbuffers-25.12.19 onnxruntime-gpu-1.26.0 packaging-26.3 protobuf-7.35.1</code></pre>



<pre class="wp-block-code"><code># 動作テスト
python3.12 -c "import onnxruntime as ort; print(ort.get_available_providers())"</code></pre>



<pre class="wp-block-code"><code>#インストールログ
Collecting onnxruntime-gpu
  Downloading onnxruntime_gpu-1.28.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (5.8 kB)
Collecting flatbuffers (from onnxruntime-gpu)
  Downloading flatbuffers-25.12.19-py2.py3-none-any.whl.metadata (1.0 kB)
Requirement already satisfied: numpy&gt;=1.21.6 in ./lib/python3.12/site-packages (from onnxruntime-gpu) (2.5.1)
Requirement already satisfied: packaging in ./lib/python3.12/site-packages (from onnxruntime-gpu) (26.2)
Requirement already satisfied: protobuf&gt;=4.25.8 in ./lib/python3.12/site-packages (from onnxruntime-gpu) (7.35.1)
Downloading onnxruntime_gpu-1.28.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (249.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 249.8/249.8 MB 8.1 MB/s eta 0:00:00
Downloading flatbuffers-25.12.19-py2.py3-none-any.whl (26 kB)
Installing collected packages: flatbuffers, onnxruntime-gpu
Successfully installed flatbuffers-25.12.19 onnxruntime-gpu-1.28.0

&#91;notice] A new release of pip is available: 25.0.1 -&gt; 26.2
&#91;notice] To update, run: pip install --upgrade pip</code></pre>



<h4 class="wp-block-heading">Siril仮想環境へ CUDA パスを固定する</h4>



<p class="wp-block-paragraph">/home/$USER/.local/share/siril/venv/bin/activate<br>ここに、CUDA パスと環境変数を追記</p>



<pre class="wp-block-code"><code>echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/lib/nvidia-580:${LD_LIBRARY_PATH}' &gt;&gt; /home/$USER/.local/share/siril/venv/bin/activate
echo 'export CUDA_MODULE_LOADING=LAZY' &gt;&gt; /home/$USER/.local/share/siril/venv/bin/activate</code></pre>



<p class="wp-block-paragraph">アクティブ中ならば、アクティブを解除してから、再度アクティブし、Sirilを起動させCosmic Clarityを動かしてみる。</p>



<pre class="wp-block-code"><code>deactivate
cd /home/$USER/.local/share/siril/venv
source ./bin/activate
siril</code></pre>



<h2 class="wp-block-heading">PyTorch と Siril</h2>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph"><br>こちらの環境では、torch-2.11.0+cu128　をインストールしています。<br>ログでは、torch-2.13.0+cu130をインストールを表示しています。</p>
</div>



<p class="wp-block-paragraph">Siril Pythonスクリプトにある、&#8221;GPU Firmware Manager&#8221;を使って、cuda 13対応をインストール</p>



<pre class="wp-block-code"><code>Successfully installed cuda-bindings-13.0.3 cuda-toolkit-13.0.3.0 nvidia-cublas-13.1.1.3 nvidia-cuda-cupti-13.0.85 nvidia-cuda-nvrtc-13.0.88 nvidia-cuda-runtime-13.0.96 nvidia-cudnn-cu13-9.20.0.48 nvidia-cufft-12.0.0.61 nvidia-cufile-1.15.1.6 nvidia-curand-10.4.0.35 nvidia-cusolver-12.0.4.66 nvidia-cusparse-12.6.3.3 nvidia-cusparselt-cu13-0.8.1 nvidia-nccl-cu13-2.29.7 nvidia-nvjitlink-13.2.78 nvidia-nvshmem-cu13-3.4.5 nvidia-nvtx-13.0.85 torch-2.13.0+cu130 torchvision-0.28.0+cu130 triton-3.7.1

PyTorch installation completed successfully
✓ Successfully installed torch+cu130 (CUDA 13.0 - GTX 16xx-RTX 50xx)
Running post-installation tests...

============================================================
Running PyTorch tests...
Torch is already installed
=== PyTorch GPU Test ===
OK: PyTorch 2.13.0+cu130 imported successfully!
=== Device Information ===
PyTorch version: 2.13.0+cu130
CUDA available: True
CUDA version: 13.0
GPU count: 1
  GPU 0: NVIDIA GeForce RTX 5060 Laptop GPU
Creating model and test data...
Model parameters: 459,904
Input shape: torch.Size(&#91;64, 256])
Testing CPU execution (for accuracy reference)...
Using CUDA (NVidia / AMD)
Testing GPU execution...
OK: GPU execution successful!
OK: CPU and GPU outputs match within tolerance!
==================================================
=== Tensor Operations Test ===
OK: PyTorch 2.13.0+cu130 imported successfully!
Creating 2048x2048 tensors...
OK: Results match within tolerance!
CPU time: 0.0343s
GPU time: 0.0020s
Speedup: 16.82x
==================================================
✓ All PyTorch tests passed!</code></pre>



<pre class="wp-block-code"><code># 画面表示のバックエンドとして従来のX11（XCB）を使用するよう強制する環境変数
QT_QPA_PLATFORM=xcb siril

# Wayland環境でSirilを実行する際、Qtプラグインのエラーを防ぐためには、QT_QPA_PLATFORM 環境変数を使用
QT_QPA_PLATFORM=wayland siril</code></pre>



<h2 class="wp-block-heading">Siril をソースからビルド / Ubuntu</h2>



<pre class="wp-block-code"><code># Siril インストール後に、Siril仮想環境を確認
less /home/${USER}/.local/share/siril/venv/pyvenv.cfg

home = /usr/local/bin
include-system-site-packages = false
version = 3.12.13
executable = /usr/local/bin/python3.12
command = /usr/local/bin/python3.12 -m venv /home/minmin/.local/share/siril/venv
#↑ビルドしたPythonを用いていることを確認します

### 3.14.6の場合
### home = /usr/local/bin
### include-system-site-packages = false
### version = 3.14.6
### executable = /usr/local/bin/python3.14
### command = /usr/local/bin/python3 -m venv /home/minmin/.local/share/siril/venv</code></pre>



<h3 class="wp-block-heading">Ubuntu 26.04 で、Sirilビルドに必要なパッケージをインストール</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Siril 1.5 ビルド案内<br><a rel="noopener" target="_blank" href="https://gitlab.com/free-astro/siril">https://gitlab.com/free-astro/siril</a></p>
</blockquote>


<a target="_self" href="https://globe3.ddns.net/wp/try-siril-development-edition-1-4-0/" title="Siril 開発版を試してみよう" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://globe3.ddns.net/wp/wp-content/uploads/2025/04/Siril-1.4.0-beta1-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://globe3.ddns.net/wp/wp-content/uploads/2025/04/Siril-1.4.0-beta1-160x90.jpg 160w, https://globe3.ddns.net/wp/wp-content/uploads/2025/04/Siril-1.4.0-beta1-300x169.jpg 300w, https://globe3.ddns.net/wp/wp-content/uploads/2025/04/Siril-1.4.0-beta1-120x68.jpg 120w, https://globe3.ddns.net/wp/wp-content/uploads/2025/04/Siril-1.4.0-beta1-320x180.jpg 320w, https://globe3.ddns.net/wp/wp-content/uploads/2025/04/Siril-1.4.0-beta1.jpg 702w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Siril 開発版を試してみよう</div><div class="blogcard-snippet internal-blogcard-snippet">Siril開発版が使えます。SPCC、GHS、モザイクに有用なプレートソルビングの歪み補正が使えます。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://globe3.ddns.net/wp" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">globe3.ddns.net</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2025.04.18</div></div></div></div></a>


<pre class="wp-block-code"><code># 2026年7月　追加
sudo apt install libgtk-4-dev libgtksourceview-5-dev

### sudo apt install wcslib-tools libgtk-4-dev libgtksourceview-5-dev kmplot \
  libsqlite3-dev</code></pre>



<h4 class="wp-block-heading">OpenCV5</h4>



<h3 class="wp-block-heading">meson ビルドオプション</h3>



<pre class="wp-block-code"><code>meson setup --prefix /usr/local --buildtype release _build
ninja -C _build
ninja -C _build install</code></pre>



<pre class="wp-block-code"><code>meson setup _build --buildtype release -Dgtk=true
cd _build
ninja
ninja install</code></pre>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph"><strong><code>-prefix /usr/local</code></strong>: <code>meson install</code> を実行した際、ビルドされたファイルが格納されるディレクトリ</p>



<p class="wp-block-paragraph"><strong><code>--buildtype release</code></strong>: デバッグシンボルを削除し、コンパイラの最適化（最適化レベル <code>-O3</code> など）を有効にしてビルド</p>



<p class="wp-block-paragraph"><strong><code>_build</code></strong>: 設定ファイルや中間ファイルを出力するディレクトリ</p>
</div>



<pre class="wp-block-code"><code>meson setup --buildtype=release builddir -Dcpp_args="-march=native" -Dc_args="-march=native"</code></pre>



<p class="wp-block-paragraph">ん〜、有効にならない？</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph"><code><strong>-march=native</strong></code>: コンパイルを実行しているマシンに搭載されているCPUが持つ全機能を有効にします</p>



<p class="wp-block-paragraph"><code><strong>-mtune=native</strong></code>: コードの命令スケジュールを特定のCPU向けに最適化します（生成されたバイナリは他の機種でも動作します）。</p>



<p class="wp-block-paragraph"><code><strong>-O3</strong></code>: コンパイラが可能な限りの高度な最適化を行います（<code>-O2</code> がデフォルトですが、速度を追求する場合に使用します）</p>
</div>



<pre class="wp-block-code"><code>meson setup --prefix /usr/local --buildtype release _build -Dcpp_args="-march=native" -Dc_args="-march=native"</code></pre>



<pre class="wp-block-code"><code>meson setup --prefix /usr/local --buildtype release _build -Dcpp_args="-march=native" -Dfortran_args="-march=native"</code></pre>



<pre class="wp-block-code"><code>meson setup --prefix /usr/local --buildtype release _build -Dcpp_args="-march=native -O3" -Dfortran_args="-march=native -O3"</code></pre>



<p class="wp-block-paragraph">ん〜、有効にならない？</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Meson <br><a rel="noopener" target="_blank" href="https://mesonbuild.com/Commands.html#configure">https://mesonbuild.com/Commands.html#configure</a></p>
</blockquote>



<h2 class="wp-block-heading">Siril Qtでの不具合</h2>



<p class="wp-block-paragraph">Sirilに関しては致命的なエラーではないようです。X11を使用する場合には、XWaylandを用いるようです。</p>



<p class="wp-block-paragraph">Ubuntu 26.04で採用のGNOME 48は、Wayland上での動作を前提に最適化されている。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Qt 5 で Wayland のサポートを有効化するには、qt5-wayland パッケージをインストールしてください。これで、Qt 5 アプリケーションは Wayland セッション上では Wayland で動作するようになります。</p>



<p class="wp-block-paragraph">必須ではないはずですが、明示的に Wayland プラグインを使って Qt 5 アプリケーションを動作させるには、[7] にあるように、-platform wayland を使用するか、環境変数 QT_QPA_PLATFORM=wayland をセットして下さい。</p>



<p class="wp-block-paragraph">一方、Wayland セッション上で X11 を使用させるには、<br>QT_QPA_PLATFORM=xcb と設定してください。<br>これは、システムの Qt の実装を使用しない一部のプロプライエタリアプリケーションで必要になる場合があります。また、QT_QPA_PLATFORM=&#8221;wayland;xcb&#8221; を使用すると、Qt が Wayland を利用できない場合に、代わりに xcb (X11)プラグインを使用させることができます。<br><br><a rel="noopener" target="_blank" href="https://wiki.archlinux.jp/index.php/Wayland">https://wiki.archlinux.jp/index.php/Wayland</a></p>
</blockquote>



<h2 class="wp-block-heading">Seti Astro Cosmic Clarity linux</h2>



<p class="wp-block-paragraph">SetiAstroCosmicClarity”, “SetiAstroCosmicClarity_denoise” をデコンパイルする方法をこちらに記載しています。</p>



<p class="wp-block-paragraph">SetiAstroCosmicClarity”, “SetiAstroCosmicClarity_denoise” それぞれをpyinstxtractor.py を使って展開し動作確認、後に、ラッパーを作成し、Siril 1.5から動かします。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">こちらでは公開されている、pythonコードをラッパーから利用しています。</p>


<a target="_self" href="https://globe3.ddns.net/wp/cudatoolkit-12-8-2runfile-ubuntu-2604-nvidiadriver580-python3-12-13-graxpert-3-1-cosmicclaritysuite-siril-15/#toc20" title="CUDA Toolkit 12.8.2 (April 2026)runfile +  Ubuntu 26.04 + nvidia-driver 580 + python version 3.12.13  + PyTorch + GraXpert + Cosmic Clarity Suite + Siril 1.5" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://globe3.ddns.net/wp/wp-content/uploads/2026/08/Ryzen7_350-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://globe3.ddns.net/wp/wp-content/uploads/2026/08/Ryzen7_350-320x180.jpg 320w, https://globe3.ddns.net/wp/wp-content/uploads/2026/08/Ryzen7_350-240x135.jpg 240w, https://globe3.ddns.net/wp/wp-content/uploads/2026/08/Ryzen7_350-640x360.jpg 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">CUDA Toolkit 12.8.2 (April 2026)runfile +  Ubuntu 26.04 + nvidia-driver 580 + python version 3.12.13  + PyTorch + GraXpert + Cosmic Clarity Suite + Siril 1.5</div><div class="blogcard-snippet internal-blogcard-snippet">CUDA Toolkit 12.8.2を用いて、Ubuntu + CUDA環境を作ります。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://globe3.ddns.net/wp" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">globe3.ddns.net</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.08.05</div></div></div></div></a></div>



<h3 class="wp-block-heading">pyinstxtractor.py を使って、SetiAstroCosmicClarity を展開</h3>



<pre class="wp-block-code"><code># Siril 1.5 仮想環境で行う
pwd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild
python3.12 pyinstxtractor.py ./SetiAstroCosmicClarity

&#91;+] Processing ./SetiAstroCosmicClarity
&#91;+] Pyinstaller version: 2.1+
&#91;+] Python version: 3.12
&#91;+] Length of package: 57264312 bytes
&#91;+] Found 17 files in CArchive
&#91;+] Beginning extraction...please standby
&#91;+] Possible entry point: pyiboot01_bootstrap.pyc
&#91;+] Possible entry point: pyi_rth_inspect.pyc
&#91;+] Possible entry point: pyi_rth_pkgutil.pyc
&#91;+] Possible entry point: pyi_rth_multiprocessing.pyc
&#91;+] Possible entry point: pyi_rth_pkgres.pyc
&#91;+] Possible entry point: pyi_rth_setuptools.pyc
&#91;+] Possible entry point: pyi_rth_mplconfig.pyc
&#91;+] Possible entry point: pyi_rth_cryptography_openssl.pyc
&#91;+] Possible entry point: pyi_rth_pyqt6.pyc
&#91;+] Possible entry point: pyi_rth__tkinter.pyc
&#91;+] Possible entry point: setiastrocosmicclaritylinux.pyc
&#91;+] Found 7078 files in PYZ archive
&#91;+] Successfully extracted pyinstaller archive: ./SetiAstroCosmicClarity

You can now use a python decompiler on the pyc files within the extracted directory</code></pre>



<p class="wp-block-paragraph">SetiAstroCosmicClarity_extracted ディレクトリにある、<br>setiastrocosmicclaritylinux.pyc を<br>CosmicClaritySuite_Linux_AlternateBuild ディレクトリに配置</p>



<pre class="wp-block-code"><code># 動作確認
python3.12 ./setiastrocosmicclaritylinux.pyc

Using device: cuda (CUDA)
Identified 32bit floating point FITS iamge.
Sharpening Image: result_drizzle_19620s.fit
Total Chunks: 225
Stellar Sharpening:
Progress: 100.00% (225/225 chunks processed)
Stellar sharpening complete. Shape: (2877, 2877)
Saved 32-bit float sharpened image to: /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/./output/result_drizzle_19620s_sharpened.fit</code></pre>



<h4 class="wp-block-heading">Cosmic Clarity Sharpening ラッパーを作成</h4>



<pre class="wp-block-code"><code>### ラッパーファイルを作成 run_Sharpen.sh
cd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/</code></pre>



<p class="wp-block-paragraph">以下が、run_Sharpen.sh</p>



<pre class="wp-block-code"><code>#!/bin/bash
source "$HOME/.local/share/siril/venv/bin/activate"
cd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/
python3.12 ./setiastrocosmicclaritylinux.pyc "$@"

# 実行権
chmod +x ./run_Sharpen.sh</code></pre>



<p class="wp-block-paragraph">シェルスクリプトにおける “$@” は、<br>スクリプトに渡されたすべての引数を、元の区切り（スペースなど）を完全に保ったまま展開する特殊な変数</p>



<h4 class="wp-block-heading">Cosmic Clarity Sharpening を設定</h4>



<p class="wp-block-paragraph">Cosmic Clarity Sharpening Settings<br>Cosmic Clarity Executable:  run_Sharpen.sh (上記ラッパー)を指定する。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading">RTX 5060 動作確認</h4>



<pre class="wp-block-code"><code>source /home/$USER/.local/share/siril/venv/bin/activate
pip list |grep torch
torch                    2.11.0+cu128
torchaudio               2.11.0+cu128
torchvision              0.26.0+cu128

pip list |grep torch-cuda80
pip list |grep torch-model-archiver
pip list |grep torchrec-cpu</code></pre>



<pre class="wp-block-code"><code># 動作確認
python3.12 -c "import torch; print(torch.__version__, torch.cuda.is_available(), torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')"
2.11.0+cu128 True NVIDIA GeForce RTX 5060 Laptop GPU</code></pre>



<pre class="wp-block-code"><code># 動作確認
python3.12 -c "import torch; print('Version:', torch.__version__); print('CUDA:', torch.cuda.is_available()); print('Device Name:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')"
Version: 2.11.0+cu128
CUDA: True
Device Name: NVIDIA GeForce RTX 5060 Laptop GPU</code></pre>



<h3 class="wp-block-heading">Cosmic Clarity denoise を展開</h3>



<p class="wp-block-paragraph">python3.12 pyinstxtractor.py /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/SetiAstroCosmicClarity_denoise</p>



<pre class="wp-block-code"><code># Siril 1.5 仮想環境で行う
pwd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild
python3.12 pyinstxtractor.py ./SetiAstroCosmicClarity_denoise</code></pre>



<pre class="wp-block-code"><code># 動作確認
python3.12 ./setiastrocosmicclaritylinux.pyc
</code></pre>



<h4 class="wp-block-heading">Cosmic Clarity denoise ラッパーを作成</h4>



<pre class="wp-block-code"><code>### ラッパーファイルを作成 run_Denoise.sh
cd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/</code></pre>



<p class="wp-block-paragraph">以下が、run_Denoise.sh</p>



<pre class="wp-block-code"><code>#!/bin/bash

### RTX 5060（12.0）
### export TORCH_CUDA_ARCH_LIST="9.0"
### export TORCH_CUDA_ARCH_LIST="12.0"

source "$HOME/.local/share/siril/venv/bin/activate"
cd /usr/local/share/CosmicClaritySuite_Linux_AlternateBuild/
python3.12 ./SetiAstroCosmicClarity_denoise.pyc "$@"</code></pre>



<h4 class="wp-block-heading">Cosmic Clarity Denoise を設定</h4>



<p class="wp-block-paragraph">Cosmic Clarity Executable<br>run_Sharpen.sh (上記ラッパー)を指定する。</p>



<h2 class="wp-block-heading">StarNet2 2.5.3</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><a rel="noopener" target="_blank" href="https://www.williamliphotos.com/pages/cuda-starnet">https://www.williamliphotos.com/pages/cuda-starnet</a><br><br><a rel="noopener" target="_blank" href="https://blog.0xbadc0de.be/archives/464">https://blog.0xbadc0de.be/archives/464</a></p>
</blockquote>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">SyQon</h2>



<p class="wp-block-paragraph">syqon.it → syqon.eu<br>スクリプトを書き換えても動きません。モジュールを別途配置して動かしています。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">Revert to a Previous Script VersionIf you are downloading scripts natively through Siril&#8217;s interface, the automated script updates might be linking to the down server.Go to the Get Scripts drop-down menu in Siril.Right-click on the problematic script (e.g., Starless or Prism Mini).Select Go back 1 version.Save the rolled-back version into your designated local scripts folder and try running it again.</p>
</div>



<h2 class="wp-block-heading">Windows11</h2>



<p class="wp-block-paragraph">ウェッブを辿っていくと、それぞれの特徴がまとめられていて、理解の手助けになります。有難うございます。</p>



<p class="wp-block-paragraph">CUDAツールキット、NVIDIA CUDA Toolkit、cuDNN</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">こちらを参考にしました。有難うございます。<br><a rel="noopener" target="_blank" href="https://docs.ailia.ai/setup/cuda/">https://docs.ailia.ai/setup/cuda/</a></p>
</blockquote>



<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<p class="wp-block-paragraph">以下の設定は、Windows11, Siril 1.5 環境で確認しています：</p>



<p class="wp-block-paragraph">・オペレーティングシステム : Windows 11<br>・GPU およびドライバー : NVIDIA GeForce RTX 5060、NVIDIA ドライバー 610.88 | WHQL<br>　nvidia-smi によって報告された CUDA 機能レベル : 13.3<br>・CUDA Toolkit : CUDA Toolkit 12.8.2 (April 2026). nvcc &#8211;version の出力は CUDA XX.x / VXX.x.x <br>・cuDNN : CUDA 12.8 対応の cuDNN 9.24.0<br>・ONNX Runtime GPU : Windows x64 対応の ONNX Runtime GPU 1.26.0</p>
</div>



<h3 class="wp-block-heading">サインインを回避</h3>



<p class="wp-block-paragraph">サインインの画⾯が表⽰されたら、Shift + F10 を同時に押します。</p>



<pre class="wp-block-code"><code>コマンドプロンプトに、
start ms-cxh:localonly</code></pre>



<h3 class="wp-block-heading">Windows11 「落ち穂ひろい」、Windows 開発者モード</h3>



<h4 class="wp-block-heading">Line</h4>



<p class="wp-block-paragraph">C:\Users\USERNAME\AppData\Local\LINE<br>ディレクトリを丸ごとコピー、Lineを再インストール。トーク履歴が反映される。<br></p>



<h4 class="wp-block-heading">Caps と Ctrl 入れ替え</h4>



<p class="wp-block-paragraph">Ctrl2Cap v3.0を使ってみます。<br>このツールは両キーを入れ替えるのではなく、CapsLockキーをCtrlに変更するツールらしく、CapsLockは存在しなくなるようです。ん、その様です。</p>



<p class="wp-block-paragraph">コマンドプロンプトを管理者として実行し、Ctrl2Cap ファイルを展開したディレクトリからコマンド ctrl2cap /install を実行してインストールします。 アンインストールは、ctrl2cap /uninstall</p>



<h4 class="wp-block-heading">Windows 開発者モード</h4>



<p class="wp-block-paragraph">Siril は天体画像の前処理で、シンボリックリンクを多く使います。<br>管理者権限なしで、シンボリックリンクを扱えるように、「開発者モード」を有効にすると良いらしいです。</p>



<p class="wp-block-paragraph">開発者向けの設定、開発者モードを有効にする<br><a rel="noopener" target="_blank" href="https://learn.microsoft.com/ja-jp/windows/advanced-settings/developer-mode">https://learn.microsoft.com/ja-jp/windows/advanced-settings/developer-mode</a></p>



<h3 class="wp-block-heading">Python 3 バージョン</h3>



<p class="wp-block-paragraph">Pythonバージョンはこちらを参照します。<br><a rel="noopener" target="_blank" href="https://devguide.python.org/versions/#versions">https://devguide.python.org/versions/#versions</a></p>



<p class="wp-block-paragraph">インストール画面の最初にある &#8220;Add python.exe to PATH&#8221;（環境変数への追加）に必ずチェック</p>



<p class="wp-block-paragraph">Python 3.12.10, Release date: April 8, 2025<br><a rel="noopener" target="_blank" href="https://www.python.org/downloads/release/python-31210/">https://www.python.org/downloads/release/python-31210/</a></p>



<p class="wp-block-paragraph">Windows installer (64-bit)を展開、インストール<br>(Python 3.12.14 exeはあるかな？)</p>



<h3 class="wp-block-heading">NVIDIA ドライバのインストール</h3>



<h4 class="wp-block-heading">Windows11 NVIDIA グラフィックスボードを確認</h4>



<p class="wp-block-paragraph">Windows 11の検索に、&#8221;dxdiag&#8221; を入力<br>DirectX 診断ツールが起動し、「システム」「ディスプレイ」等が表示されます。</p>



<p class="wp-block-paragraph">もしくは、Power Shell</p>



<pre class="wp-block-code"><code>nvidia-smi
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 616.56                 KMD Version: 616.56        CUDA UMD Version: 13.4   | 
+---------------------------------+------------------------+----------------------------+</code></pre>



<h4 class="wp-block-heading">NVIDIA Studio ドライバー？ GeForce Game Ready ドライバー？</h4>



<p class="wp-block-paragraph">NVIDIA Studio　2026年8月現在</p>



<p class="wp-block-paragraph">Driver Version: 616.56 | WHQL, Release Date: Wed Aug 26, 2026<br>OS: Windows 10 64-bit,　Windows 11<br>言語: Japanese　ファイル サイズ: 984.32 MB</p>



<h4 class="wp-block-heading">Siril Pytonスクリプトが GPUを使えるように、Nvidia を設定</h4>



<p class="wp-block-paragraph">CPU内蔵グラフィックスが画面表示を行い、NVIDIA GeForceは計算ユニットとして使います。</p>



<p class="wp-block-paragraph">BIOSでは 「MSHybrid」 または 「Optimus」（モデルによっては 「IGPU」 や 「Hybrid」）を指定<br>　画面表示はCPU内蔵グラフィックスが行う。<br>NVIDIAコントロールパネルを開く<br>　NVIDIAコントロールパネル：左メニューの 「3D設定の管理」 をクリック<br>　NVIDIA App：NVIDIA Appの「グラフィックス」→「プログラム設定」<br>　画面中央の 「グローバル設定」 タブが開いていることを確認<br>　項目一覧から 「OpenGL レンダリング GPU」 をクリック<br>　設定値を「自動選択」から GeForce RTX 5060 に変更<br>3D設定の管理の一覧から 「CUDA &#8211; GPU」をクリック<br>設定値が 「すべて」 になっていることを確認</p>



<p class="wp-block-paragraph">Windows 11 の「グラフィック設定」を行う。Windows 11では、システムのグラフィック設定で「高パフォーマンス」に指定されたアプリが優先してNVIDIA GPUに割り当てられます。<br>　スタートメニューから 「設定」（歯車マーク）を開く。<br>　「システム」 ＞ 「ディスプレイ」 ＞ 画面下部にある 「グラフィック」 をクリックする。<br>　アプリへ[Siril]を追加する。<br>　追加した[Siril]をクリックし、「オプション」 を開く。<br>　GPUのユーザー設定に、&#8221;高パフォーマンス（GPU: NVIDIA GeForce &#8230;)&#8221;を指定する。</p>



<p class="wp-block-paragraph">電源管理モード<br> 「標準」から 「パフォーマンス最大化を優先」 に変更<br>　最後に、画面右下の 「適用」 ボタンを必ずクリックして設定を保存</p>



<p class="wp-block-paragraph">ディスクトップの場合は、オンボードのHDMI出力に、ディスプレイケーブルを挿す。</p>



<pre class="wp-block-code"><code>ドライバファイルの保存先
C:\Windows\Temp\b8fa40a0-5b98-476e-ade9-3bd454ada083</code></pre>



<h3 class="wp-block-heading">NVIDIA CUDA Toolkit</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">CUDA、Microsoft Windows向けインストールガイド<br><a rel="noopener" target="_blank" href="https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html">https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html</a></p>
</blockquote>



<p class="wp-block-paragraph">CUDA Toolkit 12.8 をインストールします。</p>



<p class="wp-block-paragraph">CUDA 13系は、ライブラリが対応していないかもしれないので、安定動作をめざすならば、使用しません。</p>



<p class="wp-block-paragraph">また、Starnet2の案内に、<br>『現在の ONNX Runtime 1.26.0 の GPU パスでは、CUDA 12.x を使用してください。現在の CUDA-12 ONNX Runtime GPU DLL では、CUDA 13.x ランタイム DLL を使用しないでください』、とあります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Windows GPU acceleration setup instructions<br><a rel="noopener" target="_blank" href="https://starnetastro.com/documentation/windows-cuda/">https://starnetastro.com/documentation/windows-cuda/</a></p>
</blockquote>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">CUDA 12.xを使います。<br>GPUドライバーは、ここではインストールしません。<br>カスタムインストールを選び、ドライバーの印を外します。</p>
</div>



<p class="wp-block-paragraph">CUDA Toolkit 12.8 Update 2 Downloads<br><a rel="noopener" target="_blank" href="https://developer.nvidia.com/cuda-12-8-0-download-archive">https://developer.nvidia.com/cuda-12-8-0-download-archive</a></p>



<pre class="wp-block-code"><code>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:42:46_Pacific_Standard_Time_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0</code></pre>



<h4 class="wp-block-heading">Build Tools for Visual Studio 2026</h4>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">サポートされるプロジェクト: ASP.NET、Azure、C++ デスクトップ、ClickOnce、コンテナー、.NET Core、.NET Desktop、Node.js、Office と SharePoint、Python、TypeScript、単体テスト、UWP、WCF、Xamarin。 このツールを使用するには、プロジェクトのオープン ソースの依存関係をビルドしている場合を除き、有効な Visual Studio ライセンスが必要です。<br><a rel="noopener" target="_blank" href="https://visualstudio.microsoft.com/ja/downloads/">https://visualstudio.microsoft.com/ja/downloads/</a></p>
</blockquote>



<p class="wp-block-paragraph">Build Tools for Visual Studio 2026 をインストールします。<br>C/C++のコンパイラ機能のみを導入します。[C++によるデスクトップ開発]をチェックします。<br>18.9.2では、6.68GBらしいです。</p>



<p class="wp-block-paragraph">C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools<br>このディレクトリへインストールされます。</p>



<h3 class="wp-block-heading">NVIDIA cuDNN</h3>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">StarNet2をRTX5060で動かします。その為には、ONNX RuntimeのCUDA Execution Providerでは、現在のCUDA 12.x系に対応した cuDNN 9.x を使います。</p>
</div>



<p class="wp-block-paragraph">cuDNN Archive<br><a rel="noopener" target="_blank" href="https://developer.nvidia.com/cudnn-archive">https://developer.nvidia.com/cudnn-archive</a></p>



<p class="wp-block-paragraph">cuDNN 9.25.0 が2026年7月にリリースされました。が、cuDNN 9.24.0 をインストールします。<br>cuDNNアーカイブから、&#8221;cuDNN 9.24.0 (July 2026)&#8221; を導入します。</p>



<p class="wp-block-paragraph">Cosmic Clarityのスタンドアロン版やSirilのPython連携（SetiAstroSuiteなど）は、内部に必要なライブラリを内蔵（Frozen Executables）しているため、cuDNNをインストールする必要はないらしい。</p>



<p class="wp-block-paragraph">もしも、ソフト起動時に「cudnn64_8.dll または cudnn64_9.dll が見つかりません」といったエラーが出る場合は、NVIDIA cuDNNページから対応するv9.xのZipをダウンロードしインストールします。<br>（中身をCUDAのインストール先 [C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.x] の各フォルダに上書きコピーします。）</p>



<pre class="wp-block-code"><code>C:\Program Files\NVIDIA\CUDNN\v9.24</code></pre>



<pre class="wp-block-code"><code>C:\Program Files\NVIDIA\CUDNN\v9.24\bin\12.9\x64</code></pre>



<pre class="wp-block-code"><code>findstr "CUDNN_M CUDNN_P" "C:\Program Files\NVIDIA\CUDNN\v9.24\include\12.9\cudnn_version.h"</code></pre>



<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<p class="wp-block-paragraph">ここでは、CUDA Toolkit 12.8 Update 2を使うので、<br>cuDNN for CUDA cuda 12.9をカスタムインストールで選びます。</p>
</div>



<h4 class="wp-block-heading">cuDNN パスを通す</h4>



<p class="wp-block-paragraph">cuDNNライブラリ (<code>cudnn64_*.dll</code>) にパスを通します。</p>



<p class="wp-block-paragraph">「設定」→「システム」→ → 「関連リンク」 → 「システムの詳細設定」をクリックして「システムのプロパティ」を表示します。「環境変数」ボタンをクリックします。</p>



<p class="wp-block-paragraph">もしくは、<br>スタートボタンを右クリックし、「システム」→「バージョン情報」→「システムの詳細設定」→「環境変数」を選びます。</p>



<p class="wp-block-paragraph"><strong>システム環境変数</strong>の「Path」を選択し、「編集」をクリックします。「新規」をクリックして、cuDNN の <code>bin</code> フォルダのパスを追加します。</p>



<p class="wp-block-paragraph">CUDA Toolkit 12.8を導入しているので、以下のパスを通します。</p>



<pre class="wp-block-code"><code>C:\Program Files\NVIDIA\CUDNN\v9.24\bin\12.9\x64</code></pre>



<pre class="wp-block-code"><code># コマンドプロンプトで、確認します
where cudnn64_*.dll
C:\Program Files\NVIDIA\CUDNN\v9.24\bin\12.9\x64\cudnn64_9.dll</code></pre>



<h2 class="wp-block-heading">ソースから Siril をビルド / Windows 11</h2>



<p class="wp-block-paragraph"><a rel="noopener" target="_blank" href="https://siril.readthedocs.io/en/latest/installation/windows.html#building-on-windows-with-msys2">https://siril.readthedocs.io/en/latest/installation/windows.html#building-on-windows-with-msys2</a><br>こちらの案内に従い、MSYS2 64bit をインストールし、これを用いて、Siril 開発版を構築します。</p>



<p class="wp-block-paragraph">MSYS2<br>Software Distribution and Building Platform for Windows<br><a rel="noopener" target="_blank" href="https://www.msys2.org/">https://www.msys2.org/</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">MSYS2　各シェルの違い<br><a rel="noopener" target="_blank" href="https://qiita.com/koyukitukimino/items/df76f7fdb8512920d75b">https://qiita.com/koyukitukimino/items/df76f7fdb8512920d75b</a><br><br>MSYS2 MSYS : Unix向けソフトウェアのビルドに使用する なし<br>MSYS2 MINGW64 : 64Bit Windowsアプリケーションをgccでビルドするための環境 あり<br>MSYS2 UCRT64 : Universal C Runtime（UCRT）を使用して64Bit Windowsアプリケーションをgccでビルドするための環境 あり<br>MSYS2 CLANG64 : 64Bit WindowsアプリケーションをClangでビルドするための環境 あり<br>MSYS2 CLANGARM64 : ARM64(AArch64)アプリケーションをClangでビルドするための環境 ARM64版Windowsで動作</p>
</blockquote>



<p class="wp-block-paragraph">MSYS2 MinGW UCRT x64 : こちらを用いて、Siril を構築していきます。<br>Universal C Runtime（UCRT）を使用して64Bit Windowsアプリケーションをgccでビルドします。</p>



<p class="wp-block-paragraph">パッケージデータベースとコアシステムパッケージを入力して更新します。</p>



<pre class="wp-block-code"><code>pacman -Syu</code></pre>



<p class="wp-block-paragraph">依存関係をインストールする</p>



<pre class="wp-block-code"><code>curl -s -o siril-deps.sh https://gitlab.com/free-astro/siril/-/raw/master/build/windows/native-gitlab-ci/siril-deps.sh

bash siril-deps.sh</code></pre>



<p class="wp-block-paragraph">curl が動かない。。。再インストールしよう。</p>



<pre class="wp-block-code"><code>pacman -S mingw-w64-ucrt-x86_64-curl</code></pre>



<p class="wp-block-paragraph">113のパッケージがインストールされました。</p>



<p class="wp-block-paragraph">Siril ソースコードをダウンロードします。</p>



<pre class="wp-block-code"><code>git clone https://gitlab.com/free-astro/siril.git
cd siril
# ヘッダーファイルなどをダウンロード
git submodule update --init</code></pre>



<p class="wp-block-paragraph">ビルドシステムを生成し、コードをコンパイルします。</p>



<pre class="wp-block-code"><code>meson setup _build --buildtype release -Dgtk=true</code></pre>



<p class="wp-block-paragraph">若しくは、</p>



<pre class="wp-block-code"><code>meson setup --buildtype release _build -Dgtk=true -Dcpp_args="-march=native" -Dc_args="-march=native"

meson setup --prefix /usr/local --buildtype release _build -Dgtk=true -Dcpp_args="-march=native" -Dc_args="-march=native"</code></pre>



<p class="wp-block-paragraph">あれ、arch_nativeが有効にならないな～。。。</p>



<p class="wp-block-paragraph">ビルド、インストールします。</p>



<pre class="wp-block-code"><code>ninja -C _build install</code></pre>



<p class="wp-block-paragraph">Python仮想環境の準備や、モジュールインストールのために、Windows環境からSirilを起動させます。</p>



<p class="wp-block-paragraph">エクスプローラーから、<br>C:\msys64\ucrt64\binにあるsirilを起動させます。</p>



<pre class="wp-block-code"><code>log: ローカルのSPCCデータベースリポジトリは最新です！
Entering wrapping_idle for function 00007ff7d8326f50
log: python仮想環境を準備しています: C:\Users\USERNAME\AppData\Local\siril\venv.
log: pythonモジュールが最新か確認しています...
log: バックグラウンドでpythonモジュールをインストール/更新します。これは数秒掛かるかもしれません...
log: Pythonモジュールは最新です</code></pre>



<p class="wp-block-paragraph">Siril 1.5 Python仮想環境である、C:\Users\USERNAME\AppData\Local\siril<br>このディレクトリで、仮想環境をアクティブにして、pipを用います。</p>



<h3 class="wp-block-heading">Siril 1.5 Python仮想環境</h3>



<p class="wp-block-paragraph">Siril 1.5 Python仮想環境を動かします。「アクティブ」にする。</p>



<p class="wp-block-paragraph">PowerShell :</p>



<pre class="wp-block-code"><code>. C:\Users\USERNAME\AppData\Local\siril\venv\Scripts\Activate.ps1</code></pre>



<p class="wp-block-paragraph">コマンドプロンプト（cmd）:</p>



<pre class="wp-block-code"><code>C:\Users\USERNAME\AppData\Local\siril\venv\Scripts\activate.bat</code></pre>



<p class="wp-block-paragraph">PowerShellでのエラー表示</p>



<pre class="wp-block-code"><code>このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\USERNAME\AppData\Local\siril\venv\Scripts\A
ctivate.ps1を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?L
inkID=135170) を参照してください。
発生場所 行:1 文字:3
+ . C:\Users\USERNAME\AppData\Local\siril\venv\Scripts\Activate.ps1
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) &#91;]、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess</code></pre>



<p class="wp-block-paragraph">PowerShellのスクリプト実行許可レベルを変更する。</p>



<pre class="wp-block-code"><code>Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process</code></pre>



<ul class="wp-block-list">
<li>Set-ExecutionPolicy: PowerShellのスクリプト実行許可レベルを変更</li>



<li>-ExecutionPolicy Bypass: 警告や確認を出さず、すべてのスクリプトの実行を許可</li>



<li>-Scope Process: 変更の影響範囲を現在実行中のPowerShellプロセス（ウィンドウ）だけに限定</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">例 6: 現在の PowerShell セッションの実行ポリシーを設定する<br><a rel="noopener" target="_blank" href="https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.6#6-powershell">https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.6#6-powershell</a></p>
</blockquote>



<h3 class="wp-block-heading">PyTorch インストール</h3>



<p class="wp-block-paragraph">Siril 1.5 仮想環境をアクティブにする。</p>



<pre class="wp-block-code"><code>Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

. C:\Users\USERNAME\AppData\Local\siril\venv\Scripts\Activate.ps1</code></pre>



<pre class="wp-block-code"><code>(venv) PS　#仮想環境アクティブ表示</code></pre>



<p class="wp-block-paragraph">コマンドを用いて、Siril Python仮想環境下へ、PyTorch, onnxruntime-gpuをインストールする。</p>



<pre class="wp-block-code"><code>pip 自身をインストール、最新版にアップデートする
python -m pip install --upgrade pip</code></pre>



<pre class="wp-block-code"><code>Downloading pip-26.2.1-py3-none-any.whl (1.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 9.9 MB/s eta 0:00:00
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 25.0.1
    Uninstalling pip-25.0.1:
      Successfully uninstalled pip-25.0.1
Successfully installed pip-26.2.1</code></pre>



<pre class="wp-block-code"><code>pip3 --version
pip 26.2.1 from C:\Users\USERNAME\AppData\Local\siril\venv\Lib\site-packages\pip (python 3.12)</code></pre>



<p class="wp-block-paragraph">PyTorchをインストール</p>



<pre class="wp-block-code"><code>python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128</code></pre>



<pre class="wp-block-code"><code>Installing collected packages: torchaudio, mpmath, typing-extensions, sympy, setuptools, pillow, networkx, MarkupSafe, fsspec, filelock, jinja2, torch, torchvision
Successfully installed MarkupSafe-3.0.3 filelock-3.32.3 fsspec-2026.7.0 jinja2-3.1.6 mpmath-1.3.0 networkx-3.6.1 pillow-12.3.0 setuptools-78.1.0 sympy-1.14.0 torch-2.11.0+cu128 torchaudio-2.11.0+cu128 torchvision-0.26.0+cu128 typing-extensions-4.16.0</code></pre>



<p class="wp-block-paragraph">動作確認</p>



<pre class="wp-block-code"><code>python -c "import torch; print('PyTorch Version:', torch.__version__); print('CUDA Available:', torch.cuda.is_available()); print('GPU Device:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')"

PyTorch Version: 2.11.0+cu128
CUDA Available: True
GPU Device: NVIDIA GeForce RTX 5060 Laptop GPU</code></pre>



<h3 class="wp-block-heading">onnxruntime-gpu インストール</h3>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">CUDA 12.xでは、ONNX Runtime: onnxruntime-gpu 1.28.0 を用いても、<br>GPU (RTX5060) は、動きません。</p>



<p class="wp-block-paragraph">ONNX Runtime: 1.26.x-1.21.x , CUDA: 12.8 , cuDNN: 9.x<br>この3つの要素を組み合わせます。</p>



<p class="wp-block-paragraph">onnxruntime-gpu==1.26.0, version 1.26をインストールします。</p>
</div>



<pre class="wp-block-code"><code>python -m pip install onnxruntime-gpu==1.26.0</code></pre>



<p class="wp-block-paragraph">動作確認</p>



<pre class="wp-block-code"><code> python -c "import onnxruntime as ort; print(ort.get_available_providers())"
&#91;'TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider']</code></pre>



<p class="wp-block-paragraph">CUDAとCPUが有効になっています。</p>



<pre class="wp-block-code"><code>Installing collected packages: flatbuffers, protobuf, onnxruntime-gpu
Successfully installed flatbuffers-25.12.19 onnxruntime-gpu-1.26.0 protobuf-7.36.0</code></pre>



<p class="wp-block-paragraph">動作確認</p>



<pre class="wp-block-code"><code>python -c "import torch; print('CUDA利用可能:', torch.cuda.is_available()); print('Detected GPU:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None')"</code></pre>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">Siril Python スクリプトを使っても、PyTorch, onnxruntime-gpu をインストールできるでしょう。GPU Framework Manager を使います。<br><br>コマンドラインからのインストールが、動作やログが表示されるので、こちらではコマンド操作をしています。</p>
</div>



<h3 class="wp-block-heading">Cosmic Clarity Suite で RTX5060 を使う</h3>



<p class="wp-block-paragraph">ここから試行錯誤します。</p>



<h4 class="wp-block-heading">エラーログを読む</h4>



<p class="wp-block-paragraph">Siril 1.5仮想環境をアクティブにして、</p>



<pre class="wp-block-code"><code>(venv) PS C:\local\CosmicClaritySuite_Windows&gt; .\setiastrocosmicclarity.exe</code></pre>



<p class="wp-block-paragraph">若しくは、Siril 1.5 Pythonスクリプト、Cosmic Clarity Suite Sharpen を用いる。</p>



<p class="wp-block-paragraph">以下、エラーログ</p>



<pre class="wp-block-code"><code>Using device: cuda (CUDA)
Loaded TIFF image with dtype: float32
Final bit depth set to: 32-bit floating point
Sharpening Image: result_drizzle_19620s.fit.tif
Total Chunks: 225
Stellar Sharpening:
Traceback (most recent call last):
  File "Python Code\SetiAstroCosmicClarity.py", line 1391, in &lt;module&gt;
  File "Python Code\SetiAstroCosmicClarity.py", line 1216, in process_images
  File "Python Code\SetiAstroCosmicClarity.py", line 930, in sharpen_image
RuntimeError: CUDA error: no kernel image is available for execution on the device
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.</code></pre>



<pre class="wp-block-code"><code> Traceback (most recent call last):
   File "Python Code\SetiAstroCosmicClarity.py", line 1391, in &lt;module&gt;
   File "Python Code\SetiAstroCosmicClarity.py", line 1216, in process_images
   File "Python Code\SetiAstroCosmicClarity.py", line 930, in sharpen_image
 RuntimeError: CUDA error: no kernel image is available for execution on the device
 CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
 For debugging consider passing CUDA_LAUNCH_BLOCKING=1
 Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.
 &#91;PYI-18620:ERROR] Failed to execute script 'SetiAstroCosmicClarity' due to unhandled exception!

  *#              Cosmic Clarity Suite - Sharpen V6.5 AI3.5s          # 
  *#                                                                  #
  *#                         SetiAstro                                #
  *#                    Copyright © 2025                              #
  *#                                                                  #
 Using device: cuda (CUDA)
 Loaded TIFF image with dtype: float32
 Final bit depth set to: 32-bit floating point
 Sharpening Image: NGC2685_drizzle_19620s.fit.tif
 Total Chunks: 225
 Stellar Sharpening:
</code></pre>



<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<p class="wp-block-paragraph">エラー表示内容：<br>Using device: cuda (CUDA) ：<br>　Cosmic Clarityが、「GPUを使って処理します。CUDA経由でNVIDIA GPUを使用します」<br>Stellar Sharpening：星像のシャープ化処理を開始<br><br>no kernel image is available&#8230;：<br>CUDAでは、GPU上で実行する小さなプログラムを CUDA kernel（カーネル） と呼びます。</p>



<p class="wp-block-paragraph">イメージとしては、<br>Cosmic Clarity→PyTorchなど→CUDA kernel→RTX 5060<br>という流れです。<br><br>RTX 5060の場合は、<br>Compute Capability→12.0→sm_120（CUDA表記）<br></p>



<p class="wp-block-paragraph">ところが、Cosmic Clarityに含まれているCUDA関連コードが、例えば古いGPU向けにしか用意されていないらしく、</p>



<p class="wp-block-paragraph">Cosmic Clarity→「このCUDA kernelを実行して」<br>↓<br>RTX 5060<br>↓<br>「このkernelは私（sm_120）用のコードを持っていない」<br>↓<br>no kernel image is available</p>



<p class="wp-block-paragraph">となります。</p>
</div>



<p class="wp-block-paragraph">どうやら、Cosmic Clarity の .exe ファイルは、パッケージ（PyInstaller）によって古いバージョンの PyTorch が同梱されているらしい。<br>Cosmic Clarityの中に同梱されているCUDA対応ライブラリやPyTorchなどが、RTX 5060（sm_120）用のkernelを持っていないらしい。</p>



<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<p class="wp-block-paragraph">こちらの環境では、</p>



<p class="wp-block-paragraph">Windows 11<br>│<br>├── NVIDIA Driver 616.56<br>│ └── RTX 5060を正常に認識<br>│<br>├── CUDA Toolkit 12.8.2<br>│<br>└── Cosmic Clarity<br>　　　│<br>　　　├── setiastrocosmicclarity.exe<br>　　　│<br>　　　└── _internal<br>　　　　　　│<br>　　　　　　├── PyTorch<br>　　　　　　├── CUDA関連DLL<br>　　　　　　└── CUDA kernel<br>　　　　　　　　　│<br>　　　　　　　　　↓<br>　　　　　　　　　RTX 5060<br>　　　　　　　　　sm_120<br>　　　　　　　　　│<br>　　　　　　　　　X<br>　　　　　　　　　対応kernelがない？<br>　　　　　　　　　│<br>　　　　　　　　　↓<br>　　　　　　　　　no kernel image is available</p>
</div>



<p class="wp-block-paragraph">Cosmic Clarityが使用しているCUDA関連の実行コードのどこかが、RTX 5060（sm_120）に対応していない可能性が高いらしい。</p>



<pre class="wp-block-code"><code>setiastrocosmicclarity.exe にあるPyTorch は、RTX 30シリーズや40シリーズまでに対応か？
　古いPyTorchは、RTX 5060（Blackwell世代）の計算命令（sm_120）が無いので動かせない。

CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect：
 CUDAのエラーは非同期（時間差）で報告されることがあるため、以下のスタックトレース（エラーが発生した場所の記録）は正確ではない可能性があります

RuntimeError: CUDA error: no kernel image is available for execution on the device：
 このGPUデバイス上で実行できる、カーネルイメージ（コンパイル済みの命令データ）が見つからない。

GPUは大量の計算を「裏でまとめて」処理しています。そのため、プログラムが「これを計算して！」とGPUに命令を投げた瞬間ではなく、少し後になってGPU側から「さっきの命令、僕の言葉じゃなくて読めなかったよ」とエラーが返ってくる。そのため、プログラムがエラーで止まった一行手前や、別の場所が本当の引き金かもしれないよ、という開発者向けの注意書き。
　環境変数 CUDA_LAUNCH_BLOCKING=1 を設定して実行すると良いかもと言っている。
　GPUの不具合検知を有効にするには、TORCH_USE_CUDA_DSA を付けてコンパイルしてね、とも</code></pre>



<pre class="wp-block-code"><code>python "Python Code\SetiAstroCosmicClarity.py"
C:\Users\minmin\AppData\Local\Programs\Python\Python312\python.exe: can't open file 'C:\\local\\CosmicClaritySuite_Windows\\Python Code\\SetiAstroCosmicClarity.py': &#91;Errno 2] No such file or directory
### 動かない</code></pre>



<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<p class="wp-block-paragraph">[PYI-13972:ERROR] Failed to execute script &#8216;SetiAstroCosmicClarity&#8217;<br>　という表示から、setiastrocosmicclarity.exe は PyInstallerで固められたアプリかな？<br><br>構造としては、おそらく<br>CosmicClaritySuite_Windows<br>│<br>├─ setiastrocosmicclarity.exe<br>│<br>└─ _internal<br>　　├─ torch<br>　　├─ torchvision<br>　　├─ torchaudio<br>　　├─ numpy<br>　　├─ scipy<br>　　├─ &#8230;<br>　　└─ その他DLL<br>と思われる。（Frankに聞けば良い&#8230;）</p>
</div>



<p class="wp-block-paragraph">C:\local\CosmicClaritySuite_Windows_internal\torchにある、<br><code>version.py</code><br>を見てみると、</p>



<pre class="wp-block-code"><code>Get-Content .\_internal\torch\version.py
from typing import Optional

__all__ = &#91;'__version__', 'debug', 'cuda', 'git_version', 'hip']
__version__ = '2.5.1+cu121'
debug = False
cuda: Optional&#91;str] = '12.1'
git_version = 'a8d6afb511a69687bbb2b7e88a3cf67917e1697e'
hip: Optional&#91;str] = None</code></pre>



<p class="wp-block-paragraph">Cosmic Clarity Windowsに同梱されているPyTorchは、<br>PyTorch 2.5.1+cu121<br>CUDA 12.1</p>



<p class="wp-block-paragraph">Cosmic Clarity内蔵のPyTorch 2.5.1+cu121を、RTX 5060 / Blackwell対応の新しいPyTorchに交換すると、他の部分との互換性が保てない。<br></p>



<pre class="wp-block-code"><code>(Get-Item .\setiastrocosmicclarity.exe).VersionInfo | Format-List *
FileVersionRaw     : 0.0.0.0
ProductVersionRaw  : 0.0.0.0
Comments           :
CompanyName        :
FileBuildPart      : 0
FileDescription    :
FileMajorPart      : 0
FileMinorPart      : 0
FileName           : C:\local\CosmicClaritySuite_Windows\setiastrocosmicclarity.exe
FilePrivatePart    : 0
FileVersion        :
InternalName       :
IsDebug            : False
IsPatched          : False
IsPrivateBuild     : False
IsPreRelease       : False
IsSpecialBuild     : False
Language           :
LegalCopyright     :
LegalTrademarks    :
OriginalFilename   :
PrivateBuild       :
ProductBuildPart   : 0
ProductMajorPart   : 0
ProductMinorPart   : 0
ProductName        :
ProductPrivatePart : 0
ProductVersion     :
SpecialBuild       :</code></pre>



<p class="wp-block-paragraph">アップデートを使ってみます。<br><a rel="noopener" target="_blank" href="https://github.com/setiastro/cosmicclarity/releases/tag/Windows">https://github.com/setiastro/cosmicclarity/releases/tag/Windows</a><br>darkstar_*.onnx<br>darkstar_*.pth<br>deep_*.onnx<br>deep_*.pth<br>satellite*.onnx<br>satellite*.pth<br>setiastro*.exe<br>superres_*.onnx<br>superres_*.pth<br>各ファイルを入れ替えます。<br></p>



<pre class="wp-block-code"><code>エラー表示
 .\setiastrocosmicclarity.exe
Traceback (most recent call last):
  File "Python Code\SetiAstroCosmicClarity.py", line 5, in &lt;module&gt;
  File "&lt;frozen importlib._bootstrap&gt;", line 1360, in _find_and_load
  File "&lt;frozen importlib._bootstrap&gt;", line 1331, in _find_and_load_unlocked
  File "&lt;frozen importlib._bootstrap&gt;", line 935, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 378, in exec_module
  File "torch\__init__.py", line 2108, in &lt;module&gt;
  File "&lt;frozen importlib._bootstrap&gt;", line 1360, in _find_and_load
  File "&lt;frozen importlib._bootstrap&gt;", line 1331, in _find_and_load_unlocked
  File "&lt;frozen importlib._bootstrap&gt;", line 935, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 378, in exec_module
  File "torch\functional.py", line 7, in &lt;module&gt;
  File "&lt;frozen importlib._bootstrap&gt;", line 1360, in _find_and_load
  File "&lt;frozen importlib._bootstrap&gt;", line 1331, in _find_and_load_unlocked
  File "&lt;frozen importlib._bootstrap&gt;", line 935, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 378, in exec_module
  File "torch\nn\__init__.py", line 8, in &lt;module&gt;
  File "&lt;frozen importlib._bootstrap&gt;", line 1360, in _find_and_load
  File "&lt;frozen importlib._bootstrap&gt;", line 1331, in _find_and_load_unlocked
  File "&lt;frozen importlib._bootstrap&gt;", line 935, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 378, in exec_module
  File "torch\nn\modules\__init__.py", line 1, in &lt;module&gt;
  File "&lt;frozen importlib._bootstrap&gt;", line 1360, in _find_and_load
  File "&lt;frozen importlib._bootstrap&gt;", line 1331, in _find_and_load_unlocked
  File "&lt;frozen importlib._bootstrap&gt;", line 935, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 378, in exec_module
  File "torch\nn\modules\module.py", line 29, in &lt;module&gt;
  File "&lt;frozen importlib._bootstrap&gt;", line 1360, in _find_and_load
  File "&lt;frozen importlib._bootstrap&gt;", line 1331, in _find_and_load_unlocked
  File "&lt;frozen importlib._bootstrap&gt;", line 935, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 378, in exec_module
  File "torch\utils\__init__.py", line 8, in &lt;module&gt;
  File "&lt;frozen importlib._bootstrap&gt;", line 1360, in _find_and_load
  File "&lt;frozen importlib._bootstrap&gt;", line 1331, in _find_and_load_unlocked
  File "&lt;frozen importlib._bootstrap&gt;", line 935, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 378, in exec_module
  File "torch\utils\data\__init__.py", line 1, in &lt;module&gt;
  File "&lt;frozen importlib._bootstrap&gt;", line 1360, in _find_and_load
  File "&lt;frozen importlib._bootstrap&gt;", line 1331, in _find_and_load_unlocked
  File "&lt;frozen importlib._bootstrap&gt;", line 935, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 378, in exec_module
  File "torch\utils\data\dataloader.py", line 20, in &lt;module&gt;
  File "&lt;frozen importlib._bootstrap&gt;", line 1360, in _find_and_load
  File "&lt;frozen importlib._bootstrap&gt;", line 1331, in _find_and_load_unlocked
  File "&lt;frozen importlib._bootstrap&gt;", line 935, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 378, in exec_module
  File "torch\distributed\__init__.py", line 122, in &lt;module&gt;
  File "&lt;frozen importlib._bootstrap&gt;", line 1360, in _find_and_load
  File "&lt;frozen importlib._bootstrap&gt;", line 1331, in _find_and_load_unlocked
  File "&lt;frozen importlib._bootstrap&gt;", line 935, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 378, in exec_module
  File "torch\distributed\device_mesh.py", line 40, in &lt;module&gt;
  File "&lt;frozen importlib._bootstrap&gt;", line 1360, in _find_and_load
  File "&lt;frozen importlib._bootstrap&gt;", line 1331, in _find_and_load_unlocked
  File "&lt;frozen importlib._bootstrap&gt;", line 935, in _load_unlocked
  File "PyInstaller\loader\pyimod02_importers.py", line 378, in exec_module
  File "torch\distributed\distributed_c10d.py", line 234, in &lt;module&gt;
  File "torch\distributed\distributed_c10d.py", line 285, in Backend
AttributeError: type object 'torch._C._distributed_c10d.BackendType' has no attribute 'XCCL'. Did you mean: 'NCCL'?
&#91;PYI-3680:ERROR] Failed to execute script 'SetiAstroCosmicClarity' due to unhandled exception!</code></pre>



<div class="wp-block-cocoon-blocks-info-box block-box primary-box">
<p class="wp-block-paragraph">AttributeError: type object &#8216;torch._C._distributed_c10d.BackendType&#8217; has no attribute &#8216;XCCL&#8217;. Did you mean: &#8216;NCCL&#8217;?<br>[PYI-3680:ERROR] Failed to execute script &#8216;SetiAstroCosmicClarity&#8217; due to unhandled exception!<br><br>新しく上書きしたCosmic Clarityのコードが、_internal のPyTorch 2.5.1+cu121 と組み合わさったため、互換性が崩れた。</p>



<p class="wp-block-paragraph">EXEやPythonコードだけ更新して、_internalを残す組み合わせでは動かない。</p>
</div>



<h4 class="wp-block-heading">SetiAstroCosmicClarity.py を使ってみます。</h4>



<p class="wp-block-paragraph">作者のFrankin Marekさんは、プログラムのソースコードを完全に公開しています。有難い事です。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p class="wp-block-paragraph">公式の完全なWindows版を入手します。</p>



<p class="wp-block-paragraph">今回のReleaseページを見ると、現在確認できるWindows更新版は、</p>



<p class="wp-block-paragraph">Files to grab to update just various files instead of having to download the full Cosmic Clarity</p>



<p class="wp-block-paragraph">という位置付けです。<br>これは _internal を更新するものではありません。現在のGitHubリポジトリには、Pythonソースも公開されています。</p>
</div>



<p class="wp-block-paragraph">C:\local\CosmicClarityRTX5060ディレクトリを作り、仮想環境下で動くか試します。</p>



<pre class="wp-block-code"><code>
py -3.12 -m venv .venv

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

.\.venv\Scripts\Activate.ps1

(.venv) PS C:\local\CosmicClarityRTX5060&gt; python --version
Python 3.12.10

(.venv) PS C:\local\CosmicClarityRTX5060&gt; python -c "import sys; print(sys.executable)" C:\local\CosmicClarityRTX5060\.venv\Scripts\python.exe

python -m pip install torch==2.9.0 torchvision==0.24.0 torchaudio==2.9.0 --index-url https://download.pytorch.org/whl/cu128
### 2.9GBをダウンロードします。</code></pre>



<p class="wp-block-paragraph">動作テストをします。</p>



<pre class="wp-block-code"><code>python -c "import torch; print('PyTorch:', torch.__version__); print('Torch CUDA:', torch.version.cuda); print('CUDA available:', torch.cuda.is_available()); print('GPU:', torch.cuda.get_device_name(0)); print('Capability:', torch.cuda.get_device_capability(0))"</code></pre>



<pre class="wp-block-code"><code>PyTorch: 2.9.0+cu128
Torch CUDA: 12.8
CUDA available: True
GPU: NVIDIA GeForce RTX 5060 Laptop GPU
Capability: (12, 0)</code></pre>



<pre class="wp-block-code"><code>python -c "import torch; x=torch.randn(1024,1024,device='cuda'); y=x@x; torch.cuda.synchronize(); print('CUDA TEST: OK', y.shape)"
###import torch; PyTorchを読み込む。
###x=torch.randn(1024,1024,device='cuda'); GPU（CUDA）上に、1024×1024のランダムな数値行列 x を作る。
### y=x@x; GPU上で、1024×1024行列 × 1024×1024行列、計算を実行する。</code></pre>



<pre class="wp-block-code"><code>CUDA TEST: OK torch.Size(&#91;1024, 1024])</code></pre>



<p class="wp-block-paragraph">setiastro /cosmicclarity<br><a rel="noopener" target="_blank" href="https://github.com/setiastro/cosmicclarity?utm_source=chatgpt.com">https://github.com/setiastro/cosmicclarity?utm_source=chatgpt.com</a><br>requirements.txtを見ると、<br>PyQt5, torch, numpy, tifffile, astropy, Pillow, torchvision, lz4, zstandard, rawpy</p>



<p class="wp-block-paragraph">これらをインストールして試します。</p>



<pre class="wp-block-code"><code>python -m pip install numpy tifffile astropy Pillow lz4 zstandard rawpy</code></pre>



<pre class="wp-block-code"><code>python -c "import numpy, tifffile, astropy, PIL, lz4, zstandard, rawpy; print('numpy:', numpy.__version__); print('tifffile:', tifffile.__version__); print('astropy:', astropy.__version__); print('Pillow:', PIL.__version__); print('lz4:', lz4.__version__); print('zstandard:', zstandard.__version__); print('rawpy:', rawpy.__version__)"</code></pre>



<pre class="wp-block-code"><code>python -c "import torch, torchvision; print('torch:', torch.__version__); print('torchvision:', torchvision.__version__); print('CUDA:', torch.version.cuda); print('GPU:', torch.cuda.get_device_name(0))"</code></pre>



<p class="wp-block-paragraph">依存関係を見てみると、<br><a rel="noopener" target="_blank" href="https://github.com/setiastro/cosmicclarity?utm_source=chatgpt.com">https://github.com/setiastro/cosmicclarity?utm_source=chatgpt.com</a><br>requirements.txt<br>PyQt5, torch, numpy, tifffile, astropy, Pillow, torchvision, lz4, zstandard,</p>



<p class="wp-block-paragraph">PyQt5とありますが、現在のPythonソースはPyQt6をimportしています。</p>



<pre class="wp-block-code"><code>python -m pip install xisf PyQt6 sep</code></pre>



<pre class="wp-block-code"><code>python -m pip install onnxruntime-gpu==1.26.0</code></pre>



<p class="wp-block-paragraph">C:\local\CosmicClarityRTX5060ディレクトリへ [SetiAstroCosmicClarity.py]　を配置します。</p>



<pre class="wp-block-code"><code>setiastro / cosmicclarity (Public)
https:&#47;&#47;github.com/setiastro/cosmicclarity/
SetiAstroCosmicClarity.py</code></pre>



<pre class="wp-block-code"><code>python .\SetiAstroCosmicClarity.py
### GUI起動を確認</code></pre>



<p class="wp-block-paragraph">C:\local\CosmicClarityRTX5060ディレクトリに、input、outputディレクトリを作る。<br>inputディレクトリへfitsファイルを配置する。</p>



<pre class="wp-block-code"><code> python .\SetiAstroCosmicClarity.py --sharpening_mode "Stellar Only"

###エラー表示
stellar_model_radius_1.load_state_dict(torch.load(os.path.join(exe_dir, 'deep_sharp_stellar_cnn_AI3_5s.pth'), map_location=device))</code></pre>



<p class="wp-block-paragraph">次のファイルを同じディレクトリへ配置すると、SetiAstroCosmicClarity.pyは動いた。<br><br>deep_nonstellar_sharp_cnn_radius_1AI3_5s.pth<br>deep_nonstellar_sharp_cnn_radius_2AI3_5s.pth<br>deep_nonstellar_sharp_cnn_radius_4AI3_5s.pth<br>deep_nonstellar_sharp_cnn_radius_8AI3_5s.pth<br>deep_sharp_stellar_cnn_AI3_5s.pth</p>



<pre class="wp-block-code"><code>python .\SetiAstroCosmicClarity.py</code></pre>



<p class="wp-block-paragraph">動作ログ、スタンドアローンはこれで動きました。</p>



<pre class="wp-block-code"><code>Using device: cuda (CUDA)
Loaded TIFF image with dtype: float32
Final bit depth set to: 32-bit floating point
Sharpening Image: result_drizzle_19620s.fit.tif
Total Chunks: 225
Stellar Sharpening:
Progress: 100.00% (225/225 chunks processed)
Stellar sharpening complete. Shape: (2731, 2731)
Updating luminance for non-stellar sharpening...
Non-Stellar Sharpening:
Progress: 100.00% (225/225 chunks processed)</code></pre>



<p class="wp-block-paragraph">以上を踏まえて、CosmicClaritySuite_Windowsディレクトリに変更を行います。</p>



<h4 class="wp-block-heading">CosmicClaritySuite_Windows へ &#8220;Windows Files Excluding _internal&#8221;を導入</h4>



<p class="wp-block-paragraph">Windows Files Excluding _internal にある各ファイルに入れ替えます。<br><a rel="noopener" target="_blank" href="https://github.com/setiastro/cosmicclarity/releases/tag/Windows">https://github.com/setiastro/cosmicclarity/releases/tag/Windows</a></p>



<p class="wp-block-paragraph">darkstar_*.onnx<br>darkstar_*.pth<br>deep_*.onnx<br>deep_*.pth<br>satellite*.onnx<br>satellite*.pth<br>setiastro*.exe<br>superres_*.onnx<br>superres_*.pth<br>各ファイルを入れ替えます。</p>



<h4 class="wp-block-heading">CosmicClaritySuite_Windows へ SetiAstroCosmicClarity.py を導入</h4>



<p class="wp-block-paragraph">cosmicclarityにある、SetiAstroCosmicClarity.py、SetiAstroCosmicClarity_denoise.pyをダウンロードし配置します。<br><a rel="noopener" target="_blank" href="https://github.com/setiastro/cosmicclarity">https://github.com/setiastro/cosmicclarity</a></p>



<p class="wp-block-paragraph">不足するパッケージをインストールします。</p>



<pre class="wp-block-code"><code>python -m pip install xisf astropy sep opencv-python</code></pre>



<h4 class="wp-block-heading">CosmicClaritySuite_Windows へ バッチファイルを導入</h4>



<p class="wp-block-paragraph">[SetiAstroCosmicClarity.py]　へSiril から諸設定などの情報を受け取れるバッチファイルを作ります。<br>&#8220;run_SetiAstroCosmicClarity.bat&#8221; とします。</p>



<pre class="wp-block-code"><code>@echo off
call C:\Users\USERNAME\AppData\Local\siril\venv\Scripts\activate.bat
python "%~dp0SetiAstroCosmicClarity.py" %*</code></pre>



<p class="wp-block-paragraph">[SetiAstroCosmicClarity_denoise.py]　へSiril から諸設定などの情報を受け取れるバッチファイルを作ります。<br>&#8220;run_SetiAstroCosmicClarity_denoise.bat&#8221; とします。</p>



<pre class="wp-block-code"><code>@echo off
call C:\Users\USERNAME\AppData\Local\siril\venv\Scripts\activate.bat
python "%~dp0SetiAstroCosmicClarity_denoise.py" %*</code></pre>



<h4 class="wp-block-heading">%~dp0</h4>



<ul class="wp-block-list">
<li>%0：実行されているバッチファイル自身のファイル名（絶対パス）</li>



<li>~：前後の不要なダブルクォーテーション（&#8221;）を取り除く</li>



<li>d：ドライブ名（例：C:）だけを抽出</li>



<li>p：フォルダの経路（パス：\Users\USERNAME\AppData\Local\siril\venv\Scripts\）を抽出</li>
</ul>



<p class="wp-block-paragraph">Siril などの外部ソフトからこのバッチファイルが呼び出されたとき、パソコンの内部（カレントディレクトリ）は「Sirilのプログラムがある場所」になってしまっています。もし単に python SetiAstroCosmicClarity.py とだけ書いておくと、システムは Siril のフォルダから SetiAstroCosmicClarity.py を探してしまい、「ファイルが見つかりません」というエラーになります。</p>



<p class="wp-block-paragraph">%~dp0 を付けて &#8220;%~dp0SetiAstroCosmicClarity.py&#8221; と書くことで、「このバッチファイルと同じフォルダ内にある SetiAstroCosmicClarity.py を実行」 とSirilに指示を出せます。</p>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<p class="wp-block-paragraph">最新のGPUを使うには、みんなどうやっているのかな？<br>きっと、もっと簡単なのだろう。。。</p>
</div>



<p class="wp-block-paragraph">&#8220;SetiAstroCosmicClarity_denoise.py&#8221; も同様に設定します。<br>SetiAstroCosmicClarity, Siril Pythonスクリプトの動作設定は、ここまでです。</p>



<h3 class="wp-block-heading">SyQon Prizm, Starless</h3>



<p class="wp-block-paragraph">C:\Users\USERNAME\AppData\Local\siril<br>以下に、次のディレクトリがあり、そこへそれぞれのファイルを配置します。<br>syqon_prism　→　prism_mini.pt<br>syqon_starless　→　zenith.pt</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Build Tools for Visual Studio が必要になるのは、</h3>



<p class="wp-block-paragraph">Siril での画像処理では、開発を行っていないならば、C++をコンパイル、ビルドする必要は、まず、ありません。</p>



<p class="wp-block-paragraph">そのために、Build Tools for Visual Studioは、通常は、不必要です。</p>



<p class="wp-block-paragraph">Siril 1.5 を使い、天体画像処理をPythonスクリプトなどを用いるならば、numpy, PyQt6, astropyなどのスクリプト実行に必要なPythonライブラリや、PyTorchなどのAIフレームワークは、Windows用にコンパイル済みのパッケージ（Wheel形式）が、スクリプト実行時にインストールされます。</p>



<p class="wp-block-paragraph">Windows版 CUDA Toolkitインストーラーを実行すると、途中で「No supported version of Visual Studio was found…」という警告が表示されることがあります。これは「Visual Studio用のプラグイン（開発者向けの統合環境）が入れられない」という警告なので、そのまま進めると、ランタイムやドライバーは正常にインストールされます。</p>



<p class="wp-block-paragraph">もしも、事前にビルドされていないPythonパッケージを pip install する必要が出た場合などは、画面に 「Microsoft Visual C++ 14.0 or greater is required 」とエラー表示されます。</p>



<p class="wp-block-paragraph">この場合は、「Build Tools for Visual Studio」 を開き、「C++ によるデスクトップ開発」にチェックを入れてインストールします。</p>



<p class="wp-block-paragraph">GUIにてBuild Tools for Visual Studioをインストール<br>「C++ によるデスクトップ開発」をクリックする。画面右側で「ATL」と「MFC」にチェックを入れ、「インストール」をクリックする。</p>



<p class="wp-block-paragraph">コマンドを用いてインストールするならば、以下を参考にします。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><a rel="noopener" target="_blank" href="https://www.kkaneko.jp/tools/win/cuda.html" title="
NVIDIA ドライバ，NVIDIA CUDA ツールキット 12.8，NVIDIA cuDNN v9.19.0 のインストール（Windows 上）｜金子邦彦研究室" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.kkaneko.jp%2Ftools%2Fwin%2Fcuda.html?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">
NVIDIA ドライバ，NVIDIA CUDA ツールキット 12.8，NVIDIA cuDNN v9.19.0 のインストール（Windows 上）｜金子邦彦研究室</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.kkaneko.jp/tools/win/cuda.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.kkaneko.jp</div></div></div></div></a></blockquote>



<p class="wp-block-paragraph">winget を用いて以下のインストールを行うので、先ずは、wingetを確認します。<br>&#8220;Win&#8221;+&#8221;X&#8221;key → &#8220;i&#8221;key → &#8220;Windows PowerShell</p>



<pre class="wp-block-code"><code>winget
Windows Package Manager v1.29.280</code></pre>



<p class="wp-block-paragraph">Build Tools for Visual Studio 2026 のインストール</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><br><a rel="noopener" target="_blank" href="https://learn.microsoft.com/ja-jp/windows/package-manager/winget/install">https://learn.microsoft.com/ja-jp/windows/package-manager/winget/install</a></p>
</blockquote>



<pre class="wp-block-code"><code>winget install --scope machine --id Microsoft.VCRedist.2015+.x64 -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/quiet /norestart"
</code></pre>



<ul class="wp-block-list">
<li>&#8211;scope: インストーラーでユーザーまたはコンピューターのスコープをターゲットにする必要がある場合に指定できます。</li>



<li>&#8211;id: installをアプリケーションの ID に制限します。</li>



<li>-e, &#8211;exact: 大文字小文字の区別の検査を含め、クエリで正確な文字列を使用します。 部分文字列の既定の動作は使用されません。</li>



<li>&#8211;silent: サイレント モードでインストーラーを実行します。 これにより、すべての UI が抑制されます。 既定のエクスペリエンスでは、インストーラーの進行状況が表示されます。</li>



<li><code>--disable-interactivity</code>: 対話型プロンプトを無効にします。</li>



<li><code>--force</code>: コマンドを直接実行し、セキュリティ関連以外の問題を続行します。</li>



<li><code>--accept-source-agreements</code>:  対話型プロンプトを抑制して、WinGet ソース (リポジトリ) の使用許諾契約書に同意します。 これはパッケージ ライセンスとは別であり、ソース自体の使用条件 ( winget コミュニティ リポジトリなど) が対象となります。</li>



<li><code>--accept-package-agreements</code>: パッケージ インストーラーによって提示された使用許諾契約書または EULA を受け入れ、対話型プロンプトを表示しません。 これはパッケージのライセンス条項にのみ適用されます。インストーラーによって提供されるオプションのコンポーネントやバンドルされたソフトウェアには影響しません。 完全に非対話型の installの場合は、 <strong><code>--silent</code> (<code>-h</code>)</strong> と組み合わせます。</li>



<li><code>--override</code>: インストーラーに直接渡される文字列。</li>



<li><code>"/quiet /norestart"</code></li>
</ul>



<h3 class="wp-block-heading">zlib のインストールは不要</h3>



<p class="wp-block-paragraph">zlibは、別途、インストールする必要はありません。<br>cuDNN 9.1.0のドキュメントに案内があります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">ZLIB version 1.2.13 is statically linked into the cuDNN Windows dynamic libraries. Changing to the static linkage of ZLIB for other platforms will be addressed in future cuDNN releases.<br><a rel="noopener" target="_blank" href="https://docs.nvidia.com/deeplearning/cudnn/backend/latest/release-notes.html">https://docs.nvidia.com/deeplearning/cudnn/backend/latest/release-notes.html</a><br><br>ZLIB バージョン 1.2.13 は、cuDNN の Windows 向けダイナミックライブラリに静的リンクされています。その他のプラットフォームにおける ZLIB の静的リンクへの変更については、今後の cuDNN リリースで対応される予定です。</p>
</blockquote>



<pre class="wp-block-code"><code><a rel="noopener" target="_blank" href="https://www.winimage.com/zLibDll/index.html">https://www.winimage.com/zLibDll/index.html</a>

There is also a DLL for Windows 64 bits, for <strong>AMD64/Intel EM64T</strong> and for Intel Itanium.</code></pre>



<p class="wp-block-paragraph">展開した中にある <code>zlibwapi.dll</code> を、PATH の通った場所にコピーします。cuDNN の <code>bin</code> フォルダにコピーします。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://globe3.ddns.net/wp/setting-up-ubuntu26-and-windows11-for-astronomy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>プロセッサ 拡張機能と Siril</title>
		<link>https://globe3.ddns.net/wp/ryzen-ai7-350-features-and-siril/</link>
					<comments>https://globe3.ddns.net/wp/ryzen-ai7-350-features-and-siril/#respond</comments>
		
		<dc:creator><![CDATA[minmin]]></dc:creator>
		<pubDate>Mon, 13 Jul 2026 05:09:03 +0000</pubDate>
				<category><![CDATA[Siril]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://globe3.ddns.net/wp/?p=3542</guid>

					<description><![CDATA[これは、Siril をソースコードからインストールする際に、用いるプロセッサの拡張機能を使用するメモです。記載、編集途中です。 meson mesonは、素粒子物理の「中間子」でははくて、ソフトウェア構築システムです。h [&#8230;]]]></description>
										<content:encoded><![CDATA[<a rel="noopener" target="_blank" href="https://siril.readthedocs.io/en/latest/installation/source.html" title="Installation from source code &mdash; Siril 1.5.0 documentation" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fsiril.readthedocs.io%2Fen%2Flatest%2Finstallation%2Fsource.html?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Installation from source code &mdash; Siril 1.5.0 documentation</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://siril.readthedocs.io/en/latest/installation/source.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">siril.readthedocs.io</div></div></div></div></a>


<p class="wp-block-paragraph">これは、<br>Siril をソースコードからインストールする際に、用いるプロセッサの拡張機能を使用するメモです。<br>記載、編集途中です。</p>



<h2 class="wp-block-heading">meson</h2>



<p class="wp-block-paragraph">mesonは、素粒子物理の「中間子」でははくて、ソフトウェア構築システムです。<br><a rel="noopener" target="_blank" href="https://mesonbuild.com/">https://mesonbuild.com/</a><br>陽子と中性子を結びつける素粒子である、Gluon「グルーオン」が候補だったそうですが、既に他で使われていたので、mesonになったそうです。<br><a rel="noopener" target="_blank" href="https://mesonbuild.com/FAQ.html">https://mesonbuild.com/FAQ.html</a></p>



<p class="wp-block-paragraph">meson ビルドオプション<br><a rel="noopener" target="_blank" href="https://mesonbuild.com/Builtin-options.html">https://mesonbuild.com/Builtin-options.html</a></p>



<h2 class="wp-block-heading">AMD Ryzen™ AI 7 350 プロセッサ 拡張機能</h2>



<p class="wp-block-paragraph">ここでは、AMD Ryzen AI 7 350 拡張機能とmeson オプションの関係を記述します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">対応する拡張機能<br>AES , AMD-V , AVX , AVX512 , AVX2 , FMA3 , MMX-plus , SHA , SSE , SSE2 , SSE3 , SSE4.1 , SSE4.2 , SSE4A , SSSE3 , x86-64<br><a rel="noopener" target="_blank" href="https://www.amd.com/ja/products/processors/laptop/ryzen/ai-300-series/amd-ryzen-ai-7-350.html">https://www.amd.com/ja/products/processors/laptop/ryzen/ai-300-series/amd-ryzen-ai-7-350.html</a></p>
</blockquote>



<ul class="wp-block-list">
<li>AES
<ul class="wp-block-list">
<li>AES-NI (Advanced Encryption Standard New Instructions)<br>マイクロプロセッサのx86命令セットへの拡張機能。AES-NIは、AESによる暗号化および復号の高速化を行う。</li>
</ul>
</li>



<li>AMD-V
<ul class="wp-block-list">
<li>コンピュータの仮想環境を支援する。</li>
</ul>
</li>



<li>AVX512
<ul class="wp-block-list">
<li>AVX-512（Advanced Vector Extensions 512）は、512ビット幅のベクトル演算（一度に複数のデータを処理するSIMD技術）を可能にする命令セットです。<br>高い実行効率を実現するため、システム全体での電力供給や熱設計の改善も施されています。</li>
</ul>
</li>



<li>FMA3
<ul class="wp-block-list">
<li>FMA3（Fused Multiply-Add 3-operand）は、3オペランド形式のFused Multiply-Add と呼ばれる浮動小数点数の積和算命令<br>乗算と加算（例えば、A*B+C）を1クロックで処理する。</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">機能拡張を有効</h2>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">プロセッサの機能拡張を有効にするには、以下のオプションを用います。</p>



<pre class="wp-block-code"><code>meson configure _build -Dcpp_args="-march=native" -Dc_args="-march=native"</code></pre>



<h2 class="wp-block-heading">WindowsでのMsys2を用いた Siril構築</h2>



<p class="wp-block-paragraph">依存関係をインストールするには以下のコマンド</p>



<pre class="wp-block-code"><code>curl -s -o siril-deps.sh https://gitlab.com/free-astro/siril/-/raw/master/build/windows/native-gitlab-ci/siril-deps.sh
bash siril-deps.sh</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://globe3.ddns.net/wp/ryzen-ai7-350-features-and-siril/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VeraLux Nox, Silentium と Siril</title>
		<link>https://globe3.ddns.net/wp/using-veralux-with-siril/</link>
					<comments>https://globe3.ddns.net/wp/using-veralux-with-siril/#respond</comments>
		
		<dc:creator><![CDATA[minmin]]></dc:creator>
		<pubDate>Wed, 20 May 2026 07:48:00 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Siril]]></category>
		<category><![CDATA[画像処理]]></category>
		<guid isPermaLink="false">https://globe3.ddns.net/wp/?p=3304</guid>

					<description><![CDATA[Cyril Richardさん と オープンソース Cyril RichardさんとRich Stevensonさんが対談してます。https://www.youtube.com/watch?v=Y6b3VVf-tvk  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Cyril Richardさん と オープンソース</h2>



<p class="wp-block-paragraph">Cyril RichardさんとRich Stevensonさんが対談してます。<br><a rel="noopener" target="_blank" href="https://www.youtube.com/watch?v=Y6b3VVf-tvk">https://www.youtube.com/watch?v=Y6b3VVf-tvk</a></p>



<p class="wp-block-paragraph">対談を聞いてみると、</p>



<p class="wp-block-paragraph">Siril開発者のCyril Richardさんは、理論物理学者です。<br>天体物理学分野では分光学、氷の分析、系外惑星の大気を研究してるそうです。<br>彼曰く、それらを行う量子力学者だそうです。</p>



<p class="wp-block-paragraph">彼はLinuxのみで作業をするので、Linuxで動作する、無料で自由な天体写真処理ツールが欲しかったそうです。当時はそれが無いのでSirilを開発したそうです。</p>



<p class="wp-block-paragraph">Sirilの始まりは、Christian Builさんの &#8220;IRIS&#8221;のLinux版としてでした。これが2005年の事でした。<br>一時中断していた開発を、2012年ころから、Cyril Richardさんが、その後を引き継いだようです。</p>



<p class="wp-block-paragraph">Sirilの名称は、元の&#8221;IRIS&#8221;の文字を後ろから並び替えて、IRIS → iris → siri<br>そこに&#8221;Linux&#8221;の先頭文字の &#8220;l&#8221; をつなげる形にしたようです。&#8221;siri&#8221; + &#8220;l&#8221; =&gt; Siril<br>UNIXやGNUに見られる命名法です。 Cyril Richardさんの名前とは無関係です。</p>



<p class="wp-block-paragraph">量子力学者の彼は、ノイズの多いデータを扱う事には慣れていたので、Sirilの画像処理アルゴリズムも厳密さと信頼性が高くなるように努めているそうです。</p>



<p class="wp-block-paragraph">彼はきちんと動作し、綺麗な画像が得られる、Linux上のプログラムが欲しかったそうです。<br>無料であり、しかもオープンソースのプログラムが欲しかったので、Sirilをその形にしたそうです。</p>



<p class="wp-block-paragraph">オープンソースで開発した事に因り、Sirilは広がりを見せたと思えます。<br>マルチプラットフォームになり、Pythonスクリプトでの処理が可能になり、多くのプログラマー、テスターが参加し、開発がより速くなりました。また、開発に掛かる費用を、寄付で賄えるようになりました。</p>



<p class="wp-block-paragraph">昨今は、AIでプログラム開発が出来ます。<br>ですが、そのプログラムがより良くなる為に必要な事は、何でしょうか？<br>それは、オープンソースプログラムであり、それゆえに多くの人に楽しまれながら、育まれ、より大きく育つことが出来ます。</p>



<p class="wp-block-paragraph">Cyril RichardさんとRich Stevensonさんの話しから、強くそう思いました。</p>



<h2 class="wp-block-heading">VeraLux Nox</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">VeraLux Noxは、Zenith Membrane（ゼニス・メンブレン）と呼ばれる概念を基盤とした、決定論的な背景モデリングエンジンを導入しています。このアルゴリズムは、統計的サンプリングや曲線近似によって勾配を推定するのではなく、離散ポアソン方程式を直接解くことで、空の背景を物理的に弾性を持つ表面として再構築します。<br><a rel="noopener" target="_blank" href="https://www.youtube.com/watch?v=eK9VU1d-VP0">https://www.youtube.com/watch?v=eK9VU1d-VP0</a></p>
</blockquote>



<h2 class="wp-block-heading">VeraLux Silentium</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">VeraLux Silentium Pythonスクリプトは、Sirilのリニアステージ向けに特別に設計された、強力な非AIノイズ除去エンジンを導入しています。</p>



<p class="wp-block-paragraph">AIベースとは異なり、Silentiumはリニアデータに対して直接処理を行うため、微弱な構造や細かなディテールを保持しつつ、制御された方法で、天体画像に適した安全な手法により背景ノイズを低減します。これにより、微細部分の誤認識や過度な平滑化を行うことなく、ストレッチ処理の前にクリーンなデータを得たいユーザーにとって理想的な解決法となります。<br><a rel="noopener" target="_blank" href="https://www.youtube.com/watch?v=N4CUQA2X-cE">https://www.youtube.com/watch?v=N4CUQA2X-cE</a></p>
</blockquote>



<p class="wp-block-paragraph">Silentium を用いるには、&#8221;Defaults&#8221;ボタンを押して、初期状態でノイズ除去を行うと良いでしょう。<br>なぜなら、Silentiumは、ノイズの統計計算を行うからです。</p>



<ul class="wp-block-list">
<li>スペースキーを押し続けると、未処理の画像、オリジナル画像が表示される。</li>



<li>赤枠はプレビュー
<ul class="wp-block-list">
<li>ノイズ除去を確認したい部分をクリックします。</li>



<li>戻すには、画面上のどこかをクリックするか、「1:1ボタン」をクリックします。</li>
</ul>
</li>
</ul>



<ul class="wp-block-list">
<li>Noise Intensity:<br>ノイズ除去強度</li>



<li>Detail Guard:<br>微細構造の保護</li>



<li>Chromeinance:<br>3色、カラー画像に対してノイズ除去を行います。チェックボタンを外すと輝度のみのノイズ除去<br>数値が上げると、カラーノイズ除去を強く行います。</li>



<li>Deep Space Smoothness (Shadows): 陰（かげ）部分の滑らかさ（？）<br>ノイズ除去を行った後に、天体構造がぼやけ始めたならば、この数値を上げていきます。</li>



<li>Use findstar (.lst) for Star Protection:<br>恒星にノイズ除去処理を行わないように、Sirilのfindstarを用います。<br>作業ディレクトリに、listファイルが作られます。内容は、Dynamic PSFの数値です。</li>



<li>Auto Starless Detection:<br>恒星が無い画像にノイズ除去を行う時にも、このチェックを使います。</li>
</ul>



<p class="wp-block-paragraph">プレビュー画像で良好なノイズ除去が得られたならば、&#8221;PROCESS&#8221;ボタンを押して、処理を全画面に適応します。</p>



<h2 class="wp-block-heading">Siril 画像処理の流れ</h2>



<p class="wp-block-paragraph">掲載画像は、画像処理中です。</p>



<p class="wp-block-paragraph">Name: <br>Processing: Siril 1.5 beta, VeraLux, StarNet2, Cosmic Clarity, GraXpert<br>Star Processing Python script: VeraLux Nox, Aberration Remover, Cosmic Clarity Sharpen<br>Galaxy Processing Python script: GraXpert, SyQon Prism</p>



<p class="wp-block-paragraph">Siril 1.5 betaを使って画像処理します。</p>



<ul id="block-38592a4e-9105-41a4-b0a4-204e6907d0bc" class="wp-block-list">
<li>Background Extraction: VeraLux Nox</li>



<li>SPCC (Gaia Spectrum: G2Vなど)</li>



<li>別名でファイル保存
<ul class="wp-block-list">
<li>恒星処理
<ul class="wp-block-list">
<li>Desaturate Stars: 今回は未使用</li>



<li>Aberrations Remover: 必要に応じて</li>



<li>Deconvolution: Cosmic Clarity Sharpening, Stellar Only (Stel_amt=0.24, Nstel_str=3)</li>



<li>Starnet 2</li>
</ul>
</li>



<li>銀河星雲処理
<ul class="wp-block-list">
<li>ノイズ除去 : VeraLux Silentium (Strength=　, 　)</li>



<li>Deconvolution: GraXpert (Strength=0.64)</li>



<li>Starnet 2</li>



<li>ストレッチ（HT,GHS）</li>



<li>Wavelets Transformation</li>



<li>ノイズ除去 : VeraLux Silentium (Strength=　, 　)</li>



<li>色補正: Color saturation 65%, threshold 1.00</li>
</ul>
</li>
</ul>
</li>



<li>Star recomposition</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://globe3.ddns.net/wp/using-veralux-with-siril/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
