文書の過去の版を表示しています。
ここでは、defconfig からの差分で kernel の config を生成する方法について記述している
- なぜフルの config を入れるではなく、defconfig からの差分を取るのか?というと、差分で取っていたほうが、将来のバージョンアップ時にわかりやすく、変更が把握・追従しやすいためである。
- 一応Yoctoはレイヤごとにkernelのconfigを分けることができるなど、より色んな組み方ができるのだが、以下の手順はあくまでここん流のやり方なので、参考程度に。
編集する部分
meta-coconport/coconx64/recipes-kernel/linux/ 内、例えばファイル構造はこんな感じ
$ ls -R .: files linux-longterm_%.bbappend ./files: coconx64 ./files/coconx64: coconx64-standard.scc coconx64.cfg
kernel のバージョンを上げたり、新たに起こすとき
- (kernelのバージョンを上げるときのみ) まずは defconfig 状態にするため、coconx64-standard.scc ファイル内の kconf からはじまる行をすべてコメントアウト(行頭に # でよい)する
- 次に bitbake の準備をしたあと、以下のように .config を生成する
$ bitbake linux-longterm -c kernel_configme -f
- オリジナルの .config ができるので。これを一旦buildディレクトリの外に出す。
$ cp tmp-glibc/work/cocon486-pc-linux/linux-longterm/5.10.22-r0/linux-cocon486-standard-build/.config config.orig
- 次に、前のバージョンのsccファイルを当てたうえで、再度 .config を生成する
$ bitbake linux-longterm -c kernel_configme -f
- ここまでの差分を取る。 ここでできた config 差分ファイルがたたき台となる。
diff -Nurp config.orig tmp-glibc/work/cocon486-pc-linux/linux-longterm/5.10.22-r0/linux-cocon486-standard-build/.config | sed -n "s/^\+//p" > cocon486-5.10
- あとはリポジトリに反映する
$ cp cocon486-5.10 ../meta-coconport/cocon486/recipes-kernel/linux/files/cocon486/cocon486.cfg
kernel の config を編集して recipe に反映するとき
- menuconfigを動かして、追加のチューニングを行う。
$ bitbake linux-longterm -c menuconfig
編集がおわったら、普通に保存・終了してよい。 なお byobu が半分に割れてしまったときは、 Ctrl-a z で全画面になる。
* これをいったん kernel 内 revcipe の cocon486.cfg に上書きし
* もう一度configmeをまわし
$ bitbake linux-longterm -c kernel_configme -f
* もう一度差分を取って、新しい cfg を生成する。
$ diff -Nurp config.orig tmp-glibc/work/cocon486-pc-linux/linux-longterm/5.10.22-r0/linux-cocon486-standard-build/.config | sed -n "s/^\+//p" > cocon486-5.10-add1
* 出力された cocon486-5.10-add1 の最初の1行を消しておく
* あとはリポジトリに反映する
$ cp cocon486-5.10-add1 ../meta-coconport/cocon486/recipes-kernel/linux/files/cocon486/cocon486.cfg