• Showing Page History #79095

Gumstix カーネル開発方法

下記URLの解説が分かりやすい。

Gumstix kernel development <http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=46&Itemid=54>

Linux kernel source場所

overo-oe/tmp/work/overo-angstrom-linux-gnueabi/linux-omap3-2.6.36-r100/git

ただし、このdirectoryのファイルを書き換えても、bitbake時にオリジナルファイルで上書きされてしまう。 patchを作って所定の場所に置いておく必要有り。 patchの当て方については、下記の解説が分かりやすい。

Gumstix kernel development <http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=46&Itemid=54#_patching_board_file>

kernel config

下記URLの解説をベースにして説明する。

Gumstix kernel development <http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=46&Itemid=54>

These instructions assume you are using the default gumstix-oe kernel, the 'virtual/kernel', which is declared here

$ cd $OVEROTOP
$ grep linux org.openembedded.dev/conf/machine/overo.conf 
PREFERRED_PROVIDER_virtual/kernel = "linux-omap3"
And the current version and revision as defined here
$ bitbake --show-versions | grep linux-omap3
linux-omap3                                     0:2.6.36-r100                          
linux-omap3-caspapx                             0:2.6.34-r100                          
First build the kernel normally with bitbake. If you have built an image, then it's already done. If not run this command
$ bitbake virtual/kernel

kernel menu config

カーネルをmenu configするには。

$ bitbake -c menuconfig virtual/kernel

kernel config copy

menu configで設定したconfig fileは、ここにある。

${OVEROTOP}/tmp/work/overo-angstrom-linux-gnueabi/linux-omap3-2.6.36-r100/git/.config

Copy that file to where the bitbake recipe for the kernel will use it.

$ cp ${OVEROTOP}/tmp/work/overo-angstrom-linux/gnueabi/linux-omap3-2.6.36-r100/git/.config \
   ${OVEROTOP}/org.openembedded.dev/recipes/linux/linux-omap3-2.6.36/defconfig
linux-omap3-2.6.36-r100の所は、カーネルのバージョによって変わる。

Rebuild the kernel

$ cd $OVEROTOP
$ bitbake -c clean virtual/kernel; bitbake virtual/kernel

2H程度で終了

下記のディレクトリにカーネルイメージできている

$OVEROTOP/tmp/deploy/glibc/images/overo/uImage-2.6.36-r100-overo.bin

rebuild the rootfs

$ bitbake omap3-console-image; date

kernelとconsole-imageをSDに展開する

今まで使っていたsakoman sdに、kernelとconsole-imageを展開する

参考 Create a Bootable MicroSD Card <http://www.gumstix.org/create-a-bootable-microsd-card.html>

kernelとconsole-imageは以下の場所にある。

  • ディレクトリ $OVEROTOP/tmp/deploy/glibc/images/overo
  • カーネル uImage-overo.bin
  • ルートファイルシステムイメージ omap3-console-image-overo.tar.bz2

SDカードを開発PCでマウントして下記の操作を行う。

この例では、SDのマウントポイントは下記のようになっている。

  • /media/boot bootloaderとカーネルイメージのパーティション
  • /media/rootfs ルートファイルシステム

カーネルイメージのコピー

$ cd $OVEROTOP/tmp/deploy/glibc/images/overo
$ cp uImage-overo.bin /media/boot/uImage

ルートファイルシステムの展開

$ cd /media/rootfs
$ sudo rm -rf * 既にルートファイルシステムがある場合は消去する
$ sudo tar xvaf $OVEROTOP/tmp/deploy/glibc/images/overo/omap3-console-image-overo.tar.bz2

$ umount /dev/sdd1
$ umount /dev/sdd2

SDをGumstixに挿入して起動する。

SD起動

カーネルが更新されていることを確認する。

root@overo:~# uname -a
Linux overo 2.6.36 #1 Sun Aug 7 11:59:43 JST 2011 armv7l GNU/Linux

packageを指定してbuild

4.2 Speed up package build (in case of errors)

If you run into problems (errors during build process), you do not want to parse all repository files again and again. In this case you can build a package directly.

A bitbake -b whereYourOEPackageDirIsbitbake/nano/nano_1.3.5.bb / will just build nano. All depends have already to be fullfilled for that (which is normally true, if your build stopped at nano).