これまでtarで取得した5.15.50のソースをいじっていましたが,ある程度纏まったのでlinux-stableベースで整理しました.
https://git.haru3.me/haru/linux-stable-dsm232
量がすごいので--depth 1
を付けてcloneする事をおすすめします.
サポートしている機能
カーネルバージョンを上げて整理しただけなので,Archの記事で書いたのと変更はありません.
- 起動
- USB(OHCI, EHCI)
- クロックの一部
- NAND
- GPIO(割り込みはNG)
- UART1
- OpenFirmware(dts)
ダウンロード
ソースは上のgitから落としてもらうとして,ビルド済バイナリを用意してみました.
多分systemdで十分使えると思います.
*バイナリの配布がライセンス的にまずいとかあったらメールなんかで教えて下さい🙏
ビルド方法
そういえば起動方法のメモは残したけどビルドの方法は書いてなかったなということで.
一般的なARM Linuxのビルドと何ら変わらないのでわざわざ書くまでも無いですが…
1. 準備
異なるアーキテクチャ向けのビルドを生成するためにはクロスコンパイラが必要です.
ARM用だとLinaroのやつが有名なので,だいたいこれを使ってます.
https://releases.linaro.org/components/toolchain/binaries/
|
|
秘伝のタレ的な環境を使ってるので足りないパッケージあるかも.
2. コンパイル
それではコンパイルしてみましょう.
|
|
3. 完成
/arch/arm/boot/zImageがカーネル,/arch/arm/boot/dts/celestial-cnc1800l.dtbがDTBです.
/kmodsにカーネルモジュールが,/kheadersにヘッダができます.
これで生成されるカーネルは配布しているバイナリ相当の物になるので,USBデバイスのドライバの追加などをしたい場合,
|
|
で設定を変更する事ができます.
変更後はmake -j8
以降を再度やり直して下さい.
あとはArchの記事の最後にある手順でuImageを作って起動させることができます.
追伸
いつまで持つかわからないですが,このカーネルの(時間的な)耐久試験をやってます.
楽天モバイル回線からVPSまでトンネルを張ってなんとか公開してるので,時々bad gatewayになったりします.