2013年7月29日月曜日

カーネルのカスタマイズ手順について(非公式版) [AX3][A6]

OpenBlocks Aファミリのカーネルのカスタマイズ手順に関しては、現状では当社サポート窓口よりご案内していますが、当blogの検証ではカーネルの再構築について触れることも少なくないため、非公式ながら、ここにまとめておきます。

OBDN技術ブログによる動作検証は、該当するソフトウェアの動作を保証およびサポートを行うものではありません。
内容に関するご指摘などありましたら、ブログ記事の担当までご連絡下さい。

 なお、本作業に関しては、作業内容をご理解の上、自己責任の元に慎重に行ってください。

1. 事前準備


カーネル再構築のためには、開発環境が必要になります。
ユーザマニュアルに書かれた、タイムゾーン等の最初の設定、標準ツールのインストールに加え、基本的な開発環境をインストールしてください。

# aptitude install build-essential

また、ファームウェア構築のために、ncursesのdev環境および、mkimageが必要となります。

# aptitude install uboot-mkimage libncurses5-dev

2. OpenBlocks AX3シリーズのカーネルカスタマイズ手順


AX3のカーネルカスタマイズを行う場合、wheezy向けの3.2.40系カーネルと、squeeze向けの3.0.6系カーネルにより、ファイルの入手先やファイル名が違います。

ファイルの入手

当社ftpサイトより、カーネルソースファイルと、対応したramdiskイメージを入手し、展開してください。
2014/4/22現在の最新のカーネルパッケージは、3.2.40-4 ( wheezy )および、3.0.6-14です。
これより最新のパッケージがリリースされた場合は、ディレクトリなどを変更してください。

3.2.40の場合 (Debian 7.1 wheezy )
# cd /usr/src
# wget ftp://ftp.plathome.co.jp/pub/OBSAX3/wheezy/3.2.40-4/linux-3.2.40-20140220.tar.gz
# wget ftp://ftp.plathome.co.jp/pub/OBSAX3/wheezy/3.2.40-4/ramdisk-wheezy.obsax3.img.lzma
# tar xvzf  linux-3.2.40-20140220.tar.gz

2.6.31の場合 (Debian 6.0 squeeze )
# cd /usr/src
# wget ftp://ftp.plathome.co.jp//pub/OBSAX3/squeeze/3.0.6-14/source/linux-3.0.6-14.tar.gz
# wget ftp://ftp.plathome.co.jp//pub/OBSAX3/squeeze/3.0.6-14/ramdisk-squeeze.obsax3.img.lzma
# tar xvzf  linux-3.0.6-14.tar.gz

構成情報の編集

3.2.40の場合 (Debian 7.1 wheezy )
# cd /usr/src/linux-3.2.40
# cp arch/arm/configs/obsax3_defconfig .config
# make menuconfig

もしくは直接configファイルを編集する方法もあります。
# cd /usr/src/linux-3.2.40
# cp  arch/arm/obsax3_defconfig arch/arm/obsax3_defconfig.orig
# vi arch/arm/obsax3_defconfig
# make obsax3_defconfig arch=ARM oldconfig

3.0.6の場合 (Debian 6.0 squeeze )
# cd /usr/src/linux-3.0.6
# cp arch/arm/configs/obsax3_defconfig .config
# make menuconfig

zImageおよび、ドライバモジュールの作成とインストール

# make zImage modules
# make modules_install

ファームウェアイメージの作成

3.2.40の場合 (Debian 7.1 wheezy )
# cd /usr/src
# gzip -9 < linux-3.2.40/arch/arm/boot/zImage > zImage.gz
# mkimage -n "OBSAX3_xxx 3.2.40" -A arm -O linux -T multi -C gzip -a 0x8000 -e 0x8000 -d zImage.gz:ramdisk-wheezy.obsax3.img.lzma uImage.initrd.obsax3

3.0.6の場合 (Debian 6.0 squeeze )
# cd /usr/src
# gzip -9 < linux-3.0.6/arch/arm/boot/zImage > zImage.gz
# mkimage -n "OBSAX3_xxx 3.0.6" -A arm -O linux -T multi -C gzip -a 0x8000 -e 0x8000 -d zImage.gz:ramdisk-squeeze.obsax3.img.lzma uImage.initrd.obsax3

ファームウェアのFlashROMへの書き込み

# flashcfg -y -f uImage.initrd.obsax3

3. OpenBlocks A6のカーネルカスタマイズ手順


A6のカーネルカスタマイズを行う場合、wheezy向けの3.2.40系カーネルと、squeeze向けの2.6.31系カーネルでは、パッケージの構成手順が若干異なります。

また、squeeze版をご利用の場合、2.6.31系カーネル向けに用意されたramdiskパッケージをlzmaファイルにする際に、メモリ不足となるため、swapを追加設定してください。
標準状態では、swapは未使用の状態になっています。
設定方法に関しては、

OpenBlocks A6 FAQ: SWAPを設定するには、どのようにすれば良いですか

を参照してください。

ファイルの入手

当社ftpサイトより、カーネルソースファイルと、対応したramdiskイメージを入手し、展開してください。
2014/4/22現在の最新のカーネルパッケージは、3.2.40-3 ( wheezy )および、2.6.31-8です。
これより最新のパッケージがリリースされた場合は、ディレクトリなどを変更してください。

3.2.40の場合 (Debian 7.1 wheezy )
# cd /usr/src
# wget ftp://ftp.plathome.co.jp/pub/OBSA6/wheezy/3.2.40-3/linux-3.2.40-20140220.tar.gz
# wget ftp://ftp.plathome.co.jp/pub/OBSA6/wheezy/3.2.40-3/ramdisk-wheezy.obsa6.img.lzma
# tar xvzf  linux-3.2.40-20130710-2.tar.gz

2.6.31の場合 (Debian 6.0 squeeze )
# cd /usr/src
# wget ftp://ftp.plathome.co.jp//pub/OBSA6/squeeze/2.6.31-8/source/linux-2.6.31-obs-20130131.tar.gz
# wget  ftp://ftp.plathome.co.jp//pub/OBSA6/squeeze/2.6.31-8/ramdisk-squeeze.obsa6.img
# tar xvzf  linux-2.6.31-obs-20130131.tar.gz

構成情報の編集

3.2.40の場合 (Debian 7.1 wheezy )
# cd /usr/src/linux-3.2.40
# cp arch/arm/configs/obsa6_defconfig .config
# make menuconfig

もしくは直接configファイルを編集する方法もあります。
# cd /usr/src/linux-3.2.40
# cp  arch/arm/obsa6_defconfig arch/arm/obsa6_defconfig.orig
# vi arch/arm/obsa6_defconfig
# make obsa6_defconfig arch=ARM oldconfig



2.6.31の場合 (Debian 6.0 squeeze )
# cd /usr/src/linux-2.6.31
# cp arch/arm/configs/obsa6_defconfig .config
# make menuconfig

zImageおよび、ドライバモジュールの作成とインストール

# make zImage modules
# make modules_install

ファームウェアイメージの作成

3.2.40の場合 (Debian 7.1 wheezy )
# cd /usr/src
# gzip -9 < linux-3.2.40/arch/arm/boot/zImage > zImage.gz
# mkimage -n "OBSA6LXC 3.2.40" -A arm -O linux -T multi -C gzip -a 0x8000 -e 0x8000 -d zImage.gz:ramdisk-wheezy.obsa6.img.lzma uImage.initrd.obsa6

2.6.31の場合 (Debian 6.0 squeeze )
# cd /usr/src
# gzip -9 < linux-3.2.40/arch/arm/boot/zImage > zImage.gz
# lzma -3 < ramdisk-squeeze.obsa6.img > ramdisk-squeeze.obsa6.img.lzma
# mkimage -n "OBSA6LXC 3.2.40" -A arm -O linux -T multi -C gzip -a 0x8000 -e 0x8000 -d zImage.ramdisk-squeeze.obsa6.img.lzma uImage.initrd.obsa6

ファームウェアのFlashROMへの書き込み

# flashcfg -y -f uImage.initrd.obsa6

4.さいごに


ファームウェアを書き込む前に、ftpサイトからダウンロード出来る、標準構成のuImage.initrd.xxxファイルと、出来上がったファイルのサイズを比較することをおすすめします。


0 件のコメント:

コメントを投稿