未だにARMv6サポートがあるディストリは限られてきています.今回は,Alpine Linuxを使用してみました.
2024/09/01追記
(だいぶ昔に)まとめ記事を書いています。一から改造する方はまずそちらをどうぞ
DSM232タグにも様々な情報が転がっているので、良かったらどうぞ。
Linux on ARMv6
ラズパイがあるからと胡座をかいていられたのは過去の話,今はArchLinux ARMのサポートすら無くなり,大きいところでRaspbianとAlpine Linuxぐらいになってしまいました.
まあ,v6を諦めればv5対応でdebianとかいくつかありますが,vfpを捨てるのは大変もったいないというところで,実は古いArchを起動する記事を書いた後Raspbianをメインで使っていました.
しかし,byobuでhtopを開いただけでLoad Averageが1を超えてしまったりと,現代的なソフトウェアではもはや厳しさを感じていたため,第二の選択肢である(軽いと評判な)Alpine Linuxを試してみようという次第です.
ちなみにRaspbian on G-Clusterは結構快適で,普通にdebootstrapで入れるとラズパイ関係のソフトウェアも入らない事からほぼピュアなv6対応debianとして使う事が出来ました.軽い作業のみならモダンソフトウェアにあやかれるのでおすすめです.
Alpine Linuxのインストール
で,Archならpacstrap,debianならdebootstrapなど,各種ディストリにはrootfsを構成してくれるツールがあるとばかり思って居ましたが,Alpineはぱっと見でわかりません.
普通にPCにインストールしてみた所,setup-alpineなるコマンドを使ってインストールしましたが,肝心な所は起動ディスクをコピーしてるだけみたいです.
RAMディスクメインで動作するディスクレスモードはnandデバイス的に有り難いですが,どう考えてもramが足りないので普通に入れてみます.
*まだよく知らないので変なこと書いてたらすいません.
ホストマシンはUbuntuでやります.
1. 準備
セットアップ時に必要なパッケージを入れます.
|
|
https://www.alpinelinux.org/downloads/
よりarmhf
用の「MINI ROOT FILESYSTEM」をダウンロードします.
|
|
なんと2.5MB,凄すぎる….
最後に起動用USBメモリなどを適当にパーティショニングし,/mntにマウントします.
これで準備はOK
2. インストール
/mntに展開します.
|
|
一瞬です笑
binfmtサポートがあるので異なるアーキテクチャでもchrootできます.
|
|
DNSを設定
|
|
ベースシステム(OpenRCなど)のインストール
|
|
システムを設定
|
|
ネットワーク設定とマウント系は全部noneで行きます.
|
|
ttyS0のコメントアウトを外す(これをやらないとログインできない)
これでOKです.
必要ならばカーネルモジュール達をコピーした後,setup時に起動したsshdとかを全部killしてumountします.
ついでにblkidも忘れずに.
あとは前回の記事を見ながら起動します.
起動
正直合ってるか分からないんですが,とりあえず動いてくれました.
2.5MBのrootfsがいつの間にか77MBになってますがまあヨシ…
init.dみたいなのは本当に数年ぶりというか,大体7年ぶりなのでなんか泣けてきますね…
終わりに
77MBという小ささに収まったのでNAND起動をやりたいものです.