文書の過去の版を表示しています。
ここでは、defconfig からの差分で kernel の config を生成する方法について記述している
- なぜフルの config を入れるではなく、defconfig からの差分を取るのか?というと、差分で取っていたほうが、将来のバージョンアップ時にわかりやすく、変更が把握・追従しやすいためである。
- 一応Yoctoはレイヤごとにkernelのconfigを分けることができるなど、より色んな組み方ができるのだが、以下の手順はあくまでここん流のやり方なので、参考程度に。
- 以下の例のうち、 tmp-glibc/work/… と記載しているディレクトリは、ビルド環境やパラメータによって大きく異なるので、適時読み替える必要がある
編集する部分
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 を生成する
$ source ./opencocon-init-build-env $ bitbake linux-longterm -c clean $ bitbake linux-longterm -c kernel_configme -f
- オリジナルの .config ができるので。これを一旦buildディレクトリの外にコピーしておく。
$ cp tmp/work/coconx64-poky-linux/linux-longterm/5.10.36-r0/linux-coconx64-standard-build/.config config-5.10.orig
- 【kernelのバージョンを上げるときのみ】次に、前のバージョンの差分config、またはdefconfigを coconx64-standard.scc 内で有効化(アンコメント)し、以下のコマンドで再度 .config を生成する
$ bitbake linux-longterm -c clean $ bitbake linux-longterm -c kernel_configme -f
- 【kernelのバージョンを上げるときのみ】ここまでの差分を取る。 ここでできた 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