LuckFox Pico Miniでbuildrootを使ってみる

Debian/Ubuntuからのリモート接続

前回、WindowsPCを使ったネットワーク共有を紹介しました。
そこで、今回はUbuntu/Debian環境を母艦としたリモートログイン・リモートファイル転送を紹介します。
Pico-Miniにデバッグポート経由でログインすると、1つの端末しか開くことができませんが、
WindowsPCからTeraTermなどで母艦に接続し、母艦経由でPico-Miniにリモートログインすることで、
複数の端末を同時に使うことができます。
Ubuntu20.04、Ububtu22.04、Debian11、Debian12では挙動が違います



最初にUbuntu20.04の挙動です。
Miniボードの電源をUbuntu20.04マシンから供給すると、以下の様にUbuntu側にusb0のインタフェースが出現します。
$ sudo ifconfig usb0
usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::a742:1ab5:c616:d016  prefixlen 64  scopeid 0x20<link>
        ether 7a:da:62:7c:d5:bb  txqueuelen 1000  (イーサネット)
        RX packets 21  bytes 2169 (2.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 39  bytes 8001 (8.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

$ nmcli conn show
NAME        UUID                                  TYPE      DEVICE
有線接続 2  ea035181-2f58-3f41-bf2b-89c5022bb4e0  ethernet  usb0
有線接続 1  5bfff474-56e9-3a46-81d7-3b3a7d5692d7  ethernet  enp4s0

そこで、nmcliコマンドを使って、usb0に対して固定IPアドレス(172.32.0.100)をアサインします。
Ubuntu側にアサインする固定IPアドレスは、Miniボードと同じセグメントなら何でも構いません。
nmcliはデバイス(usb0)ではなく接続名(有線接続 2)を指定します。
$ sudo nmcli connection down "有線接続 2"
$ sudo nmcli connection modify "有線接続 2" ipv4.addresses "172.32.0.100/16"
$ sudo nmcli connection modify "有線接続 2" ipv4.method manual
$ sudo nmcli connection up "有線接続 2"
$ nmcli device show usb0
GENERAL.DEVICE:                         usb0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         DA:1F:7F:84:10:69
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (接続済み)
GENERAL.CONNECTION:                     有線接続 2
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER:               オン
IP4.ADDRESS[1]:                         172.32.0.100/16
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 172.32.0.0/16, nh = 0.0.0.0, mt = 101
IP6.ADDRESS[1]:                         fe80::f220:3c47:db11:8fbe/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 101

ifconfigで結果を確認します。
$ sudo ifconfig usb0
usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.32.0.100  netmask 255.255.0.0  broadcast 172.32.255.255
        inet6 fe80::f220:3c47:db11:8fbe  prefixlen 64  scopeid 0x20<link>
        ether da:1f:7f:84:10:69  txqueuelen 1000  (イーサネット)
        RX packets 53  bytes 7107 (7.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 109  bytes 19284 (19.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

これで、Miniボードに対してpingが通り、sshとscpが使えるようになります。
$ ping 173.32.0.93 -c 5
PING 173.32.0.93 (173.32.0.93) 56(84) bytes of data.
64 bytes from 173.32.0.93: icmp_seq=1 ttl=49 time=267 ms
64 bytes from 173.32.0.93: icmp_seq=2 ttl=49 time=272 ms
64 bytes from 173.32.0.93: icmp_seq=3 ttl=49 time=267 ms
64 bytes from 173.32.0.93: icmp_seq=4 ttl=49 time=275 ms
64 bytes from 173.32.0.93: icmp_seq=5 ttl=49 time=270 ms

--- 173.32.0.93 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 266.740/270.134/275.481/3.283 ms

$ ssh root@172.32.0.93
root@172.32.0.93's password:
[root@luckfox root]$ uname -a
Linux luckfox 5.10.110 #1 Mon Jun 17 20:20:43 JST 2024 armv7l GNU/Linux
[root@luckfox root]$ exit

$ vi ssh-test.txt
中身は何でもよい

$ scp ssh-test.txt root@172.32.0.93:/root
root@172.32.0.93's password:
ssh-test.txt



次にUbuntu22.04の挙動を紹介します。
Miniボードの電源をUbuntu22.04マシンから供給しても、Ubuntu側にusb0のインタフェースが出現しません。
$ sudo ifconfig usb0
usb0: インタフェース情報を取得中にエラーが発生しました: デバイスが見つかりません

Ubuntu22.04ではインタフェースの名前が「一貫性のあるネットワークデバイス命名方法」に変わり、usb0のインタフェース名は以下の 様な名前に変わりました。
この名前は常に同じではなく、環境により変わります。
Miniボードに電源を供給する前と、供給した後の表示を見比べると、1つインタフェースが増えるのが分かります。
$ sudo ifconfig -a

enx0a1c4376e2be: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::f663:a0a0:a112:c7da  prefixlen 64  scopeid 0x20<link>
        ether 8e:4b:24:87:65:cc  txqueuelen 1000  (イーサネット)
        RX packets 22  bytes 2418 (2.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 82  bytes 17016 (17.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

$ nmcli conn show
NAME        UUID                                  TYPE      DEVICE
有線接続 2  3bfa1614-912b-3797-b7bc-53bea6b8217d  ethernet  enx0a1c4376e2be
有線接続 1  2a8a02a6-1692-3945-ac49-740b257bf467  ethernet  enp25s0

そこで、nmcliコマンドを使って、このインタフェース(enx0a1c4376e2be)に対して固定IPアドレス (172.32.0.100)をアサインします。
$ sudo nmcli connection down "有線接続 2"
$ sudo nmcli connection modify "有線接続 2" ipv4.addresses "172.32.0.100/16"
$ sudo nmcli connection modify "有線接続 2" ipv4.method manual
$ sudo nmcli connection up "有線接続 2"
$ nmcli device show enx0a1c4376e2be
GENERAL.DEVICE:                         enx0a1c4376e2be
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         0A:1C:43:76:E2:BE
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (接続済み)
GENERAL.CONNECTION:                     有線接続 2
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/4
WIRED- PROPERTIES.CARRIER:               オン
IP4.ADDRESS[1]:                         172.32.0.100/16
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 172.32.0.0/16, nh = 0.0.0.0, mt = 101
IP6.ADDRESS[1]:                         fe80::366a:8a1:dc16:eb27/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 1024

ifconfigで結果を確認します。
$ sudo ifconfig enx0a1c4376e2be
enx0a1c4376e2be: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.32.0.100  netmask 255.255.0.0  broadcast 172.32.255.255
        inet6 fe80::366a:8a1:dc16:eb27  prefixlen 64  scopeid 0x20<link>
        ether 0a:1c:43:76:e2:be  txqueuelen 1000  (イーサネット)
        RX packets 22  bytes 2418 (2.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 75  bytes 13863 (13.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

これで、Miniボードに対してpingが通り、sshとscpが使えるようになります。
$ ping 173.32.0.93 -c 5
PING 173.32.0.93 (173.32.0.93) 56(84) bytes of data.
64 bytes from 173.32.0.93: icmp_seq=1 ttl=49 time=267 ms
64 bytes from 173.32.0.93: icmp_seq=2 ttl=49 time=272 ms
64 bytes from 173.32.0.93: icmp_seq=3 ttl=49 time=267 ms
64 bytes from 173.32.0.93: icmp_seq=4 ttl=49 time=275 ms
64 bytes from 173.32.0.93: icmp_seq=5 ttl=49 time=270 ms

--- 173.32.0.93 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 266.740/270.134/275.481/3.283 ms

$ ssh root@172.32.0.93
root@172.32.0.93's password:
[root@luckfox root]$ uname -a
Linux luckfox 5.10.110 #1 Mon Jun 17 20:20:43 JST 2024 armv7l GNU/Linux
[root@luckfox root]$ exit

$ vi ssh-test.txt
中身は何でもよい

$ scp ssh-test.txt root@172.32.0.93:/root
root@172.32.0.93's password:
ssh-test.txt



次にUbuntu24.04の挙動を紹介します。
Miniボードの電源をUbuntu24.04マシンから供給しても、Ubuntu側にUSB0のインタフェースが出現しません。
インタフェースの名前が「一貫性のあるネットワークデバイス命名方法」に変わり、usb0のインタフェース名は以下の 様な名前に変わりました。
Ubuntu22.04と同じですが、一定以上時間が経過しても、nmcliからは消えません。
Miniボードに電源を供給する前と、供給した後の表示を見比べると、1つインタフェースが増えるのが分かります。
接続名が「Wired connection 1」になっています。
これ以降はUbuntu22.04と同じです。
$ sudo ifconfig -a

enxf297ad12263d: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::f86:66ef:8950:9c2f  prefixlen 64  scopeid 0x20<link>
        ether f2:97:ad:12:26:3d  txqueuelen 1000  (イーサネット)
        RX packets 21  bytes 2169 (2.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16  bytes 3196 (3.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

$ nmcli conn show
NAME                UUID                                  TYPE      DEVICE
netplan-enp4s0      6051479d-df65-3705-9f22-99be0f7f2e09  ethernet  enp4s0
Wired connection 1  d59d5ce5-03e1-366d-b9a9-0ccf6c34cc6b  ethernet  enxf297ad12263d
lo                  f8a1cda1-7a62-4405-8736-58d3a50efc88  loopback  lo



こちらがDebian11の挙動です。
Miniボードの電源をDebian11マシンから供給すると、以下の様にDebian側にusb0のインタフェースが出現します。
接続名が「Wired connection 1」になっています。
これ以降はUbuntu20.04と同じです。
$ sudo ifconfig usb0
usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::e0a1:47ff:fe7f:e607  prefixlen 64  scopeid 0x20<link>
        ether e2:a1:47:7f:e6:07  txqueuelen 1000  (イーサネット)
        RX packets 21  bytes 2169 (2.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16  bytes 3166 (3.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

$ nmcli conn show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  901dc7a2-c80a-42c3-ae85-8c9194f501a2  ethernet  usb0
aterm-d5a4ee-g      49b4bfa0-3705-40bd-9e98-97e6ac4dba30  wifi      wlp7s0



こちらがDebian12の挙動です。
Miniボードの電源をDebian12マシンから供給すると、以下の様にDebian側にenx9efc2b4d1091のインタフェースが出 現します。
「一貫性のあるネットワークデバイス命名方法」になっています。
但し、nmcliに接続名が表示されません。
接続名が無いインタフェースに、IPアドレスをアサインする方法を知りません。
$ sudo ifconfig -a

enx9efc2b4d1091: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 9e:fc:2b:4d:10:91  txqueuelen 1000  (イーサネット)
        RX packets 16  bytes 1689 (1.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

$ nmcli conn show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  595b95eb-a0ab-4949-87b9-2a118e21c5f7  ethernet  enp0s25
lo                  16ee843a-0cce-4a66-abec-bd6572b53956  loopback  lo

続く
....