概要
MacでRaspberryPi2 ModelB に関する覚え書きです。
MacやRaspberryPiが壊れる可能性のある手順が含まれていますのでご注意ください。
OSインストール
イメージをダウンロード
-
DOWNLOADS からイメージをダウンロードする
- 今回はRaspbianを選択
ファイルを展開してddでSDカードに書き込む
SDカードを入れたカードリーダーとMacをUSBで接続して以下実施
### SHA-1の確認。DLのページに掲載されているものと同じであることを確認する。
$ openssl sha1 2015-05-05-raspbian-wheezy.zip
===========================
SHA1(2015-05-05-raspbian-wheezy.zip)= cb799af077930ff7cbcfaa251b4c6e25b11483de
===========================
### DLしたファイルを展開
$ unzip 2015-05-05-raspbian-wheezy.zip
### SDカードのマウント状況確認
$ diskutil list
===========================
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *121.3 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_HFS Macintosh HD 120.5 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *6.7 MB disk1
1: Apple_HFS FTDIUSBSerialDriver_... 6.7 MB disk1s1
/dev/disk2 ### SDカード。環境によりdiskの数値は違いますのでご注意ください。
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *61.9 GB disk2
1: Windows_NTFS 61.9 GB disk2s1
===========================
### SDカードをumount
$ sudo diskutil unmountDisk /dev/disk2
===========================
Unmount of all volumes on disk2 was successful
===========================
### イメージの書き込み。「/dev/disk2」だとすごく遅いので「/dev/rdisk2」とする。
### Ctrl-t で進捗を表示できる
### ofで指定するデバイスを間違えるとMacが壊れる可能性がありますので十分注意してください!!
$ sudo dd bs=1m if=2015-05-05-raspbian-wheezy.img of=/dev/rdisk2
===========================
3125+0 records in
3125+0 records out
3276800000 bytes transferred in 316.595018 secs (10350131 bytes/sec)
===========================
参考
- Raspberry PiにRaspbianをインストールする for Mac OSX
- Raspberry Pi の SD カードの準備がスッキリと納得できるようになるかもしれない話(少しだけコンピュータ・アーキテクチャっぽい話も)
Macとシリアル通信で接続する
有線LANを使わずシリアルで接続する
用意したもの
- FTDI TTL-232R-3V3 (USB-シリアル変換ケーブル)
- 秋葉原か通販でお求めください。よくある家電店では売ってません。
- ブレッドボード・ジャンパーワイヤ(オス-メス) 4本
- シリアル変換ケーブルの配線を切ったりつなげかえたりしなくて済みます。
接続方法
- ケーブル <-> RaspberryPie2 ModelB
- 赤:VCC(5V) <-> 2pin:DC Power 5V
- 黒:GND <-> 6pin:GND
- 黄:UART_RXD(3.3V) <-> 8pin:UART_TXD
- 橙:UART_TXD(3.3V) <-> 10pin:UART_RXD
ドライバのインストール
- Virtual COM Port Drivers からドライバをインストールする
PCに接続する
USBをMacに接続して以下実施
### デバイスの確認
$ ls /dev/tty.usbserial*
===========================
/dev/tty.usbserial-FTHK720M
===========================
### screenで接続
$ screen /dev/tty.usbserial-FTHK720M 115200
### ログインする。初期設定はユーザ「pi」、パスワード「raspberry」
### 初期設定
$ sudo raspi-config
===========================
Expand Filesystem
-> SDCardの使える領域を増やす
Internationalisation Options: Change Timezone
-> Asia - Tokyoを選ぶ
Advanced Options: SSH
-> Enable を選んでsshで接続できるようにする
※ この後再起動が走る
===========================
### シャットダウン。「ACT」のLEDが点滅していない状態になればケーブルを取り外せます。
$ sudo shutdown -h now
### screen終了
ctl-A ctl-\
参考
-
TTL-232R-3V3でRaspberryPiと接続する
- RaspberryPi2 modelBに接続する配線
-
MacとRaspberry PIをシリアル通信で接続する
- ブレッドボード・ジャンパーワイヤの使い方
-
Raspberry Pi 2 Model B GPIO 40 Pin Block Pinout
- GPIOピンの確認
有線LANでMACから接続する
用意したもの
- USB2.0 LAN Adapter (MACのUSBに有線LANを接続するアダプタ)
- MACが認識できるものを用意する
- クロスオーバーケーブル
- 通常ネットに接続する時に使うストレートケーブルではない事に注意
ネットワーク設定
MAC側のアドレス確認
MACとRaspberryPiを有線LANで接続し、MAC側のアドレスを確認
以下の場合のMAC側のアドレス情報は
- IP : 169.254.12.143
- サブネットマスク : 255.255.0.0
RaspberryPi側のネットワーク設定
### /etc/network/interfaces の eth0 を設定
$ sudo cp -ip /etc/network/interfaces /tmp
$ sudo vi /etc/network/interfaces
===========================
...
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 169.254.12.143 ### 第四オクテットを任意の値に設定。MACのアドレスから+1した。
netmask 255.255.0.0 ### MACの設定のまま
...
===========================
### ネットワークの再起動
$ sudo service networking restart
### 設定の確認
$ ifconfig
===========================
eth0 Link encap:Ethernet HWaddr b8:27:eb:cf:8e:7d
inet addr:169.254.12.143 Bcast:169.254.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:277 errors:0 dropped:0 overruns:0 frame:0
TX packets:154 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:35565 (34.7 KiB) TX bytes:23994 (23.4 KiB)
===========================
無線LANでネットに接続する
用意したもの
- WLI-UC-GNM2
- BUFFALOのUSB無線子機
- ほどほどに熱くなる。もう少し控えめなものでもいいかも。
- BUFFALOのUSB無線子機
ネットワーク設定
/etc/network/interfaces
インタフェースの設定をする
- 設定(スタンザ)について
- auto : 起動時にインタフェースを起動
- allow-hotplug : カーネルがホットプラグイベントを認知した際にインターフェースを起動
- iface : ネットワーク設定 を規定
- : コンフィグ名。だいたいインタフェース名と同じ
- default : デフォルトのネットワーク設定。この設定は無くてもいい。
- : プロトコルファミリ。inet, inet6など。
- : メソッド名
- loopback : ループバック設定
- dhcp : DHCPで設定
- manual : 別途設定ファイルを読み込んだり、細かな設定を自分で設定
- wap-conf : wpaの設定ファイルのPATHを指定
- static : 固定で設定
- address : IPアドレス
- netmask : ネットマスク
- gateway : ゲートウェイ
- : コンフィグ名。だいたいインタフェース名と同じ
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
auto wlan1
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
参考
- 第5章 ネットワークの設定(Debian公式)
-
スタンザってなんだよ意味わかんねーよ
- 設定のひとかたまりをスタンザという
- 複数行になることもある
- 文法的にインデントに意味は無い
wpa_supplicant
- WPA(AES、TKIP など)を無線LANクライアントに提供するツール
-
LinuxでWPA-PSKを設定したい場合はこのツールを使用する
-
設定項目
- ESSID : アクセスポイントのID
- key : パスワード
-
設定ファイル
- /etc/wpa_supplicant/wpa_supplicant.conf
- 認証の設定
- /etc/wpa_supplicant/wpa_supplicant.conf
-
wpa_passphraseコマンド
- keyを暗号化する
- WPAで接続する場合はkeyを暗号化して送ることができる
- keyを暗号化する
-
$ wpa_passphrase hogehogehoge fugafugafuga
===========================
network={
ssid="hogehogehoge"
#psk="fugafugafuga"
psk=8a975bfb31cb920df6380494fc52491bc3a04ae0ad665c69a0fa79897da5a0c7
}
===========================
無線LANのUSBを認識していることの認識
USBを接続する。
以下は確認だけ。手順はとしては飛ばしてもいい。
### USBの無線LANアダプタが認識されていることを確認
$ dmesg
===========================
[ 1244.567913] usb 1-1.3: new high-speed USB device number 5 using dwc_otg
[ 1244.683679] usb 1-1.3: New USB device found, idVendor=0411, idProduct=01ee
[ 1244.683704] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1244.683722] usb 1-1.3: Product: 802.11 n WLAN
[ 1244.683738] usb 1-1.3: Manufacturer: Ralink
[ 1244.683754] usb 1-1.3: SerialNumber: 1.0
[ 1244.777905] usb 1-1.3: reset high-speed USB device number 5 using dwc_otg
[ 1244.886887] ieee80211 phy1: rt2x00_set_rt: Info - RT chipset 3070, rev 0201 detected
[ 1244.906176] ieee80211 phy1: rt2x00_set_rf: Info - RF chipset 0005 detected
[ 1244.907517] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[ 1245.006183] ieee80211 phy1: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'
[ 1245.006343] ieee80211 phy1: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.29
===========================
### カーネルのモジュールリストを表示
$ lsmod
===========================
Module Size Used by
arc4 1745 2
rt2800usb 17886 0
rt2800lib 71839 1 rt2800usb
rt2x00usb 8517 1 rt2800usb ### 多分ドライバ
rt2x00lib 36704 3 rt2x00usb,rt2800lib,rt2800usb
mac80211 479400 3 rt2x00lib,rt2x00usb,rt2800lib
crc_ccitt 1153 1 rt2800lib
cfg80211 386508 2 mac80211,rt2x00lib
rfkill 16651 1 cfg80211
snd_bcm2835 18649 0
snd_pcm 73475 1 snd_bcm2835
snd_seq 53078 0
snd_seq_device 5628 1 snd_seq
snd_timer 17784 2 snd_pcm,snd_seq
snd 51038 5 snd_bcm2835,snd_timer,snd_pcm,snd_seq,snd_seq_device
uio_pdrv_genirq 2958 0
uio 8119 1 uio_pdrv_genirq
===========================
### USBデバイスの表示
$ lsusb
===========================
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 0411:01ee BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM2 Wireless LAN Adapter [Ralink RT3070] ### 無線LAN
===========================
### 無線LANinterfaceの確認
$ ifconfig
===========================
...
wlan0 Link encap:Ethernet HWaddr cc:e1:d5:4d:35:16
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
===========================
### アクセスポイントのスキャン
$ sudo iwlist wlan0 scan | grep ESSID
===========================
ESSID:"HTC J butterfly"
ESSID:"pwr-q8985fc-1"
ESSID:"47B74B6D4CAF52A74370AEC5332D1B3B"
ESSID:"0024A5EFDA70_G-1"
ESSID:"0024A5EFDA70_G"
ESSID:"rv440k-8ff123-2"
ESSID:"rv440k-8ff123-1"
===========================
設定ファイルを編集する
いろんな参考ページを見ると様々な設定をしているようだが以下で接続できた。
[raspberry pi]
### ネットワーク・セキュリティキーの暗号化 wpa_passphrase 'ESSID' 'パスワード'
### 値は例
sudo wpa_passphrase 'HTC J butterfly' 'hogehoge'
===========================
network={
ssid="HTC J butterfly"
#psk="hogehoge"
psk=hogehoge66104835b73850d415a8e6bfwo39jw8k96729c9wd9wjb0fc30b2
}
===========================
### /etc/wpa_supplicant/wpa_supplicant.confの編集
$ sudo cp -ip /etc/wpa_supplicant/wpa_supplicant.conf /tmp
$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
===========================
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="HTC J butterfly"
#psk="hogehoge"
psk=hogehoge66104835b73850d415a8e6bfwo39jw8k96729c9wd9wjb0fc30b2
}
===========================
### interfacesの設定
$ sudo cp -ip /etc/network/interfaces /tmp
$ sudo vi /etc/network/interfaces
===========================
...
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
...
===========================
### ネットワークの再起動
$ sudo service networking restart
### 接続状況の確認
$ iwconfig wlan0
===========================
wlan0 IEEE 802.11bgn ESSID:"HTC J butterfly"
Mode:Managed Frequency:2.437 GHz Access Point: 00:EE:BD:EF:12:8E
Bit Rate=54 Mb/s Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=61/70 Signal level=-49 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:22 Missed beacon:0
===========================
### IPの確認
$ ifconfig wlan0
===========================
wlan0 Link encap:Ethernet HWaddr cc:e1:d5:4d:35:16
inet addr:192.168.1.17 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:364 errors:0 dropped:0 overruns:0 frame:0
TX packets:337 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:44638 (43.5 KiB) TX bytes:49435 (48.2 KiB)
===========================
これでMacからipアドレスにsshできる
参考
Ansibleで初期設定
Ansible でいろいろ初期設定。完全に自分用の覚え書き。
VNCでデスクトップを表示
VNCサーバの起動
- vncserverコマンドオプション
- :(数値) : ディスプレイ番号。:0, :1, :2などディスプレイ番号を指定する
- -geometry : [画面の横ピクセル数]x[画面の縦ピクセル数]
- -depth : 画面のビットカラー。 0 - 32で指定するが通常は以下を指定
- 8 : 256色 (最近のPCは通常で対応して無いことがあり、減色処理で逆に遅くなる可能性がある)
- 16 : 最大65536色
- 24 : 最大約1600万色
- これ以外の数値を指定するときちんと表示されないことが多い
### 必要なパッケージのインストール
$ sudo apt-get install tightvncserver
### VNCサーバの起動
$ vncserver :1 -geometry 1280x800 -depth 24
===========================
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n ### yにするとviewのみで操作できないモードのパスワードを設定する
New 'X' desktop is raspberrypi:1
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:1.log
===========================
Macから接続
- [移動] -> [サーバへ接続]
- サーバのIPアドレスとポートは (5900 + ディスプレイ番号) を入れて接続を押す
- vnc://192.168.11.14:5901
- 先ほど入力したパスワードを入れて接続を押す
- デスクトップが表示される
参考
Bluetooth
Bluetoothの設定について。
用意したもの
- LBT-UAN04C1BK
- ELECOM Logitec製のBluetooth USB アダプタ
- BSKBB23BK
- BUFFALO製Bluetoothキーボード
- M-BT12BRSV
- ELECOM製Bluetoothマウス (接続未確認)
必要なパッケージのインストール
$ sudo apt-get update
$ sudo apt-get install bluetooth bluez bluez-utils bluez-compat python-gobject blueman
Bluetoothでネットに接続する
既に無線LAN使えているのにBluetoothでもネットに繋ぐ必要はあるのかという疑問はひとまず置いておきます。
bluez-simple-agentを修正
$ cp -ip /usr/bin/bluez-simple-agent /tmp
$ sudo vi /usr/bin/bluez-simple-agent
$ diff -u /tmp/bluez-simple-agent /usr/bin/bluez-simple-agent
===========================
--- /tmp/bluez-simple-agent 2012-05-06 10:20:44.000000000 +0900
+++ /usr/bin/bluez-simple-agent 2015-08-29 11:32:25.973677356 +0900
@@ -89,7 +89,7 @@
manager = dbus.Interface(bus.get_object("org.bluez", "/"),
"org.bluez.Manager")
- capability = "KeyboardDisplay"
+ capability = "DisplayYesNo"
parser = OptionParser()
parser.add_option("-c", "--capability", action="store",
===========================
Bluetoothアダプタを接続する
接続されると以下表示される
$ dmesg
===========================
[ 935.594710] Bluetooth: HCI device and connection manager initialized
[ 935.594735] Bluetooth: HCI socket layer initialized
[ 935.594751] Bluetooth: L2CAP socket layer initialized
[ 935.594935] Bluetooth: SCO socket layer initialized
[ 935.611456] Bluetooth: RFCOMM TTY layer initialized
[ 935.611514] Bluetooth: RFCOMM socket layer initialized
[ 935.611572] Bluetooth: RFCOMM ver 1.11
[ 935.613637] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 935.613660] Bluetooth: BNEP filters: protocol multicast
[ 935.613689] Bluetooth: BNEP socket layer initialized
[ 1083.114862] usb 1-1.5: new full-speed USB device number 5 using dwc_otg
[ 1083.390314] usb 1-1.5: New USB device found, idVendor=0a12, idProduct=0001
[ 1083.390341] usb 1-1.5: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 1083.390358] usb 1-1.5: Product: CSR8510 A10
[ 1083.428219] usbcore: registered new interface driver btusb
===========================
$ hciconfig
===========================
hci0: Type: BR/EDR Bus: USB
BD Address: 00:09:DD:42:89:92 ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING PSCAN
RX bytes:929 acl:0 sco:0 events:45 errors:0
TX bytes:928 acl:0 sco:0 commands:45 errors:0
===========================
### デバイスを検出。MACアドレスをメモする。
$ sudo hcitool scan
===========================
Scanning ...
XX:XX:XX:XX:XX:XX ftakao2007 の MacBook Air
YY:YY:YY:YY:YY:YY ftk_iPhone
===========================
### ペアリング。iPhoneの画面に475411(毎回違う数値)が表示される。
### iPhoneに表示されあペアリングを押した後にターミナル上でyesと入力してEnter
$ sudo bluez-simple-agent hci0 YY:YY:YY:YY:YY:YY
===========================
RequestConfirmation (/org/bluez/3095/hci0/dev_4C_8D_79_82_CE_E0, 475411)
Confirm passkey (yes/no): yes
Release
New device (/org/bluez/3095/hci0/dev_4C_8D_79_82_CE_E0)
===========================
### ペアリングを保持する
sudo bluez-test-device trusted YY:YY:YY:YY:YY:YY yes
### bluetooth用のインタフェース追加
$ cp -ip /etc/network/interfaces /tmp
$ sudo vi /etc/network/interfaces
$ diff -u /tmp/interfaces /etc/network/interfaces
===========================
--- /tmp/interfaces 2015-08-29 12:00:06.708242683 +0900
+++ /etc/network/interfaces 2015-08-29 12:01:04.567838612 +0900
@@ -5,6 +5,8 @@
allow-hotplug eth0
iface eth0 inet manual
+iface bnep0 inet dhcp
+
### no security
auto wlan0
iface wlan0 inet dhcp
===========================
### ネットワークに接続
$ sudo pand --search
### 参考ページにある以下のコマンドは一瞬つながるが直ぐ接続が切れてしまう。。
# $ sudo pand -c YY:YY:YY:YY:YY:YY -role PANU --persist 30
### 確認
$ ifconfig
===========================
bnep0 Link encap:Ethernet HWaddr 00:09:dd:42:89:92
inet addr:172.20.10.2 Bcast:172.20.10.15 Mask:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:57 errors:0 dropped:0 overruns:0 frame:0
TX packets:62 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5301 (5.1 KiB) TX bytes:5772 (5.6 KiB)
===========================
参考
- Raspberry PiでUSB/Bluetoothアダプタを使う
-
Raspberry PiからBluetoothを使ってiPhoneでテザリング
- bluez-simple-agentのソースを修正することについても記載あり
-
Raspberry Pi2による、アナログTVのSmartTV化
- 「Creating device failed: org.bluez.Error.AlreadyExists: Already Exists」 のエラー対処法
Bluetoothでキーボードを接続する
マウスの電源を入れ、ペアリングボタンを押した後以下のコマンドでscanする
### 先ほど登録していたiPhoneのデバイス削除。削除しなくても良い方法あるのかな。。
sudo bluez-test-device remove YY:YY:YY:YY:YY:YY
### MACアドレスの確認
$ sudo hcitool scan
===========================
Scanning ...
XX:XX:XX:XX:XX:XX Bluetooth Optical Mouse
===========================
### 信頼するデバイスとして登録。毎回ペアリングせずに済む
$ sudo bluez-test-device trusted XX:XX:XX:XX:XX:XX yes
### キーボードに接続
$ sudo bluez-test-input connect XX:XX:XX:XX:XX:XX
バックアップとリストア
バックアップはSDカードのデータをddで吸い出すだけ。
カードリーダにSDカードを挿入し、USBでMacに接続します。
結構時間がかかります。
### SDカードをumount
$ sudo diskutil unmountDisk /dev/disk2
===========================
Unmount of all volumes on disk2 was successful
===========================
### イメージの書き出し。「/dev/disk2」だとすごく遅いので「/dev/rdisk2」とする。
### Ctrl-t で進捗を表示できる
### ofで指定するデバイスを間違えるとMacが壊れる可能性がありますので十分注意してください!!
$ sudo dd bs=1m if=/dev/rdisk2 of=/tmp/2015-05-05-raspbian-wheezy.`date '+%Y-%m-%d'`.img
### リストアはインスールじと同様にddで戻す
### 圧縮しながらバックアップ
$ sudo dd bs=1m if=/dev/rdisk2 | gzip -c > /tmp/2015-05-05-raspbian-wheezy.`date '+%Y-%m-%d'`.gz
### 圧縮したバックアップファイルをリストア
### ofで指定するデバイスを間違えるとMacが壊れる可能性がありますので十分注意してください!!
$ gzip -dc < /tmp/2015-05-05-raspbian-wheezy.YYYY-mm-dd.gz | dd of=/dev/rdisk2
- 素のddは領域を利用しているかしていないかに関わらずSDカードと同等のサイズのファイルができてしまう
- 利用していない領域が多い場合は圧縮するとかなり容量を削減できる
- 32GBのSDだと素のddは32GBのイメージができる
- この時は圧縮すると1.7GBになった
- Macであればディスクユーティリティを使う方法のほうが安全で使いやすそう