2015年12月8日火曜日

玄箱用カーネルの再構築の手順(sbuild 編)

玄人志向 玄箱(KURO-BOX)のカーネルの再構築(リビルド)を行ったときの手順の備忘録です。

クロスコンパイル用ツールの準備

sbuild の作業環境へクロスコンパイルのツール(Cross-Toolchains)をインストールしました。なおツールは、ターゲット・プロセッサによって変化しますので、恒久的にインストールするのではなく、環境が新しくなるとリセットされる通常のインストールで行いました。
CrossToolchains
https://wiki.debian.org/CrossToolchains

まずは sbuild の作業環境へログインします。以下は、全て sbuild の作業環境の中での作業となります。
$ schroot -c jessie-i386-sbuild
(jessie-i386-sbuild)user@kurobuilder:~$

 クロスコンパイル環境を提供してくれる emdebian.org の鍵を取得します。
$ sudo wget http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | sudo apt-key add -

クロスコンパイルのツールのインストールをします。大量のソフトウェアがインストールされます。途中 /etc 内の設定値を変更するか?と問い合わせがありますが、すべてデフォルトの "N" で処理しました。
$ sudo dpkg --add-architecture powerpc
$ sudo apt-get update
$ sudo apt-get install cross-gcc-dev
$ sudo apt-get install crossbuild-essential-powerpc

さらに追加のインストールを行います。玄箱用カーネルの再構築中に必要とされたソフトウェアです。
$ sudo apt-get install bc
$ sudo apt-get install u-boot-tools
$ sudo apt-get install libncurses5-dev

玄箱用カーネルの構築(ビルド)

sbuild の作業環境から、ユーザ・ディレクトリ内でカーネルの構築を行います。
$ cd ~/
$ mkdir kuro-box
$ cd kuro-box

カーネル・ソース(3.19.6)をダウンロード
$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.19.6.tar.gz

カーネル・ソース(3.19.6)を解凍
$ tar zxvf linux-3.19.6.tar.gz

玄箱用にカーネル・オプションの初期設定
$ cd linux-3.19.6/
$ ARCH=powerpc make linkstation_defconfig

カーネル・オプションの設定
$ ARCH=powerpc make menuconfig
カーネル・オプションを流用して見直しをする場合
$ cp kurobox-config-3.19.6.txt .config
$ ARCH=powerpc make menuconfig

カーネルと各種モジュールのビルド(クロスコンパイル)
$ ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- make uImage modules

カーネルとモジュールの一時保存場所の作成
$ mkdir -p ../ppc/boot

モジュールの一時保存
$ ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- INSTALL_MOD_PATH=../ppc make modules_install

カーネル用 DTC ファイルの一時保存
$ scripts/dtc/dtc -f -I dts -O dtb -o ../ppc/boot/kuroboxHD.dtb -V 16 arch/powerpc/boot/dts/kuroboxHD.dts

カーネルの一時保存
$ cp -p arch/powerpc/boot/uImage ../ppc/boot/vmlinux.UBoot
$ cp -p System.map ../ppc/boot/

一時保存されたカーネルとモジュールを圧縮
$ pushd ../ppc/
ppc/$ tar zcvf kuro-kern.tgz boot
ppc/$ tar zcvf kuro-lib.tgz lib
ppc/$ popd

完成したカーネル(kuro-kern.tgz)とモジュール(kuro-lib.tgz)の圧縮ファイルを玄箱へ転送してインストールを行います。
玄人志向 玄箱(Debian Jessie)のカーネルの再インストール
http://near-unix.blogspot.jp/2015/12/debian-jessie_7.html

カーネルの動作確認までが終わったところで sbuild の作業環境からログアウトして、作業を終了します。
(jessie-i386-sbuild)user@kurobuilder:~$ exit

参考ウェブサイト

Debian Squeeze化した玄箱に最新の2.6系カーネルを入れる
http://blog.usoinfo.info/article/389750420.html

0 件のコメント:

コメントを投稿