ジャンル不定の日記です。

linux 5.4.12でBuildrootし直した

Orange pi R1ルーター化計画でSPIフラッシュにのるサイズまでOSサイズを削減しようとしてSquashfsを使おうとしたがつまずいたので、まだできてない。
とりあえず5.4.12でBuildrootできた。

最初 Buildroot のmenuconfigで
Kernel Version ---> Latest version (5.4)
にしてやってみたが、これだと5.4.10になった。先日gitからkernelビルドやったときは5.4.11だったので下がってる。
だが、kernelバージョンが変わったときは、
Toolchain ---> Custom kernel headers series (5.3.x)
となってるところを5.4に変えないとmakeがかなり進んでからエラーになった。

で、やり直しの際に、Kernel Versionをgit URLにすることができることに気づいたので5.4.11にしようと思った。
その場合は Custom repository version がブランチ名になるみたい。わかりにくい・・・
でやってみたが、depth指定の方法がわからなく、大量に持ってこようとしてたので強制終了した。

次にtarballのURL指定ができることがわかったのでtarballで指定したが、最新stableが5.4.12に増えてたので5.4.12にした。
ビルドする際、squashfsとinitramfsを作成しようと思って、ext2/3/4のチェックは要らないと思ったので外した。
そしたらimageを作る最終段階でエラー。
squashfsのイメージはできあがったので、それをextで作ったパーティションイメージにコピーして起動しようとしたが起動できなかった。
それでinitramfs経由で起動を試みたりして時間食ったが、断念した。

再度のBuildrootし直しで、
Kernel version (Custom version)
(5.4.12) Kernel version
とすれば5.4.12でBuildrootできることがわかった。
のでmakeしたのだが、最初と同じくToolchain ---> Custom kernel headers series (5.3.x)のままやっちゃって止まった。
のでまたやり直しとなった。

時間かかったが、とりあえず5.4.12で起動するイメージは作成できた。
前回見つからなかったので入れなかったが sudo があったので入れた。
iptablesの後継のnftablesなるものがあったのでiptablesを置き換えてみた。
容量行けそうなんでlighttpd入れた。
のだが前回13MBだったが17MBに増えた。
lighttpdよりuhttpdのが小さそうな気がするが、Archにパッケージがないレベルでマイナーみたいなのでlighttpdにした。
あまり容量に余裕はないか?

そんなわけで時間費やしたんでSquashfs化はまだできてない。
あとkernelから要らないもん消して0.5MBくらいは削減できそう。
overlayfsとか有効にしてないんでkernelは再度作り直す。