[新]なんでも日記[新]なんでも日記ジャンル不定の日記です。R1ルーター化計画でSPIフラッシュにのるサイズまでOSサイズを削減しようとしてSquashfsを使おうとしたがつまずいたので、まだできてない。5.4.12でBuildrootできた。(5.4)にしてやってみたが、これだと5.4.10になった。先日gitからkernelビルドやったときは5.4.11だったので下がってる。(5.3.x)となってるところを5.4に変えないとmakeがかなり進んでからエラーになった。URLにすることができることに気づいたので5.4.11にしようと思った。ブランチ名になるみたい。わかりにくい・・・でやってみたが、depth指定の方法がわからなく、大量に持ってこようとしてたので強制終了した。次にtarballのURL指定ができることがわかったのでtarballで指定したが、最新stableが5.4.12に増えてたので5.4.12にした。ビルドする際、squashfsとinitramfsを作成しようと思って、ext2/3/4のチェックは要らないと思ったので外した。したらimageを作る最終段階でエラー。squashfsのイメージはできあがったので、それをextで作ったパーティションイメージにコピーして起動しようとしたが起動できなかった。それでinitramfs経由で起動を試みたりして時間食ったが、断念した。versionとすれば5.4.12でBuildrootできることがわかった。(5.3.x)のままやっちゃって止まった。時間かかったが、とりあえず5.4.12で起動するイメージは作成できた。iptablesの後継のnftablesなるものがあったのでiptablesを置き換えてみた。容量行けそうなんでlighttpd入れた。前回13MBだったが17MBに増えた。lighttpdよりuhttpdのが小さそうな気がするが、Archにパッケージがないレベルでマイナーみたいなのでlighttpdにした。一般的な圧縮ファイルシステムは読み込み専用な模様。読み込み専用のファイルシステムを/に使うなら書き込み可能なファイルシステムを重ねる必要がある。いうわけで、いくつか選択肢はあるようだがカーネルにoverlayfsという重ねるFSはあり、圧縮の方はSquashfsというのがよく使われるぽい。Squashfsで圧縮した場合、目的が達成できそうか確認のために、Buildrootで作ったext4のrootfsをSquashfsにしてみた。/home/user/stock/sbc/opi-r1/mntext4のSDカードをマウントしたが13MB強。kernelとかは別なんでこれでは16MBをオーバーしちゃう。ソースディレクトリと出力イメージファイルを引数にすればgz圧縮してくれるみたい。他の圧縮タイプも選べる感じ。Comment(0)[AD]rentafree.net。