検索
最近の変更
メディアマネージャー
サイトマップ
文書の表示
以前のリビジョン
バックリンク
ログイン
トレース:
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
ここでは、defconfig からの差分で kernel の config を生成する方法について記述している * なぜフルの config を入れるではなく、defconfig からの差分を取るのか?というと、差分で取っていたほうが、将来のバージョンアップ時にわかりやすく、変更が把握・追従しやすいためである。 * 一応Yoctoはレイヤごとにkernelのconfigを分けることができるなど、より色んな組み方ができるのだが、以下の手順はあくまでここん流のやり方なので、参考程度に。 * 以下の例のうち、 tmp/work/... と記載しているディレクトリは、ビルド環境やパラメータによって大きく異なるので、適時読み替える必要がある ==== 編集する部分 ==== meta-coconport/coconx64/recipes-kernel/linux/ 内、例えばファイル構造はこんな感じ <code> $ ls -R .: files linux-longterm_%.bbappend ./files: coconx64 ./files/coconx64: coconx64-standard.scc coconx64.cfg </code> この例では coconx64.cfg が、今回の説明で作る差分 kernel config である。 ==== 1からターゲットを起こす場合の準備 ==== 新規にターゲットのkernelを起こすときは、最初は coconx64.cfg は空ファイルでよい。 ここでは上記ツリーの recipe をすでに作ってあると仮定して、最初の時点でのオリジナル .config を以下の通り生成しておく。 * bitbake の準備をしたあと、以下のように .config を生成する <code> $ source ./opencocon-init-build-env $ bitbake linux-longterm -c clean $ bitbake linux-longterm -c kernel_configme -f </code> * オリジナルの .config ができるので。これを一旦buildディレクトリの外にコピーしておく。 <code> $ cp tmp/work/coconx64-poky-linux/linux-longterm/5.10.36-r0/linux-coconx64-standard-build/.config config-5.10.orig </code> ==== 他から移植したり、kernel のバージョンを上げるときの準備 ==== あるいは、前バージョンや他ディストリからconfigを持ってくる場合は、下記をまず実行しておきたい。 * まずは defconfig 状態にするため、coconx64-standard.scc ファイル内の kconf からはじまる行をすべてコメントアウト(行頭に # でよい)する * 次に bitbake の準備をしたあと、以下のように .config を生成する <code> $ source ./opencocon-init-build-env $ bitbake linux-longterm -c clean $ bitbake linux-longterm -c kernel_configme -f </code> * オリジナルの .config ができるので。これを一旦buildディレクトリの外にコピーしておく。 <code> $ cp tmp/work/coconx64-poky-linux/linux-longterm/5.10.36-r0/linux-coconx64-standard-build/.config config-5.10.orig </code> * 次に、coconx64-standard.scc において、前のバージョンの差分config、または defconfig の記述のある kconf 行を有効化(アンコメント)し、以下のコマンドで再度 .config を生成する <code> $ bitbake linux-longterm -c clean $ bitbake linux-longterm -c kernel_configme -f </code> * ここまでの差分を取る。 ここでできた差分 config ファイルが編集のたたき台となる。なお、コメントを削りたくないときは、最後2つのsedコマンドを適時編集する。 <code> $ diff -Nurp config-5.10.orig tmp/work/coconx64-poky-linux/linux-longterm/5.10.36-r0/linux-coconx64-standard-build/.config | sed -n "s/^\+//p" | sed "1d" | grep "CONFIG" > config-5.10-diff </code> * あとはリポジトリに反映する <code> $ cp config-5.10-diff ../meta-coconport/coconx64/recipes-kernel/linux/files/coconx64/coconx64.cfg </code> ==== kernel の config を編集して recipe に反映するとき ==== * menuconfigを動かして、チューニングを行う。 <code> $ bitbake linux-longterm -c clean $ bitbake linux-longterm -c menuconfig </code> 編集がおわったら、普通に保存・終了してよい。 なお byobu が半分に割れてしまったときは、 Ctrl-a z で全画面になる。 * オリジナルの .config と、今回 menuconfig で編集した内容の差分を取る <code> $ diff -Nurp config-5.10.orig tmp/work/coconx64-poky-linux/linux-longterm/5.10.36-r0/linux-coconx64-standard-build/.config | sed -n "s/^\+//p" | sed "1d" | grep "CONFIG" > config-5.10-diff2 </code> * 変更をリポジトリに反映する <code> $ cp config-5.10-diff2 ../meta-coconport/coconx64/recipes-kernel/linux/files/coconx64/coconx64.cfg </code> * あとはkernelをビルドしてテストする。 <code> $ bitbake linux-longterm -c clean $ bitbake linux-longterm </code>
文書の先頭へ