Cubox-i4proにDebianをインストールする
Cubox-i用のインストール済みイメージは割とあちこちで見かけるのですが、デスクトップ環境一式が入っていたりと色々気に入らない部分があるので、自分で作ることにした際の備忘録です。ビルド作業はVirtualBox上のUbuntu 14.04 LTS(64bit)で、SDカードのフォーマットや書き込みは手元のUbuntu 14.04 LTSで行っています。
基本的にカーネルとブートローダーのビルドは
http://www.solid-run.com/wiki/index.php?title=Building_the_kernel_and_u-boot_for_the_CuBox-i_and_the_HummingBoard
に従います。
micro SDカードの用意
micro SDカードにパーティションを切っておきます。/dev/sdX1がカーネルを置くパーティションで、/dev/sdX2がrootfsを置くパーティションになります。今回は1GBのswapパーティションも作ってみました。メモリ2GB搭載しているCubox-i4でスワップ使う状態になったら負けのような気もしますが念の為。ファイルシステムはext4にします。
u-bootのビルドと書き込み
必要なパッケージをインストールします。また環境変数ARCHとCROSS_COMPILEをセットしておきます。
$ sudo apt-get install gcc-arm-linux-gnueabi u-boot-tools lzop build-essential $ export ARCH=arm $ export CROSS_COMPILE=/usr/bin/arm-linux-gnueabi-
SolidRunのリポジトリからu-bootをクローンしてmakeします。
$ git clone https://github.com/SolidRun/u-boot-imx6.git $ cd u-boot-imx6 $ make mx6_cubox-i_config $ make
SPLというファイルとu-boot.imgというファイルが作られているので、これをmicro SDへ書き込みます。手元のPCへ引っ張ってくるのはscpなりrsyncなりで適当に。
$ sudo dd if=SPL of=/dev/sdX bs=1K seek=1 $ sudo dd if=u-boot.img of=/dev/sdX bs=1K seek=42
カーネルのビルド
SolidRunのリポジトリから、3.14のツリーをクローンしてmakeします。最終的に必要なファイルは、arch/arm/boot/zImageとarch/arm/boot/dts/imx6q-cubox-i.dtb、それにmodulesディレクトリ以下にインストールしたモジュール一式です。makeが終わったらこれも手元のPCへrsyncなりしておきます。
$ git clone https://github.com/SolidRun/linux-imx6-3.14 $ cd linux-imx6-3.14 $ make imx_v7_cbi_hb_defconfig $ make zImage imx6q-cubox-i.dtb imx6dl-cubox-i.dtb imx6dl-hummingboard.dtb imx6q-hummingboard.dtb $ make modules $ mkdir ../modules $ make modules_install INSTALL_MOD_PATH=../modules
rootfsの作成
debootstrapでWheezyの環境を作成します。必要なパッケージはincludeに入れてしまうのがいいでしょう。特にopenssh-server。
$ sudo apt-get install debootstrap $ sudo debootstrap --verbose --foreign --arch=armel --variant=minbase --include=module-init-tools,locales,udev,aptitude,dialog,ifupdown,procps,iproute,iputils-ping,pump,nano,wget,netbase,openssh-server wheezy rootfs http://ftp.jp.debian.org/debian
chroot内でarmelの環境を動かすため、qemu-arm-staticを使います。qemu-user-staticパッケージをインストールした後、qemu-arm-staticをchroot内のツリーに配置すれば動作します。そうしたら実際にchrootして、debootstrapのsecond-stageを実行してパッケージを展開します。その後はrootのパスワードやAPTラインなど、必要な設定を行っておきましょう。ネットワークの設定やシリアルコンソールの設定はここでやっておかないと。
chroot環境からexitしたら、qemu-arm-staticは削除しておきましょう。
$ sudo apt-get install qemu-user-static $ sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/ $ sudo chroot rootfs # ./debootstrap/debootstrap --second-stage # dpkg-reconfigure tzdata # dpkg-reconfigure locales # passwd # cat > /etc/apt/sources.list deb http://ftp.jp.debian.org/debian/ wheezy main contrib non-free # cat >> /etc/network/interfaces auto eth0 allow-hotplug eth0 iface eth0 inet dhcp # cat >> /etc/inittab T0:23:respawn:/sbin/getty -L ttymxc0 115200 vt100 # exit $ sudo rm rootfs/usr/bin/qemu-arm-static