Set up Alpine Linux on Raspberry Pi Zero W

Posted on Thu 28 March 2019 in misc

Raspberry Pi Zero WH に Alpine Linux をインストールしました。シリアルコンソールが使えることを確認しました。

Alpine Linux Wiki の通りに SD カードに OS のファイルを書き込みます。

その後、シリアル通信の設定をします。PC に SD カードを挿しておいて中のファイルをいじります。まず、SD カードのルートに usercfg.txt というファイルをつくって、次の一行を書きました。

enable_uart=1

config.txt ではないのか?という疑問がありましたが、 config.txt を開いてみるとすぐわかりました。 usercfg.txt をインクルードしてくれます。

[all]
include usercfg.txt

せっかくなので自分で加える設定は usercfg.txt に書きました。そもそも Wiki にもそう書いてあるわけですが。

そうして一度 SD カードを Raspberry Pi に挿して起動させてみました。USBシリアル変換モジュールもつなげておいて起動させました。しかし、どうも通信していない様子。

調べてみると、 Raspberry Pi のドキュメント に書いてありました。 cmdline.txt を書き換えます。 console=serial0,115200 を書き加えます。もともとの cmdline.txt は次のようになっていました。

modules=loop,squashfs,sd-mod,usb-storage quiet dwc_otg.lpm_enable=0 console=tty1

console=tty1 の前に console=serial0,115200 を挿れてみました。次のようにしました。

modules=loop,squashfs,sd-mod,usb-storage quiet dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1

これで SD カードを Raspberry Pi に挿して起動します。

今度は、シリアル通信ができました。しかし、起動してからシリアル通信ができるようになるまでには数分かかるようです。Enter を叩いても何も表示されないので、だめかと思いましたが、トイレで用をたして戻ったらシリアルコンソールを叩けるようになっていました。正確な時間はわかりませんが、結構待たされます。

その後、Alpine Linux Wiki の手順に戻って setup-alpine を起動しました。途中で無線 LAN の設定をするところがあって、自分の家のアクセスポイントもリストに挙がってきたので、Wifi 使えるのかと思いましたが、使えるようにはなりませんでした。とりあえず今日のところはシリアルコンソールが叩ければ良しです。

GPIO が使えるのかという疑問もあったので、LED を繋いで試してみました。シェルからコマンドを LED を点灯、消灯させることができました。とりあえずこちらも OK です。でも Python ライブラリ GPIO Zero が使えるのかは、まだわかりません。最悪使えなくても、自分でデバイスファイルを叩けば何とかなりそうだということはわかりました。

次はインターネットにつなげられるかを確認します。ケーブルとかアダプタとか買わないと。