みみず工房掲示板
[リストに戻る] [ホームに戻る] [新規投稿] [thread view] [tree view] [留意事項] [ワード検索] [過去ログ] [管理用]
kernel build - tinker 2014/03/09(Sun) 14:58 No.4202
 ├ Re: kernel build - syu 2014/03/09(Sun) 21:28 No.4203
 └ Re: kernel build - tinker 2014/03/09(Sun) 21:47 No.4205

kernel build 投稿者:tinker 投稿日:2014/03/09(Sun) 14:58 No.4202 home
皆様

暖かくなってきたので、kernelのbuildでもしようかという方も増えてくるかと思います(ヾノ・∀・`)ナイナイ
ので、その方法についてまとめてみました。
もっと分かりやすい説明をしているサイトもありますし、疑問点は検索するか質問してください。
たぶんyoさんが優しく答えてくれます(笑)
私は優しくないので覚悟を決めてから質問して下さい。

1.buildに必要な環境構築
 以前yoさんが書かれてた、MPD on Cubox(4)やMPD on Cubox(11)にそって説明します。
1-1 環境構築
 kernelをbuildしようと思う方は、たぶんmpdも自分でbuildしようと考えられるでしょう。
 そのために必要な環境は、MPD on Cubox(4)の記事を参考にすると簡単に整えることが出来ます。
1-2 MPD on Cubox(4)での注意点
a) gcc-4.4 g++-4.4についての記述
 最近のmpdのbuildには必要ないと思われます。4.6以上がinstallされていれば問題ありません。
b) その他installしておいたほうが良いと思われるもの
 apt-get install device-tree-compiler gawk lzma lzop u-boot-tools

2. kernel build
2-1 Cross-compilingの環境
 CuboxやBBBなどのARM機は非力なため、kernelのbuildなどを行うには長い時間を要します。
 このため、PCにLinuxをInstallし、PC上で必要なbuildを行うことをCross-compilingと言うそうです。
 Cross-compilingを行ってみようと思われる方には、仮想環境(Vmware Playerなど)にubuntu(32bit版)をinstallすることをおすすめします。
 ubuntu推奨の理由は、MPD on Cubox(4)に沿って進めれば悩まなくてすむからです。
 (私はDebianに慣れてるので、Debian(64bit)を使っています。Debianの場合は、ARM用のgccなどを別途用意しなくてはなりませんし、32bit版のライブラリのinstallも必要です)
2-2 Cross-compiling
 それでは、Cross-compilingの例を以下に示します。
 そろそろkernel 3.14もstableになると思いますので、3.14-rc5を用いてBBBを例にして進めます。
 BBBではカスタムされたソースが必要でしたが、3.14.xではバニラソースで構築が可能になっているようです。
 まず3.14-rc5のソースをもらってきます。
 wget https://www.kernel.org/pub/linux/kernel/v3.x/testing/linux-3.14-rc5.tar.xz
 ソースを展開します。
 tar Jxvf linux-3.14-rc5.tar.xz
 cd linux-3.14-rc5
 
a) export ARCH=arm(ターゲットはARM、MPD on Cubox(11)より)
b) export CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf-(使用するコンパイラ、MPD on Cubox(11)より)
c) make omap2plus_defconfig
d) make menuconfig (注1)
e) make -j3 LOADADDR=0x80008000 uImage dtbs (注2)
f) make -j3 LOADADDR=0x80008000 modules (注3)
以下g〜jまで、MPD on Cubox(11)より
g) mkdir ../modules
h) INSTALL_MOD_PATH=../modules/ make modules_install
i) cd ../modules
j) tar czf ../modules.tar.gz *
k) mkdir ../dtbs
l) cp arch/arm/boot/dts/*.dtb ../dtbs
m) cp arch/arm/boot/zImage ../
 作成した j,l,mをBBBに送り、実機(BBBなど)の所定の場所にコピーまたは展開します。
 ファイルの送り方は、USBで持ってくる,scpやNAS経由など各自工夫してください。

注1)
 はじめて設定を変更するときは、不要なものを削るのではなく、まずは足す事を考えたほうが上手くいきます。
 動かないものは心が折れます。
 例えば、
 ・必要なファイルシステム(VFAT,EXT4,CIFS,NFSなど)が組み込まれているか
 ・USB Audio/MIDI driverがビルトイン(*マーク)になっているか
 ・Native language supportでNLS UTF-8ビルトイン(*マーク)になっているか
 などです。
 不要なものを削るのは2度め以降のbuild時です。
 とりあえず作成したkernelを動かしてみて lsmodと打ち込み、読み込まれたモジュールが表示させます。
 結果を見て、必要なものはビルトインに変更しましょう(eth、USB、ファイルシステムなど)
注2) 注3)
 uImageを使わない場合(zImageの場合)はLOADADDR=の指定は不要です。
 その場合、e),f)を単純にmake -j3の1行とします。make -j3だけでzImage,*.dtb,modulesを作成してくれます。
注4)
 Cuboxの場合は、dtb付きのuImageを作成する必要があります。
注5)
 途中でエラーが出るときには、どこでエラーが出るのか分かるようにログを取りましょう。
 make -j3 LOADADDR=0x80008000 uImage dtbs 2>&1 | tee make_Image.log

2-2 Native Compiling
 実機(BBBなどで)で必要なbuildを行うことをNative Compilingと言うそうです。
 必要なgccなどは、すでにinstallされている事を前提に進めます。
 ・ソースのget、展開は前述のとおり
 ・必要な作業は、前述c〜f及びk〜m 及び以下
 ・make modules_install
 BBBでは2時間以上かかると思います。最近使い始めたODROID-U3で試したら20分位で完了しました(*_*)

BBBのconfigをomap2plus_defconfigから作成しました。
3.12.xで使っていたconfigを参考に変更しています(未検証です)
usb関係は、追加で設定する必要がありました。
https://drive.google.com/file/d/0BxnbJHx0_xurTWtNVzNLTElTbG8/edit?usp=sharing

Re: kernel build 投稿者:syu 投稿日:2014/03/09(Sun) 21:28 No.4203 home
tinkerさん、ありがとうございます。

こちらでは梅は盛りを過ぎ、杏と桜桃の花が満開。李の蕾も美しく色付いて来ましたので、そろそろkernelのbuildでもしようかと思っています。

fedexの予測では明夕にはU3が到着します。U3では何か特別な注意が必要でしょうか。

Re: kernel build 投稿者:tinker 投稿日:2014/03/09(Sun) 21:47 No.4205 home
syuさん

>U3では何か特別な注意が必要でしょうか
U3が好みでなかった場合、笑って許して下さいm(__)m

真面目な話、色々ありますのでODROIDの方に書いておきます。


- 返信フォーム

Name
E-Mail
Title
Message
WebSite
password (英数字で8文字以内, under 8 alphanumeric characters to delete or correct message)
submit key (投稿時には 投稿キー(文字) を入力してください, please enter characters left)

- 記事修正&削除フォーム
処理 No. 暗証キー