Skip to content

kernel

HDMI/audioを使わないのであれば、公式kernelを使える。

Note

4.19系でもしかしたらHMDI系のサポートが入るかもしれない。

kernel config

ncursesを使った新しい設定画面を使う場合は以下のコマンドで設定を行う。

 $ make nconfig

ncursesの古い設定画面の場合は以下のコマンド。

 $ make menuconfig

arm/arm64系のdeviceに必要なmoduleについて

基本的に、arch/arm*/boot/dts/配下のデバイスツリーファイルに記載されているmodule系を有効にすればよい。 例として、dove-cubox.dtsの中には"silabs,si5351a-msop"の記載があり、livegrepで検索すると Silicon Labs Si5351A/B/C clock generator driverを有効にすればよいことがわかる。

有効にすべきポイントは以下の通り。

TODO: 有効にすべきポイントを書く
TODO: sampleのkernel configファイルを晒す

kernel compile

CPU数に応じて-j2オプションを増減させる。

 $ make -j2

kernel install

modulesのinstallは通常と変わらず。

 $ make modules_install

armのkernelはdevice-treeをロードすることで特定の機器のmodule類を初期化することができる。 cuboxの場合はkernelの末尾にdevice-treeを引っ付けてロードする形式がとられていたので踏襲する。

 $ cd arch/arm/boot/
 $ cat zImage dts/dove-cubox.dtb > zImage.cubox
 $ mkimage -A arm -O linux -C none -T kernel -a 0x00008000 -e 0x00008000 -n 'linux-cubox' -d zImage.cubox uImage

出来上がったuImageをu-bootで読み出すようコピー、設定する

 # cp uImage /boot/

/boot/boot.txt

setenv bootargs 'console=ttyS0,115200n8 root=/dev/sda3 rootwait rootfstype=ext4'
ext2load ide 0:1 0x00200000 /uImage
bootm
setenv bootargs 'console=ttyS0,115200n8 root=/dev/mmcblk0p3 rootwait rootfstype=ext4'
ext2load mmc 0:1 0x00200000 /uImage
bootm

boot.txtboot.scrに変換する。

 # mkimage -A arm -O linux -T script -C none -n "uBoot commands" -d boot.txt boot.scr

情報源