背景
Raspbian以外のOSでRaspberry Piを動かしたことが無かったので、ROSを利用する際に都合が良いUbuntuの64bit版でRaspberry Piを動かしてみました。ところどころ詰まるところがあったので、備忘録を兼ねてやったことを共有します。
使ったもの
- Raspberry Pi 3B+
スイッチサイエンス、秋月電子などで買えます。 - 32GB microSDカード
Ubuntuのimageが3GB弱だったので4GBあれば動かせると思いますが、ソフトウェアをインストールすることを考慮すると8GB以上の容量のものを使うのが良いと思います。 - Ubuntu 64bit Raspberry Pi向けイメージ(Raspberry PiのページからダウンロードできるMateではありません。)
下記のページのARM64部分からダウンロードできるRaspberry Pi向けのimgファイルです。
今回は「ubuntu-18.04.3-preinstalled-server-arm64+raspi3.img.xz」を利用しました。
ARM/RaspberryPi - Ubuntu - イメージを書き込むためのPC
Ubuntu18.04が動いているノートPCを利用しました。 - Raspberry Piの電源
5V3Aの電源を利用しました。 - Raspberry Piを操作するための、モニタ、キーボード
SDカードにUbuntu 64bit版を書き込み
LinuxだとRaspbianを書き込む時と同様にddコマンドで書き込めます。ARM/RaspberryPi - Ubuntuからダウンロードしたファイルをファイルを展開して書き込むコマンドはこちらです。
unxz ubuntu-18.04.3-preinstalled-server-arm64+raspi3.img.xz sudo dd bs=M4 of=/dev/mmbclk0 if=ubuntu-18.04.3-preinstalled-server-arm64+raspi3.img conv=fsync
WindowsやMACの場合は、imgファイルの書き込み方法を調べ書き込んでください。
起動
SDカードができたらRaspberry Piに差し込んで起動します。初回起動すると/etc/netplan/50-cloud-init.yamlが作られるので、それにWiFi情報を設定します。
初期アカウントのuserはubuntu、パスワードもubuntuです。
初回ログイン時にパスワードの変更を求められるので、パスワードを変えてください。
WiFi情報を設定
初回起動ができたら、Raspberry Piを起動してUbuntuにログインするかSDカードをPCで編集するかして、netplanディレクトリにある50-cloud-init.yamlにwifis以下の行を追加します。「wifi id」と「wifi password」は接続したいWiFiのidとパスワードに置き換えてください。
/etc/netplan/50-cloud-init.yaml
network: version: 2 ethernets: eth0: dhcp4: true match: macaddress: <MAC ADDRESS> set-name: eth0 # ここから下の行を追加 wifis: wlan0: optional: true dhcp4: true access-points: "wifi id": password: "wifi password"
Raspberry Piにログインして編集する場合、下記のコマンドで書き込んだ情報が正しいか確認できます。
sudo netplan --debug try sudo netplan --debug generate
良さそうなら、下記のコマンドで設定情報を適用できます。
sudo netplan --debug apply
入力した情報が合っていれば、再起動するとWiFiに接続できると思います。
Raspberry Piのipはifconfigコマンドを実行すると、wlan0の部分に表示されます。
ifconfig
ipが分かればubuntuユーザーに対してsshでログインできます。
余談: WiFi設定以外の設定
ここの設定は「Raspberry Pi 3にROS2をインストール」を参考にしました。自動起動を無効化
無効化しておくと「あれ?aptコマンドがなぜかロックされていて欲しいプログラムをインストールできない。」という場面が減ります。sudo sed -i 's/1/0/g' /etc/apt/apt.conf.d/20auto-upgrades
ネットワーク接続待機を停止
起動が遅い原因の1つなのでインターネットに繋がって無くても待たないようにします。これが有効だと3分くらいかかりますが、無効にすると1分くらいで起動してくれます。
systemctl disable systemd-networkd-wait-online.service systemctl mask systemd-networkd-wait-online.service
まとめ
64bit版のUbuntuでRaspberry PiをWiFiに繋げて動かせました。参考
Raspberry Pi 3にROS2をインストールHow to setup the Raspberry Pi 3 onboard WiFi for Ubuntu Server 18.04 with netplan?
Raspberry Pi 2/3B/B+ Wireless Bridge using Ubuntu Server 18.04 ARM Image and Netplan
0 件のコメント :
コメントを投稿