[[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に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
 ebtables 
 grep 
 hostap-daemon
 hostap-utils
 ifplugd
 iperf
 iproute2
 iptables
 iw
 ntpclient 
 nuttcp 
 procps 
 openssl
 rp-pppoe
 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 ~
 
 --- __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 ~
 
 --- __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
 --- __task-arago-console.bb_orig  2013-01-16 12:03:46.169805920 +0900
 +++ task-arago-console.bb       2013-01-15 20:08:00.067476800 +0900
 @@ -5,21 +5,21 @@ PR = "r16"
  inherit task
 
 # alsa-utils-alsamixer depends on ncurses
  # 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 = "\
      tslib-conf \
 @@ -47,6 +47,25 @@ ARAGO_UTILS = "\
      i2c-tools \
      iproute2 \
      tcpdump \
 +    bridge-utils \
 +    dnsmasq \
 +    dropbear \
 +    ebtables \
 +    grep \
 +    hostap-daemon \
 +    hostap-utils \
 +    ifplugd \
 +    iperf \
 +    iproute2 \
 +    iptables \
 +    iw \
 +    ntpclient \
 +    nuttcp \
 +    procps \
 +    openssl \
 +    rp-pppoe \
 +    u-boot-spl \
 +    wireless-tools \
      "
 
   ARAGO_DVSDK_PREREQ = "\
  @@ -61,7 +77,7 @@ ARAGO_DVSDK_PREREQ = "\ 
  ARAGO_DVSDK_PREREQ = "\
 @@ -61,7 +80,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} \
      ${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以下に ~
作成されます。そのディレクトリ内に配置されるファイル群は以下の通りです。~

 $ 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完了後にデバイスの認識が始まることがあります。~
その場合は再起動を試みてください。~


* ビルド後のパッケージ追加インストールについて [#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 構成変更、文言修正 ~
2013/01/16 追加パッケージの更新 ~

RIGHT:syariten

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS