[[bc10]] - 目次 #contents * 概要 [#z4413957] 2010/12/22~ bc10向けLinux kernel-2.6.32について、情報をまとめてあります。~ このKernelはrowboatプロジェクトのKernelをベースにして、bc10固有のデバイスドライバなどが追加されたものです。~ bc10のブートプロセスやKernelイメージの配置方法についての情報は[[bc10/booting]]を参照してください。~ * kernel-2.6.32のビルド [#z3fd7efe] 2010/12/22~ ** 開発環境 [#l98ad04e] bc10向けtoolchainを準備します。~ 以下のtoolchainでビルドを確認しています。~ - [[OpenEmbedded Linux toolchain>bc10/OpenEmbedded Linux]](arm-angstrom-linux-gnueabi-) -- BeagleBoard向け開発環境として使われているOpenEmbedded Linuxのtoolchain ** 環境変数の設定 [#j9b1f167] *** OpenEmbedded toolchain [#wa7848ac] 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- ** ソースコードの入手 [#o591f200] gitリポジトリからソースコードを入手します。~ git clone git://gitorious.org/~bc-dev/rowboat/bc10-rowboat-kernel.git bc10-rowboat-kernel ** ブランチの切り替え [#b73eb409] bc10向けのブランチに切り替えます。 cd bc10-rowboat-kernel/ git checkout -t -b bc10-2.6.32 origin/bc10-2.6.32 ** ビルド [#n082577c] OpenEmbedded toolchainを使用してクロスビルドします。~ make omap3_bc10_defconfig make uImage ビルドに成功すると''uImage''(kernelイメージファイル)が、以下の場所に生成されます。~ - kernelイメージ -- arch/arm/boot/uImage uImageの配置方法については[[bc10/booting]]を参照してください。~ *** modulesについて [#d36e3f1f] 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 ./modwork/ -F ./System.map `make kernelrelease` これで./modwork以下にmodulesがインストールされました。~ 以下のように圧縮しておくと、Targetのuserlandで展開するなど、作業時に扱いやすくなります~ tar czvf modules.tgz -C ./modwork/ lib ** ソースコードのアップデート [#w9056444] 機能の追加や修正などでソースコードが更新された場合は、更新分のみを取得するだけでかまいません。~ cd bc10-rowboat-kernel/ git checkout bc10-2.6.32 git pull ソースコードをアップデートした後は、リビルドしてuImageなどを置き換えてください。~ * ソースコードリポジトリについて [#oa8705d8] 2010/12/22~ bc10-rowboat-kernelのソースコードはGitoriousで管理しています。~ - プロジェクトページ -- http://gitorious.org/~bc-dev/rowboat/bc10-rowboat-kernel - リポジトリ -- git://gitorious.org/~bc-dev/rowboat/bc10-rowboat-kernel.git ** ブランチ [#ycbe143d] bc10-rowboat-kernelリポジトリには、多数のブランチがあります。~ その中でもbc10向けのブランチとして、以下の3つがあります。 - bc10-2.6.32 -- bc10向けリリースブランチ - bc10-2.6.32-develop -- bc10向け開発ブランチ - bc10-2.6.32-build -- *削除予定* (bc10向けビルド用ブランチ) 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 を参照してください。~ ** 派生元 [#b69d0851] bc10-rowboat-kernelのソースコードは、rowboat kernelリポジトリをcloneし、bc10向けに改造されたものです。~ - rowboat kernel -- http://gitorious.org/rowboat/kernel - リポジトリ -- git://gitorious.org/rowboat/kernel.git - ブランチ -- rowboat-eclair-2.6.32 * 詳細解説 [#b0b95087] 2010/12/22~ ** Kernelの起動時オプション [#b121fbd9] Kernelの起動時に設定可能なオプションについて説明します。~ Kernelにオプションを渡す方法としては、U-Bootの環境変数bootargsに指定する方法が一般的です。~ 詳細は[[bc10/u-boot]]を参照してください。~ *** omapdss.def_disp [#g255d597] 出力するディスプレイを選択することができます。~ bc10では、以下の2つが選択可能です。~ - lcd -- AMOLED(有機ELディスプレイ)出力 - dvi -- DVI出力 例)AMOLED出力を選択~ omapdss.def_disp=lcd このオプションの詳細についてはKernelソースツリーのDocumentation/arm/OMAP/DSSを参照してください。~ *** omapfb.mode [#qa7f0b5d] ディスプレイの解像度を設定することができます。~ 設定はディスプレイごとに可能ですが、bc10に搭載されているAMOLEDの解像度は480x272で固定になっています。~ したがって、実際にはDVI出力向けのオプションとなっています。~ ~ 例)DVI出力の解像度を1024x768の24bitカラー、リフレッシュレート60Hzに設定~ omapfb.mode=dvi:1024x768MR-24@60 このオプションの詳細についてはKernelソースツリーのDocumentation/arm/OMAP/DSSを参照してください。~