bc10-router kernel 更新 †bc10-router の起動イメージとして PREFERRED_PROVIDER_virtual/kernel = "linux-stable" から {HOME}/oe/arago/recipes/linux/linux-stable_3.3.bb が kernel ビルド時の設定として使用されるためです。
の二つの patch を当てたものが bitbake でビルドされます。
Android を使用したスマートフォンなどの普及により、 Linux kernel の ARM SoC 向けソースコードは kernel 更新手順 †bc10 向けの kernel の更新は beagleboard 向けの kernel 更新と同じソースコードを利用して行います。 RobertCNelson リポジトリ †Beagleboard、Pandaboard など TI の OMAP/Sitara シリーズ SoC 向けのパッチを含むカーネルビルド環境を提供している $ mkdir {work_dir} $ cd ~/{work_dir} $ git clone https://github.com/RobertCNelson/linux-dev.git $ cd linux-dev 作業時点での master branch がどの version の kernel をビルドする設定になっているか、version.sh を確認します。 #Kernel/Build KERNEL_REL=3.8 KERNEL_TAG=${KERNEL_REL}-rc3 BUILD=d0 2013年1月末時点で default は 3.8 の開発ブランチになっているので、すでに安定版がリリースされている 3.7 にブランチを切り替えます。 $ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/am33x-v3.1 remotes/origin/am33x-v3.2 remotes/origin/am33x-v3.6 remotes/origin/am33x-v3.7 remotes/origin/master $ git checkout -b am33x-v3.7 remotes/origin/am33x-v3.7 ビルド対象を切り替えたら設定ファイルの整備を行います。 $ cp system.sh.sample system.sh ARM GCC CROSS Compiler と、uImage のビルドに関する設定がコメントアウトされているのを #ARM GCC CROSS Compiler: (See hints in Readme, for different gcc cross compiler versions) #CC=arm-linux-gnueabi- CC=arm-arago-linux-gnueabi- ###OPTIONAL: BUILD_UIMAGE: also build uImage vs just zImage # BUILD_UIMAGE=1 ###OPTIONAL: ZRELADDR: needed when building uImage's. # ##For TI: OMAP3/4/AM35xx ZRELADDR=0x80008000 ti-sdk-beagleboard-05.05.01.00 の Cross Toolchain へ PATH を通してから $ export PATH={HOME}/ti-sdk-beagleboard-05.05.01.00/linux-devkit/bin:$PATH $ ./build_kernel.sh 実行すると {HOME}/linux-src/ に kernel ソースを git clone し、 $ ls -1 3.7.2-bone4.1-dtbs.tar.gz 3.7.2-bone4.1-firmware.tar.gz 3.7.2-bone4.1-headers.tar.gz 3.7.2-bone4.1-modules.tar.gz 3.7.2-bone4.1.config 3.7.2-bone4.1.uImage 3.7.2-bone4.1.zImage dtbs/ fir/ headers/ mod/ dtbs は 3.7 から ARM アーキテクチャーでも対応された DeviceTree 起動に必要なファイルですが、 $ ./tools/rebuild.sh ビルド出来たこれらのファイルを bc10-router/arago-project で作成した bc10-router 起動イメージにコピーして使用します。 $ sudo -s # cp 3.7.2-bone4.1.uImage /media/FAT/uImage # tar xvfz 3.7.2-bone4.1-modules.tar.gz -C /media/EXT3 RobertCNelson リポジトリの 3.7.2 kernel への更新はこれで完了です。 kernel.org †arago project の default kernel は、3.3.7 stable kernel に $ cd ~/ $ wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.7.2.tar.bz2 $ tar xvfj linux-3.7.2.tar.bz2 ti-sdk-beagleboard-05.05.01.00 の Cross Toolchain へ PATH を通します。 $ export PATH={HOME}/ti-sdk-beagleboard-05.05.01.00/linux-devkit/bin:$PATH kernel config はできるだけ arago project の default kernel と揃えるため、 $ cp {HOME}/oe/arago-tmp/work/beagleboard-arago-linux-gnueabi/linux-stable-3.3.7-r115/git/.config . $ make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- oldconfig 3.3.7 にはなかった 3.7.2 の新しい設定項目をどう設定するかをコンソール上で聞かれるので設定していきます。 $ make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- menuconfig 設定が完了したらビルドします。 $ make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- $ make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- uImage ビルド完了後、kernel module を起動イメージ上へ展開する配置にするため $ mkdir tmp_install $ make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- modules_install INSTALL_MOD_PATH=./tmp_install 完了すると tmp_install を rootfs の / として kernel modules をインストールした状態になっています。 $ sudo -s # cp arch/arm/boot/uImage /media/FAT/uImage # cd tmp_install # cp -a lib/ /media/EXT3/ kernel.org の 3.7.2 kernel への更新はこれで完了です。 Wi-Fiスループット †arago-project の beagleboard 向け default version の 3.3.7 kernel と bc10-router wlan0---PC間 †nuttcpによる測定
残念ながら作業時点 2013/01/16 で最新の stable kernel である 3.7.2 への更新で |