死蔵していたBeagle Bone Blackをやっと引っ張り出してきて,とりあえずUbuntuを入れてみたので作業のメモを残したい.BBB(Beagle Bone Blackのこと)のリビジョンはA5Aということで,いかに無駄に積まれていたのか察せられる.(在庫が無い時期で,わざわざ海外から共同購入したんだよなぁ…)

まずGetting Started(http://beagleboard.org/Getting%20Started)に従ってみようとするも,そもそもBBBがUSBストレージとしてWindowsに認識されない.なぜだかわからないが,抜き差ししているとやっと認識された.それ以後は順調だった(?).USBケーブルをつなげば仮想的にLANが繋がってる状態になるらしい.

リビジョンが古いボードであるので,まずeMMCにあらかじめ書き込んであるAngstromのバージョンアップをしなければならない. http://beagleboard.org/latest-images にある,Angstrom Distribution (BeagleBone Black - 2GB eMMC) をmicroSDカードに書き込む.

Angstromのイメージを書き込んだSDカードをBBBに挿入して差入口付近にあるboot用のボタンを押しながら電源を投入すると,4つのLEDが順番に点いていき一瞬4つ同時に光った後,ランダムに光るパターンになる.この状態のまま1時間程度放置する.書き換えが終われば再び4つのLEDが同時に点灯したままの状態になる.SDカードを抜いて電源を投入すれば,新しいImageで動くようになっている.

以上はWindows上でもできる作業だが,後の作業はLinux環境から行うほうが都合がいい. 作業環境:VMware Player,64bit Ubuntu 14.04

下準備が終わったら,次にUbuntuのboot用SDカードを作成する. 以下のサイトを参考にして作業を進める. http://elinux.org/BeagleBoardUbuntu

wget https://rcn-ee.net/deb/rootfs/trusty/ubuntu-14.04-console-armhf-2014-05-06.tar.xz
md5sum ubuntu-14.04-console-armhf-2014-05-06.tar.xz
tar xf ubuntu-14.04-console-armhf-2014-05-06.tar.xz
cd ubuntu-14.04-console-armhf-2014-05-06
sudo ./setup_sdcard.sh --probe-mmc

以上でSDカードがどこにあるのか表示してくれるので,そこに書き込む

sudo ./setup_sdcard.sh --mmc /dev/sdX --uboot bone

SDカードをBBBに挿入して電源を入れると,Ubuntuが起動するようになる.毎回bootボタンを押すべしと書いてある古い情報もあるが,新しいAngstromのイメージに更新してあるので,ボタンを押さなくてもSDカードに入っているOSが勝手に起動する.

とりあえずBBBにSSHでログインする.

ssh ubuntu@192.168.7.2

BBBと母艦PCをUSBでつなげるとアドレスは192.168.7.2になる.デフォルトのユーザー名は「ubuntu」,パスワードは「temppwd」になっている.

さて,以上でインストールしたUbuntuはX window systemが含まれないリモートで操作することが想定されたイメージであった.(ubuntu-14.04-consoleとある)

今後OpenCVを用いた画像処理等を行っていきたいと考えているので,デスクトップがあるのが好ましい.そこで,BeagleBoneBlackでもストレスなく動くような軽量なWindow systemである,LXDEを入れることにした.

以下のサイトを参考にして作業を進める. http://elinux.org/Beagleboard:Installing_LXDE#LXDE_On_A_Micro_SD_with_Ubuntu_Raring

BBBにLXDE関係のものをインストールして再起動する.

sudo apt-get -y install lxde lxde-core lxde-icon-theme
sudo reboot

さてここで,BeagleBoneBlackにHDMIケーブルを繋いでディスプレイを見てみると,残念なことに何も表示されない.LXDEが無くてもログイン画面は表示されるらしいが,それも表示されない.何が悪いのか分からないが,ディスプレイとの相性もあってBBBではハマりやすい問題らしい. 結局解決できなかったので,諦めてVNCサーバーを使ってリモートデスクトップで運用することにした.考えてみるとBBBにディスプレイが専有されないからこちらのほうが便利である.

BBBにvncserverをインストールし,一旦起動して設定ファイルを生成する.初回起動時にはVNCでアクセスするためのパスワードを設定するように言われる.

sudo apt-get install vnc4server
vncserver
vncserver -kill :1

~/.vnc/xstartupにある,設定ファイルをLXDE向けに以下のように編集する.

# !/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

/usr/bin/lxsession &

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &

設定が終わればvncserverを立ち上げる

vncserver :1 -geometry 1024x768

そして母艦のほうでBBBにリモートデスクトップ接続する. リモートデスクトップクライアントにはRemminaを使った.

sudo apt-get install remmina
remmina

新規リモートデスクトップの作成で,VNC用の設定する.アドレスではVNCのポート:5901を指定する.VNCのパスワードとかも入れる. スクリーンショット 2014-10-16 21.20.09

そうするとこんな感じでBBBの中のデスクトップを見ることができた. スクリーンショット 2014-10-16 21.30.31

おわり.