raspberry pi を手に入れた

実はarduinoも持っているのだけれど、どう作るとなにが実現できるのか自分にはイメージがわきづらくて、ブレッドボードになんとなく刺したLEDを点滅させたきりになっていた。

そういう意味では、raspberry piはlinuxなので、サーバーとして使ったり、最初からついてる入出力端子から作ってみたい何かを想像しやすい。いろいろ試したので、今までにやったことをひとまずまとめておく。

osのinstall

raspberry piの公式サイトから、NOOBSなら内容をSDカードにコピー。 SDカードをraspberry piに刺したあと、電源を投入すればinstallできる。OSのimgをダウンロードした場合は、公式サイトのmacでimgからinstallするまでを参照。

初回はraspi-configという設定画面がひらくので、キーボードとssh設定、あとtimezoneの設定とかをした。設定が完了したら再起動しておわり。

設定画面は以下のコマンドでも起動することができる。

$ sudo raspi-config

参考: raspberry pi 初回起動と初期設定

raspberry piにmacからsshしてupdate

家でraspberry piの画面を表示するには、Wii UのHDMIケーブルでテレビとつなげるしかなくて、全然コンパクトじゃなかった。

基板に有線LANを刺し、raspberry pi 上でifconfigしてip addressを確認。そのaddressにpiユーザーでsshすることで、mac上からraspiを操作出来るようになるのだ。記念にmacからupdateなどをしておく。

@mac $ ssh pi@192.168.0.3
@raspberry $ sudo apt-get update
@raspberry $ sudo apt-get upgrade

無線lanの設定

buffaroのusb型無線LANを使って、有線LANを使わなくてもnetworkにつなげるように設定をする。 raspberry piのusb端子にまずは無線LANを刺して、有線LANは抜いておく。

lsusbというコマンドがあって、これで先ほどのusb型無線LAN自体を認識できているか確認できる。

$ 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 04d9:2011 Holtek Semiconductor, Inc.
Bus 001 Device 005: ID 0411:01a2 BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070]

無線LANをつなぐために以下二つファイルを編集する。名前の通り、networkのinterfaceと、無線LANの設定を行うファイルだ。

  • /etc/network/interfaces
  • /etc/wpa_supplicant/wpa_supplicant.conf

まずは/etc/network/interfacesのwifiの設定項目を編集する

defaultの設定部分をコメントアウトし、ipをmanualではなくdhcpを利用するようにするのと、wpa-roamではなくwpa-confにする。 それと、起動した時に自動でつながるようにallow-hotplugも設定する。 固定ipにしないのは、あとで名前で引けるようにするため。

allow-hotplug wlan0
iface wlan0 inet dhcp
#iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

次にアクセスポイントのssidとpasswordをwpa_passphraseコマンドに渡して、出力を設定ファイルに反映する。 ssidをraspberry パスワードをraspiとすると

$ sudo sh -c "wpa_passphrase raspberry raspi >> /etc/wpa_supplicant/wpa_supplicant.conf"
$ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid=raspberry
    #psk=raspi
    psk=2b1d17284c5410ee5eaae7151290e9744af2182b0eb8af20dd4ebb415928f726
}

反映したあと直接編集するのだが、ここが非常にはまりやすいポイント。 無線の方式や、設定項目によって、記載する内容が異なるので、自分の環境の方式を確認しながらやらなくてはならない。 例えばwifiがANY接続禁止にしているときは、scan_ssid=1 を追記することが必要など。 認証方式などはこのコマンドで確認出来る。

@raskam $ sudo iwlist wlan0 scan
・・・
IE: WPA Version 1
    Group Cipher : TKIP
    Pairwise Ciphers (1) : TKIP
    Authentication Suites (1) : PSK
・・・

(その他参考:Linuxで無線LAN)

設定が出来たら最後にwifiインターフェイスの再起動をして、iwconfigを見たり、pingを打ってネットにつながったか確認。

$ sudo ifdown wlan0
$ sudo ifup wlan0

$ iwconfig
$ ping 8.8.8.8

ホスト名でraspberry piを指定してssh出来るようにする

これを設定することで、ip addressが変わっても、同じ環境にある限り接続できるので便利になる。 これをAvahiを使って実現する。

$ sudo apt-get install avahi-daemon

ホスト名を/etc/hostnameに書くのと、/etc/hosts/にも編集をしておく

$ vim /etc/hostname
---
raskam
---
$ vim /etc/hosts
---
127.0.0.1 raskam
---

これで設定ができたら、再起動して、macからhostnameでssh接続が出来るかを確認する。無線LANで接続するときは、先ほど決めたhostnameに.localをつけないと接続出来ないことに気をつける。

@raspberry $ ps -aef |grep avahi
avahi     2126     1  0 07:16 ?        00:00:00 avahi-daemon: running [raskam.local]
avahi     2130  2126  0 07:16 ?        00:00:00 avahi-daemon: chroot helper
@mac $ ssh pi@raskam.local

raspbianのxwindowをmacで操作する

raspberry pi 側でtightvncserverをinstallして、起動する

$ sudo apt-get install tightvncserver
$ vncserver :1 -geometry 1024x768 -depth 24
そしてパスワードを設定

macでFinderからサーバーへ接続する項目で、vncとipと5901番portを以下のように入力すると、画面が表示されて操作ができるようになる

vnc://192.168.0.3:5901