本稿は bc10-router/arago-project に記載した内容の更新版です。
主な更新内容は以下のとおりです。
上記の更新内容でビルド環境構築手順と bc10 への導入について記載します。
注1: bc10-router/arago-project ではホストOSは Ubuntu10.04LTS(Desktop、64bit版) を
使用していましたが2013年4月で OS のサポートが終了しました(EOL)。
そのため本稿ではホストOSを Ubuntu 12.04LTS に変更しています。
また Ubuntu 10.04LTS(Server版) の EOL は2015年4月、
Ubuntu 12.04LTS の EOL は2017年4月です。
注2: arago-project のアップデートにより、予告無く本稿に記載している内容が
適用できないことがありますのでご注意ください。
以降ホストOSに Ubuntu 12.04LTS(Desktop、64bit版) がインストールされており、
ディスクの空き容量が約 60GB ある前提で記載します。
ビルド環境の設定とビルドの手順はarago-project に記載されている
Setting Up Build Environment の手順を参考にし、
イメージの作成をしています。
Setting Up Build Environment からの主な変更点は以下のとおりです。
注3: danny ブランチ、dylan ブランチは Yocto Project のブランチバージョンをあらわしています。
本稿で danny ブランチを使用しているのはdylan ブランチより
ソースファイルの更新が少なく安定しているためです。
ビルド環境を構築するために Ubuntu12.04LTS の Update と
追加パッケージのインストールを行います。
$ sudo apt-get dist-upgrade $ sudo apt-get install linux-image-generic-lts-saucy linux-headers-generic-lts-saucy
arago-project のビルドに必要なパッケージをインストールします。
またデフォルト shell を dash から bash に変更します。
$ sudo apt-get install git build-essential diffstat texinfo gawk chrpath $ sudo apt-get install ia32-libs $ sudo dpkg-reconfigure dash
また Setting Up Build Environment に記載はありませんが、libc6-dev-i386 が無いと
ビルド時にエラーが起こるため lib6-dev をインストールします。
$ sudo apt-get install libc6-dev libc6-dev-i386
以下のパッケージは使用環境に合わせて任意でインストールしてください。
$ sudo apt-get install vim lv nautilus-open-terminal $ sudo apt-get install ssh
arago-project をビルドするため Linaro 2013.03版 Toolchain の取得と展開をします。
$ mkdir ~/src $ cd ~/src $ wget --no-check-certificate https://launchpad.net/linaro-toolchain-binaries/trunk/2013.03/+download/gcc-linarolinux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2 $ tar -jxvf gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2 -C $HOME
arago-project のファイルを取得し、danny ブランチの config 設定を行います。
環境変数を設定後、arago-project の最小構成イメージの core-image-minimal をビルドします。
$ cd ~/ $ git clone git://arago-project.org/git/projects/oe-layersetup.git tisdk $ cd tisdk $ ./oe-layertool-setup.sh -f configs/arago-danny-config.txt
上記コマンドを実行すると以下のようなログと共にビルドに必要なファイル、
ディレクトリを取得します。
...<snip>... Resolving deltas: 100% (19437/19437), done. Already on 'master' Already up-to-date. Note: checking out '1.17.0'. ...<snip>... For example: MACHINE=xxxxx bitbake <target> Common targets are: core-image-minimal core-image-sato meta-toolchain meta-toolchain-sdk adt-installer meta-ide-support
$ cd build/ $ . conf/setenv $ export PATH=$HOME/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin:$PATH
bitbake コマンドを実行すると、以下のようなログが出力されビルドが開始されます。
ビルド完了時にWARNINGが表示されますが、特に問題はありません。
注4: 使用環境にもよりますがビルド完了までかなりの時間がかかります。
$ MACHINE=beagleboard bitbake core-image-minimal ...<snip>... Build Configuration: BB_VERSION = "1.17.0" TARGET_ARCH = "arm" TARGET_OS = "linux-gnueabi" MACHINE = "beagleboard" DISTRO = "arago" DISTRO_VERSION = "2013.06" TUNE_FEATURES = "armv7a vfp neon thumb callconvention-hard cortexa8" TARGET_FPU = "vfp-neon" meta-arago-distro meta-arago-extras = "danny:3a583c7ccb3392b6e14d67a4822a706071485bb2" toolchain-layer meta-oe = "danny:f00028caf257e386c0f3ae46bd4b3ba53dd0729d" meta-ti = "danny:72d4c5d37decfc8591981d3c8a859af6e6e68059" meta-linaro = "danny:d0558fa4304592622423582f8b464e1c22cfe6f1" meta = "danny:d6c69df33e5b447eb01ee7fca921b94c3a853203" ...<snip>... NOTE: Tasks Summary: Attempted 1412 tasks of which 216 didn't need to be rerun and all succeeded. Summary: There were 46 WARNING messages shown.
ビルド完了後 ${HOME}/tisdk/build/arago-tmp-external-linaro-toolchain/deploy/images 以下に
MLO、rootfs、u-boot.img、uImage が作成されていることを確認します。
$ cd arago-tmp-external-linaro-toolchain/deploy/images/ $ ls -lh 合計 25M lrwxrwxrwx 1 beat beat 83 1月 28 19:54 MLO -> MLO-beagleboard-2012.04.01-r1+gitr1+415d386877df49eb051b85ef74fa59a16dc17c7d-arago0 lrwxrwxrwx 1 beat beat 83 1月 28 19:54 MLO-beagleboard -> MLO-beagleboard-2012.04.01-r1+gitr1+415d386877df49eb051b85ef74fa59a16dc17c7d-arago0 -rwxr-xr-x 1 beat beat 44K 1月 28 19:54 MLO-beagleboard-2012.04.01-r1+gitr1+415d386877df49eb051b85ef74fa59a16dc17c7d-arago0 -rw-rw-r-- 1 beat beat 294 1月 28 20:22 README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt -rw-r--r-- 1 beat beat 2.3M 1月 28 20:23 core-image-minimal-beagleboard-20140128065636.rootfs.tar.gz -rw-r--r-- 1 beat beat 4.9M 1月 28 20:23 core-image-minimal-beagleboard-20140128065636.rootfs.ubi -rw-r--r-- 1 beat beat 4.6M 1月 28 20:23 core-image-minimal-beagleboard-20140128065636.rootfs.ubifs lrwxrwxrwx 1 beat beat 59 1月 28 20:23 core-image-minimal-beagleboard.tar.gz -> core-image-minimal-beagleboard-20140128065636.rootfs.tar.gz lrwxrwxrwx 1 beat beat 56 1月 28 20:23 core-image-minimal-beagleboard.ubi -> core-image-minimal-beagleboard-20140128065636.rootfs.ubi -rw-rw-r-- 1 beat beat 9.2M 1月 28 19:53 modules-3.3.7-r125b+gitrv3.3.7-beagleboard.tgz -rwxr-xr-x 1 beat beat 329K 1月 28 19:54 u-boot-beagleboard-2012.04.01-r1+gitr1+415d386877df49eb051b85ef74fa59a16dc17c7d-arago0.img lrwxrwxrwx 1 beat beat 90 1月 28 19:54 u-boot-beagleboard.img -> u-boot-beagleboard-2012.04.01-r1+gitr1+415d386877df49eb051b85ef74fa59a16dc17c7d-arago0.img lrwxrwxrwx 1 beat beat 90 1月 28 19:54 u-boot.img -> u-boot-beagleboard-2012.04.01-r1+gitr1+415d386877df49eb051b85ef74fa59a16dc17c7d-arago0.img lrwxrwxrwx 1 beat beat 60 1月 28 19:53 uImage -> uImage-3.3.7-r125b+gitrv3.3.7-beagleboard-20140128065636.bin -rw-r--r-- 1 beat beat 3.3M 1月 28 19:53 uImage-3.3.7-r125b+gitrv3.3.7-beagleboard-20140128065636.bin lrwxrwxrwx 1 beat beat 60 1月 28 19:53 uImage-beagleboard.bin -> uImage-3.3.7-r125b+gitrv3.3.7-beagleboard-20140128065636.bin -rw-r--r-- 1 beat beat 230 1月 28 20:23 ubinize.cfg
以上で core-image-minimal のビルドは完了です。
core-image-minimal は arago-project をビルドする際の最小 package 構成のイメージです。
core-image-minimal の recipe ファイル PATH は以下のとおりです。
${HOME}/tisdk/sources/oe-core/meta/recipes-core/images/core-image-minimal.bb
また packagegroup-core-boot.bb というファイルを見ればどのような package から
構成されているかビルド前に調べることができます。
package-groupe のファイル PATH は以下のとおりです。
${HOME}/tisdk/sources/oe-core/meta/recipes-core/packagegroups/
arago-project には core-image-minimal イメージ以外に下記の PATH に
イメージ関連の recipe ファイル群があります。
${HOME}/tisdk/sources/meta-arago/meta-arago-distro/recipes-core/images/
core-image-minimal イメージ以外の recipe には以下ものがあります。
arago-amsdk-image.bb arago-base-image.bb arago-base-tisdk-image.bb arago-console-image.bb arago-core-tisdk-image.bb arago-core-tisdk-image.inc arago-image.inc tisdk-rootfs-image.bb tisdk-server-rootfs-image.bb
また arago-image.inc は他のイメージから include される共通設定です。
これらの image recipe の中で指定している packagegroupe は以下の PATH にあります。
${HOME}/tisdk/sources/meta-arago/meta-arago-distro/recipes-core/packagegroup/
core-image-minimal のイメージは busybox 由来のコマンドが大半を占め、
使用しづらい事があるため、追加で arago-console-image イメージのビルドを
行います。
またその際に、 bc10-router/arago-project と同様のパッケージを導入できるよう
${HOME}/tisdk/sources/meta-arago/meta-arago-distro/recipes-core/packagegroups
にある packagegroup-arago-console.bb を以下のように編集します。
$ diff -upN __packagegroup-arago-console.bb_orig packagegroup-arago-console.bb --- __packagegroup-arago-console.bb_orig 2014-01-29 14:59:28.755799860 +0900--- __packagegroup-arago-console.bb_orig 2014-01-29 14:59:28.755799860 +0900 +++ packagegroup-arago-console.bb 2014-01-30 12:38:03.058736885 +0900
@@ -51,6 +51,18 @@ ARAGO_UTILS = "\
iproute2 \ strace \ ltrace \ + bridge-utils \ + dnsmasq \ + grep \ + hostap-daemon \ + hostap-utils \ + iperf \ + iptables \ + iw \ + procps \ + openssh \ + openssl \ + rp-pppoe \ + wireless-tools \ ${@base_contains('MACHINE_FEATURES', 'pci', 'pciutils', '',d)} \ "
編集完了後、以下のコマンドを実行します。
core-image-minimal のビルド後のため、ビルドにかかる時間は
それほどはかかりません。
$ cd ~/tisdk/build $ MACHINE=beagleboard bitbake arago-console-image
ビルド完了後 ${HOME}/tisdk/build/arago-tmp-external-linaro-toolchain/deploy/images 以下に
arago-console-image-beagleboard-20140130033805.rootfs.tar.gzが
作成されていることを確認します。
$ cd ~/tisdk/build/arago-tmp-external-linaro-toolchain/deploy/images $ ls -lh 合計 232M lrwxrwxrwx 1 beat beat 83 1月 28 19:54 MLO -> MLO-beagleboard-2012.04.01-r1+gitr1+415d386877df49eb051b85ef74fa59a16dc17c7d-arago0 lrwxrwxrwx 1 beat beat 83 1月 28 19:54 MLO-beagleboard -> MLO-beagleboard-2012.04.01-r1+gitr1+415d386877df49eb051b85ef74fa59a16dc17c7d-arago0 -rwxr-xr-x 1 beat beat 44K 1月 28 19:54 MLO-beagleboard-2012.04.01-r1+gitr1+415d386877df49eb051b85ef74fa59a16dc17c7d-arago0 -rw-rw-r-- 1 beat beat 294 1月 31 12:48 README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt -rw-r--r-- 1 beat beat 26M 1月 30 14:17 arago-console-image-beagleboard-20140130033805.rootfs.tar.gz -rw-r--r-- 1 beat beat 39M 1月 30 14:18 arago-console-image-beagleboard-20140130033805.rootfs.ubi -rw-r--r-- 1 beat beat 39M 1月 30 14:18 arago-console-image-beagleboard-20140130033805.rootfs.ubifs -rw-r--r-- 1 beat beat 26M 1月 31 12:54 arago-console-image-beagleboard-20140131034334.rootfs.tar.gz -rw-r--r-- 1 beat beat 40M 1月 31 12:55 arago-console-image-beagleboard-20140131034334.rootfs.ubi -rw-r--r-- 1 beat beat 40M 1月 31 12:55 arago-console-image-beagleboard-20140131034334.rootfs.ubifs lrwxrwxrwx 1 beat beat 60 1月 31 12:54 arago-console-image-beagleboard.tar.gz -> arago-console-image-beagleboard-20140131034334.rootfs.tar.gz lrwxrwxrwx 1 beat beat 57 1月 31 12:55 arago-console-image-beagleboard.ubi -> arago-console-image-beagleboard-20140131034334.rootfs.ubi -rw-r--r-- 1 beat beat 2.3M 1月 28 20:23 core-image-minimal-beagleboard-20140128065636.rootfs.tar.gz -rw-r--r-- 1 beat beat 4.9M 1月 28 20:23 core-image-minimal-beagleboard-20140128065636.rootfs.ubi -rw-r--r-- 1 beat beat 4.6M 1月 28 20:23 core-image-minimal-beagleboard-20140128065636.rootfs.ubifs lrwxrwxrwx 1 beat beat 59 1月 28 20:23 core-image-minimal-beagleboard.tar.gz -> core-image-minimal-beagleboard-20140128065636.rootfs.tar.gz lrwxrwxrwx 1 beat beat 56 1月 28 20:23 core-image-minimal-beagleboard.ubi -> core-image-minimal-beagleboard-20140128065636.rootfs.ubi -rw-rw-r-- 1 beat beat 9.2M 1月 28 19:53 modules-3.3.7-r125b+gitrv3.3.7-beagleboard.tgz -rwxr-xr-x 1 beat beat 329K 1月 28 19:54 u-boot-beagleboard-2012.04.01-r1+gitr1+415d386877df49eb051b85ef74fa59a16dc17c7d-arago0.img lrwxrwxrwx 1 beat beat 90 1月 28 19:54 u-boot-beagleboard.img -> u-boot-beagleboard-2012.04.01-r1+gitr1+415d386877df49eb051b85ef74fa59a16dc17c7d-arago0.img lrwxrwxrwx 1 beat beat 90 1月 28 19:54 u-boot.img -> u-boot-beagleboard-2012.04.01-r1+gitr1+415d386877df49eb051b85ef74fa59a16dc17c7d-arago0.img lrwxrwxrwx 1 beat beat 60 1月 28 19:53 uImage -> uImage-3.3.7-r125b+gitrv3.3.7-beagleboard-20140128065636.bin -rw-r--r-- 1 beat beat 3.3M 1月 28 19:53 uImage-3.3.7-r125b+gitrv3.3.7-beagleboard-20140128065636.bin lrwxrwxrwx 1 beat beat 60 1月 28 19:53 uImage-beagleboard.bin -> uImage-3.3.7-r125b+gitrv3.3.7-beagleboard-20140128065636.bin -rw-r--r-- 1 beat beat 231 1月 31 12:54 ubinize.cfg
bc10/booting 起動用SDカードの作成の手順で作成されたSDカードを
使用する前提で記載しています。FAT32、Ext3それぞれのディレクトリ名は
/media/FAT,/media/EXT3とします。
上記で作成されたMLO、uboot、uImage、rootfsの各ファイルを
それぞれのディレクトリにコピー、展開をします。
$ cp MLO-beagleboard-2012.04.01-r1+gitr1+415d386877df49eb051b85ef74fa59a16dc17c7d-arago0 /media/FAT/MLO $ cp u-boot-beagleboard-2012.04.01-r1+gitr1+415d386877df49eb051b85ef74fa59a16dc17c7d-arago0.img /media/FAT/u-boot.img $ cp uImage-3.3.7-r125b+gitrv3.3.7-beagleboard-20140128065636.bin /media/FAT/uImage $ sudo tar xvfz arago-console-image-beagleboard-20140130033805.rootfs.tar.gz -C /media/EXT3
以上で、SDへの書き込みは完了です。
上記のイメージを導入した SD を挿した bc10 を起動した際の
簡易起動確認のログを以下に記載します。
bc10 の構成は次のとおりです。
bc10 - USB AC パワードハブ ---- LUA3-U2-ATX (USB Ether) | -- WLI-UC-AG300N (USB Wifi)
... <snip> ... Stopping Bootlog daemon: bootlogd. _____ _____ _ _ | _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_ | | _| .'| . | . | | __| _| . | | | -_| _| _| |__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_| |___| |___| Arago Project http://arago-project.org beagleboard ttyO2 Arago 2013.06 beagleboard ttyO2 beagleboard login: root root@beagleboard:~# uname -a Linux beagleboard 3.3.7 #1 Tue Jan 28 18:39:28 JST 2014 armv7l GNU/Linux root@beagleboard:~# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB Bus 001 Device 003: ID 0b95:7720 ASIX Electronics Corp. AX88772 Bus 001 Device 004: ID 0411:012e BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-AG300N Wireless LAN Adapter root@beagleboard:~# ifconfig -a eth0 Link encap:Ethernet HWaddr 4C:E6:76:55:49:C6 inet addr:192.168.0.152 Bcast:0.0.0.0 Mask:255.255.255.0 inet6 addr: 2001:268:321:8000:4ee6:76ff:fe55:49c6/64 Scope:Global inet6 addr: fe80::4ee6:76ff:fe55:49c6/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:39 errors:0 dropped:9 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4162 (4.0 KiB) TX bytes:1416 (1.3 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) wlan0 Link encap:Ethernet HWaddr 00:1D:73:A2:97:97 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
2014/01/31 初稿公開