openSUSE Leap 16.0をインストール #9 - QEMU2025/12/26 19:29

Leap 16.0ではVirtualBoxが利用できない状態なのでQEMUに移行した。

VirtualBoxのVDI形式のディスクをQCOW2形式に変換して、仮想NAT環境でOSが正常に立ち上がることを確認。

VMをLAN内のセグメントに組み込むため、物理NIC(eth0)をブリッジ(br0)に組み込んだ。 libvirt XML定義ファイルは副操縦士に作成してもらい、virsh defineでVMを登録したが、 シャットダウンが正常に機能しなかったので、ACPIを明示的に有効にした。 また最初に使ったマシンタイプ「i440fx」はVNC解像度に制限があったので、 最新の「q35」に構成変更してます。

仮想マシンの操作はCockpitから操作すれば簡単!だった。実行/シャットダウンだけではなく、コンソール操作やVMのインポート,共有ディレクトリーの設定などの管理もできて便利です。

本日の衛星: ArcticSat-1を受像。

openBCMユニットファイルのモダナイズ2025/12/23 13:28

bcmの起動には、公式マニュアルにある"昔ながらのinitスクリプト"をsystemdで動かすユニットファイルを使用してきた。 中身はスクリプト/bcm/startbcmを起動するだけと非常にシンプルだったので、systemdの機能をフル活用したユニットファイルに変更してみた。

  • bcm本体を直接起動+実行時のカレントディレクトリを固定して、startbcmを廃止
  • ログはjournalctlに統合(/dev/tty8を使わない)
  • 「ネットが本当に使える状態」まで待つnetwork-online.targetに変更して、起動順序を保証
  • プロセスが落ちたら自動再起動(Restart=on-failure)を追加

本日の衛星: ArcticSat-1を受像。あのNGHamプロトコルを採用したFloripaSat-2A/2Bは打ち上げ失敗で残念。

gr-satellitesを仮想環境にインストール2025/12/10 16:48

Pi4(Bookworm)で、新たにgr-satellites 5.8.0用のPython仮想環境を作成した。 以前に設定したgrsat 5.7.0環境で使うPYTHONPATHが設定されたままだったので、新仮想環境内でpip installしてないのにgrsat 5.7.0環境のライブラリが混ざって見えた。 これは、仮想環境の独立性を崩すPYTHONPATHの落とし穴だった。

環境変数PYHONPATHをリセットし、 システムにインストール済みのパッケージ(apt経由のGNU Radioなど)が新規作成する仮想環境から見えるようにし、 cmake時にインストール先を仮想環境に指定・pythonバインディング生成時に新仮想環境内のpythonを使用するよう指定して、makeし直した (その手順はgistに記載)。

これによりPYTHONPATH+LD_LIBRARY_PATHの指定が不要となり、仮想環境内でのライブラリの依存関係が適切になったハズ(だと思いたい)。

いまは、この新しいgrsat環境がsatnogs-client 2.1で問題なく動作するかを確認してます。

本日の衛星:TUBINをデコード。Mobitex-NX framingをGRC 3.10な環境で処理できて感動してます。

openSUSE Leap 16.0をインストール #82025/12/04 15:47

Leap 16.0にバージョンアップしてから2ヶ月経ったが、調整作業が細々と続いてます。

  • パッケージ更新はCockpitから不定期にマニュアル操作で実施するルーチンが身についた。
  • ネットワーク管理ツールをwickedからNetworkManagerに切り替えた。CockpitからもGUIで操作できるようになった。
  • IMEはkkcからAnthyに乗り換えた。中点の入力に難儀したので。
  • php-fpmが不定期に停止すると思ったら、自動起動の有効化を忘れてた💦。

本日の衛星: ArcticSat-1のSSTVを受像。

Pi OSの再インストール2025/12/01 21:39

satnogs-clientで使用するPi OS(Bookworm)では、システムワイドな pip3 install は原則として避ける方針が推奨されている。 これは、システム全体の安定性を保ち、依存関係の衝突を防ぐため、だそうだ。

この仕様変更に合わせて、インストール/設定方法を見直した。

1. gr-satellites v5.7.0

gr-satellitesは GNU Radio OOTモジュールであるため、 GNU Radio本体はapt コマンドでシステムにインストールし、 gr-satellitesのビルド時に、cmakeのDCMAKE_INSTALL_PREFIXにvenvの場所を指定し、 venv内に依存関係とgr-satellitesがインストールされるようにした。

ただし、libgnuradio-satellites.so.* のインポートに失敗したので、ビルドした .so ファイルを 仮想環境内のlibフォルダへ手動でコピーして、LD_LIBRARY_PATH に当該フォルダを追加し、実行時に仮想環境内のライブラリを参照できるようにしてます。

2. 空冷Fan

これまではPIMORONI社製Fan SHIM用のPythonライブラリをインストールしてたけど、 Bookwormではraspi-configからGPIO Case FanのON/OFF温度を設定できるようになった (Fan SHIMのissue情報)。

ちなみに、従来のpythonライブラリ制御に比べ、ファンの動作音が静かになった気がしてます。