ハード
- Raspberry pi 2 B+
- micro SD 8GB
- 無線LANアダプター(WDC-150SU2MBK)
- Macbook (SDカード書き込み用)
Raspbianの書き込み
https://www.raspberrypi.org/downloads/raspbian/ からRASPBIAN STRETCH WITH DESKTOPをダウンロード。今回のダウンロードは2017-09-07-raspbian-stretch.zipというファイル。念のためにチェックサムを確認。
$ shasum -a 256 tmp/2017-09-07-raspbian-stretch.zip a64d742bc525b548f0435581fac5876b50a4e9ba1d1cd6433358b4ab6c7a770b tmp/2017-09-07-raspbian-stretch.zip
SDカードを挿入し以下のコマンドでデバイス名を取得(今回は /dev/disk2)
$ diskutil list (略) /dev/disk2 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *8.1 GB disk2 1: Windows_FAT_32 boot 66.1 MB disk2s1 2: Linux 8.0 GB disk2s
デバイスを確認したらddで書き込むためにアンマウント
$ diskutil unmount /dev/disk2s1
ddコマンドを使いイメージを書き込む
$ sudo dd bs=1m if=tmp/2017-09-07-raspbian-stretch.img of=/dev/disk2 conv=sync
最近のRaspbianはインストール直後はssh接続ができないようになっている。セットアップ時にsshは使いたいので、出来上がったbootフォルダ内に ‘ssh’ というファイルを作っておく。
$ touch boot/ssh
初期設定
ssh接続
sshで接続するのだが、DHCPで取得しているIPアドレスを調べる必要がある。ディスプレイとキーボドが繋がっていれば、ログインしてifconfigで調べればeth0(有線のイーサネットポート)のアドレスが分かるが、ディスプレイ無しで調べるのは以下の方法で。
$ ping 192.168.0.255 $ arp -a
一行目が、自分のネットワークのブロードキャストアドレス。二行目が、自分のPCのarpテーブルを表示する。arpで調べたアドレスの中に、MACアドレスがb8:27:ebで始まっているものがあるはず。これが、raspberry piのベンダーコードなので、これに割り当てているIPアドレスが今回DHCPで取得したアドレスとなる。今回は192.168.0.244だった。
$ ssh pi@192.168.0.244
初期ユーザはpiでパスワードはraspberry。とりあえずこれでログインするが、初期設定が終わったらこのユーザは停止する。
raspi-configによる初期設定
$ sudo raspi-config
上記のコマンドによる、初期設定。ここで変更したのは、パスワード、ホストネーム、ローカリゼーション、アドバンスドオプションのSDカードの拡張ぐらい。終了すると自動的に再起動。
アップデート
/etc/apt/source.listに近場のリポジトリを登録
deb http://ftp.jaist.ac.jp/raspbian/ stretch main contrib non-free rpi
$ sudo aptitude update $ sudo aptitude safe-upgrade
ネットワークの状況にもよるが、数分から数十分だと思う。
$ sudo rpi-update
ファームウェアの更新もしておく
$ sudo reboot
再度リブートしておく
ネットワークの設定
普段は無線LANの運用をするので、以下はその設定。Raspberry Pi 2には無線インターフェイスはないので、USBアダプタを接続。あっさりとwlan0として認識した(/sbin/ifconfigで確認)。固定IPアドレスを設定する。場所は/etc/network/interfacesとなる。今回は以下の行を追加。
auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.0.79
netmask 255.255.255.0
gateway 192.168.0.1
dns-domain mirahouse.jp
dns-nameservers 192.168.0.75
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
無線はwlan0のインターフェース。eth0は有線インターフェースで、無線がつながらない時に使うことになるはずなので、dhcpで残しておく。
無線の最終行はセキュリティの設定となる。wpa_supplicant.confにSSIDやPSKの設定を入れておく。具体的には以下のコマンドで設定。
sudo wpa_passphrase SSID PASSPHRASE | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf
問題はパスフレーズ。’!’などの文字が入っているとコマンドが正常に認識されないので、SSIDやパスフレーズなどは’で囲っておく。
ファイルのパーミッションは念のために600にしておくのが良いだろう。(上のコマンドのままだとPSKの平文が残る。念のためにhistoryも消しておくのが良かろう)
ユーザの作成とSSH設定
新たにユーザを作成する。group sudoにも追加して、sudoできるようにしておく。ついでにrootのパスワードも変更しておく。
$ sudo useradd -m -k /etc/skel -d /home/hoge -s /bin/bash hoge $ sudo passwd hoge $ sudo gpasswd -a hoge sudo $ sudo passwd root
すでにある、sshの公開鍵をコピーしてsshのパスワード認証を使えないようにする。
(Raspberry pi) $ sudo mkdir /home/hoge/.ssh $ sudo chown hoge.hoge /home/hoge/.ssh $ sudo chmod 700 /home/hoge/.ssh (クライアント側) $ scp .ssh/*.pub 192.168.0.79:~/.ssh/ (Raspberry pi ここから新しいユーザでログイン) $ cd .ssh $ cat id_edcsa.pub >>authorized_keys $ cat id_rsa,pub >>authorized_keys
一旦ログアウトして、公開鍵認証でsshできることを確認する。問題ないことを確認したら、/etc/ssh/sshd_configに以下の行を追加。再起動かsshdの再起動を行う。
PasswordAuthentication no
piユーザからsudoのグループを外しておく
sudo gpasswd -d pi sudo