2017年5月5日金曜日

キーボード、ディスプレイ、有線LANを接続せずにRaspberry Piをセットアップ

Raspberry Pi 使ってますか?

Raspbianのインストールのときだけ、キーボードやディスプレイや有線LANのケーブルを用意するのは面倒ですよね。sshと無線LANが使えるようになったら用無しになるのに。

そこで、別のLinuxマシンでsshと無線LANの設定までを行なったSDカードを用意する方法を紹介します。私はCentOS 6.8を使いましたが、どれを使っても大差無いと思います。

用意するもの

  • Linuxマシン
    • インターネットに接続されていること
    • SDカードリーダーが接続できること
    • wpa_supplicantパッケージがインストールされていること
    • tcpdumpパッケージがインストールされていること
  • SDカード (8GB)
  • SDカードリーダー
  • Raspberry Pi
  • 無線LANアダプタ

Linuxマシンでの作業1 RaspbianのSDカード作成

  1. Raspbianをダウンロード
    • → ~/Downloads/2017-04-10-raspbian-jessie-lite.zip
  2. 展開
    • cd ~/Downloads
    • unzip 2017-04-10-raspbian-jessie-lite.zip 
  3. SDカードを接続、デバイス名を確認
    • dmesg
      • → 私の場合は/dev/sdhでした。以下/dev/sdhを読み替えてください。
  4. 以下rootで作業
  5. SDカードのパーティションがマウントされていればアンマウント
    • umount /dev/sdh1
    • umount /dev/sdh2
  6. 書き込み(デバイス名間違いに注意!!)
    • dd if=2017-04-10-raspbian-jessie-lite.img of=/dev/sdh bs=1M
    • sync; sync

Linuxマシンでの作業2 sshと無線LANの設定

  1. SDカードを一旦抜いて再接続
    • df
      • →sdカードのパーティション2つが自動マウントされていることを確認します。私の場合は/media/bootと/media/ f2100b2f-ed84-4647-b5ae-089280112716でした。
      • 自動マウントされていなければマウント
  2. sshの有効化
    • touch /media/boot/ssh
  3. 無線LANの設定ファイルをLinux上で作成
    • wpa_passphrase SSID passphrase > /tmp/wpa.txt
  4. 必要に応じて/tmp/wpa.txtを編集
    • 私の場合はSSIDをブロードキャストしていないので、scan_ssid=1を追加しました。
    • 生のパスフレーズがコメントとして残っているので削除した方がよいでしょう。
  5. SDカード上の無線LAN設定ファイルに追記
    • cat /tmp/wpa.txt >> /media/f2100b2f-ed84-4647-b5ae-089280112716/etc/wpa_supplicant/wpa_supplicant.conf
  6. SDカードをumount
    • umount /dev/sdh1
    • umount /dev/sdh2

Raspberry Pi起動

  1. SDカードをRasbperry Piに挿入
  2. LinuxマシンでDHCPパケットを確認しておく
    • tcpdump port 67 or port 68 -e -n -vvv
  3. Raspberry Pi電源投入
    • 赤いLEDが光る
    • 緑のLEDが点滅
  4. tcpdumpの出力からIPアドレスを確認
11:04:03.835154 00:01:8e:2e:7a:b4 > Broadcast, ethertype IPv4 (0x0800), length 590: (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 576)
192.168.20.1.bootps > 255.255.255.255.bootpc: [udp sum ok] BOOTP/DHCP, Reply, length 548, xid 0xc27a435c, Flags [none] (0x0000)
Your-IP 192.168.20.17
Client-Ethernet-Address cc:e1:d5:17:e9:6d
(略)


これで、Linuxマシンからsshで接続できます。

  • ssh pi@192.168.20.17

0 件のコメント:

コメントを投稿

ラズパイでLet's Encryptの証明書更新に失敗

ラズパイを自宅用の各種サーバー(DNS、メール、ウェブ他)として使っています。httpsのサーバー証明書の発行・更新にはLet's Encriptを使っています。今日たまたま証明書を更新しようとすると下記のエラーに陥りました。何度やっても失敗します。 ma...