Orange pi 5 で、 Ubuntu 22.04 Gnome Desktopを試してみた。
結論を先に言と、ROS2 向けなら、NG です。ROS2 向けなら、Orange pi 5 で Armbian がおすすめぞね!!
1. Orange Pi 5 を手に入れた。by nishi 2023.3.22
今日、Orange Pi 5 (8G) が、届いたので、早速、 Ubuntu 22.04 Gnome Desktop を、Micro SD カードに書き込んで、起動してみた。
なんとも、速い。Jetson Nano 2G とは、比較も出来ない。
2. ユーザを追加して、GUI ログインしようとしたら、失敗しました。
色々調べて、みて、どうやら、 /etc/group に、登録したユーザID が、必要なグループに入っていないのが、原因のようです。
$ cd /etc
$ grep orangepi group
ここで、orangepi が登録されているグループに、同じ様に登録されていないのが問題でした。
取り敢えず、 video、 input には、自分で追加しました。
$ sudo usermod -aG video nishi
$ sudo usermod -aG input nishi
さらに、tty、dialout も追加します。Micro-ROS Agent とのSerial 通信に必要みたい。
$ sudo usermod -aG tty nishi
$ sudo usermod -aG dialout nishi
3. sudo apt update を行うと、docker key のワーニングがでる。
W: https://download.docker.com/linux/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
ついに apt-key コマンドに「非推奨」のワーニングが で、対応できました。
4. Firefox が、SNAP版が、デフォルトのようです。
Ubuntu 22.04 LTS が、そうなっているようです。
Firefoxを含むsnapパッケージとの付き合い方
"snapパッケージのアップデート管理" これは、非常にまずい。
SBC 上では、これは、止めないとまずいのでは?
5. Micro-ROS Agent 使用時の注意。
2. でも記述したように、tty, dialout グループへ、追加が必要です。
orangepi ユーザをそのまま使う場合は、問題ないが、独自ユーザを追加した場合は、注意が必要。
$ sudo usermod -aG tty nishi
$ sudo usermod -aG dialout nishi
注1) ESP32 - Orange pi 5 との、Micro-ROS Agent Serial 通信は、上手くできました。
これで、 ROS2 humble foxbot_core3_r2 用の SBC として、Orange pi 5 を使う目途が立ちました。
6. swapfile の使用。
rtabmap_ros をビルドしたら、終わらなかった。
なので、swapの設定 を変更しました。
1) 現状の確認。
$ sudo swapon -s
/dev/zram0
ram を割り当ててるみたいなので、これでは、自分で首をしめているようなもの。
$ sudo swapoff /dev/zram0
$ sudo systemctl stop orangepi-zram-config
$ sudo systemctl disable orangepi-zram-config
2) swapfile を割り当てる。
$ sudo fallocate -l 16G /swapfile
$ sudo mkswap /swapfile
$ sudo chmod 0600 /swapfile
$ sudo swapon -p 1 /swapfile
$sudo swapon --show
で、チェック
/etc/fstab に記述
/swapfile none swap sw 0 0
7. Elecom の USB SSD 128GB のセクターが、一部壊れたみたい。
Orange Pi 5 が、起動途中で、SSD のデータ不良のメッセージを吐き出し続けて、
起動できなくなった。
PC に、 USB SSD をつなげて、 fsck をしたけど同じ症状のままだった。
しかたなしに、SD カードに戻して使っていたが、試しに、PC で
$ sudo fsck -t ext4 -f -c /dev/sdb2
で、badblocks と同時に、不良ブロックを使用不可にして、その後、
動いている、SD カードから、
/deb/sdb2 ( orpi_root ) をすべてコピーしたら、やっと回復できました。
危うく、新しい USB SSD を買うところだった。
でも、ROS2 で、使っているうちに、なんだか、動作が安定しない気がしたので、使うのをやめました。
結局、SD カードに戻しました。
8. Wi-Fi ドングルでの問題ありか?
Wi-Fi ドングル: TP-Link TL-WN725n ( RTL8188EUS )
を使って、ROS2 の自作 Turtlebot3( foxbot_core3_r2 ) を試していましたが、
どうも、 Remote PC から、トピックを、ほとんど受け取れない。
なにか、不具合があるのか、Wi-Fi ドングル のグリーンの LED の点灯も確認できません。
かなり、通信速度が遅いのではないだろうか?
カーネル組み込みのモジュールでは問題があるのだろうか?
ソース版が公開されているので、そちらを、組み込む必要があるのだろうか?
だが、致命的なことに、linux-headers-legacy-rockchip-rk3588 がない。
Joshua-Riek /
ubuntu-orange-pi5 で、ビルドすれば、
linux-headers-5.10.110-rockchip-rk3588_5.10.110-1_arm64.deb が作れるから、それを試すか?
試したが、同じ。
linux-headers-generic が、使えるらしい。
どうも、Wi-Fi 部分に、問題がありそう。
8.1 WiFi dongle を、I-O DATA の WN-S150UM(同じ RTL8188EUS) で、試してみた。
$ sudo lshw -C network
商品の説明欄には、下記になっている。
IEEE 802.11b : 11Mbps
IEEE 802.11g : 54Mbps
IEEE 802.11n : 150Mbps
$ sudo iwconfig
Bit Rate:72.2 Mb/s
は、遅いのだろうか?。やはり、 150Mbps と表示が出てほしいが?
Power Management:off
は、なにか影響があるのだろうか?
/etc/NetworkManager/conf.d/ の下のファイルに、
wifi.powersave = x
の記述があるが、なにか関係があるのだろうか?
▼RHEL7 / CentOS 7 で、NetworkManager 管理下で WiFi の自動接続をコマンドラインで設定する▼ を参考に、
$ sudo nmcli connection show
$ sudo nmcli connection edit "SPWH_L12_2f995d 1"
===| nmcli インテラクティブ接続エディター |===
既存の '802-11-wireless' 接続を編集中: 'SPWH_L12_2f995d 1'
使用できるコマンドを表示するには 'help' または '?' を入力します。
すべての接続プロパティーを表示するには 'print' とタイプします。
プロパティー詳細を表示するには、'describe [<setting>.<prop>]' を入力します。
次の設定を変更することができます: connection, 802-11-wireless (wifi), 802-11-wireless-security (wifi-sec), 802-1x, ethtool, match, ipv4, ipv6, hostname, tc, proxy
nmcli> print
802-11-wireless (wifi) の部分だけチェック
802-11-wireless.rate: 0
を
802-11-wireless.rate: 150
に替えたりできるのだろうか?
nmcli> describe 802-11-wireless.rate
=== [rate] ===
[NM プロパティーの詳細]
ゼロ以外は、デバイスが、アクセスポイントと接続するのに、指定したビットレートだけを使用するように命令します。単位は Kb/s、つまり 5500 = 5.5 Mbit/s です。このプロパティーは、ドライバーに高く依存し、静的なビットレートの設定をすべてのデバイスがサポートするわけではありません。
nmcli> describe 802-11-wireless.powersave
=== [powersave] ===
[NM プロパティーの詳細]
NM_SETTING_WIRELESS_POWERSAVE_DISABLE (2) (Wi-Fi 省電力を無効化)、
NM_SETTING_WIRELESS_POWERSAVE_ENABLE (3) (Wi-Fi 省電力を有効化)、
NM_SETTING_WIRELESS_POWERSAVE_IGNORE (1) (現在設定されている内容は変更しない)、または NM_SETTING_WIRELESS_POWERSAVE_DEFAULT (0) (グローバルで設定した値を使用) のいずれかになります。その他のすべての値は予約されます。
nmcli>
nmcli> set 802-11-wireless.rate 144400
エラー: 'rate' プロパティーの設定に失敗しました: このプロパティーは変更できません
nmcli>
nmcli> goto 802-11-wireless
nmcli 802-11-wireless> print
nmcli 802-11-wireless> set rate 144400
エラー: 'rate' プロパティーの設定に失敗しました: このプロパティーは変更できません
nmcli 802-11-wireless>
悪あがきで、
nmcli 802-11-wireless> set powersave 2
nmcli>
うまく行けば、
nmcli> save
接続 'SPWH_L12_2f995d 1' (df0fd503-7875-4125-8c42-8f7cc26724b4) が正常に更新されました。
nmcli> quit
$ sudo nmcli connection up "SPWH_L12_2f995d 1"
書き換えるファイルは、
/etc/NetworkManager/system-connections/'SPWH_L12_2f995d 1.nmconnection'
みたい。
あとは、下記ページを試すか?
Speed Up Slow WiFi Connection in Ubuntu Linux
8.2 念のため、有線Lan でも試してみました。
ケーブルが、 100Base-T なので、 100[mbps] です。
Ros2 humble で、問題なく、Remote PC から、トピックをすべて受信できました。
9. TP-Link Archer T3U AC 1300 を試す。
参考になる記事がありました。
USB WifiアダプターTP-Link T3UをUbuntu 22.04 LTSで使う
ソースビルドしなくても、 orangepi 5 には、入っているみたいなので、そのまま使えるのか?
/lib/modules/5.10.110-rockchip-rk3588/kernel/drivers/net/wireless/rtl88x2bu/
$ sudo modprobe 88x2bu
$ sudo lsmod
OK です。
近くのヤマダ電機で、tp-link Archer T3U Nano を買ってきて試したところ、NG でした。
どうやら、商品が、 Nano ではだめなようです。
Archer T3U AC1300 MU-MINO 対応 ミニ USB との事みたい。
9. Orange pi 5 の Ubuntu 22.04 の kernel ファイル( linux-image-legacy-rockchip-rk3588)は、apt で、
最新版に更新できないみたい。
どうも、SDカードでインストールしたものをずっと使い続けるみたい。
ただし、Joshua-Riek /
ubuntu-orange-pi5 で公開されているのが、最新版になるのだろうか?
上記をビルドして、
$ sudo ./build.sh --board-orangepi5 -k
build ディレクトリーに、 xxx.deb ファイルが出来るので、
linux-dtb-5.10.110-rockchip-rk3588_5.10.110-1_arm64.deb
linux-headers-5.10.110-rockchip-rk3588_5.10.110-1_arm64.deb
linux-image-5.10.110-rockchip-rk3588_5.10.110-1_arm64.deb
$ sudo cp linux-image-5.10.110-rockchip-rk3588_5.10.110-1_arm64.deb /var/cache/apt/archives/
$ sudo cp linux-dtb-5.10.110-rockchip-rk3588_5.10.110-1_arm64.deb /var/cache/apt/archives/
$ sudo apt-get upgrade
で、更新出来るのだろうか?
だめでした!!
How to update an OS #83
headers ファイルは、そのまま、
$ sudo dpkg -i linux-headers-5.10.110-rockchip-rk3588_5.10.110-1_arm64.deb
で、OK みたい。
10. 総論として、Orange Pi 5 Ubuntu 22.04 Desktop は、ROS2 では、まだまだ安心して使えるところまで完成していないと、感じる。