UDOO公式で配布されているUbuntuのバージョンは12.04と若干古めなんですが、
こちらのブログで13.04のファイルシステムが配布されているのをたまたま見つけたので、インストールしてみることに。とりあえずカーネルとU-Bootは公式のものをそのまま使い、ファイルシステムだけ13.04にしてみます。
作業はLinuxマシンで行います。
1.ルートファイルシステム、カーネル、カーネルモジュール、U-Bootのダウンロード
まずは必要なものをもろもろダウンロードしてきます。
U-Boot。i.MX6 DualモデルとQuadモデルで違うので注意。
$ wget http://udoo.org/download/files/UDOO_Unico/u-Boot_Quad/u-boot-q.imx
次にカーネルイメージ。
$ wget http://udoo.org/download/files/UDOO_Unico/Kernel/uImage
それからカーネルモジュールも。
$ wget http://udoo.org/download/files/UDOO_Unico/Kernel/modules.tar.gz
後は件のルートファイルシステム(rootfs)。
$ wget http://stende.no-ip.info/jas/xubuntu_13_04_gpu.tar.gz
2. SDカードのパーティショニング
役者がそろったら、彼らに最高のステージを。SDカード。UDOOの場合はマイクロSDですな。たぶん2GBとかでもいけますけど、今日日Class10の16GBくらいじゃないと使う気になれませんね。笑
SDカードをカードリーダとかに挿してホストマシンに接続したら、dmesgとかでデバイス名を確認しておきます。パーティショニングはこの後すぐ!ホストマシンのHDDと間違えるなよ!絶対にだぞ!
sdf: sdf1
既存パーティションがある場合には上記のようにsdXのあとに数字のついたデバイスが見えるはず。いずれにせよ消しちゃうのであってもなくてもOK。
パーティショニングの作業はお好きなツールで。GUIならGpartedが便利ですよね。その昔、Beagleboardなんかいじってたころは
fdiskでSDカードをフォーマットしたものです。最近はでっかいHDDをいじるときにfdiskがGPTに対応してなかったりするんで、私はpartedに移りつつあります。そんなわけでpartedを使ってやっていきましょう。
$ sudo parted /dev/sdf
まずは
printで中身を見てみる。
(parted) print
モデル: I-O DATA micro SD Reader (scsi)
ディスク /dev/sdf: 15.9GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 4194kB 15.9GB 15.9GB primary fat32 lba
既存のパーティション1を
rmで削除。
(parted) rm 1
(parted) print
モデル: I-O DATA micro SD Reader (scsi)
ディスク /dev/sdf: 15.9GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
次に
mkpartでパーティションの作成。ファイルシステムはEXT3、サイズは先頭を10MiBほど空けて、後ろはSDカードサイズいっぱいにとってあげましょう。(パーティションテーブルをmsdosに直す場合は
mklabelでできます。)
(parted) mkpart primary ext3 10MiB 15.9GB
(parted) print
モデル: I-O DATA micro SD Reader (scsi)
ディスク /dev/sdf: 15.9GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 10.5MB 15.9GB 15.9GB primary
quitで終了。
(parted) quit
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
パーティショニングでEXT3指定をしましたが、
mkfsもしたほうがいいっぽいので、
$ sudo mkfs.ext3 /dev/sdf1
はい。これで完了です。
3. SDカードへの書き込み
できたパーティションに先ほどダウンロードしたルートファイルシステムを書き込んでいきます。
まずはローカルにマウントポイントのディレクトリを作成し、マウント。
$ mkdir sdcard
$ sudo mount /dev/sdf1 sdcard
ルートファイルシステムをマウントしたSDカードのパーティションへ展開。sudoを忘れずに。
$ sudo tar -xzpf xubuntu_13_04_gpu.tar.gz -C sdcard/
続いてカーネルのコピー。
$ sudo cp uImage sdcard/boot
それからカーネルモジュール。既存のものを消してから。
$ sudo rm -rv sdcard/lib/modules/*
$ sudo cp -av lib sdcard/
ここまでできたら、アンマウントします。
$ sudo umount sdcard
最後に、SDカードにU-bootを書き込みます。
$ sudo dd if=u-boot-q.imx of=/dev/sdf bs=512 seek=2
これでSDカードの準備は完了。syncしてからSDカードを取り外し。
$ sync
ボードに挿して起動します。
(おまけ) Ethernetインタフェースのセットアップ
そのままだとEthernetに接続できませんが、
/etc/network/interfacesに下記を追加し、
auto eth1
iface eth1 inet dhcp
下記でEthernetのインタフェースを起動すればOKです。
$ sudo ifup eth1
参考
I.MX6 - Ubuntu 13.04 with GPU acceleration - Tiny Devices
UDOO creating a bootable Micro SD card from precompiled binaries - eLinux.org
UDOOのUbuntuでネットワークに接続できない - Atelier Orchard