素人が Raspberry Pi 3 Model B で遊んだ時の失敗談です。何かの参考になれば。
NOOBS インストール済み microSD の存在を知らない
NOOBS という、ざっくり言うとインストーラのようなものがあり、Raspbian 用の NOOBS が書き込まれた microSD というものが売られている。
しかしその存在を知らず、手元にあるのが Raspbian の OS インストール済みとの違いが分からず混乱。
NOOBS の Lite 版でなければ OS も梱包されているので、オフラインでも OS インストールが可能になるということだそう。これをそのまま使うことにした。
電源 ON が認識できなかった
付属の電源ケーブルにはスイッチがついていたが、当初、そのスイッチのどっちが ON かが分かっていなかった。しかも LED の場所に自信がなく(イメージしている LED じゃなかったので)もしかして 3 には LED もついてないのか?とか要らぬことを考えてしまい、当初電源が入っているのかどうかを認識できなかった。
改めてケーブルのスイッチを見ると片方に線が入っていて、どちらかが分かるようになっていた。LED が分からなかったのは当然光ってなかったからであり、要するに電源が入っていなかったわけであるが、原因はコンセントを挿したテーブルタップのスイッチを入れ忘れていただけだった。LED は付いており、電源を入れたらちゃんと光った。
有線 LAN か、モニタ+キーボードか、シリアルケーブルかを使うセットアップ方法しか分からなかった
追記: 無線が繋がる(後述)なら、ケーブル類はなくてもできそう? https://qiita.com/mascii/items/0d1a280ac58ed8f6f999
作業開始前の Raspberry PI のイメージとして、何も繋がなくても PC から設定を書き込めるものと思っていたら、そういうわけではなさそう。「モニターなしでも」とか「LAN がなくても」とかいう記事はたくさんあるが、どのようなケースでも結局何か一つはケーブルを使っていると思う。 作業時はノート PC を使っていてモニタはなかったし、シリアルケーブルは用意していなかったし、普段は無線 LAN のみしか使っていないので、有線 LAN 及びそれを USB に変換するコネクタを探すことになった。
ちなみに OS インストールまでは、何も繋がなくてもできる。先に挙げた NOOBS 書き込み済みの microSD で、起動設定に silentinstall
を書き加えれば、梱包している OS をインストールしてくれる(細かい方法はググってください。思い出したらリンク貼ります)。設定を書いた microSD を挿して電源を入れてしばらく放置し、LED が消えたのを見て microSD を取り出して確認したところ、パーティションが増えたりきちんとインストールができていた。また当然であるが、空の microSD からスタートするのであれば Raspberry PI を使わなくても OS イメージを作るところまではできる。この場合は、OSイメージをメディアに焼くためのソフトが必要にはなるらしい。
違う raspberrypi.local
に SSH しようとしていた
ネットワークにまた別の raspberrypi.local
が存在していた。
これはもはや Raspberry PI の問題ではないが、有線 LAN のケーブルを USB に変換して Mac に繋いでいるコネクタがダメだったらしく、 Mac の無線 LAN が見つけてくる別の raspberrypi.local
に繋ごうとしてしまっていたらしい。デバイスを扱うには物理故障も予想しないといけない。また、大抵のネットワークの仕組みとして、名前がかぶった場合は ambiguous と言われるとかいうことにはならず、どちらか片方に繋いでしまうので気付かない。
この問題については試行錯誤の中で、 Wifi を切った後 arp -a
してみたことにより疑惑として浮上した(コマンド実行しても一行も表示されなかった)。無線をオフると他も出ないんじゃないか、という選択肢も考えたが、コネクタを変えると無事接続先が表示できたことから、それまで繋ごうとしていたデバイスが別物だったことが発覚。当たり前だが、無線 LAN と他の有線ネットワーク接続の動きは独立している。
むしろ、その意図しない別のデバイスにログインができていたら、気づかず作業を進めて大惨事だった可能性すらある。パスワード変えてもらっといてよかった
wpa_cli
で設定がうまくいかなくとも reboot
すれば OK が出る
無線 LAN に繋ごうとして、 /etc/wpa_supplicant/wpa_supplicant.conf
に SSID の情報を入れて reconfigure
しようとすると、
pi@raspberrypi:~ $ sudo wpa_cli -i wlan0 reconfigure
Failed to connect to non-global ctrl_ifname: wlan0 error: No such file or directory
pi@raspberrypi:~ $
こうなってしまった。 SSID 以外に書いたこととして、どっかから拾ってきた記述が
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
となってて、確かに /var/run/wpa_supplicant
が存在しないから設定が間違っているのかと思って一所懸命ググったり find したりしてた。
しかも、 ifdown
すればうまくリセットできるかと思ったらそれも configure できてないと怒られる。
pi@raspberrypi:~ $ sudo ifdown wlan0
ifdown: interface wlan0 not configured
pi@raspberrypi:~ $
これは結局、おとなしく OS ごと reboot
してみると、 ifdown
+ ifup
ができるようになっており(それが reconfigure
に必要だっかは分からない)、 conf ファイルの中身はさっきのままでも reconfigure
ができるようになっていた。
pi@raspberrypi:~ $ sudo ifdown wlan0
pi@raspberrypi:~ $ sudo ifup wlan0
pi@raspberrypi:~ $ sudo wpa_cli -i wlan0 reconfigure
OK
pi@raspberrypi:~ $
存在しなかったディレクトリは再起動時に作られたっぽい
pi@raspberrypi:~ $ ls -l /var/run
lrwxrwxrwx 1 root root 4 Feb 16 15:08 /var/run -> /run
pi@raspberrypi:~ $ ls -l /run | grep wpa
drwxr-x--- 2 root netdev 60 Feb 16 20:45 wpa_supplicant
-rw-r--r-- 1 root root 4 Feb 16 20:45 wpa_supplicant.wlan0.pid
pi@raspberrypi:~ $
(まあ、ハードウェアの設定系の問題が reboot
すれば治るっていうのはよくあることだと思います)
無線 LAN は 5GHz に対応してない
こちらを参照。 https://yamashitakoji.com/2016/04/raspberry-pi-3-wifi-trouble.html
他にも、調べると 5GHz 帯に使えるように対応した系の記事が出てくるけど、ちゃんと読むと、見た限りでは内臓されている無線 LAN モジュールの話ではなかったりする。ハードウェア的には対応してるのだろうか?だとしたら何かをソフトウェアをインストールすれば使えるようになるのかもしれない
こう言われてみると、前述した reconfigure
がどうのこうのとかマジでどうでもいい苦労だった....
時間がおかしい
有線 LAN 周りを用意してつなぎなおしたが、ファイルの更新日時がおかしい。1年前とかになっている...が、内容を見たらやっぱりさっきアクセスしたデバイスだった。
まあ新しくイメージ焼いて何もしなかったらそりゃそうですよね