HDMIが変更されてケーブルがなかったためヘッドレス化で対応した。
動機
Pi4Bを使いたいが、ディスプレイ接続するためのケーブルがなかった。
対処
他のマシンからPi4Bにネット接続してセットアップする。今回はそのための準備。
背景
Pi4BからHDMIの仕様が変更された。
| モデル | HDMI |
|---|---|
| Pi3B+ | type A |
| Pi4B | type D |
前提
構成
[Pi4B]--[SD slot]--[micro SD] | +--[USB 3.0]--[HDD case]--[HDD] | [IEEE] . . . Wi-Fi Router . . . [IEEE] | [Pi3B+] +-----[Display] +-----[Keyboard] +-----[Mouse]
既存PCからPi4Bへネットワークを介して接続する。既存PCのディスプレイやキーボードを使ってPi4Bを操作できる。
手順
1. 準備する
1-1. リモート操作される側(Pi4B)
1-1-1. Wi-Fi設定する
- Raspbian BusterをインストールしたSDカードを用意する
- 稼働するマシンに1をUSB接続するなりして中身をみる
- 2の
/bootディレクトリ直下に移動する - 3に
wpa_supplicant.confファイルを作成する
SDカードのパスはマウント状況によって異なる。以下のコマンドなどで確認すること。
df -h
...
/dev/sd?1 ... (SDカードの/boot)
...
(SDカードの/boot)/wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="SSID"
psk="パスワード"
}
なお、以下の項目は各自のWi-Fi親機で設定したそれに合わせる。
SSIDパスワード
もし既存Pi3B+などでその設定があれば、使いまわせるはず。私の場合はそれをコピーした。既存のWi-Fi設定ファイルは以下のパスにある。
/etc/wpa_supplicant/wpa_supplicant.conf
これをBuster入りSDカードにコピーする。
cp /etc/wpa_supplicant/wpa_supplicant.conf (SDカードの/boot)
1-1-2. SSHを有効にする
Buster入りSDカードの/boot配下にsshという名前の空ファイルを作成する。
空ファイルは以下コマンドで作れる。別にファイルマネージャからマウス操作でもいい。
cd (SDカードの/boot) touch ssh
もしディスプレイが使えるなら
もしディスプレイが使えるなら、以下のようにGUIで設定できる。
- システムメニュー
設定Raspberry Pi の設定インタフェースタブSSH,VNCを有効にするOKボタン押下する
1-1-3. IPアドレスを下見する
Wi-Fi親機に接続されているマシンのIPアドレスを確認する。
IPアドレスの探し方はいくつかある。私はWi-Fi親機の設定画面から参照した。
- Wi-Fi親機の設定画面にアクセスする
- ブラウザURL欄にて
192.168.11.1を入力する(親機によってアドレスが異なる)
- ブラウザURL欄にて
- DHCP接続中マシンとそのIPの一覧を表示する
- Pi4BらしきIPアドレスをメモしておく
| ラズパイ | MACアドレスのベンダID |
|---|---|
| Pi3B+ | b8:27:eb |
| Pi4B | dc:a6:32 |
自分のIPを表示する方法
ターミナルにてip addr showとすれば、そのマシンのIPアドレスを表示できる。ただし今回はPi4Bのディスプレイがないため、Pi4Bに対してこの方法は使えない。
ip addr show
1: lo: ...
...
2: eth0: ...
link/ether b8:27:eb:??:??:?? brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b8:27:eb:??:??:?? brd ff:ff:ff:ff:ff:ff
inet 192.168.11.5/24 brd 192.168.11.255 scope global wlan0
valid_lft forever preferred_lft forever
inet6 ????::????:????:???:???/?? scope link
valid_lft forever preferred_lft forever
| 名前 | デバイス |
|---|---|
eth0 |
有線LAN |
wlan0 |
無線LAN |
今回は無線LAN接続したいので、そちらのIPを探す。上記の例では192.168.11.5。
ただしIPアドレスは時間経過で変動する。固定化する設定を後でやる。初期設定が終わってからでないとできないと思う。
IP固定化する方法
いずれやる予定。まだやらない。
/etc/dhcpcd.conf
interface wlan0 static ip_address=192.168.11.10/24 static routers=192.168.11.1 static domain_name_servers=192.168.11.1
上記はWi-Fi親機が192.168.11.1、Raspberry Pi 4Bが192.168.11.10/24だったときの例。
1-1-4. 初回ブートする
Raspberry Pi 4Bを初回ブートする。
- Raspbian BusterをインストールしたSDカードを用意する
- 1をPi4BのSDカード挿入口に挿す
- 電源を接続する
- 数分間待つ
初回ブートはSDカードの領域を広げる作業を行うため、時間がかかるらしい。
1-1-5. IPアドレスを探す
Raspberry Pi 4BのIPアドレスを探す。このIPを元にして別マシンからSSH接続する。
IPアドレスの探し方はいくつかある。私はWi-Fi親機の設定画面から参照した。下見したときから新たに追加されているIPアドレスがPi4Bと思われる。
以降、Raspberry Pi 4BのIPアドレスが192.168.11.10だったと仮定して話を進める。
1-2. リモート操作する側(Pi3B+)
Pi4Bは起動したまま、一旦離れる。ここから先は別マシンからPi4Bをリモート操作する。
リモート操作するマシンは何でも良い。ここではPi3B+を使う。
1-2-1. SSHログインする
ssh pi 192.168.11.10
これでPi3B+からPi4Bを操作できるようになった。
1-2-2. VNC Viewerをインストールする
リモート操作するためにVNC Viewerをインストールする。


2. リモート操作にて初期設定する
2-1. VNCを有効にする
Pi4BのVNCを有効にする。
SSHログインしたまま、以下の操作をする。
- 端末(ターミナル)を起動する
sudo raspi-configコマンドを実行する- 画面に従ってVNCを有効にする
5. Interfacing OptionP3 VNCYesOk
- Tabキー押下して
Finish
もしディスプレイがあるなら
もしディスプレイがあってGUI操作できるなら以下でも可。
- システムメニュー
設定Raspberry Pi の設定インターフェイスタブSSH,VNCを有効にするOKボタン押下する
2-2. VNCでログインする
Pi4BへSSHログインしている端末にて、以下コマンドを実行する。1920x1080はディスプレイの解像度に合わせる。
vncserver -randr=1920x1080
VNC用ログインアドレスが表示される。(192.168.11.10:1) 末尾の:1はディスプレイ番号。
... New desktop is raspberrypi:1 (192.168.11.10:1)
Pi3B+にてVNC Viewerを起動する。
- システムメニュー
インターネットVNC Viewer

GOT IT- URL欄にIPアドレスを入力する(例
192.168.11.10:1) Countinue

Username,Passwordを入力する(デフォルトはpi,raspberry)

- 成功するとPi4Bのデスクトップ画面が表示される

以下参考。
3. リモート接続する
3-1. SSH
既存PCの端末からPi4BのIPアドレスを入力してSSHログインする。
ssh pi@192.168.11.10
詳細は以下。
3-2. VNC
Pi4BにてVNCサーバを起動する。
vncserver -randr=1920x1080
このとき出力されたURL192.168.11.10:1をメモする。
New desktop is raspberrypi:1 (192.168.11.10:1)
既存PCのVNC ViewerのURL欄に192.168.11.10:1を入力する。
詳細は以下。