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ポートが使用できることを確認してみましょう。

IMG_HB001