Armadilloフォーラム

ユーザーランドにPython3を追加する方法

a2c-maru

2024年2月6日 16時03分

Armadillo-IoT G3Lにて Python3.11 のパッケージを自作し、dpkgでインストールして使用していますが、
Python3.11をユーザーランド(→インストールディスクイメージ)に組み込む必要が生じました。
方法としては、
 A.ユーザーランドに自作パッケージを組み込む(インストール済みの状態にする)
 B.ATDEで Python3.11 をビルドする
の2通りがあるのでは、と考えています。

質問
①上記Aは可能でしょうか?(at-debian-builder で fixup に dpkgを追記すればよいのでしょうか?)
②上記A、Bともに可能だった場合、それぞれメリット、デメリット、注意事項などあれば教えてください。

コメント

at_syunya.ohshio

2024年2月6日 16時26分

大塩です。

すでに設定済みのArmadillo が存在するとのことですので
dumprootfs を用いて 設定済みのArmadillo のルートファイルシステムを抽出する方法はどうでしょうか。
https://manual.atmark-techno.com/armadillo-iot-g3l/armadillo-iotg-g3l_p…

抽出したルートファイルシステムは、そのままインストールディスクイメージ作成に、アットマークテクノから配布されているルートファイルシステムの変わりとして使用できます。
https://manual.atmark-techno.com/armadillo-iot-g3l/armadillo-iotg-g3l_p…

この方法であれば仮にPython3.11 のパッケージ関連の設定ファイルがあった場合でも他のArmadillo等にインストールディスクイメージとして複製することが可能になります。

以上です。

a2c-maru

2024年2月21日 11時25分

大塩様

遅れ馳せながら、ご回答ありがとうございました。

> dumprootfs を用いて 設定済みのArmadillo のルートファイルシステムを抽出する方法はどうでしょうか。

ようやく試せる状況になったので、dumprootfsを実行してみました。
1つ気になった点がありますのでお尋ねします。

■dumprootfsを実行する元のOS("xyzuser"は一般ユーザ名)
xyzuser@armadillo:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=294 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=51.5 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=54 time=50.7 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 3 received, 25% packet loss, time 8ms
rtt min/avg/max/mdev = 50.745/132.133/294.109/114.535 ms

■dumprootfsで取り出したRFSで作成したイメージを書き込み後
xyzuser@armadillo:~$ ping 8.8.8.8
ping: socket: Operation not permitted
xyzuser@armadillo:~$ sudo ping 8.8.8.8
[sudo] password for xyzuser:
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=132 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=66.5 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=54 time=46.4 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 46.377/81.706/132.277/36.687 ms

ご覧の通り、ping に sudo が必要になりました。
(上記はLTEですが、LANでも同様でした。)

開発したアプリはroot権限で実行されますので、
今のところ問題は生じていませんが、
このことに関連して他に何か影響が考えられますでしょうか?