Raspberry Pi 3(Model B RS版)を購入したので、環境構築からLチカまでのメモを書く。
…と思ったが環境構築だけでけっこうな量になったのでLチカは別にする。

用意するもの

  1. Raspberry Pi 3 Model B
  2. microSDカード
    今回は32GBのを使ったが8GBもあれば十分なはず。
  3. PC
    microSDカードにOSを焼くために必要。あとSSHするためにも必要。今回はUbuntu 16.04を使用。
  4. microSDカードライタ
    microSDカードにOSを焼くために必要。
  5. ACアダプタ
    手元にあった1Aのを使った。Power Supply - Raspberry Pi Documentationでは2.5A以上を推奨みたいに書いてある。
    Raspiの電源コネクタはmicroUSBなので、これに挿せるものを用意しておく。

OSをmicroSDカードに焼く

Raspbianのダウンロード

Ubuntu16.04で作業する。

RasPi標準OS。Debianベース。

Download Raspbian for Raspberry Piから"Raspbian Jessie with desktop"を落とす。Torrentが早いはず。 落としたら解凍しておく。imgファイルになる。

microSDカードの準備

Ubuntu16.04で。

  1. 先に df -h をしておく

  2. microSDカードライタにmicroSDカードを挿してPCにつなぐ

  3. 再び df -h する

  4. 新しく加わった行の左端の /dev/sdX1 (Xはbとかcとか)のような表示がmicroSDカードなのでこれを覚えておく

  5. microSDカードをアンマウントしておく

    sudo umount /dev/sdX1
    
  6. microSDカードをFAT32にフォーマット
    やらなくてもいいかもしれないが。gpartedでやった。
    フォーマットするデバイスがmicroSDカードに間違いないか、よく確かめること。ミスると関係ないデバイスをフォーマットするので。

なお、上のように df -h で検出できるのはmicroSDカードが自動的にマウントされる場合だけのはず。
2回目の df -h で、新しい項目が出ないようなら、代わりに lsblk をすれば出る。

microSDカードに焼く

これもUbuntu16.04で。ddで焼く。microSDカードはアンマウントしたまま。ファイル名は先ほど落として解凍したものを書く。

sudo dd bs=4M if=2017-06-21-raspbian-jessie.img of=/dev/sdX

たぶんbsの指定はいらないが、公式に書いてあるのでその通りにやる。
注意するのは、先ほどmicroSDカードは /dev/sdX1 のように出てきたと思うが、ddでの指定は /dev/sdX とすること。

Installing operating system images - Raspberry Pi DocumentationInstalling operating system images on Linux - Raspberry Pi Documentationを見ればわかる。

書き込みが終わったらmicroSDカードライタごとPCから外す。

ssh関連の設定

普通はこれからRaspiをモニタやキーボードとつないで操作する。または有線LANでつないでsshして操作する。
だが面倒だし、せっかくRaspi3には無線LANがついてるので、無線でつないでsshする。
すぐできると思ったがけっこう面倒だった。
以下もすべてUbuntuでの作業。

  1. もう一度、microSDカードライタをPCに挿す

  2. df -h する

  3. microSDカードがマウントされていることを確認。されてないならマウントする
    ddしたあとは /dev/sdX1 はブート領域になっていて、 /dev/sdX2 がOSになっていた。環境によって違うかもしれないので、OSの入っている場所を確認しておく。(容量をみればわかる。大きな方がOS。)
    マウントされている場合は df -h したときに /dev/sdX2 (OSの入っているパーティション)に対応する行の右端に、どこのディレクトリにマウントされているかが表示される。
    マウントするときは以下のようにする。

    sudo mkdir /mnt/sdcard
    sudo mount -t vfat /dev/sdX2 /mnt/sdcard
    
  4. /boot/ssh というファイルを作成する
    raspberry pi 3でSSH接続できない? - Qiitaを参照。
    /mnt/sdcard/ にRaspbianがマウントされているとして

    touch /mnt/sdcard/boot/ssh
    
  5. wpa_supplicantの設定 使いたい無線LANのSSIDとパスワードを用意して

    wpa_passphrase <SSID> <PASSWORD>
    

    これをやると

    network={
     ssid="......"
     #psk="......"
     psk=......
    }
    

    のようなのが出る。

  6. wpa_supplicantの設定(つづき)

    cd /mnt/sdcard/etc/wpa_supplicant/
    sudo cp -a wpa_supplicant.conf wpa_supplicant.conf.bak
    sudo vim wpa_supplicant.conf
    

    このファイルの末尾に、上の出力をまるごとコピペして保存。

  7. アンマウント

RasPi起動

microSDカードとACアダプタを挿して起動。

sshで接続

  1. RaspiのIPアドレスを確認
    arp-scanでやった。他に方法を知らない。
    Ubuntuで ip a (古いPCは ifconfig かも)して自分のPCのネットワークインターフェースを確認。 enp0s31f6 とか wlan0 とか eth0 とかそういうやつ。
    このインターフェースに対し

    sudo arp-scan -l --interface <INTERFACE>
    

    これでネットワーク内のデバイスが出てくるはず。どれかがRaspi…のはず。何回かやらないと出てこない気もする。

  2. 接続
    上で確認したIPアドレスにsshする。初期設定ではユーザ名: pi、パスワード: raspberry。

    ssh -v pi@<IP_ADDRESS>
    

    "Are you sure you want to continue connecting (yes/no)?"とか聞かれたらyesと答えておく。そのあとパスワードを聞かれるのでraspberryと打つ。
    これでログインできるはず。

基本設定

以下はRaspiにsshしての作業。なので結局Ubuntu。

sudo raspi-config

設定項目がいろいろあるが、最低限の設定だけ行う。
raspi-config - Raspberry Pi Documentation参照。

パスワードの変更

"1 Change User Password"を選択して変更。(これやってもユーザ名はpiのまま。)

ファイルシステム拡張

"7 Advanced Options" を選択し、その中の "A1 Expand Filesystem"を選択。

再起動

"Finish"して再起動。
これでとりあえず使えるようになったはずだ。

なお電源を落とすときは

sudo poweroff

としたあと、しばらく待って、黄色い光が消灯してから電源ケーブルを抜けばいい。

参考