ROCK Pi Sを設定してみる (NetworkManagerでWi-Fi設定が主)

ROCK Pi S

ROCK Pi Sを購入したので、「armbianで遊ぶぞー」と思っていたのだが、armbianのサイトからダウンロードできるOSイメージは「minimal legacy kernel 4.4.y」と書かれていて、実際にダウンロードできたファイルも Armbian_21.02.1_Rockpi-s_buster_legacy_4.4.247_minimal.img (Debianの場合)だった。レガシーな4.4系しか提供されていないらしい。
しかし、どうせならメインラインである5.10系を使いたい。
そこで、何も考えずにarmbianのビルドを行ったが、ビルドそのものは成功するものの、完成したイメージをmicroSDカードに焼いたところ起動しなかった。これはフルイメージでもミニマルイメージでも同じ。確認のためにレガシーをビルドしたところ、これはフルイメージでもミニマルイメージでも正常に起動した。
どうもメインラインだと起動しないらしい。うちの環境でビルドした場合だけそうなのかと思って調べてみたら見つけた。
Rockpi S doesn't boot mainline kernel
書いてある内容から21.05で対応したって意味かな?と思ったけど、その21.05でビルドして起動しないので未完了っぽい。残念。

ネットワーク

有線LANは特に何もせずにLANケーブルで繋げばIPv6はSLAACで、IPv4はDHCPで自動的につながる。NetworkManagerがデフォルトなのでそれ用の設定を必要に応じて追加で。(有線LANについてはこれだけ)

以下、無線LANについて。ただし、この記事は「ROCK Pi Sを設定」と題しておきながらROCK Pi Sでは確認していないのでスミマセン

$ dmesg
中略
[   10.645051] [WLAN_RFKILL]: get_wifi_addr_vendor: rk_vendor_read wifi mac address failed (-1)
後略

MACアドレスが読み取れないという警告。元々固定されたユニークなMACアドレスが無いタイプかしら?(次へ)

任意のMACアドレスをarmbianEnv.txtで指定する。

/boot/armbianEnv.txt (1行追加 既存のextraargs行があればその次の行にでも)
extraargs=rtl8723ds.rtw_initmac="00:00:00:00:00:00"

もちろん、MACアドレスは00:00:00:00:00:00ではなく何か適切なのを。
適切がわからなければ、例えばそのときのMACアドレスを ip addr などで調べてwlan0のether値を拝借するとか。

これで、次回以降は起動時にMACアドレスが固定で付くので先のエラーは出なくなる。

/etc/NetworkManager/conf.d/10-disable-wifi-random-mac-address.conf (新規)
[connection]
wifi.mac-address-randomization=0

[device]
wifi.scan-rand-mac-address=no

既に同内容のファイルがあるなら不要

一部のボードではWi-Fiの設定(接続プロファイルの作成)をarmbian-configで行うと、そのときはWi-Fiに接続できるがシステムを再起動すると接続されない状態になってしまう筈。設定が足りないなどのバグだと思うのでそのうちに修正されるかもだけど。(armbian-configで接続プロファイルを作る場合も何か特別なことをするわけではなく以下で行うのと同じ設定ファイルを出力する)
とりあえず、armbian-configは信用しないので使わずにWi-Fiの接続プロファイルを作成する。

$ sudo nmcli device wifi connect AP-SSID password AP-PSK

AP-SSIDの部分を自宅のWi-FiルーターなどのSSIDと置換する。
AP-PSKの部分を自宅のWi-Fiルーターなどの所謂パスワードと置換する。

この nmcli device wifi connect・・ を使った「接続設定」は /etc/NetworkManager/system-connections 下の 接続先APのSSID +.nmconnection という名前のファイルに書き込まれる。

Wi-Fiの設定を/etc/network/interfacesに書くというのはやらない。これで設定を作るとnmcliコマンドで「接続」に対する設定ができないから。

登録した接続プロファイルでAPに手動で接続する場合
$ sudo nmcli connection up 接続先APのSSID
切断する場合は up の代わりに down。
登録したAPの接続プロファイルを削除する場合。
$ sudo nmcli connection delete id 削除するAPのSSID

Wi-Fiは、省電力モードが有効になっていると結構ウザい。Wi-Fiの省電力モードは無効化する。

$ nmcli -p connection show 接続先APのSSID
中略
802-11-wireless.powersave:              0 (default)
後略

上の例のように0であるなどとにかく2以外の値であったら省電力モードが有効である可能性が高い。
0は、デフォルト値ということだが、実際は何かわからない。
1は、無視ということだが意味不明。
2は、省電力モードがオフ。
3は、省電力モードがオン。

次のように変更する。
$ sudo nmcli connection modify 接続先APのSSID 802-11-wireless.powersave 2
$ nmcli -p connection show 接続先APのSSID
中略
802-11-wireless.powersave:              2 (disable)
後略
こうなればOK。
この nmcli connection modify を使った設定変更は /etc/NetworkManager/system-connections 下の 接続先APのSSID +.nmconnection という名前のファイルに書き込まれる。

例えば、armbianの一部のボードでは?先のAPの登録方法だと通信に使用するネットワークインターフェースがwlan0ではなくp2p0にWi-Fi接続ができることがある。どちらが良いのかは知らないがwlan0にしたいなど使用するインターフェースを変更する場合。

$ sudo nmcli connection modify 接続先APのSSID connection.interface-name wlan0
上の例ではwlan0というのが変更後に使用されるインターフェース名。

AP側の2.4GHzと5GHzでSSIDが違うなら利用したい方のSSIDに接続すれば良いが、2.4GHzと5GHzで同じSSIDになっている場合、上記のやり方だけだと使って欲しくない方が使われてたりトラブルの元かも。そこで使って欲しい周波数帯を指定。または利用するチャンネルを指定。両方指定する場合は矛盾がないように。

$ sudo nmcli connection modify 接続先APのSSID 802-11-wireless.band a #5GHz帯を使いたい場合
$ sudo nmcli connection modify 接続先APのSSID 802-11-wireless.band bg #2.4GHz帯を使いたい場合
または
$ sudo nmcli connection modify 接続先APのSSID 802-11-wireless.channel チャンネル番号

ここまではDHCPの場合。
IPアドレスを固定というかマニュアルで設定したいこともある。IPアドレスの指定メソッドをマニュアルにし、IPアドレスとサブネットマスクを指定する。

$ sudo nmcli connection modify 接続先APのSSID ipv4.method manual ipv4.addresses 192.168.0.10/24

ここでは設定するインターフェイス(Wi-FiならSSID)のIPアドレスを192.168.0.10、サブネットマスクを/24 (255.255.255.0)とする。

DHCPならゲートウエイとネームサーバも自動設定だが、マニュアルではこれらも指定しなければならない。

$ sudo nmcli connection modify 接続先APのSSID ipv4.gateway 192.168.0.1  #デフォルトゲートウェイ
$ sudo nmcli connection modify 接続先APのSSID ipv4.dns  192.168.0.1   #ネームサーバ1つめ
$ sudo nmcli connection modify 接続先APのSSID +ipv4.dns 8.8.8.8    #ネームサーバ2つめ (追加)
$ sudo nmcli connection modify 接続先APのSSID +ipv4.dns 8.8.4.4    #ネームサーバ3つめ (追加)

#上の3つのネームサーバをまとめて指定するなら⬇のようにする
$ nmcli connection modify 接続先APのSSID ipv4.dns 192.168.0.1 +ipv4.dns 8.8.8.8 +ipv4.dns 8.8.4.4

この例ではゲートウェイのIPアドレスを192.168.0.1とする。ネームサーバは192.168.0.1と追加でGoogleのDNS 8.8.8.8と8.8.4.4を指定する。

nmcliコマンドで設定すると即時反映で設定もファイルに書き出されるので次回以降も指定した内容が使われる。ラクだけど何か気に入らない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です