何回かやってるので主に自分用メモ。raspi2 + raspbian で無線LANに ssh できるようになるまで。
- raspbian のイメージを sd card に焼いてセット
- 無線LANは GW-USNANO2A を使った。raspbian から認識すればどれでも良いと思う。
有線でログイン
まず有線LANに繋ぐ。dhcpd が割り振った IP を見つける。
$ sudo nmap --open -sV -p22 192.168.24.0/24
...
Nmap scan report for 192.168.24.110
Host is up (0.0031s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u2 (protocol 2.0)
MAC Address: B8:27:EB:C6:67:D6 (Raspberry Pi Foundation)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
...
それっぽい IP が見つかったので初期 user / pass ( pi / raspberry ) で繋ぐ。面倒くさいので公開鍵転送しておく。
$ ssh-copy-id pi@192.168.24.110
pi@192.168.24.110's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'pi@192.168.24.110'"
and check to make sure that only the key(s) you wanted were added.
ログインしたら passwd でパスワード変更しつつ、今後は鍵でログインするため /etc/ssh/sshd_config に PasswordAuthentication no
しとく。また環境により名前解決で時間がかかる場合があるので sshd_config に UseDNS no
を追記し sshd を restart。
諸々最新にする
apt で最新のパッケージを入れる & ファームウェアを更新する。
日本なら近くのサーバを使った方が早いので、/etc/apt/sources.list
を書き換える。
# deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
deb http://ftp.jaist.ac.jp/raspbian/ wheezy main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
deb-src http://archive.raspbian.org/raspbian/ wheezy main contrib non-free rpi
$ sudo apt-get update && sudo apt-get -y dist-upgrade && sudo rpi-update
...
終わったら一度再起動する。
$ sudo reboot
raspi-config で各種設定
いつもやるのはこんな感じ
-
- Expand Filesystem でファイルシステム拡張。しないと rootfs がすぐ容量埋まる (この時点で97%使ってた…)
-
- で Timezone を Asia / Tokyo へ
-
- で SPI と I2C を有効にする。
- GPU 使わないなら 8. で GPU のメモリ割り当てを下げる。headless にしてもいいけどとりあえず 64 から最小の 16 へ。なおこの辺の設定は /boot/config.txt に書かれる。
再起動する。
vim を入れる
そろそろ vim.tiny だと辛くなってくると思うので vim.basic を入れとく。また $EDITOR も nano から vim.basic へ。
$ sudo apt-get install vim
$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 10 manual mode
Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode
無線 LAN の設定
lsusb で調べる。
$ 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 2019:ab2a PLANEX GW-USNano2 802.11n Wireless Adapter [Realtek RTL8188CUS]
認識してる。関係ないけど最近の Realtek のチップは蟹の刻印はあるんだろうか。
強さ、忍耐、順応性を通して、リアルテックは蟹の精神を取り入れています。
そうだったのか、いい話(?)だった。
wifi の設定を書き込む。
$ sudo sh -c 'wpa_passphrase SSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf'
なんか生パスワードがコメントアウトされ書き込まれるというお節介機能があるのでその部分は消しておく…。
設定反映する。
$ sudo /etc/init.d/networking restart
$ ifconfig
...
wlan0 Link encap:Ethernet HWaddr 00:22:cf:f4:d8:2e
inet addr:192.168.24.112 Bcast:192.168.24.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:41 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14704 (14.3 KiB) TX bytes:6797 (6.6 KiB)
認識された。あとは IP アドレスを固定にする。dhcpd 側で MAC アドレスから割り振るもよし、/etc/network/interfaces を弄るもよし。今回は後者で。
$ sudo vim /etc/network/interfaces
...
auto wlan0
allow-hotplug wlan0
#iface wlan0 inet manual
iface wlan0 inet static
address 192.168.24.49
netmask 255.255.255.0
gateway 192.168.24.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
...
設定反映する。
$ sudo /etc/init.d/networking restart
$ ifconfig
...
wlan0 Link encap:Ethernet HWaddr 00:22:cf:f4:d8:2e
inet addr:192.168.24.49 Bcast:192.168.24.255 Mask:255.255.255.0
...
設定できた。あとは ssh 等で繋がることを確認した後、有線LANを抜いて再起動し、繋がればおk。
良く切れる
なんか sshd 繋いでると良く切れるお…。GW-USNANO2A のパワーマネジメント機能がこまめに切ってくれる嬉しい設計…だかららしい。しかも iwconfig で見ると Power Management:off
になってるのでくせものぽい…。
/etc/modprobe.d/8192cu.conf
に
options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1
を書き込んで再起動。参考: Raspberry Piで無線LANの反応が悪い時の対処法
その他・開発に向けて
ssh するとき名前打つのが面倒くさいので ~/.ssh/config に書いておく
Host pi
User pi
HostName 192.168.24.49
raspi 上の開発、raspi に最新の vim 等を入れたりしていろいろやってみたけど、手元の mac から sshfs でマウントして開発するのが、今のところ一番やりやすいという結論に。