2年くらい前に購入したRaspberry Pi Model BのRaspbianを新しくしようと思います。OSX YosemiteにはBeagleBone Blackとの接続用にUSB-Serialドライバがインストールしてあります。Raspberry Piも同様にディスプレイとキーボードを接続しないで、OSXとUSB-Serial接続をしてヘッドレスインストールします。
SDカードにRaspbianイメージを焼く
DownloadsページからRaspbianイメージをダウンロードします。バージョンはFebruary 2015
です。
$ cd ~/Downloads
$ wget -O 2015-02-16-raspbian-wheezy.zip http://downloads.raspberrypi.org/raspbian_latest
$ unzip 2015-02-16-raspbian-wheezy.zip
Archive: 2015-02-16-raspbian-wheezy.zip
inflating: 2015-02-16-raspbian-wheezy.img
diskutilコマンドでイメージを焼くためのSDカードのデバイスを確認します。SDカードを挿しているデバイスは/dev/disk2
です。SDカードには以前インストールしてあったBeagleBone Blackのが入ったままでした。
$ diskutil list
...
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *15.9 GB disk2
1: Windows_FAT_16 BOOT 100.7 MB disk2s1
2: Linux 1.7 GB disk2s2
diskutilコマンドでSDカードをアンマウントしてからddコマンドでイメージを焼きます。microSDカードをアダプタに挿して使っているためか、2時間くらいかかりました。
$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful
$ sudo dd if=~/Downloads/2015-02-16-raspbian-wheezy.img of=/dev/disk2 bs=4m
OSXとUSB-Serial接続
Raspberry PiをヘッドレスインストールするためにOSXとUSB-Serial接続できるようにします。シリアル接続については以下のサイトを参考にします。
ドライバのインストール
すでにOSXにはBeagleBone Blackを接続しているので、FTDIのVCPドライバのEnergiaFTDIDrivers2.2.18をインストールしています。
USB-Serial変換
PL2303HX内蔵USB-Serial変換ケーブルはアマゾンから購入しました。Software Installation (Mac)を参考にしてGPIOピンにつなぎます。
- 赤: 5V
- 黒: GND
- 白: RXD
- 緑: TXD
USB-Serial接続
OSXからシリアル接続する場合はターミナルから以下を実行します。Yosemiteの場合デバイスファイル名はcu.usbserial
です。
$ screen /dev/cu.usbserial 115200
ちなみにChromebookのUbuntuからシリアル接続する場合は以下です。
$ sudo screen /dev/ttyUSB0 115200
デフォルトのusernameとpasswordでログインします。
- username: pi
- password: raspberry
Raspbian GNU/Linux 7 raspberrypi ttyAMA0
raspberrypi login: pi
Password:
Linux raspberrypi 3.18.7+ #755 PREEMPT Thu Feb 12 17:14:31 GMT 2015 armv6l
...
NOTICE: the software on this Raspberry Pi has not been fully configured. Please run 'sudo raspi-config'
初期設定
コンソールに接続したらガイドに従って初期設定をします。
$ sudo raspi-config
オプションのリストが表示されるまでにちょっと時間がかかりました。
- Expand Filesystem > Select
- Internationalisation Options > Change Locale > ja_JP.UTF-8
- Internationalisation Options > Change Timezone > Asia > Tokyo
無線LAN
無線LANのUSBドングルはBUFFALO WLI-UC-GNMを使います。
電源不足
USB-Serialケーブルは給電もしてくれますが、無線LANを使う時は電源不足になるので別途microUSB電源ケーブルを接続します。USB ACアダプタは1.8Aくらいないとapt-get update
したときにRaspberry Piが落ちてしまします。
アクセスポイント検知 - wpa_supplicant.confを使わない場合
最初はアクセスポイントの検知ができる無線LAN環境での設定です。wpa_supplicant.confを使わずに/etc/network/interfaces
にSSIDのパスフレーズを直接書きます。
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet dhcp
wpa-ssid "ssid"
wpa-psk "passphrase"
NICを再起動します。
$ sudo ifdown wlan0
$ sudo ifup wlan0
IPアドレスがDHCPから取得できました。
$ ip addr show wlan0
7: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 4c:e6:76:42:4f:a3 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.8/24 brd 192.168.1.255 scope global wlan0
valid_lft forever preferred_lft forever
名前解決とインターネット接続を確認します。
$ ping -c 1 www.yahoo.co.jp
PING www.g.yahoo.co.jp (183.79.11.230) 56(84) bytes of data.
64 bytes from f6.top.vip.kks.yahoo.co.jp (183.79.11.230): icmp_req=1 ttl=52 time=17.8 ms
--- www.g.yahoo.co.jp ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 17.869/17.869/17.869/0.000 ms
アクセスポイント検知 - wpa_supplicant.confを使わない場合
wpa_supplicant.confファイルを使う場合は、/etc/network/interfaces
から読み込むようにします。今回はEthernetポートは使わずにUSBドングルの無線LANだけをつかうので、wpa-roamでなくwpa-confのディレクティブで指定する必要があります。
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
wpa_passphraseコマンドを使いwpa_supplicant.confファイルを作成します。
$ sudo sh -c "wpa_passphrase $1 $2 >> /etc/wpa_supplicant/wpa_supplicant.conf"
wpa_supplicant.confには平文でパスフレーズがコメントアウトされた状態で残っているので削除しておきます。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="ssid"
proto=WPA2
key_mgmt=WPA-PSK
psk=passphrase
}
ステルスモード - wpa_supplicant.confを使わない場合
無線LANのアクセスポイントがステルスモードの場合はwpa-scan-ssid 1
を追加します。
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-scan-ssid 1
wpa-ssid "ssid"
wpa-psk "passphrase"
iface default inet dhcp
ステルスモード - wpa_supplicant.confを使う場合
同様にwpa_supplicant.confはscan_ssid=1
を追加します。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="ssid"
scan_ssid=1
proto=WPA2
key_mgmt=WPA-PSK
psk=passphrase
}
/etc/network/interfaces
はwpa-confディレクティブでwpa_supplicant.confを読み込むようにします。
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp