10
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ラズパイ3 で「テレビもねぇ マウスもねぇ 有線LANって何者だ」な時のブートディスク作成

Last updated at Posted at 2017-08-03

テレビ(モニタ)も無い、マウスも無い、キーボードも無い。

そんな WiFi と MacBookPro と SD カードアダプタしかない「ど田舎」で、RaspberryPi3(Raspbian OS Lite)を新規セットアップ & SSH 接続を可能にするサバイバル設定方法。LAN ケーブルなんか、もちろんないよ。

TL;DR

ブートディスク(SD カード)にあらかじめ、「WiFi の接続設定ファイル」と「SSH 接続許可ファイル」を設置しておき、WiFi 経由でラズパイに SSH 接続して設定する。

Jessie Lite だけでなく Stretch Lite/Buster Lite でも同じ手順で動作しました。

TS;DR(サバイバル環境下でラズパイ3をセットアップする)

ヘッドレス1な RaspberryPi3 に Raspbian(Jessie Lite)を新規にインストールして WiFi 経由で SSH 接続する必要がありました。タイトルにあるような極めて限定された条件下で試行錯誤した結果をまとめました。(Buster Lite のより詳しい手順はこちら

  1. Mac で Raspbian OS のイメージをダウンロードする。ヘッドレス用途がメインなら軽量版の Lite を選ぶ。
    (ダウンロードしたファイルのチェックサム(SHA-256 の値)を確認したい場合は shasum -a 256 ファイル で確認する)

  2. Etcher でイメージを SD にコピーする。
    boot という名前で初期化される。書き込み後 Finder や /Volumes に表示されない場合は、SD カードリーダーを抜き差しする)

  3. SD カードの /boot 直下に ssh ファイルを置く。(空でよい)

    bash
    $ touch /Volumes/boot/ssh
    
  4. SD カードの /boot 直下に wpa_supplicant.conf ファイルを置き WiFi 設定を記載する。
    国コードがポイント。psk は""で囲うこと。

    bash
    $ sudo vi /Volumes/boot/wpa_supplicant.conf
    
    wpa_supplicant.confの内容
    country=JP
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    network={
    	ssid="<YOUR SSID>"
    	psk="<YOUR PASSWROD>"
    }
    
    • 既存のラズパイが別途ある場合は設定ファイルをコピーしても可能、その場合は /etc/wpa_supplicant/wpa_supplicant.conf にあるファイルをコピーすること。
    • ラズパイ3 の WiFi は 2.4GHz です。アクセスポイントが 5GHz だとつながらないので注意。
  5. SD カードをラズパイ3に挿して、電源投入。
    (ラズパイの LED が定期的に点滅している場合はエラーが発生しています。文末の参考文献参照)

  6. raspberrypi.local に PING を飛ばし、現れたらデフォルトのアカウント(ユーザーを "pi"、パスワードを "raspberry")で ssh 接続して設定を続ける。
    ping が戻ってこない場合、bonjour による名前解決が出来ていない可能性もあります。IP アドレスで ping を飛ばしてみたいと思うも「DHCP で IP わからん」系の場合、ラズパイの起動前・起動後でネットワーク上にラズパイがいるか arp コマンドを使って調べてみるのも手だと思います。)

    $ ssh -l pi raspberrypi.local
    The authenticity of host 'raspberrypi.local (fe80::0000:0000:0000:0000%en0)' can't be
    established.
    ECDSA key fingerprint is SHA256:og46cbmOXd36c3N4ntXXXXXXXXXXXXXXXXXXXXXXXXX.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'raspberrypi.local,fe80::0000:0000:0000:0000%en0' (ECDSA) to
    the list of known hosts.
    pi@raspberrypi.local's password: <パスワード>
    Linux raspberrypi 4.19.57+ #1244 Thu Jul 4 18:42:50 BST 2019 armv6l
    
    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.
    
    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable
    law.
    -bash: warning: setlocale: LC_ALL: cannot change locale (ja_JP.UTF-8)
    
    SSH is enabled and the default password for the 'pi' user has not been changed.
    This is a security risk - please login as the 'pi' user and type 'passwd' to set a new
    password.
    
    pi@raspberrypi:~ $ 
    pi@raspberrypi:~ $ sudo raspi-config
    

以上

設定のポイント

国コードを指定すること。国コードが指定されていないと、国ごとに許可された( WiFi の)周波数帯を特定できないため、接続先を解決できません。吸った揉んだしたのですが、ネットのどの情報も SSH の設定だけだったり、有線 LAN での初期セットアップ後が前提で、どこも「WiFi と SSH Ready な状態でブートディスクを作る」方法と「国コード」に言及していなかったので記事にしました。

検証環境(実績のある機器の型番など)

  1. MacBookPro と WiFi 環境
    • MacBookPro(Retina, 13in, Early2015, 8GB)
    • macOS Sierra(OSX 10.12.6)
    • 2.4GHz(g), WPA2-PSK+AES, BUFFALO
  2. RaspberryPi3
    • BCM2835, Rev.A22082
  3. ブランクの microSD カードと USB SD カードリーダー
    • Digio2 CRW-38M56BK(ナカバヤシ株)
    • Transcend 16GB microSD HC I
  4. ラズパイ用電源アダプタと電源用USBケーブル×1本
    • GCF315S-0630(株ケイエスワイ)×付属ケーブル

セットアップに普通は必要だけどないもの「HDMI モニタ、HDMI ケーブル、USB マウス、USB キーボード、HUB やルーター、LAN ケーブル、LAN アダプタ、OTG 対応の USB ケーブル」

参考文献

Wi-Fi

If a wpa_supplicant.conf file is placed into the /boot/ directory, this will be moved to the /etc/wpa_supplicant/ directory the next time the system is booted, overwriting the network settings; this allows a Wifi configuration to be preloaded onto a card from a Windows or other machine that can only see the boot partition.
Tweaks | The latest update to Raspbian @ ラズパイ公式ブログ より)

SSH

3. Enable SSH on a headless Raspberry Pi (add file to SD card on another machine)

For headless setup, SSH can be enabled by placing a file named ssh, without any extension, onto the boot partition of the SD card from another computer. When the Pi boots, it looks for the ssh file. If it is found, SSH is enabled and the file is deleted. The content of the file does not matter; it could contain text, or nothing at all.

If you have loaded Raspbian onto a blank SD card, you will have two partitions. The first one, which is the smaller one, is the boot partition. Place the file into this one.
Enable SSH on a headless Raspberry Pi | SSH (Secure Shell) @ ラズパイ公式ドキュメント より)

LED の点滅によるエラー

  • 3 flashes: start.elf not found
  • 4 flashes: start.elf not launch-able (corrupt) See below:
  • 7 flashes: kernel.img not found
  • 8 flashes: SDRAM not recognized. You need newer bootcode.bin/start.elf firmware, or your SDRAM is damaged

Potential reason for 4 flashes.
Note that 4 flashes could be an indication of a more or less broken SD-card connector. If Databit 1 is connected, but one of the other three Databits doesn't make contact, so the SD-card only works in 1-bit (SPI) mode, then this will lead to the four flashes error! Check if all pins of your card holder make good contact with the card!

Error ACT LED patterns | Is your Pi not booting? (The Boot Problems Sticky) @ ラズパイ公式フォーラム より)

  1. 【ヘッドレスとは】 モニタやキーボードなどのインターフェースをつなげずに動かす状態のこと。主にサーバー用途などで使われる。モニタをつなげないため、デスクトップ環境(X Window)など GUI によるリソース消費がもったいないので、GUI 系のライブラリやプログラムを含まない軽量の OS が使われることが多い。Raspbian OS の場合は、"lite" が OS の後ろに付く。例: Jessie Lite/Buster Lite など

10
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?