ラズパイ5の環境構築した話① 【usb-c接続後からvnc接続までヘッドレス】

　ラズパイを触ったのは、いつ以来だろうか...
　昔、海外旅行中に日本のネットワークにつなげるためにvpnサーバを構築したのが、最初で最後かな
　某巨大共産国家からでも日本国内の某掲示板に書き込みできたのは良い思い出だけど、海外旅行中くらい書き込みしてんじゃねーよとセルフツッコミを入れていた記憶がある

# はじめに
- 購入翌日に、一日かけてとりあえず一通り動くようにしたとき結構苦労したから、みんなが同じ思いしないようにメモを残すこととする。[ヘッドレスでの接続を有線LANで試す](https://qiita.com/kei2y/items/2815002705fcf4c994f0)前の話だけど．．．
- モニターとキーボードもラズパイ5の購入に合わせて買ったから、ヘッドレスにする必要もなかったんだけど、外で作業するときに荷物を減らしたかったんだよね。お陰で、macbookとラズパイ本体の他の荷物は、usb-cケーブル（usb2.0規格）だけになってすっきり。
- 今回は、説明用の画面キャプチャがmac上の方が楽なので、まずは、[前回](https://qiita.com/kei2y/items/33b2d99b4c84c564237e#%E3%81%8A%E3%81%BE%E3%81%91%E8%BF%BD%E8%A8%98)やってなかったvnc接続までやっつけてしまう。
- その後、先週やった非ヘッドレス（モニター･キーボード付き）での作業を思い出しながら、環境構築作業をヘッドレスでまとめてみる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/f6175b70-c1d9-f2b0-f562-61ea6065ff05.png)
- 自分の環境
    - ラズパイ5
        - 本体:[SC1112[8GB]](https://www.raspberrypi.com/products/raspberry-pi-5/)
        - 冷却装置:[純正アクティブクーラー](https://www.raspberrypi.com/products/active-cooler/)
        ※後述するssdマウンタX1003は、純正アクティブクーラー必須
        - ケース:[純正ケース](https://www.raspberrypi.com/products/raspberry-pi-5-case/)
        ※純正ケースのファンはアクティブクーラーとバッティングするので使用しない。
    - 起動メディア
        - インストール時:[microSDHC[32GB/UHS-I]](https://www.kioxia.com/ja-jp/personal/micro-sd/exceria-g2.html)
        - インストール後:[ssd[512GB/PCIeGen3x4]](https://jp.transcend-info.com/product/internal-ssd/mte400s)
        (ssdマウンタ:[Geekworm X1003](https://geekworm.com/products/x1003))
    - 入力装置
        - [タッチパッド付きキーボード(有線、無線とも可能)](https://fmv.fccl.fujitsu.com/shop/pid/FMV-NKBUD.html)
    - 電源
        - [usb-pd充電器[65w]](https://www.avail-j.co.jp/product/accharger/pd65w-gan-2type-c-1usb-a-%e3%82%b3%e3%83%b3%e3%83%91%e3%82%af%e3%83%88ac%e5%85%85%e9%9b%bb%e5%99%a8/)
        ※ドン○ホー○で買った奴だけどppsにも対応している。当然、5V5Aのpdには対応していないから、ラズパイを立ち上げると、5A非対応のメッセージが出る。充電器のppsは、表記上は5V5A出せるみたいだけど、ラズパイがppsに対応してないならしゃあない。
        ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/65943d3d-1cef-d356-1a3a-8c1f8b0b2242.png)

    - モニター
        - 型番すら不明の怪しい10.5インチモバイルモニタ
          ※ポイント還元込みで実質1万円程度。ケースなしだと超軽量(250g以下)だけど、プラスチック感バリバリ
        ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/b04e88d9-271b-34e4-0a46-4fc16823c9fe.png)
    - バックアップメディア
        - [外付けssd[2TB]](https://www.elecom.co.jp/products/ESD-EJ2000GWHR.html) 
        ※某量販店では、希望小売価格の半額程度だった。
- nvcやsshでラズパイ5に接続したパソコン
    - macbook air m3(以下、母艦)

- os 2024/3/15版
![Screenshot_20240509-173224.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/068892dc-c4a5-d5df-8a3c-3a5233b574f9.png)

# やったこと（数字は作業順）
1. ラズパイ5を組み立てる
1. sdカードにラズパイの純正OS(以下、rpios)を焼いてから、[usb-c接続用に改変](https://qiita.com/kei2y/items/33b2d99b4c84c564237e#%E3%81%8A%E3%81%BE%E3%81%91%E8%BF%BD%E8%A8%98)
1. sdカードをpi5に差し込み、usb-cケーブル(usb2.0規格)で母艦に接続
1. 母艦からpi5にssh接続
1. raspi-configで色々やる 
1. [vncの設定](https://qiita.com/kei2y/items/e1baaae3a86727ff26e6#vnc%E3%81%AE%E8%A8%AD%E5%AE%9A)をする<--今回はここまで！
_ (以降の説明は次回以降) _
1. raspi-configで色々やる（残り）
1. キーボードとマウスの設定
1. アプリアップデートしてから、日本語入力アプリをインストール
1. メインドライブを変更（sdカード⇒ssd)
1. キーボードを有線接続して、タッチパッド付きキーボードが認識されることを確認
1. キーボードをbluetoothモードに切り替えて、他の[有線キーボード[トラックポイント付き]](https://www.lenovo.com/jp/ja/p/accessories-and-software/keyboards-and-mice/keyboards/0b47208?orgRef=https%253A%252F%252Fwww.google.com%252F)を使って、接続設定を行う
※トラックポイントも問題なく認識した
1. バックアップする

# raspi-configで色々やったこと
- update
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/397a3a22-e8c3-49da-347d-08608ae944c5.png)
- waylandをクビにして、Xを選択(6 Advanced Options>A6>W1)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/dfd1d4d0-6b5e-7650-dff4-89fa9c2fde3b.png)
- reboot
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/a199d369-ce76-0f0d-44cf-e1b64e177ed4.png)
- ヘッダレスの時にVNC接続したときの解像度を選択(2 Display Options>D3)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/9f4bc763-669f-1da7-b100-198e9288f0cc.png)
- VNC接続を可とする(3 Interface Options>I2)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/ca74152e-185d-a61e-0b5e-2119e555d670.png)
- リブートしないで抜ける
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/3e7a4e52-73fd-4fbb-a365-9ba38f325796.png)

# VNCの設定
- macの標準アプリである画面共有(右下のアプリ)で接続する前提。なお、このvnc(realVNC)は、wayland上では動かないため、先にwaylandをクビにして、X11に入れかえておく必要があった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/710887dc-7da6-c374-262e-e2b01537fe85.png)
- vncの設定ファイルにパスワード方式で接続する旨を書き込む
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/2a05ff1d-ccb9-71cf-337e-eb6b94a03974.png)
- これは、GUI上での設定の次の画面に該当する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/95975fe7-e364-ebe4-849f-206f57a03473.png)
- 次の画面は、GUI上のパスワード入力画面。最近、左下のlegacyチェックボックスが追加された。macosの画面共有を使う場合は、legacyでのパスワード設定が必須。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/3191dc23-9776-91aa-6685-1b3657d13974.png)
- vncに母艦から接続するときのパスワードを設定する呪文は、`sudo vncpasswd -legacy -service`。 最近、macosの画面共有からのアクセスには、-legacyオプションが必要となった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/7bc2aaa9-8e08-a563-3515-6fe295b8cb71.png)
- 先ほどの設定画面を見ると、パスワードが追加されている。パスワードは暗号化されていて、設定ファイルを見ても分からないようになっている。なお、パスワードは8文字以上で設定しても、母艦からアクセスするときは、最初の8文字のみを入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/3aa59ff4-6e1f-7e8f-079c-bc28e0b08ca9.png)
- パスワードを設定したら、`sudo systemctl restart vncserver-x11-serviced.service
`でvncを再起動して、母艦からvncに接続する。接続は、finderの「移動」>「サーバへ接続」(ショートカット〔cmd+k〕でもいける)で次のダイアログを表示させて行う。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/5348a20b-a5e0-5d22-8120-11be624a83db.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/8d5bc8d2-b21b-88f1-5101-39592fb3b924.png)
- 大成功！！！ 母艦のアプリ『画面共有』が起動した！母艦経由のインターネット接続も問題なし。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/b93b57cf-a67b-1418-df1d-c4cb92cc1a73.png)
- 【追記】vnc解像度の変更は、＞設定＞Raspberry Piの設定のディスプレイタブに項目があるけども、解像度の種類が少ない。現在の解像度1600x1200だと、母艦（このときは、mbp16インチ）の液晶は横が余り縦が足りないけど、ちょうど良い解像度設定がない。※画面上、日本語表示なってるのは、次の投稿(環境構築②)の[ロケール変更作業]()の後にやったから。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/19e579d8-1003-fa71-4986-da9cea27c332.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/a47b8da8-21dd-0a34-a2f1-097d19cbd113.png)
- よって、表にない解像度への設定は、ターミナルで行う。例えば、1680x1080なら、`sudo raspi-config nonint do_vnc_resolution 1680x1080`と打ち込む。再起動すると、以下のような感じで表の解像度は増えないが、xrandrコマンドで現在の解像度（Screen 0）が、1680x1080となっていることが分かる。ちなみに、Screen 0の下のHDMI-1とHDMI-2は、想像通り、pi5本体についてる2つのmicroHDMIのこと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/3d2756bf-31e1-5520-f165-45cfa780694d.png)
- ちなみに、表にない解像度だからか、「Raspberry Piの設定」のヘッドレス解像度は非表示になっていた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/bc5613bf-0aa3-8b0c-4c98-33a15f61fbbd.png)
- 色々と試してみたところ、母艦(mbp16インチ)での全画面表示に最適な解像度は、1728x1080だった。※ mba13_m3のときの最適解像度は、1470x919
![スクリーンショット 2024-05-23 14.11.51.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/e9536ef0-caea-ac26-b590-d01bfaee8a5f.jpeg)

# おわりに
- ヘッドレスで設定するのは疲れるな。vncの設定は、ラズパイをモニタに繋げて行ったときは、結構楽勝だったのに、sshで設定する方法は、調べるのが面倒だったよ。※-legacyオプションの存在に気づくまで一時間くらいかかった。
- 前回と今回は、ヘッドレス前提で進めたから、macbookしか持ってなくて、モニタやキーボードを買うのが嫌な断捨離の人でも、ラズパイ5のOS(bookworm)をインストールして、vncで画面表示まで出来るように解説できてるはず。windowsのノートpc持ちの人にはゴメンだけど、すこしは誰かの参考になればうれしい。
- もし、[前回](https://qiita.com/kei2y/items/33b2d99b4c84c564237e#%E3%81%8A%E3%81%BE%E3%81%91%E8%BF%BD%E8%A8%98)と今回の投稿を参考にして、vnc接続までヘッドレスでたどり着けた人が居たら、「いいね」を押してくれ！そうしないと、僕の中の猛獣が暴れ出してしまうから・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/975a554b-350a-8c8f-6811-f1a69d34da36.png)