クロス開発用のホストとして、Ubuntu 12.04 LTS (Precise Pangolin) Daily Build版を使用して一から準備した。クロスツールチェインはlinaro提供のを使用した。以下はubuntuをインストールした直後の手順。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git gcc-arm-linux-gnueabi ncurses-dev u-boot-tools gparted
これで下準備ができたので、後は一気にu-bootとkernelをビルドする。今回はkernelのバージョンは3.3.2を使用し、rootfsをext4にする。
u-bootの環境変数の初期値を、rootfstype=ext4に変更しておく。
151 #define CONFIG_EXTRA_ENV_SETTINGS \
152 "loadaddr=0x82000000\0" \
153 "console=ttyO2,115200n8\0" \
154 "usbtty=cdc_acm\0" \
155 "vram=16M\0" \
156 "mmcdev=0\0" \
157 "mmcroot=/dev/mmcblk0p2 rw\0" \
158 "mmcrootfstype=ext4 rootwait\0" \
159 "mmcargs=setenv bootargs console=${console} " \
160 "vram=${vram} " \
161 "root=${mmcroot} " \
162 "rootfstype=${mmcrootfstype}\0" \
163 "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
164 "bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
165 "source ${loadaddr}\0" \
166 "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
167 "mmcboot=echo Booting from mmc${mmcdev} ...; " \
168 "run mmcargs; " \
169 "bootm ${loadaddr}\0" \
元にしたコンフィグに、以下を追加する。
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_CGROUPS=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_XATTR=y
以下、ビルド手順。
cd
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
git clone git://git.denx.de/u-boot.git
cd u-boot
vi include/configs/omap4_common.h
make omap4_panda_config
make
cd
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.2.tar.bz2
tar xvf linux-3.3.2.tar.bz2
cd linux-3.3.2
wget -O .config http://elinux.org/images/1/10/Config.3.3.1
make menuconfig
make
make uImage
make modules
最後に、
SDHCカードを作成すると同様にSDHCカードを作成する。但し、rootfsはext4でフォーマットする。
セコメントをする