- 追加された行はこの色です。
- 削除された行はこの色です。
[[bc10-router]]
#contents
* arago-projectについて [#h6fdb282]
主にTIがメンテナンスを行っているOpenEmbedded Linux Projectです。~
TIの評価ボード用のLinux SDKを作成するのにも使われています。~
bc10で動作させるためのビルド環境の構築とビルド手順を記載します。~
* ビルド環境構築手順について [#d3684403]
ビルド環境構築に使用するホストOSはUbuntu 10.04(64bit)です。~
追加パッケージ、設定変更とビルド環境の構築手順について記載します。~
** 追加導入パッケージ [#oa3a893e]
ビルド環境構築のために以下の各パッケージを導入します。~
ssh vim git-core build-essential curl ia32-libs diffstat cvs subversion chrpath texi2html texinfo
libncurses5-dev bison flex gettext
** dashからbashへの変更 [#r762cc8b]
Ubuntu 10.04のデフォルトshellはdashで、そのままbitbakeを実行するとエラーが起こるため、~
以下のコマンドを実行しデフォルトshellをbashに変更します。~
$ sudo dpkg-reconfigure dash
「dash を /bin/sh インストールしますか?」と聞かれるので「No」or 「いいえ」を選択します。~
これで sh は bash に変更されます。~
** ビルド環境構築 [#x3521c9b]
bc10-router用のarago-projectビルド環境構築について記載します。~
~
Toolchain設定までの手順はarago-projectのWebページに記載されている手順で行います。~
大まかな手順はarago-project環境構築に必要なファイルの取得、設定ファイルの編集と~
環境変数設定です。~
~
http://arago-project.org/wiki/index.php/Setting_Up_Build_Environment ~
$ mkdir $HOME/oe
$ cd $HOME/oe
$ git clone git://arago-project.org/git/arago.git
$ git clone git://arago-project.org/git/arago-oe-dev.git
$ git clone git://arago-project.org/git/arago-bitbake.git
設定ファイルのサンプルをコピーします。~
$ cp arago/setenv.sample arago/setenv
$ cp arago/conf/local.conf.sample arago/conf/local.conf
コピーしたlocal.confを修正します。 ~
MACHINE指定をbeagleboardに変更します。~
$ vi arago/conf/local.conf
@@ -22,9 +22,9 @@ TMPDIR = "${SCRATCH}/arago-tmp"
# Select the machine platform to build for
# The default value is "arago", which is a unified armv5te MACHINE
# to build filesystem images for OMAP3 and DaVinci
-MACHINE ?= "arago"
+# MACHINE ?= "arago"
# MACHINE = "omap3evm"
-# MACHINE = "beagleboard"
+MACHINE = "beagleboard"
# MACHINE = "davinci-dvevm"
TOOLCHAIN_BRANDをaragoに変更します。 ~
@@ -32,7 +32,8 @@ MACHINE ?= "arago"
DISTRO = "arago"
# What toolchain to use (csl, arago, angstrom etc.)
-TOOLCHAIN_BRAND ?= "csl"
+#TOOLCHAIN_BRAND ?= "csl"
+TOOLCHAIN_BRAND ?= "arago"
並列実行の設定を2に設定します。~
(使用環境によって適当な値に設定してください) ~
(使用環境によって適切な値に設定してください) ~
@@ -85,6 +86,8 @@ IMAGE_FSTYPES = "jffs2 tar.gz ext2.gz"
# in the process of marking these so let us know if you find any.
#PARALLEL_MAKE = "-j 4"
#BB_NUMBER_THREADS = "4"
+PARALLEL_MAKE = "-j 2"
+BB_NUMBER_THREADS = "2"
arago-projectの環境設定を行います。~
$ source arago/setenv
** Toolchainのインストール [#o4482f6f]
ToolchainはTIのWebページに掲載されているToolchainを取得し使用します。~
TIのToolchainを使用する理由については[[Toolcahinについて>http://labs.beatcraft.com/ja/index.php?bc10-router%2Farago-project#nbca35c2]]を参照してください。~
~
TIのWebページからToolchainを適当なディレクトリにダウンロードしインストールします。~
インストール先を指定しなければ${HOME}/ti-sdk-beagleboard-05.05.01.00 ~
以下にToolchainが展開されます。~
インストール先を指定しなければ${HOME}/ti-sdk-beagleboard-05.05.01.00にBeagelBoardSDKがインストールされ、 ~
${HOME}/ti-sdk-beagleboard-05.05.01.00/linux-devkit/以下にToolchainが展開されます。~
$ wget http://software-dl.ti.com/dsps/dsps_public_sw/am_bu/sdk/BeagleBoardSDK/latest/exports/ti-sdk-beagleboard-05.05.01.00-Linux-x86-Install
$ chmod +x ti-sdk-beagleboard-05.05.01.00-Linux-x86-Install
consoleでインストールするため --mode consoleオプションを付けて実行します。~
$ ./ti-sdk-beagleboard-05.05.01.00-Linux-x86-Install --mode console
インストールしたToolchainのPATHをbashrcの末尾に設定します。~
$ vi ${HOME}/.bashrc
PATH=${HOME}/ti-sdk-beagleboard-05.05.01.00/linux-devkit/bin:$PATH
$ source ${HOME}/.bashrc
*** Toolcahinについて [#nbca35c2]
arago-projectのWebページに記載されている環境構築手順にそってToolchainにCodeSourceryを~
選択、使用すると少なくともsysvinitのbuildでエラーが起こります。~
http://arago-project.org/wiki/index.php/Setting_Up_Build_Environment ~
~
このエラーを回避するpatchも存在しますが、arago-project内部ではCodeSourceryは~
使ったことがないとMLで紹介されており、他の箇所でもbuildエラーが発生するため、~
本稿ではToolchainはTIのWebからダウンロードしたti-sdk-beagleboard-05.05.01.00を~
使用した手順を記載しています。~
http://software-dl.ti.com/dsps/dsps_public_sw/am_bu/sdk/BeagleBoardSDK/latest/index_FDS.html ~
** bc10-router用の追加パッケージ設定について [#p73c4624]
bc10-routerで使用する機能項目でデフォルトのビルド手順(arago-console-image)では ~
導入されないパッケージは以下の通りです。~
bridge-utils
dnsmasq
dropbear
hostap-daemon
hostap-utils
iperf
iproute2
iptables
iw
ntpclient
nuttcp
procps
openssl
u-boot-spl(MLO)
wireless-tools
またbitbakeコマンドで導入できるパッケージ一覧を以下のように取得することができます。~
導入可能パッケージ量が多いのでlistsというファイルにリダイレクトをしています。~
$ bitbake -s > lists
** bc10-router用bbファイル編集 [#ee60aa75]
bc10-routerでは不必要なパッケージをビルドしないよう、また上記パッケージを予めビルドするよう ~
以下のように~/oe/arago/recipes/tasksにあるtask-arago-base.bb、task-arago-console.bbを ~
編集します。~
$ cd arago/recipes/tasks
$ vi task-arago-base.bb
--- __task-arago-base.bb_orig 2012-12-13 10:58:06.961625083 +0900
+++ task-arago-base.bb 2012-12-13 10:58:46.651002889 +0900
@@ -8,13 +8,13 @@ inherit task
MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
-ARAGO_ALSA_BASE = "\
- alsa-lib \
- alsa-utils-aplay \
- "
+#ARAGO_ALSA_BASE = "\
+# alsa-lib \
+# alsa-utils-aplay \
-# "
ARAGO_BASE = "\
- ${ARAGO_ALSA_BASE} \
+# ${ARAGO_ALSA_BASE} \
mtd-utils \
curl \
arago-feed-configs \
$ vi task-arago-console.bb
--- __task-arago-console.bb_orig 2012-12-13 11:00:59.671001552 +0900
+++ task-arago-console.bb 2012-12-13 11:22:55.280933938 +0900
@@ -5,21 +5,21 @@ PR = "r16"
inherit task
# alsa-utils-alsamixer depends on ncurses
-ARAGO_ALSA_EXTRA = "\
- alsa-conf \
- alsa-conf-base \
- alsa-server \
- alsa-utils \
- alsa-utils-aconnect \
- alsa-utils-alsaconf \
- alsa-utils-alsactl \
- alsa-utils-alsamixer \
- alsa-utils-amixer \
- alsa-utils-iecset \
- alsa-utils-midi \
- alsa-utils-speakertest \
- alsa-state \
- "
+#ARAGO_ALSA_EXTRA = "\
+# alsa-conf \
+# alsa-conf-base \
+# alsa-server \
+# alsa-utils \
+# alsa-utils-aconnect \
+# alsa-utils-alsaconf \
+# alsa-utils-alsactl \
+# alsa-utils-alsamixer \
+# alsa-utils-amixer \
+# alsa-utils-iecset \
+# alsa-utils-midi \
+# alsa-utils-speakertest \
+# alsa-state \
+# "
ARAGO_TSLIB = "\
tslib-conf \
@@ -47,6 +47,22 @@ ARAGO_UTILS = "\
i2c-tools \
iproute2 \
tcpdump \
+ bridge-utils \
+ dnsmasq \
+ dropbear \
+ ebtables \
+ hostap-daemon \
+ hostap-utils \
+ iperf \
+ iproute2 \
+ iptables \
+ iw \
+ ntpclient \
+ nuttcp \
+ procps \
+ openssl \
+ u-boot-spl \
+ wireless-tools \
"
ARAGO_DVSDK_PREREQ = "\
@@ -61,7 +77,7 @@ ARAGO_DVSDK_PREREQ = "\
# cppstub is needed to install libstdc++ in the image
ARAGO_CONSOLE = "\
- ${ARAGO_ALSA_EXTRA} \
+# ${ARAGO_ALSA_EXTRA} \
${ARAGO_TSLIB} \
${ARAGO_NCURSES} \
${ARAGO_FSTOOLS} \
** bc10-routerイメージ作成 [#jf6779c5]
arago-console-imageのビルドを行います。~
このarago-console-imageのビルドに最小イメージの~
arago-base-imageのビルドも含まれます。~
~
CPU:Core i7 2.93GHz,Memory8GBのマシンで ~
各パッケージのダウンロードを含め上記の設定で約3~4時間かかります。~
(ビルドだけなら約2時間程度かかります)~
$ time bitbake arago-console-image
** ビルド済みイメージ配置ディレクトリ [#s65a9f24]
ビルド済みイメージの配置ディレクトリは~/oe/arago-tmp/deploy/glibc/images/beagleboard以下に ~
作成されます。そのディレクトリ内に配置されるファイル群は以下の通りです。~
またイメージ作成に使用するファイルは ~
MLO-beagleboard-2012.04.01-r0
arago-console-image-glibc-ipk-2011.09-beagleboard.rootfs.tar.gz
u-boot-beagleboard-2012.04.01-r3.0.img
uImage-3.3.7-r115-beagleboard.bin
です。~
$ cd ~/oe/arago-tmp/deploy/glibc/images/beagleboard
$ ls -l
lrwxrwxrwx 1 beat beat 29 2012-12-13 13:58 MLO-beagleboard -> MLO-beagleboard-2012.04.01-r0
-rwxr-xr-x 1 beat beat 43468 2012-12-13 13:58 MLO-beagleboard-2012.04.01-r0
lrwxrwxrwx 1 beat beat 64 2012-12-13 14:30 arago-console-image-beagleboard.ext2.gz -> arago-console-image-glibc-ipk-2011.09-beagleboard.rootfs.ext2.gz
lrwxrwxrwx 1 beat beat 62 2012-12-13 14:29 arago-console-image-beagleboard.jffs2 -> arago-console-image-glibc-ipk-2011.09-beagleboard.rootfs.jffs2
lrwxrwxrwx 1 beat beat 64 2012-12-13 14:30 arago-console-image-beagleboard.tar.bz2 -> arago-console-image-glibc-ipk-2011.09-beagleboard.rootfs.tar.bz2
lrwxrwxrwx 1 beat beat 63 2012-12-13 14:29 arago-console-image-beagleboard.tar.gz -> arago-console-image-glibc-ipk-2011.09-beagleboard.rootfs.tar.gz
lrwxrwxrwx 1 beat beat 60 2012-12-13 14:30 arago-console-image-beagleboard.ubi -> arago-console-image-glibc-ipk-2011.09-beagleboard.rootfs.ubi
drwxr-xr-x 2 beat beat 4096 2012-12-13 14:31 arago-console-image-glibc-ipk-2011.09-beagleboard-testlab
-rw-r--r-- 1 beat beat 20488760 2012-12-13 14:29 arago-console-image-glibc-ipk-2011.09-beagleboard.rootfs.ext2.gz
-rw-r--r-- 1 beat beat 26935296 2012-12-13 14:29 arago-console-image-glibc-ipk-2011.09-beagleboard.rootfs.jffs2
-rw-r--r-- 1 beat beat 17672000 2012-12-13 14:30 arago-console-image-glibc-ipk-2011.09-beagleboard.rootfs.tar.bz2
-rw-r--r-- 1 beat beat 19988817 2012-12-13 14:29 arago-console-image-glibc-ipk-2011.09-beagleboard.rootfs.tar.gz
-rw-r--r-- 1 beat beat 34603008 2012-12-13 14:30 arago-console-image-glibc-ipk-2011.09-beagleboard.rootfs.ubi
-rw-r--r-- 1 beat beat 33804288 2012-12-13 14:30 arago-console-image-glibc-ipk-2011.09-beagleboard.ubifs.img
-rw-r--r-- 1 beat beat 9637520 2012-12-13 14:24 modules-3.3.7-r115-beagleboard.tgz
drwxr-xr-x 2 beat beat 4096 2012-12-13 14:30 tmp.gz
-rwxr-xr-x 1 beat beat 336080 2012-12-13 14:00 u-boot-beagleboard-2012.04.01-r3.0.img
lrwxrwxrwx 1 beat beat 38 2012-12-13 14:00 u-boot-beagleboard.img -> u-boot-beagleboard-2012.04.01-r3.0.img
-rw-r--r-- 1 beat beat 3425936 2012-12-13 14:24 uImage-3.3.7-r115-beagleboard.bin
lrwxrwxrwx 1 beat beat 33 2012-12-13 14:24 uImage-beagleboard.bin -> uImage-3.3.7-r115-beagleboard.bin
-rw-r--r-- 1 beat beat 218 2012-12-13 14:30 ubinize.cfg
uImage-beagleboard.bin
ubinize.cfg
このうちで今回のイメージ作成に使用するファイルは ~
MLO-beagleboard-2012.04.01-r0
arago-console-image-glibc-ipk-2011.09-beagleboard.rootfs.tar.gz
u-boot-beagleboard-2012.04.01-r3.0.img
uImage-3.3.7-r115-beagleboard.bin
です。~
*** MLOについて [#rf959e90]
これまでの設定(u-boot-splを追加)でMLOは作成されていますが、~
ti-sdk-beagleboard-05.05.01.00内にあるMLOを使用することも可能です。 ~
* SDへの書き込み [#rb8f0367]
[[bc10/booting 起動用SDカードの作成>http://labs.beatcraft.com/ja/index.php?bc10%2Fbooting#q0449272]]の手順で作成されたSDカードを~
使用する前提で記載しています。FAT32、Ext3それぞれのディレクトリ名は~
/media/FAT,/media/EXT3とします。~
上記までで作成したファイルをそれぞれのディレクトリにコピー、展開をします。~
$ cp MLO-beagleboard-2012.04.01-r0 /media/FAT/MLO
$ cp u-boot-beagleboard-2012.04.01-r3.0.img /media/FAT/u-boot.img
$ cp uImage-3.3.7-r115-beagleboard.bin /media/FAT/uImage
$ sudo tar xvfz arago-console-image-glibc-ipk-2011.09-beagleboard.rootfs.tar.gz -C /media/EXT3
uboot用環境設定ファイルuEnv.txtを作成し/media/FAT以下に配置します。~
uEnv.txtの内容は以下のとおりです。~
mmcroot=/dev/mmcblk0p2 rw
uenvcmd=run loaduimagefat; run mmcboot
今回のハードウェア構成で使用しているWLI-UC-AG300Nを動作させるため~
firmware(ra2800usb)をralinkのサイトからダウンロードする必要があります。 ~
http://www.ralinktech.com/en/04_support/license.php?sn=5030 ~
~
適当なディレクトリにダウンロードしたRT2870_Firmware_V22.zipを展開すると~
LICENSE.ralink-firmware.txt,rt2870.binがあります。~
それらを/media/EXT3/lib/firmware以下に配置します。~
$ unzip RT2870_Firmware_V22.zip
$ cd RT2870_Firmware_V22
$ ls
LICENSE.ralink-firmware.txt rt2870.bin
$ sudo cp * /media/EXT3/lib/firmware/
以上で、SDへの書き込みは完了です。~
特に初回起動時はboot完了まで若干時間がかかり、USB機器の認識に ~
初回起動時はboot完了まで若干時間がかかり、USB機器の認識に ~
失敗することがあります。またboot完了後にデバイスの認識が始まることがあります。~
その場合は再起動を試みてください。~
* ビルド後のパッケージ追加インストールについて [#idb49be8]
bitbake arago-console-image完了後、bitbakeに含まれているパッケージを~
追加でビルド、インストールする手順について記載します。~
ここでは例としてvimを追加でビルド、インストールする手順を記載します。~
bitbake vim実行後arago-tmp/deploy/glibc/ipk/armv7a以下に~
vim_7.2-r8.3.6_armv7a.ipkファイルが作成されます。~
~
$ cd ~/oe
$ bitbake vim
NOTE: Handling BitBake files: / (7722/7722) [100 %]
Parsing of 7722 .bb files complete (7256 cached, 466 parsed). 7962 targets, 408 skipped, 585 masked, 0 errors.
Build Configuration:
BB_VERSION = "1.10.2"
METADATA_BRANCH = "master"
METADATA_REVISION = "9e4a18d"
TARGET_ARCH = "arm"
TARGET_OS = "linux-gnueabi"
MACHINE = "beagleboard"
DISTRO = "angstrom"
DISTRO_VERSION = "2011.09"
TARGET_FPU = "hard"
...<略>
Packaged contents of vim-dev into /home/syariten/oe/arago-tmp/deploy/glibc/ipk/armv7a/vim-dev_7.2-r8.3.6_armv7a.ipk
NOTE: Not creating empty archive for vim-static-7.2-r8.3.6
NOTE: Not creating empty archive for vim-locale-7.2-r8.3.6
NOTE: package vim-7.2-r8.3: task do_package_write_ipk: Succeeded
NOTE: Running task 525 of 528 (ID: 5, /home/syariten/oe/arago-oe-dev/recipes/vim/vim_7.2.bb, do_package_write)
NOTE: package vim-7.2-r8.3: task do_package_write: Started
NOTE: package vim-7.2-r8.3: task do_package_write: Succeeded
NOTE: Running task 526 of 528 (ID: 6, /home/syariten/oe/arago-oe-dev/recipes/vim/vim_7.2.bb, do_package_stage)
NOTE: package vim-7.2-r8.3: task do_package_stage: Started
NOTE: package vim-7.2-r8.3: task do_package_stage: Succeeded
NOTE: Running task 527 of 528 (ID: 7, /home/syariten/oe/arago-oe-dev/recipes/vim/vim_7.2.bb, do_package_stage_all)
NOTE: package vim-7.2-r8.3: task do_package_stage_all: Started
NOTE: package vim-7.2-r8.3: task do_package_stage_all: Succeeded
NOTE: Running task 528 of 528 (ID: 9, /home/syariten/oe/arago-oe-dev/recipes/vim/vim_7.2.bb, do_build)
NOTE: package vim-7.2-r8.3: task do_build: Started
NOTE: package vim-7.2-r8.3: task do_build: Succeeded
NOTE: Tasks Summary: Attempted 528 tasks of which 510 didn't need to be rerun and 0 failed.
$ cd arago-tmp/deploy/glibc/ipk/armv7a
vim_7.2-r8.3.6_armv7a.ipkをbc10へSDカードへコピーもしくは~
ネットワーク経由でコピーを行い、ipkファイルを置いたbc10上のディレクトリで~
実行するとvimがインストールされます。~
# opkg install vim_7.2-r8.3.6_armv7a.ipk
Installing vim (7.2-r8.3.6) to root...
vim: unsatisfied recommendation for diffutils
Configuring vim.
update-alternatives: Linking //bin/vi to /usr/bin/vim
* 更新記録 [#w76fe123]
2012/12/14 初稿公開 ~
2012/12/18 文言修正 ~
2013/01/07 構成変更、文言修正 ~
RIGHT:syariten