bc10
bc10-router

bc10-router/arago-project(danny)/Ubuntu12.04LTS

本稿は 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 と追加パッケージのインストール

ビルド環境を構築するために 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

core-image-minimalのビルド

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 とは

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/

その他のイメージ recipe について

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/

arago-console-image のビルド

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への導入

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への書き込みは完了です。

bc10 の簡易起動確認

上記のイメージを導入した 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)

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