bc10

概要

2010/12/22

bc10向けLinux kernel-2.6.32について、情報をまとめてあります。
このKernelはrowboatプロジェクトのKernelをベースにして、bc10固有のデバイスドライバなどが追加されたものです。
bc10のブートプロセスやKernelイメージの配置方法についての情報はbc10/bootingを参照してください。

kernel-2.6.32のビルド

2010/12/22

開発環境

bc10向けtoolchainを準備します。
以下のtoolchainでビルドを確認しています。

環境変数の設定

OpenEmbedded toolchain

OpenEmbeddedのtoolchainを利用するには、あらかじめOpenEmbedded開発環境をインストールしておく必要があります。
OpenEmbedded開発環境のインストールについては、bc10/OpenEmbedded Linuxを参照してください。
toolchainを使用するために、環境変数を以下のように設定します。

export PATH=${WORK_DIR}/OE/angstrom-dev/cross/armv7a/bin:${PATH}
export ARCH=arm
export CROSS_COMPILE=arm-angstrom-linux-gnueabi-

ソースコードの入手

gitリポジトリからソースコードを入手します。

git clone git://gitorious.org/~bc-dev/rowboat/bc10-rowboat-kernel.git bc10-rowboat-kernel

ブランチの切り替え

bc10向けのブランチに切り替えます。

cd bc10-rowboat-kernel/
git checkout -t -b bc10-2.6.32 origin/bc10-2.6.32

ビルド

OpenEmbedded toolchainを使用してクロスビルドします。

make omap3_bc10_defconfig
make uImage

ビルドに成功するとuImage(kernelイメージファイル)が、以下の場所に生成されます。

uImageの配置方法についてはbc10/bootingを参照してください。

modulesについて

bc10-rowboat-kernelはデバイスドライバなどのほとんどを組み込みに設定しており、modulesの配置をおこなわなくても基本的には問題ありません。
特に、bc10でAndroidを起動する場合はmodulesの使用を前提としていないため、以下の作業は必要ありません。
OpenEmbeddedを起動する場合は、modulesがインストールされていない場合には警告が出るため、念のためインストールしておいてもよいでしょう。

Kernel modulesは以下のようにビルドします。

make modules

続いて、modulesをインストールします。
ここでは後で自由に配置できるように、カレントディレクトリにmodworkというディレクトリを新規作成し、そこにインストールします。
インストール先が決まっている場合は、INSTALL_MOD_PATHの値をインストールパスに置き換えてください。

make DEPMOD=echo INSTALL_MOD_PATH=modwork modules_install
arm-angstrom-linux-gnueabi-depmod-2.6 -A -b ./insmods/ -F ./System.map `make kernelrelease`

これで./modwork以下にmodulesがインストールされました。
以下のように圧縮しておくと、Targetのuserlandで展開するなど、作業時に扱いやすくなります

tar czvf modules.tgz -C ./insmods/ lib

ソースコードのアップデート

機能の追加や修正などでソースコードが更新された場合は、更新分のみを取得するだけでかまいません。

cd bc10-rowboat-kernel/
git checkout bc10-2.6.32
git pull

ソースコードをアップデートした後は、リビルドしてuImageなどを置き換えてください。

ソースコードリポジトリについて

2010/12/22

bc10-rowboat-kernelのソースコードはGitoriousで管理しています。

ブランチ

bc10-rowboat-kernelリポジトリには、多数のブランチがあります。
その中でもbc10向けのブランチとして、以下の3つがあります。

bc10で動作するuImageをビルドするには、bc10-2.6.32ブランチを使用してください。

bc10-2.6.32-developブランチは機能追加時の試験などのために利用されています。
常に最新の実装がなされていますが、うまく動作しない場合もあるので、通常はbc10-2.6.32ブランチを使用してください。

bc10-2.6.32-buildブランチはbc10のMACH_TYPE番号が公式に追加されるまで、一時的なビルド用ブランチとして存在していました。
現在は公式にbc10のMACH_TYPEがサポートされたので、bc10-2.6.32-buildブランチの更新は停止しています。
将来、削除される可能性がありますので、bc10-2.6.32-buildブランチは使用しないでください。
この問題の詳細については、カーネルソースに含まれる Documentation/arm/README を参照してください。

派生元

bc10-rowboat-kernelのソースコードは、rowboat kernelリポジトリをcloneし、bc10向けに改造されたものです。

詳細解説

2010/12/22

Kernelの起動時オプション

Kernelの起動時に設定可能なオプションについて説明します。


BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   新規 一覧 単語検索 最終更新   最終更新のRSS