arago-projectについて †主にTIがメンテナンスを行っているOpenEmbedded Linux Projectです。 ビルド環境構築手順について †ビルド環境構築に使用するホストOSはUbuntu 10.04(64bit)です。 追加導入パッケージ †ビルド環境構築のために以下の各パッケージを導入します。 ssh vim git-core build-essential curl ia32-libs diffstat cvs subversion chrpath texi2html texinfo libncurses5-dev bison flex gettext dashからbashへの変更 †Ubuntu 10.04のデフォルトshellはdashで、そのままbitbakeを実行するとエラーが起こるため、 $ sudo dpkg-reconfigure dash 「dash を /bin/sh インストールしますか?」と聞かれるので「No」or 「いいえ」を選択します。 ビルド環境構築 †bc10-router用のarago-projectビルド環境構築について記載します。 $ 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を修正します。 $ 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のインストール †ToolchainはTIのWebページに掲載されている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について †arago-projectのWebページに記載されている環境構築手順にそってToolchainにCodeSourceryを bc10-router用の追加パッケージ設定について †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コマンドで導入できるパッケージ一覧を以下のように取得することができます。 $ bitbake -s > lists bc10-router用bbファイル編集 †bc10-routerでは不必要なパッケージをビルドしないよう、また上記パッケージを予めビルドするよう $ cd arago/recipes/tasks 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 \ task-arago-console.bb --- __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 -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,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 +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} bc10-routerイメージ作成 †arago-console-imageのビルドを行います。 $ time bitbake arago-console-image ビルド済みイメージ配置ディレクトリ †ビルド済みイメージの配置ディレクトリは~/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について †これまでの設定(u-boot-splを追加)でMLOは作成されていますが、 SDへの書き込み †bc10/booting 起動用SDカードの作成の手順で作成されたSDカードを 上記までで作成したファイルをそれぞれのディレクトリにコピー、展開をします。 $ 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以下に配置します。 mmcroot=/dev/mmcblk0p2 rw uenvcmd=run loaduimagefat; run mmcboot 今回のハードウェア構成で使用しているWLI-UC-AG300Nを動作させるため $ unzip RT2870_Firmware_V22.zip $ cd RT2870_Firmware_V22 $ ls LICENSE.ralink-firmware.txt rt2870.bin $ sudo cp * /media/EXT3/lib/firmware/ 以上で、SDへの書き込みは完了です。 ビルド後のパッケージ追加インストールについて †bitbake arago-console-image完了後、bitbakeに含まれているパッケージを $ 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カードへコピーもしくは # 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 更新記録 †2012/12/14 初稿公開 syariten
|