Raspberry Pi 3 Model Bをヘッドレスでインストール

Amazon Prime Nowで、Raspberry Piを買った。キーボード、マウス、モニタを使わずにヘッドレスで、MacBook Air (Mac OS X El Capitan) を使ってRaspbianをセットアップした際のメモ。おそらくmacOSでも同じ方法でできるはず。買ったものは以下の2点。

  • Raspberry Pi 3 Model B:RSコンポーネンツ製とElement14製の2種類があり、仕様は同じ。Amazon Prime NowではRSコンポーネンツ製のみ取り扱いがなされていたので、こちらを購入。
  • Transcend製microSDカード:8GBあれば良いようだが、16GBを購入。Class10。

Raspberry Pi 3 Model B Raspberry Pi 3 Model B

USB電源は2.5A以上のものが推奨されているが、Amazon Prime Nowではこれを満たす製品の取り扱いがなく、自宅にあったAnker 20W 2ポート USB急速充電器(1ポートあたり最大2.4A)とUSBケーブルを流用。結果的に、負荷のかかる作業はしていないこともあってか、問題なく使えている。

  1. Raspberry Pi財団のページからOSのイメージファイルをダウンロード。NOOBSとRaspbianの2種類があるが、標準的なほうとされるRaspbianをダウンロード。1.5GB程度のzipファイルだったので、気長にダウンロード。
  2. ダウンロードしたら解凍。ただし、Mac OS X標準のGUIの解凍アプリやターミナルのunzipではうまく解凍できないので、ターミナルを起動して下記コマンドで解凍する(”2015-09-24-raspbian-jessie.zip”はダウンロードしたzipファイル名に適宜変更)。
  3. microSDカードをMacBookに挿す。挿す前後で下記コマンドを実行すると、microSDカードがどこにマウントされたか一目瞭然。Raspberry Pi財団の解説ページも参考に。
  4. マウントポイントが分かったら、一旦アンマウントして、ddコマンドを使って先ほど解凍したimgファイルをmicroSDカードに書き込む(diskN, rdiskNのNは上記で調べて得た番号に、”2015-09-24-raspbian-jessie.img” は解凍して得たzipファイル名に変更)。書き込みには時間がかかる。
  5. 書き込みが済んだらイジェクト。これで、microSDカードを取り外すことができる。
  6. microSDカードをRaspberry Piに挿入して、LANケーブルをつないで、USB電源ケーブルを挿す。電源ボタンはないので、ケーブルを挿せば電源が入る。なお、電源を入れる前にMacBookのターミナルで下記コマンドを実行しておくと、IPアドレスがどう振られているかが分かる。
  7. 電源を入れてしばらくしたら、再度上記コマンドを実行すると、追加されたものがRaspberry PiのIPアドレスと分かる。
  8. ターミナルを使ってRaspberry PiにSSHでログイン(192.168.xxx.xxxは上記で調べて得たRaspberry PiのIPアドレス)。piは初期ユーザ名。パスワードを求められたら初期パスワードraspberryを入力。
  9. ログインできたら、初期設定のツールを起動。この画面では、矢印キーやTabキーなどがカーソル移動に使える。
  10. 起動したら、Internationalisation Optionsでロケールの設定。デフォルトのen_GB.UTF-8のチェックを外し、en_US.UTF-8, ja_JP.EUC-JP, ja_JP.UTF-8にチェックを追加。
    Raspberry Pi 設定画面 Raspberry Pi 設定画面
    TimezoneはAsia→Tokyoと選択。
    Raspberry Pi 設定画面
    起動したときに、GUIが起動しないよう、Boot OptionsからDesktop / CLI→Consoleを選択。
    Raspberry Pi 設定画面

    Advanced Options→HostnameでRaspberry Piのホスト名を変更できる。
    Raspberry Pi 設定画面
    GUIを使うことはなさそうなので、Advanced Options→Memory SplitからGPUに割り当てるメモリを16GBに変更。
    Raspberry Pi 設定画面
    設定が終わったらFinishを選択すると、再起動される。
  11. 続いて、ユーザ設定。以下のコマンドでrootのパスワードを変更。

    次に、普段使うユーザ名を追加(hogehogeは自分のユーザ名に変更)。

    次に、下記コマンドで/etc/sudoersに以下の一行を追加(hogehogeは自分のユーザ名に変更)。


    さらに一旦ログアウトし、今作成したユーザ名hogehogeでログインし、デフォルトのユーザpiを削除しておく。

    なお、上記Boot OptionsでConsoleを選択しておかないと、ユーザpiでGUIが起動してしまいpiが削除できないので注意。
  12. 次に、Wi-Fiでネットワークに接続できるように設定する。まずは以下を入力(SSIDとPASSPHRASEは、それぞれ自分のWi-FiネットワークのSSIDとパスフレーズに適宜変更)。
  13. さらにviやnanoを使って、/etc/wpa_supplicant/wpa_supplicant.conf を下記のように追記する。以下はWi-FiネットワークがWPA2-PSKで暗号方式がAESの場合。

  14. 再起動して、IPアドレスがとれていれば設定完了。
  15. 自分の場合、ルータからRaspberry Piに静的にプライベートIPアドレスを割り振るように設定しているが、なぜか、そのIPアドレスに加えて、もう一つ動的にIPアドレスが振られていた。
    下記のコマンドで、次の設定を追加して再起動したところ、ルータで指定したIPだけが振られるようになった。

    192.168.xxx.xxxはRaspberry Piに割り振られるIPアドレス、192.168.yyy.yyyはルータ(ゲートウェイ)のIPアドレス、192.168.zzz.zzzはDNSサーバのIPアドレス(ルータのIPアドレスと同じことが多い。あるいはGoogle Public DNS (8.8.8.8や8.8.4.4) などを指定してもよい)

    なお、Jessieより前は、/etc/network/interfacesに設定を追加していたようだが、Jessieからは/etc/dhcpcd.confで設定するようになったらしい(/etc/network/interfacesを開くと、その旨表示される)。
  16. 続いて、Raspbianパッケージのアップデート。パッケージのダウンロードとインストールにだいぶ時間がかかる。
  17. 自分の場合、raspi-configでInternationalisation Options関係の設定をすると、下記のメッセージが表示された。

    下記のコマンドで/etc/environmentを編集して次の一行を追加したら、エラーが出なくなった。

フォローする