0%

BeagleBone Blackで1-WireセンサのDS18B20を使う - Part2: SDカードにDebian7.8をインストールする

BeagleBone BlackのeMMCにはDebianが入っていますが、今までSDカードはUbuntuを入れて使っていました。3.8.13のカーネルが必要なのでDebian 7.8を使おうと思います。久しぶりにSDカードを作成したら結構嵌まりました。

SDカードへインストール

作業マシンにMacBook Proを使います。Windowsだとイメージの書き込みにすごく時間がかかった記憶がありますが、MacBook Proだと数分でSDカードに書き込みが終了しました。

ダウンロード

イメージは2015-07-06にリリースされたばかりの最新版をダウンロードします。

$ cd ~/Dowonloads
$ wget https://rcn-ee.com/rootfs/bb.org/release/2015-07-06/console/bone-debian-7.8-console-armhf-2015-07-06-2gb.img.xz

チェックサムを確認します。

$ openssl md5 bone-debian-7.8-console-armhf-2015-07-06-2gb.img.xz
MD5(bone-debian-7.8-console-armhf-2015-07-06-2gb.img.xz)= 6aeef824652637602dbdb1eae431203a

unarでイメージを解凍する

Unarchiverのコマンドラインをインストールします。

$ wget http://theunarchiver.googlecode.com/files/unar1.8.1.zip
$ unzip unar1.8.1.zip -d ~/bin
Archive: unar1.8.1.zip
inflating: /Users/mshimizu/bin/lsar
inflating: /Users/mshimizu/bin/unar

unarコマンドを使ってxz形式の圧縮ファイルを解凍します。

$ unar bone-debian-7.8-console-armhf-2015-07-06-2gb.img.xz
bone-debian-7.8-console-armhf-2015-07-06-2gb.img.xz: XZ
bone-debian-7.8-console-armhf-2015-07-06-2gb.img... OK.
Successfully extracted to "./bone-debian-7.8-console-armhf-2015-07-06-2gb.img".

ddコマンドで書き込む

SDカードをMacBook Proに挿してdfコマンドからデバイス名を確認します。

$ df -h
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1 465Gi 86Gi 379Gi 19% 22550671 99288943 19% /
devfs 186Ki 186Ki 0Bi 100% 645 0 100% /dev
map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net
map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home
/dev/disk2s1 15Gi 2.3Mi 15Gi 1% 0 0 100% /Volumes/NO NAME

作業前にSDカードをdiskutilでunmountします。

$ sudo diskutil unmount /dev/disk2s1
Volume NO NAME on disk2s1 unmounted

ddコマンドでSDカードのraw diskを指定して書き込みます。/dev/disk2s1の場合、raw disk は/dev/rdisk2になります。

$ sudo dd bs=1m if=bone-debian-7.8-console-armhf-2015-07-06-2gb.img of=/dev/rdisk2
1700+0 records in
1700+0 records out
1782579200 bytes transferred in 147.239980 secs (12106625 bytes/sec)

書き込みには数分かかります。終了するとOSXが読み取れないディスクとダイアログを出しますが無視できます。diskutilコマンドでSDカードを取り出します。

$ sudo diskutil eject /dev/rdisk2
Disk /dev/rdisk2 ejected

シリアル接続で確認

OSXからシリアル接続して起動を確認します。デフォルトのusername:passwordはdebian:temppwdです。

BeagleBoard.org Debian Image 2015-07-06

Support/FAQ: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian

default username:password is [debian:temppwd]

beaglebone login:
Password:
Linux beaglebone 3.8.13-bone72 #1 SMP Tue Jun 16 21:36:04 UTC 2015 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
debian@beaglebone:~$

有線LANが必要

このDebian 7.8のイメージはかなり厳密にできていて、デフォルトでは無線LANに接続するツールが入っていません。OSXを経由したUSBテザリングがうまく動作しなくなったので、BeagleBone Blackに有線LANをつないで必要なパッケージをインストールします。

$ sudo apt-get update
$ sudo apt-get install usbutils wpasupplicant wireless-tools

ネットワークを再起動します。

$ sudo systemctl restart networking.service

lsusbコマンドで無線LANのドングルが認識されていることを確認します。

$ lsusb
Bus 001 Device 002: ID 2019:ab2a PLANEX GW-USNano2 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

無線LANの設定

wpa_passphraseコマンドにSSIDとパスワードを指定して、wpa_supplicant.confファイルを作成します。

$ sudo sh -c 'wpa_passphrase SSID PASSWORD >> /etc/wpa_supplicant/wpa_supplicant.conf'
$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="SSID"
#psk="PASSWORD"
psk=PASSWORD
}

/etc/network/interfacesファイルにwlan0の起動とwpa_supplicant.confの設定を読む設定をします。

$ sudo vi /etc/network/interfaces
...
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
...

wlan0を再起動してDHCPからIPアドレスを取得します。

$ sudo ifdown wlan0
$ sudo ifup wlan0

最後にpingで名前解決とインターネットへの接続を確認します。

$ ping -c 1 www.yahoo.co.jp
PING www.g.yahoo.co.jp (183.79.71.173) 56(84) bytes of data.
64 bytes from f13.top.vip.kks.yahoo.co.jp (183.79.71.173): icmp_req=1 ttl=53 time=23.2 ms

--- www.g.yahoo.co.jp ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 23.215/23.215/23.215/0.000 ms

タイムゾーンの変更

初期設定としてタイムゾーンをAsia/Tokyoにしておきます。

$ sudo cp /etc/localtime{,.orig}
$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

日付

ntpをインストールします。

$ sudo apt-get install ntp

NICTのNTPサーバーを設定します。

/etc/ntp.conf
#server 0.debian.pool.ntp.org iburst
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst
pool ntp.nict.jp iburst

ntpdの再起動をします。

$ systemctl start ntp.service

Vim

エディタのVimをインストールします。

$ sudo apt-get install vim
$ mkdir ~/tmp

バックアップを作らない設定だけします。

~/.vimrc
set backupdir=~/tmp