差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| kitsuneko-edit-kernel-config [2022/02/15 23:51] – shimada | kitsuneko-edit-kernel-config [2022/02/28 21:56] (現在) – shimada | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ====== ここん・きつねこにおける kernel の config 編集方法 ====== | ||
| ここでは、defconfig からの差分で kernel の config を生成する方法について記述している | ここでは、defconfig からの差分で kernel の config を生成する方法について記述している | ||
| - | * なぜフルの config を入れるではなく、defconfig からの差分を取るのか?というと、差分で取っていたほうが、将来のバージョンアップ時にわかりやすく、変更が把握・追従しやすいためである。 | + | * Q: なぜフルの config をリポジトリに入れるのではなく、defconfig からの差分を取るのか? |
| - | * 一応Yoctoはレイヤごとにkernelのconfigを分けることができるなど、より色んな組み方ができるのだが、以下の手順はあくまでここん流のやり方なので、参考程度に。 | + | * |
| - | * 以下の例のうち、 tmp/ | + | * 一応Yoctoはレイヤごとにkernelのconfigを分けることができるなど、より細かな組み方ができるのだが、以下の手順はあくまでここん流のやり方なので、参考程度に。 |
| + | * 以下の例のうち、 tmp-glibc/work/... と記載しているディレクトリは、ビルド環境やパラメータによって大きく異なるので、適時読み替える必要がある | ||
| - | ==== 編集する部分 ==== | + | ===== 編集する部分 |
| meta-coconport/ | meta-coconport/ | ||
| < | < | ||
| 行 19: | 行 21: | ||
| coconx64-standard.scc | coconx64-standard.scc | ||
| </ | </ | ||
| - | この例では coconx64.cfg が、今回の説明で作る差分 kernel config である。新規にターゲットのkernelを起こすときは、最初はからファイルでよいが、前バージョンや他ディストリからconfigを持ってくる場合は、下記の「kernel のバージョンをげるときの準備」をまず実行しておきたい。 | + | この例では coconx64.cfg が、今回の説明で作る差分 kernel config である。 |
| + | linux-longterm_%.bbappend の以下の行の値に、Linux kernelであらかじめ入っている、各プラットフォームごとに定められた defconfig をあらかじめ入れておくようにする。 | ||
| + | < | ||
| + | KBUILD_DEFCONFIG_coconx64 = " | ||
| + | </ | ||
| + | |||
| + | ===== 1からターゲットを起こす場合の準備 ===== | ||
| + | |||
| + | 新規にターゲットのkernelを起こすときは、最初は coconx64.cfg は空ファイルでよい。 | ||
| + | ここでは上記ツリーの recipe をすでに作ってあると仮定して、最初の時点でのオリジナル .config を以下の通り生成しておく。 | ||
| + | |||
| + | * bitbake の準備をしたあと、以下のように .config を生成する | ||
| + | < | ||
| + | $ source ./ | ||
| + | $ bitbake linux-longterm -c kernel_configme -f | ||
| + | </ | ||
| + | * オリジナルの .config ができるので。これを一旦buildディレクトリの外にコピーしておく。 | ||
| + | < | ||
| + | $ cp tmp/ | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== 他から移植したり、kernel のバージョンを上げるときの準備 ===== | ||
| + | |||
| + | あるいは、前バージョンや他ディストリからconfigを持ってくる場合は、下記をまず実行しておきたい。 | ||
| - | ==== kernel のバージョンをげるときの準備 ==== | ||
| * まずは defconfig 状態にするため、coconx64-standard.scc ファイル内の kconf からはじまる行をすべてコメントアウト(行頭に # でよい)する | * まずは defconfig 状態にするため、coconx64-standard.scc ファイル内の kconf からはじまる行をすべてコメントアウト(行頭に # でよい)する | ||
| * 次に bitbake の準備をしたあと、以下のように .config を生成する | * 次に bitbake の準備をしたあと、以下のように .config を生成する | ||
| 行 32: | 行 58: | ||
| * オリジナルの .config ができるので。これを一旦buildディレクトリの外にコピーしておく。 | * オリジナルの .config ができるので。これを一旦buildディレクトリの外にコピーしておく。 | ||
| < | < | ||
| - | $ cp tmp/ | + | $ cp tmp/work-glibc/ |
| </ | </ | ||
| * 次に、coconx64-standard.scc において、前のバージョンの差分config、または defconfig の記述のある kconf 行を有効化(アンコメント)し、以下のコマンドで再度 .config を生成する | * 次に、coconx64-standard.scc において、前のバージョンの差分config、または defconfig の記述のある kconf 行を有効化(アンコメント)し、以下のコマンドで再度 .config を生成する | ||
| 行 41: | 行 67: | ||
| * ここまでの差分を取る。 ここでできた差分 config ファイルが編集のたたき台となる。なお、コメントを削りたくないときは、最後2つのsedコマンドを適時編集する。 | * ここまでの差分を取る。 ここでできた差分 config ファイルが編集のたたき台となる。なお、コメントを削りたくないときは、最後2つのsedコマンドを適時編集する。 | ||
| < | < | ||
| - | $ diff -Nurp config-5.10.orig tmp/ | + | $ diff -Nurp config-5.10.orig tmp-glibc/ |
| </ | </ | ||
| * あとはリポジトリに反映する | * あとはリポジトリに反映する | ||
| 行 48: | 行 74: | ||
| </ | </ | ||
| - | ==== kernel の config を編集して recipe に反映するとき ==== | + | ===== kernel の config |
| - | | + | 下記の手順の代わりに、coconx64.cfg を直接編集して書き加えてもよいとは思うが、整合性をあわせるため、できるだけ menuconfig か oldconfig を通しておいたほうがよいように思う。 |
| + | |||
| + | | ||
| < | < | ||
| $ bitbake linux-longterm -c clean | $ bitbake linux-longterm -c clean | ||
| + | $ bitbake linux-longterm -c kernel_configme -f | ||
| $ bitbake linux-longterm -c menuconfig | $ bitbake linux-longterm -c menuconfig | ||
| </ | </ | ||
| 行 58: | 行 87: | ||
| なお byobu が半分に割れてしまったときは、 Ctrl-a z で全画面になる。 | なお byobu が半分に割れてしまったときは、 Ctrl-a z で全画面になる。 | ||
| - | * これをいったん kernel | + | |
| - | + | ||
| - | * もう一度configmeをまわし | + | |
| < | < | ||
| - | $ bitbake | + | $ diff -Nurp config-5.10.orig tmp/ |
| </ | </ | ||
| - | * もう一度差分を取って、新しい cfg を生成する。 | + | |
| < | < | ||
| - | $ diff -Nurp config.orig tmp-glibc/work/ | + | $ cp config-5.10-diff2 ../meta-coconport/coconx64/recipes-kernel/linux/files/coconx64/coconx64.cfg |
| </ | </ | ||
| - | * 出力された cocon486-5.10-add1 の最初の1行を消しておく | + | |
| - | + | ||
| - | * あとはリポジトリに反映する | + | |
| < | < | ||
| - | $ cp cocon486-5.10-add1 ../ | + | $ bitbake linux-longterm |
| + | $ bitbake | ||
| </ | </ | ||
| + | |||
