HummingBoardを購入するとデフォルトでAndroidが動いています。
今回は、Cubox-iのときと同じようにHummingBoardをUbuntuマシンにしてみました。
「CuBox-i にUbubtu14.04, LXDEをインストールする」で記述した通りにすれば、HummingBoardでも同じように動作します。
ただ、GUIをメインに使用したいときには、
「CuBox-iにUbuntu12.04をインストールする」で取り上げたLinaro版のほうが使い勝手がよさそうです。この記事の通りでもCubox-iでは良いのですが、HummingBoardでは、このままだと2つのUSBポートのうち上のポートが認識されません。
カーネルを最新のKernel 3.14 LTSにすれば、HummingBoardで両方のUSBポートが使えるようになります。
今回は、その手順を説明していきます。
1. Kernel 3.14 LTSの生成
最初にカーネルの生成を行いましょう。
Ubuntuが動作するPCを用意してください。以下は、Ubuntu PC上のターミナルでの作業が続きます。
1) まず、準備として必要なパッケージをインストールします。
$ sudo apt-get install arm-linux-gnueabi $ sudo apt-get install gcc-arm-linux-gnueabi $ sudo apt-get install git $ sudo apt-get install libncurses5-dev $ sudo apt-get install u-boot-tools $ sudo apt-get install lzop $ sudo apt-get install wget
2) 環境変数をセットしておきます。
$ export ARCH=arm $ export CROSS_COMPILE=arm-linux-gnueabi-
ここまでが準備作業です。
3) カーネルのソースをダウンロードしましょう。
$ cd $ mkdir kernel $ cd kernel $ git clone https://github.com/SolidRun/linux-imx6-3.14
4) カーネルのパラメータの設定をしましょう。
$ cd linux-imx6-3.14 $ make mrproper $ make imx_v7_cbi_hb_defconfig
RealtekのUSB Wifiアダプタなどはデフォルトでモジュールを使用するようになっていますので、とくに変更の必要はないでしょう。
5) カーネルの生成です。
$ make zImage imx6q-cubox-i.dtb imx6dl-cubox-i.dtb imx6dl-hummingboard.dtb imx6q-hummingboard.dtb
これで、カーネルファイル
arch/arm/boot/zImage
arch/arm/boot/dts/imx6q-cubox-i.dtb
arch/arm/boot/dts/imx6dl-cubox-i.dtb
arch/arm/boot/dts/imx6dl-hummingboard.dtb
arch/arm/boot/dts/imx6q-hummingboard.dtb
が生成されました。
6) 次に、モジュールを生成しましょう。
$ make modules $ mkdir ../modules $ export INSTALL_MOD_PATH=../modules/ $ make modules_install
これにより ../modules/lib/ の下にモジュール化したファイルが生成されました。
ここまでで、カーネル関係で必要なファイルの準備ができました。
2. 起動SDカードの生成
HummingBoard起動SDカードを生成しましょう。
1) PCにUbuntuのイメージファイルをダウンロードします。
$ cd $ mkdir images $ wget http://download.solid-run.com/pub/solidrun/cubox-i/Ubuntu/ubuntu-oneiric-freescale/ubuntu-oneiric-freescale.img.xz
2) イメージファイルを解凍します
$ unxz ubuntu-oneiric-freescale.img.xz
3) SDカードにイメージを書き込みます。
・SDカードをLinuxマシンに挿入します。
自動的にSDカードがマウントされたらアンマウントしておきます。ここでは /dev/sdg にマウントされたものと仮定します。実際に、どこにマウントされているか確かめてください。
$ mount
以下、/dev/sdgの部分は、実際ものに置き換えて読んでください。
$ sudo umount /dev/sdg
・イメージを書き込みます。
$ sudo dd bs=4k conv=fsync if=ubuntu-oneiric-freescale.img of=/dev/sdg
4) u-bootの書き込み
・以下の通りダウンロードしてきます。
$ wget http://people.redhat.com/jmontleo/cubox-i4pro/u-boot-images/SPL $ wget http://people.redhat.com/jmontleo/cubox-i4pro/u-boot-images/u-boot.img
・これらをddでSDに書き込みます。
$ sudo dd if=SPL of=/dev/sdg bs=512 seek=2 $ sudo dd if=u-boot.img of=/dev/sdg bs=1K seek=42
・必要ならGPartedを使って、SDカードに生成されたパーティションのサイズを拡張しておきましょう。
3. Ubuntu11.10からUbuntu12.04へのアップグレード
Ubuntu11.10にままではHummingBoardでは上のUSBポートが使えません。
(たとえ、カーネルを3.14LTSにしたとしても。)
SDカードをHummingBoardに挿して、HummingBoardの電源を入れましょう。
ここでは、上のUSBポートは使えないので、下のポートにUSB羽生を挿して、キーボード、マウスを接続するか、あるいは、1つのポートでキーボード・マウスを共有できるものを使用して下さい。最悪のケースは必要に応じて、キーボードとマウスを挿し換えながら作業を行ってください。(もし、Cubox-iをお持ちならば、アップグレード作業はCubox-iで行っても構いません。)
デフォルトで作成されたアカウントは
ユーザ名: linaro
パスワード: linaro
です。
以下は、HummingBoardのTerminalでの作業です。
$ sudo su # apt-get update # do-release-upgrade
選択メッセージがでてきたら、デフォルトの設定でOKを選択して進めてください。
エラー/ワーニング・メッセージメッセージでも作業を続けるを選択してください。
コマンドが完了したらリブートして起動できることをチェックしてください。
4. カーネルの書き換え
カーネルをKernel 3.14 LTSに置き換えましょう。
HummingBoardの電源をOffにしてSDカードを抜いて、再びPCに挿してください。
ここからはまた、PCでの作業になります。
・先程作成したKernel 3.14 LTSのファイルをSDにコピーして不要なファイルを削除します。
自動的に /media/foo/sd01 にマウントされたものとします。
(自動マウントしない場合は、ご自身でマウントしてください。)
$ sudo su # cd /media/foo/sd01 # cp ~/kernel/linux-imx6-3.14/arch/arm/boot/zImage . # cp ~/kernel/linux-imx6-3.14/arch/arm/boot/dts/imx6q-cubox-i.dtb . # cp ~/kernel/linux-imx6-3.14/arch/arm/boot/dts/imx6dl-cubox-i.dtb . # cp ~/kernel/linux-imx6-3.14/arch/arm/boot/dts/imx6dl-hummingboard.dtb . # cp ~/kernel/linux-imx6-3.14/arch/arm/boot/dts/imx6q-hummingboard.dtb . # rm uEnv.txt # cd boot # rm -rf * # cd ../lib/modules # rm -rf * # cp -rf ~/kernel/modules/lib/modules/3.14.14+ . # cd ../ # cp -rf ~/kernel/modules/lib/firmware .
・USB Wifiアダプタを使用する場合はアダプタ用のファームウェアをSDカードに書き込みます。「CuBox-i でUSBのWiFiアダプタを利用する」の「3-5) アダプタ用のファームウェアを用意しておきましょう」、「4-3) ファームウェアの書き込み」を参考にしてください。
・uEnv.txtを作成します。
/media/foo/sd01 の下にuEnv.txtファイルを作成してください。テキストエディタで次のように記述してください。
mmcroot=/dev/mmcblk0p1 rootwait rw console=ttymxc0,115200 console=tty1 consoleblank=0 video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24,bpp=16 dmfc=3
5. SPLとboot.imgを書き直します。
# umount /dev/sdg # dd if=SPL of=/dev/sdg bs=1K seek=1 # dd if=u-boot.img of=/dev/sdg bs=1K seek=42
これで全作業は終了です。
SDカードをHummingBoardに挿して、HummingBoardを起動してみてください。
2つのUSBポートが使用できることを確認してみましょう。
One thought on “HummingBoardでUbuntu12.04(Linaro)”