いまさらですが手元のRaspberry Piが箱のなかで眠ってたので、ちょっといじってみようと思いました。箱から出したら、ケーブル類が一切なかったのでとりあえず用意できる最低限のものを用意して設定に入りました。
用意したもの
- Raspberry Pi B+
- microUSBケーブル(エネルギー供給)
- 有線LANケーブル(ネットワーク接続用)
- microSD 4G (なかったのでセブン-イレブンで買った。割高...)
- Macbook Air(セットアップ用)
- (途中で、無線接続するためにBUFFALO 無線LAN子機 コンパクトモデル 11n技術・11g/b対応 WLI-UC-GNMを利用しますが、初期セットアップでは不要です)
早速、OSを入れていきます。
OSイメージをダウンロード
Raspberry PiのダウンロードページからOSをダウンロードしてきます。ネットに解説の多いRasbianを入れることにしました。
と、思ったのですがダウンロードに失敗する。
何度やっても失敗するので、検索して北陸先端科学技術大学院大学のミラーサイトからダウンロードすることにしました
SDカードにOSイメージをセット
解説サイトはいくつかあったのですが、ちょっと迷ったのでここは公式の解説に従うことにします。
まず、SDカードをMacに差し込み、diskutil list
で接続しているディスクの情報を確認します。
$ diskutil list
僕の場合は、/dev/disk4
でした。これをdiskutilでアンマウントします。
$ diskutil unmountDisk /dev/disk4
更に、イメージを書き込みます。
$ sudo dd bs=1m if=2014-09-09-wheezy-raspbian.img of=/dev/disk4
dd はファイルの変換とコピーを行うコマンドです。 bs は1度に指定したバイトのブロックを読み書きする。 if は入力ファイル、 of は出力ファイルです。コンソールに何も表示されない状態のまま、50分ほど待ちました。
3125+0 records in
3125+0 records out
3276800000 bytes transferred in 2817.832759 secs (1162880 bytes/sec)
書込みできました!
Rapsbianに接続する
早速、Raspberry piを有線ケーブルでルータにつなぎます。そして、ipを確認します。
ルータから接続している機器のipを探す
RapsbianのIPアドレスを探したくてルータにアクセスしました。
BuffaloのAirStation WZR-HP-G301NH だと、管理画面トップページの「ユーティリティ機能」のところでDHCPで接続している機器を見つけることが出来ました。
sshでログイン
Rapsbianはsshの初期idが pi 、パスワードが raspberry と設定されているので、それで接続をしてみます。
$ ssh pi@192.168.3.10
pi@raspberrypi ~ $
出来ました!次は、無線LANでSSHを利用できるようにしていきます。
無線LANで接続するための準備
まず、有線LANに接続した状態でRaspberry Piを起動します。そして、無線LANアダプタを接続します。今回は、手頃な価格と利用者も多いことから、BUFFALO 無線LAN子機 コンパクトモデル 11n技術・11g/b対応 WLI-UC-GNMにしました。
下記のコマンドを打ってusbに接続されていることを確認します。
pi@raspberrypi ~ $ 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 004: ID 0411:01a2 BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070]
Raspberry PiのWPAの設定をしていきます。下記のコマンドで設定情報を確認することができます。
pi@raspberrypi ~ $ wpa_passphrase [SSID] [PASSPHRASE]
network={
ssid="[SSID]"
#psk="[PASSPHRASE]"
psk=c505ed74c79f4723e9809c6e167461d588d1e40c20f802590514b95de6ddcb71
}
更に、上記設定を/etc/wpa_supplicant/wpa_supplicant.conf
というファイルに書き込みます。
pi@raspberrypi ~ $ sudo sh -c "wpa_passphrase [SSID] [PASSPHRASE] >> /etc/wpa_supplicant/wpa_supplicant.conf"
pi@raspberrypi ~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="[SSID]"
#psk="[PASSPHRASE]"
psk=c505ed74c79f4723e9809c6e167461d588d1e40c20f802590514b95de6ddcb71
}
無線LAN接続
Raspberry Piの電源を切り、有線LANを外した状態で再度起動します。少し待つと、無線ルーターが新しいIPを割り振っていました。新しいIPを確認したら、そちらにSSH接続してみます。
IPアドレスの確認
$ ssh pi@xxx.xxx.xxx.xxx
pi@raspberrypi ~ $
接続できました〜。
全然、機能積んでないんですが、最小構成で電源ケーブル1つあればRaspberry Piに接続できるので気楽です!
Raspberry Piの初期設定
raspi-configから初期設定する
pi@raspberrypi ~ $ raspi-config
- Expand Filesystemを選択する
- Internationalisation Options > Change Locale > ja_JP.UTF-8で日本語環境に。
- Internationalisation Options > Change Timezone > Asia > Tokyoで日本時間に。
下記のサイトを参考にしました。Expand Filesystemをやらないと、RasbianがSDメモリを十分に利用してくれないようですです。
パッケージの更新
とりあえず更新しておく。
$ sudo apt-get update
$ sudo apt-get upgrade
vimの設定
普段はvimを使うことが多いので設定しておきます。
$ sudo apt-get install vim
$ sudo update-alternatives --set editor /usr/bin/vim.tiny
hostnameの変更
下記コマンドでraspberrypiのところを好きな名前に変更するraspi01とか。管理しやすくするためです。
$ sudo vi /etc/hostname
$ sudo vi /etc/hosts
下記コマンドで再起動する。
$ sudo shutdown -r now
SSHのオートログイン設定
Rasbianの.ssh/authorized_keys
に公開鍵を書き込んで置くと、秘密鍵を指定してSSH接続した時にパスワード認証が不要になります。これを便利に行う、ssh-copy-idというコマンドがあるので、それを利用して設定を行います。
$ brew install ssh-copy-id
$ ssh-copy-id -i ~/.ssh/id_rsa.pub pi@xxx.xxx.xxx.xxx
SSHの簡易接続設定
Mac側の~/.ssh/config
に下記を追記します。先ほどの、オートログイン設定を利用するためにIdentityFileで秘密鍵を指定します。
Host pi
HostName [Raspberry piのIP]
port 22
User pi
Protocol 2
IdentityFile ~/.ssh/id_rsa
これで、以降は、ssh pi
でパスワード認証も不要で接続できるようになります。
DHCP環境でもhostnameでアクセスできるようにavahiをインストールする
avahiというツールを使って、DHCP環境でもホスト名でリモート接続ができるようにします。
$ sudo apt-get install avahi-daemon
host名の後に.localをつけてpingを打って設定ができているか確認します。
$ ping raspi01.local
PING raspi01.local (192.168.3.12) 56(84) bytes of data.
64 bytes from raspi01.local (192.168.3.12): icmp_req=1 ttl=64 time=0.183 ms
macから接続してみます。
$ ping raspi01.local
PING raspi01.local (192.168.3.12): 56 data bytes
64 bytes from 192.168.3.12: icmp_seq=0 ttl=64 time=55.977 ms
できました!configも下記のように変えると良いかも。
Host raspi01.local
HostName raspi01.local
Port 22
User pi
Protocol 2
IdentityFile ~/.ssh/id_rsa