私のBeagleBone BlackのリビジョンはA5Bと古いのでeMMCが2GBしかありません。現在のファームウェアはUbuntu 13.04を使っているのですが、別の環境でSDカードに焼いた14.04が起動してくれません。一度ファームウェアをオフィシャルのDebianに戻してビルド環境を用意しようと思います。
Cygwinとapt-cygの用意
今回は作業環境にWindows7を使います。まずCygwinのセットアップのためsetup-x86_64.exeをダウンロードしてインストールします。パッケージ管理ツールのapt-cygに必要なパッケージをインストールしておきます。
- Devel/git-svn
- Base/gawk
- Utils/bzip2
- Utils/tar
- Web/wget
Cygwin64 Terminalを管理者として起動してapt-cygをインストールします。
$ svn --force export http://apt-cyg.googlecode.com/svn/trunk/ /bin/
A /bin
A /bin/LICENSE
A /bin/apt-cyg
A /bin/README.md
リビジョン 34 をエクスポートしました。
$ chmod +x /bin/apt-cyg
バージョンを確認します。
$ cygcheck -c cygwin
Cygwin Package Information
Package Version Status
cygwin 1.7.28-2 OK
$ apt-cyg --version
apt-cyg version 0.59
Written by Stephen Jungels
Copyright (c) 2005-9 Stephen Jungels. Released under the GPL.
apt-cygを使いunxzコマンドをインストールします。xz形式のイメージファイルの解凍に使います。
$ apt-cyg install xz-utils
Debian 7.5のインストール
Windows7にUSBドライバをインストールする
WindowsからUSB経由でBBBにSSH接続するため、Getting Startedにある64-bit版ドライバのインストーラーをダウンロードして実行します。
microSDカードをフォーマットする
Debianのイメージを焼くため余っていた16GBのmicroSDカードを用意しました。SD Formatterを使いmicroSDカードをフォーマットし直します。論理サイズ調整をONにしてクイックフォーマットします。
フォーマットが終了しました。
microSDカードにイメージを焼く
Cygwinを使いDebianのイメージをSDカードに焼きます。Cygwin64 TerminalからWindows7のデバイスファイルを確認します。16GBのmicroSDカードは/dev/sdc
になります。
$ cat /proc/partitions
major minor #blocks name
8 0 488384323 sda
8 1 40131 sda1
8 2 17598464 sda2
8 3 470743040 sda3
8 16 102130688 sdb
8 17 8388608 sdb1
8 18 93740032 sdb2
8 32 15351808 sdc
8 33 15347712 sdc1
DebianのファームウェアはオフィシャルのLatest Firmware Imagesにある、Debian (BeagleBone Black - 2GB eMMC) 2014-05-14を使います。ダウンロードしてチェックサムを確認します。
$ wget http://debian.beagleboard.org/images/BBB-eMMC-flasher-debian-7.5-2014-05-14-2gb.img.xz
$ md5sum BBB-eMMC-flasher-debian-7.5-2014-05-14-2gb.img.xz
74615fb680af8f252c034d3807c9b4ae *BBB-eMMC-flasher-debian-7.5-2014-05-14-2gb.img.xz
イメージを解凍してmicroSDカードに焼きます。
$ unxz BBB-eMMC-flasher-debian-7.5-2014-05-14-2gb.img.xz
$ dd if=./BBB-eMMC-flasher-debian-7.5-2014-05-14-2gb.img of=/dev/sdc
3481600+0 レコード入力
3481600+0 レコード出力
1782579200 バイト (1.8 GB) コピーされました、 333.563 秒、 5.3 MB/秒
eMMCにフラッシュする
以下の手順で、microSDカードからBBBのeMMCにDebianをフラッシュします。
- microSDカードをBBBのスロットに挿す
- microSDカードスロットの上にあるBootボタンを押しながら、USBをWindowsと接続してSDカードから起動する
- LEDが点滅し始めたら、Bootボタンを放す
- eMMCへのフラッシュには、20分くらいかかる
- フラッシュに成功すると、LEDが消灯して終了する
- Windowsから、USBケーブルを抜く
- BBBから、microSDカードを抜く
WindowsにUSBケーブルで接続してBBBの電源を入れます。Puttyを起動します。デフォルト接続設定は以下です。
- IPアドレス: 192.168.7.2
- username: debian
- password: temppwd
PuttyからSSH接続できました。OSのバージョンを確認しておきます。
$ cat /etc/debian_version
7.5
$ uname -a
Linux beaglebone 3.8.13-bone50 #1 SMP Tue May 13 13:24:52 UTC 2014 armv7l GNU/Linux
Windows7のネットワーク設定
USBネットワークの名前
BBBからUSBケーブルで接続しているWindowsのネットワークを使い、インターネットに接続できるようにします。わかりやすいように、USBネットワークの名前を変更しておきます。
- コントロールパネル > ネットワークとインターネット > ネットワークと共有センター > アダプターの設定の変更 > Linux USB Ethernet/RNDIS Gadgetのネットワークを選択
- 名前: BeagleBoneBlack
ワイヤレスネットワークの共有設定
BBBと共有したネットワークの設定を変更します。今回はWindows7のワイヤレスネットワークを選択して共有タブを表示します。
- コントロールパネル > ネットワークとインターネット > ネットワークに接続 > 接続するネットワークを右クリック > 状態 > プロパティ > 共有タブ
以下のように、BeagleBone BlackのUSBネットワークからインターネットへの接続を許可します。
- ネットワークのほかのユーザーに、このコンピューターのインターネット接続をとおして接続を許可する: チェック
- ネットワークのほかのユーザーに、共有インターネット接続の制御や無効化を許可する: チェック外す
- ホームネットワーク接続: BeagleBoneBlackを選択
また、このワイヤレスネットワークは無線LANルーターからDHCPでIPアドレスとDNSサーバーを取得しています。
USBネットワーク
BBBのUSBネットワーク設定画面を以下の手順で開きます。
- コントロールパネル > ネットワークとインターネット > ネットワークの状態とタスクの表示 > アダプターの設定の変更 > Linux USB Ethernet/RNDIS Gadgetのネットワークを選択
TCP/IPv4の設定画面を開きます。
- プロパティボタン > インターネット プロトコル バージョン 4 (TCP/IPv4) をダブルクリップ
以下のように、IPアドレスとDNSサーバーの情報を自動的に取得するようにします。
Debian 7.5のネットワーク設定
デフォルトゲートウェイの追加
BBBとWindowsをUSBケーブルでつなぎ、PuttyからSSH接続します。routeコマンドでデフォルトゲートウエイの設定します。
$ sudo route add default gw 192.168.7.1
routeコマンドで設定を確認します。
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.7.1 0.0.0.0 UG 0 0 0 usb0
192.168.7.0 0.0.0.0 255.255.255.252 U 0 0 0 usb0
pingで名前解決ができるようになりました。
$ ping -c 3 www.yahoo.co.jp
PING www.g.yahoo.co.jp (183.79.135.206) 56(84) bytes of data.
64 bytes from f1.top.vip.kks.yahoo.co.jp (183.79.135.206): icmp_req=1 ttl=53 time=19.4 ms
...
再起動後も設定を有効にする
再起動後もデフォルトゲートウェイが有効になるように設定を追加します。Windows 7 Internet Sharing for BeagleBone BlackのコメントにあるDebian用の書き方を参考にします。udhcpdのすぐ下にデフォルトゲートウェイの設定を追加します。
/sbin/ifconfig usb0 192.168.7.2 netmask 255.255.255.252
/usr/sbin/udhcpd -S /etc/udhcpd.conf
/sbin/route add default gw 192.168.7.1
BBBを再起動しても名前解決ができるようになりました。
$ ping -c 3 www.yahoo.co.jp
PING www.g.yahoo.co.jp (183.79.27.149) 56(84) bytes of data.
64 bytes from f12.top.vip.kks.yahoo.co.jp (183.79.27.149): icmp_req=1 ttl=53 time=22.8 ms
...