Pandaboard ES Rev B3へのUbuntuのインストール
こちらのサイトを参考にしました
Debian: Getting Started with the PandaBoard - Linux Guides - Engineering and Component Solution Forum - TechForum │ Digi-Key
Pandaboard ES Rev B3は以前のバージョンとメモリ管理のルーチンが異なるようで、普通にインストールができないようです
【準備するもの】
PC (Ubuntuがインストールされたもの)
Pandaboard ES Rev B3
SDカード(4GB以上)
シリアルポート
HDMIケーブル
HDMI対応ディスプレイ
キーボード
【手順】
UbuntuPC上で、64bit版を使用している場合は次のパッケージをインストール
# apt-get install libc6:i386 libstdc++6:i386 libncurses5:i386 zlib1g:i386
続いてクロスコンパイラのダウンロード
# wget -c https://releases.linaro.org/14.09/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz
展開
# tar xf gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz
設定
# export CC=`pwd`/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-
1)U-Boot
ダウンロード
~/
# git clone git://git.denx.de/u-boot.git # cd u-boot/ # git checkout v2014.10 -b tmp
パッチの適用
~/u-boot
# wget -c https://raw.githubusercontent.com/eewiki/u-boot-patches/master/v2014.10/0001-omap4_common-uEnv.txt-bootz-n-fixes.patch # patch -p1 < 0001-omap4_common-uEnv.txt-bootz-n-fixes.patch
コンフィギュレーションとビルド
~/u-boot
# make ARCH=arm CROSS_COMPILE=${CC} distclean # make ARCH=arm CROSS_COMPILE=${CC} omap4_panda_defconfig # make ARCH=arm CROSS_COMPILE=${CC}
2)Linux Kernel
参考サイトにはOld Board File TreeとDevice Treeがあるが、現在ではDevice Treeが推奨されている
# sudo apt-get install git git-core git-doc # git config --grobal user.name “<username>” # git config --grobal user.email “<user@user.com>”
ダウンロード
~/
# git clone https://github.com/RobertCNelson/armv7-multiplatform.git # cd armv7-multiplatform
v3.17.xのブランチからチェックアウトする
~/armv7-multiplatform
# git checkout origin/v3.17.x -b tmp
ビルド
~/armv7-multiplatform
# ./build_kernel.sh
3)Root File System
ダウンロード
~/
# wget -c https://rcn-ee.net/deb/minfs/trusty/ubuntu-14.04-minimal-armhf-2014-07-07.tar.xz
検証
~/
# md5sum ubuntu-14.04-minimal-armhf-2014-07-07.tar.xz c30fb91012701cdbfa00bb6c86868d0a ubuntu-14.04-minimal-armhf-2014-07-07.tar.xz
ファイルの展開
# tar xf ubuntu-14.04-minimal-armhf-2014-07-07.tar.xz
4)Setup microSD/SD card
SDカードをUbuntu PCに差し込み、dmesgなどで割り当てられたデバイスを確認
今回は/dev/sdbだったので以下、/dev/sdbとする
自動でマウントされていたらアンマウントしておく
microSD/SD cardを削除する
# sudo dd if=/dev/zero of=/dev/sdb bs=1M count=10
ブートローダーをインストールする
~/
# sudo dd if=./u-boot/MLO of=/dev/sdb count=1 seek=1 conv=notrunc bs=128k # sudo dd if=./u-boot/u-boot.img of=/dev/sdb count=2 seek=1 conv=notrunc bs=384k
パーティションを作成する
# sudo sfdisk --in-order --Linux --unit M /dev/sdb <<-__EOF__ (上のコマンドを実行した後に以下を順次入力) >1,,0x83,* >__EOF__
パーティションをフォーマットする
# sudo mkfs.ext4 /dev/sdb1 -L rootfs
パーティションをマウントする
# sudo mount /dev/sdb1 /media/rootfs/
5)Install Kernel and Root File System
# ls ~/armv7-multiplatform/deploy
上記のコマンドを実行すると.tar.gzファイルが3つあるはずなのでそのファイル名を見てカーネルのバージョンを確認
今回は3.17.1-armv7-x3だったのでこれを環境変数に設定
# export kernel_version=3.17.1-armv7-x3
ルートファイルシステムをコピーする
~/
# sudo tar xfvp ./*-*-*-armhf-*/armhf-rootfs-*.tar -C /media/rootfs/
/boot/uEnv.txtの作成
~/
# sudo mkdir -p /media/rootfs/boot/ # sudo sh -c "echo 'uname_r=${kernel_version}' > /media/rootfs/boot/uEnv.txt"
Device Tree Binary
# sudo sh -c "echo 'dtb=omap4-panda-es-b3.dtb' >> /media/rootfs/boot/uEnv.txt"
Kernelファイルのコピー
kernelイメージ:
# sudo cp -v ./armv7-multiplatform/deploy/${kernel_version}.zImage /media/rootfs/boot/vmlinuz-${kernel_version}
Kernel Device Tree Binaries:
~/
# sudo mkdir -p /media/rootfs/boot/dtbs/${kernel_version}/ # sudo tar xfv ./armv7-multiplatform/deploy/${kernel_version}-dtbs.tar.gz -C /media/rootfs/boot/dtbs/${kernel_version}/
Kernel Modules:
~/
# sudo tar xfv ./armv7-multiplatform/deploy/${kernel_version}-modules.tar.gz -C /media/rootfs/
File System Table(/etc/fstab)
/etc/fstab
# sudo sh -c "echo '/dev/mmcblk0p1 / auto errors=remount-ro 0 1' >> /media/rootfs/etc/fstab"
(ここでは/dev/mmcblk0p1でなく、/dev/sdbなどを設定しないようにしてください)
6)Networking
/etc/network/interfacesを編集する
# sudo vi /media/rootfs/etc/network/interfaces
以下を書き加える
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
シリアルログイン
新しく/etc/init/serial.confを作成する
# sudo vi /media/rootfs/etc/init/serial.conf
以下を書き加える
start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty 115200 ttyO2
# git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git # sudo mkdir -p /media/rootfs/lib/firmware/ti-connectivity # sudo cp -v ./linux-firmware/ti-connectivity/* /media/rootfs/lib/firmware/ti-connectivity
設定
# sudo vi /media/rootfs/etc/network/interfaces
以下を書き加える
auto wlan0 iface wlan0 inet dhcp wpa-ssid "essid" wpa-psk "password"
microSD/SDカードを取り外す
# sync # sudo umount /media/rootfs
パンダボードにSDカードを差し込み起動
ユーザ名:ubuntu
パスワード:temppwd
でログインする