13
xenomai-3.0 on ubilinux with Intel Edison @takarakasai 1 / 13

Xenomai-3.0 on Ubilinux with Intel Edison

Embed Size (px)

Citation preview

Page 1: Xenomai-3.0 on Ubilinux with Intel Edison

xenomai-3.0 on ubilinux with Intel Edison@takarakasai

1 / 13

Page 2: Xenomai-3.0 on Ubilinux with Intel Edison

1.今回の目標Intel Edison向けUbilinuxのカーネルをxenomaiカーネルに置き換える.

2 / 13

Page 3: Xenomai-3.0 on Ubilinux with Intel Edison

2.方針Ubilinuxのカーネルソースは公開されていないので,Edison向けYocto linuxのソースを落としてきてXenomaiパッチをあててビルドします. Yoctoのビルドシステムを使用することになるので,手動でパッチあてて即ビルドというわけにはいかないです. なので,Yocto linux向けのXenomaiパッチを作成してYoctoのビルドコンフィグに設定してビルドするです.

3 / 13

Page 4: Xenomai-3.0 on Ubilinux with Intel Edison

3.準備まずEdisonにUbilinuxの環境を作成します.

> wget http://www.emutexlabs.com/files/ubilinux/ubilinux-edison-150309.tar.gz> tar zxvf ubilinux-edison-150309.tar.gz> cd toFlash ここで一旦Edisonに接続されているUSBケーブルを取り外します> ./flashall.sh EdisonにUSBケーブルを接続します.

4 / 13

Page 5: Xenomai-3.0 on Ubilinux with Intel Edison

4.作業手順

5 / 13

Page 6: Xenomai-3.0 on Ubilinux with Intel Edison

4.1 作業ディレクトリ作成適当に作業用ディレクトリを作成します. 以降はこの下で作業を行います.

> mkdir work> cd work

6 / 13

Page 7: Xenomai-3.0 on Ubilinux with Intel Edison

4.2 ソースコードの準備Yocto LinuxとXenomaiのソース一式を取得して展開

> wget http://downloadmirror.intel.com/25028/eng/edison-src-ww25.5-15.tgz> tar zxvf edison-src-ww25.5-15.tgz> wget https://xenomai.org/downloads/xenomai/stable/xenomai-3.0.tar.bz2> bzip2 -dc xenomai-3.0.tar.bz2 | tar xvf -

Git から取得しても良いです.

> git clone git://git.yoctoproject.org/meta-intel-edison> cd meta-intel-edison> git checkout ww05-15> cd ..> mkdir edison-src> mv meta-intel-edison edison-src/

> git clone git://git.xenomai.org/xenomai-3.git> cd xenomai-3> git checkout v3.0> cd ..

7 / 13

Page 8: Xenomai-3.0 on Ubilinux with Intel Edison

4.3 一旦ビルドするYoctoのビルドシステムではビルドコマンドしないとソースコードを落としてくれないのでビルドします. と書いたもののバージョンが一致するカーネルをkernel.orgから持ってきても良さそうです. ビルドすると34GBほど消費されます.

> cd edison-src> ln -s meta-intel-edison/utils/Makefile.mk Makefile> make setup> cd edison-src/out/linux64> source poky/oe-init-build-env> bitbake edison-image

8 / 13

Page 9: Xenomai-3.0 on Ubilinux with Intel Edison

4.4 パッチ作成ビルド終わると以下のディレクトリにカーネルソースが取得されています.out/linux64/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17-r0/linux/ ので、xenomaiパッチをあてます. *edison用のディストリは皆32bitなので注意.

diff -Narup linux linux_xeno

> cp -rf edison-src/out/linux64/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17-r0/linux/ ./linux.org> cp -rf edison-src/out/linux64/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17-r0/linux/ ./linux.xeno> xenomai-3/scripts/prepare-kernel.sh \--linux=linux.xeno \--ipipe=xenomai-3/kernel/cobalt/arch/x86/patches/ipipe-core-3.10.32-x86-6.patch \--arch=x86

これだとエラーが出るのでなくなるまで修正します. 修正が終わったらパッチを作成します.

> diff -Narup linux.org linux_xeno > xenomai-3.0-3.10.17.patch

9 / 13

Page 10: Xenomai-3.0 on Ubilinux with Intel Edison

4.5 パッチの組み込み作成したパッチをYoctoのビルドに組み込みます. これには特定の場所にパッチを配置して、bitbakeの設定ファイルに記述を追加する必要があります.

> mv xenomai-3.0-3.10.17.patch edison-src/meta-intel-edison/meta-intel-edison-bsp/recipes-kernel/linux/files/> vi edison-src/meta-intel-edison/meta-intel-edison-bsp/recipes-kernel/linux/linux-yocto_3.10.bbappend... 略 ...SRC_URI += "file://defconfig"SRC_URI += "file://upstream_to_edison.patch" <<<< edison向けのパッチSRC_URI += "file://xenomai-3.0-3.10.17.patch" <<<< 追加.xenomaiパッチ... 略 ...

10 / 13

Page 11: Xenomai-3.0 on Ubilinux with Intel Edison

4.6 カーネルコンフィグYoctoのビルドシステムを使ってカーネルのコンフィグをいじります. Xenomaiを使い物にするには,CPUをぶん回したりするので以下を参考に設定します。https://xenomai.org//2014/06/configuring-for-x86-based-dual-kernels/

> bitbake virtual/kernel -c menuconfig

設定が終わったらYoctoのビルドシステムが指定する所定の場所に配置します.

cp edison-src/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17-r0/linux-edison-standard-build/.config ../../../meta-intel-edison/meta-intel-edison-bsp/recipes-kernel/linux/files/defconfig

11 / 13

Page 12: Xenomai-3.0 on Ubilinux with Intel Edison

4.7 ビルドXenomaiパッチを当てたカーネルをビルドします.

> bitbake edison-image> ls edison-src/out/linux64/build/tmp/deploy/images/edison...bzImage--3.10.17-r0-edison-YYYYMMDDHHMMSS.binedison-image-edison-YYYYMMDDHHMMSS.hddimg...

12 / 13

Page 13: Xenomai-3.0 on Ubilinux with Intel Edison

4.8 インストールvmlinuz と必要あれば/lib/modulesなどをコピーします.

> mkdir ext4> sudo mount -o loop edison-image-edison-YYYYMMDDHHMMSS.rootfs.ext4 ext4> ls ext4bin boot dev etc home lib lost+found media mnt opt proc run sbin sketch sys tmp usr var> scp -rf ext4/lib/modules/3.10.17-yocto-standard root@${edison_ip}:/lib/modules/

> mkdir hddimg> sudo mount -o loop edison-image-edison-YYYYMMDDHHMMSS.hddimg hddimgldlinux.c32 ldlinux.sys syslinux.cfg vmlinuz> scp -rf hddimg/vmlinuz root@${edison_ip}:/boot/vmlinuz.xeno

13 / 13