ラズパイ5の環境構築した話③ 【pi5画面上】

今回は、pi5にモニタとキーボードをつなげてfirefox上で書きました

# はじめに
- [前回](https://qiita.com/kei_tnk/items/c44139edf7580ca6c037)からの続きになる。
- 今回は、キーボードや外付けssdをつなげての作業になるから、前回までと異なり、ヘッドレスにしない。前回までで構築した環境の続きだから、今回がwifiにつなぐ初めての機会になる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/9810d073-2ee6-ef6a-83da-41408207fea1.png)
- モニターは、[最初](https://qiita.com/kei_tnk/items/e1baaae3a86727ff26e6#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB)と[別のモバイルモニター](https://ehomewei.jp/products/wqxga-16%E3%82%A4%E3%83%B3%E3%83%81-2k-2560x1600-qled-%E9%87%8F%E5%AD%90%E3%83%89%E3%83%83%E3%83%88-windows-macos-%E5%AF%BE%E5%BF%9C-100-dci-p3-%E8%B6%85%E8%96%84%E5%9E%8B-4mm-%E3%82%BF%E3%83%83%E3%83%81%E3%83%91%E3%83%8D%E3%83%AB%E9%9D%9E%E5%AF%BE%E5%BF%9C-e160nsl)を購入した。サイズがmbp16と同じで、mbp16用のバッグが使えることが選んだポイント。

:::note warn
警告
- 今回の作業により、母艦とusb-cでvncした状態で、母艦経由のインターネット接続が出来なくなる場合があります。
- その場合でも、pi5はwifi経由でインターネット接続出来ています。
:::

# 前回の続きの前の準備
- wifiにつなぐ。wifiを使用する現在地を選択しないと、wifiがオンにならない。オンになったら、現在飛んでる電波が見えるようになるのでつなぐだけ。firefoxであれば、喫茶店などでよく使われている『パスワードなしだけど、ログイン画面での作業が必要な回線』でもつながった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/adba5a37-d693-e44d-85a2-2f6f82cab479.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/b849d137-5a45-e877-4200-f2676ccc1d74.png)
- 前回まで、usb-c経由でインターネットにつなげるため、無理やりルートを通してたのが、今回、wifiを使う場合に悪さをするから削っておく。通すときのコマンドのうち、addをdelに変えるだけ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/b44c0205-da21-002d-b341-b49df12a2eae.png)
- 今回、自宅外でwifi接続で作業したけど、せっかくssdにしたのに起動がクソ遅い。理由は、usb-c接続をデフォにしてるせいか、usb-c接続以外の場合、起動時にNetworkManager-wait-online.service が邪魔をしてるから。コイツを無効にするためのコマンドは、`sudo systemctl disable NetworkManager-wait-online.service`。これでスッキリ、起動も早くなるかとおもったら、今度は起動時にraspi-config.serviceのせいで遅くなった。どうすりゃいいのさ。とりあえず、放置。
- 次に、スクリーンショットを取りやすくするためのアプリを導入する。`sudo apt install gnome-screenshot`でインストールすると、ここに現れる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/808a086f-db86-ad60-5d8f-db89491caeb8.png)
- もともと、x11環境ではscrotがつかえるため、キーボードのPrtScボタンを押すだけで全画面スクリーンショットが取れるけど、scrotは範囲指定ができないし、画像ファイルがホームフォルダに作られるだけだから、qiitaに貼り付ける目的では使い物にならない。
- gnome-screenshotを立ち上げると、ダイアログ画面が表示されて、範囲指定が可能であることがわかる。スクリーンショットを取るためには、左上のボタンを押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/ec3ba81c-fe1f-8449-7111-7a0d817db11f.png)
- ボタンを押して、範囲指定してキャプチャすると、こんな画面になり、上のボタンを押してクリップボードに保管できるため、qiitaへの貼り付けに利用できるし、保存ボタンを押さなければ無駄な画像ファイルも発生しない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/452f096a-cd8d-1327-11bd-b005479eddc1.png)
- でも、いちいちアプリを立ち上げるのがクソ面倒なので、なんとかしようとヘルプを見ると、範囲指定するオプション-aとクリップボードに直接送るオプション-cが存在することがわかる。ちなみに、-aだけ指定すると、ホーム下のPicturesに画像ファイルが自動的に保管された。-a -cの両方を指定すると画像ファイルは作られず、クリップボードからqiitaに貼り付けできた！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/b93dc9fe-219b-7574-4da5-698f1f243a4b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/e7bbfaec-1b72-c90f-894a-d09b7643b051.png)
- あとは、PrtScのショートカットから、`scrot`を追い出して、`gnome-screenshot -a -c`に入れ替えるだけ。ククク...scrotの野郎、こんなところに隠れてやがった。しかも一匹だけの模様。こいつは都合がいいぜ！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/c91cd07c-68bb-36a6-a43f-afa329180d4a.png)
- 仕留めた！　これで、PrtScのショートカットは範囲指定方式が標準で、Ctrlを押しながらだとアクティブウインドウがキャプチャされる。そして、シフトを押しながらの場合、最初に説明したダイアログ画面が出るようにした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/8da3ceae-0949-9849-780d-94ce5a5f1786.png)
- PrtScに割り当てられたコマンドが切り替えられたか確認したいけど、pi5の再起動で時間を食うのが嫌だから、デスクトップ環境だけ再起動するため`sudo systemctl restart lightdm`を打った。再起動後、無事、確認できた。めでたし、めでたし。


# やったこと（数字は作業順）
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)をする
¯¯ ([前々回](https://qiita.com/kei_tnk/items/e1baaae3a86727ff26e6)はここまで) ¯¯
1. raspi-configで色々やる（残り） <--今回はここから
1. キーボードとマウスの設定
1. アプリアップデートしてから、日本語入力アプリをインストール
1. メインドライブを変更（sdカード⇒ssd)
¯¯ ([前回](https://qiita.com/kei_tnk/items/c44139edf7580ca6c037)はここまで) ¯¯
1. キーボードを有線接続して、タッチパッド付きキーボードが認識されることを確認
1. キーボードをbluetoothモードに切り替えて、他の[手段](https://github.com/AppGround-io/bluetooth-keyboard-and-mouse-support)を使って、接続設定を行った。
※購入翌日に作業したときは、自宅で別のキーボードを使ったけど、自宅外だったから、スマホにbluetoothマウス機能をもたせて、代わりとした。
1. バックアップする

# キーボードを接続
- キーボード設定は前回もしたけど、vnc上のキーボード(母艦のキーボード)とは[異なる](https://www.fmworld.net/fmv/keyboard/nkbu/2203/)から、別途設定を行った。
- とは言え、前回、＞設定＞「Fcitxの設定」で母艦の英数・かなキーを設定したときと同じことをするだけ。下記の通り、「変換」「無変換」キーが追加された。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/36e2bbf7-4471-1fe5-53cd-16faa1c260cf.png)
- ちなみに、日本語変換のキー設定の方は、＞設定＞「Mozcプロパティ」で行う。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/938ed459-f6e6-45e3-58b5-cf05ac72fa92.png)
- 実は、先程の「Fcitxの設定」のみだと、変換キーを繰り返し押すと「あ(直接入力)」⇔「あ（全角かな）」に切り替わってしまい、不便。よって、＞Mozcプロパティ＞「Mozcキー設定」で、入力キーに「Henkan」がある項目（エントリーと呼ばれている）をすべて削る。自分の場合は、「Muhenkan」「Kana」「Hiragana」「Hankaku/Zenkaku」のキーが含まれる項目も全部削った。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/f39ae447-1e1a-05de-9252-e17c477b6bfe.png)
- そして、タッチパッドの感度が良すぎて、めちゃくちゃ使いづらいからこれも修正する。
    - 例えば、キーボードで文章を打ってるときに、ちょっと手が触れただけでカーソルが飛んでゆき、そこに文字が入力されてしまう。
    - 例えば、PrtScを押して、範囲選択モードになったあと、範囲選択をしようとポインタを移動させてる間に、タップと認識されて、勝手に範囲選択モードが終了してしまう。
- 母艦では気づかなかったから、macbookのタッチパッド制御が素晴らしいということなんだろうか？とりあえず、pi5でどのように認識されているかを見ると、input8~12に、キーボード２つ、マウス２つ、タッチパッド１つが認識されている？なぜキーボードとマウスがダブってんの？ま、まぁ見なかったことにしよう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/e5214643-ed81-75a7-2aa8-9db87b29a228.png)
- タッチパッドの割当idを見てみると、id=11とのこと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/5a62864d-3bd4-eb17-95ba-72eeb32da969.png)
- テストしてみると、確かにタッチ操作が感知されている。しかし、パッドに触れた指を動かす動作は感知されても、タップについては感知されなかった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/11f4c449-f504-8277-b521-62dadb45f99e.png)
- ちなみに、キーボード操作もid=17で感知可能だった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/e3fc6fba-67b0-6586-f69e-9e6fb0941100.png)
- また、11と16以外の他のidでは、テストしても感知されなかった。つまり、タップはxinputで感知される動作ではないことかな？
- こんなコマンドを見つけたから打ち込んでみたけど...もう、だめｐ...お手上げっす。ベトナム語で言えば、bó tay chấm com（手を縛る.com）だね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/d120930e-fc1d-27bb-4bff-88fef138ce77.png)
- しょうがないから、文字入力中の誤タッチだけでも回避するため、このオプションを追記するだけにした。`Option "DisableWhileTyping" "True"`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/a38d6390-b0a6-841f-69b3-2ba240f25781.png)

# バックアップする
- ここまで色々と環境設定したけど、現段階での状態をバックアップしておこう。
- バックアップ用の外付けssdと128gbのsdカードを刺した状態のディスク構成はこんな感じ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/5bf8afc0-274f-960d-4905-9b3943388018.png)
- とりあえずは、SD Card Copierを使って、ssdをsdカードにコピーしてみる。512gbのssdから128gbのsdカードへのコピーだけど、ssdの方は120gbでパーティションを切って使ってるから、128gbのsdカードで容量が足りないことはないはず。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/ba5b64bc-6ce7-9016-70c8-807596672ac8.png)
- コピー後のsdカードはこんな感じで上手くいったみたい。今後、ssd内のrpiosが腐ったときは、このsdカードを使って元に戻れる。つか、sdカードを使って起動すると、元の環境に戻るという感じ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/8ac4f81b-9be5-ac3e-6bf5-9e6add8fd375.png)
- でも、さっきの方法では、sdカードを塩漬けにするしかなくなるので、別の方法も探る。バックアップ作業はddコマンドを使うのが一般的かも知れないけど、せっかくgnome-disk-utilityをインストールしたんだから、これを使えないか？しかし、アンマウントが必要とのことであり、起動ディスクをアンマウントできるはずもないので諦めた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/77559b56-259e-d97e-2264-267e8d960234.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/38106c04-8731-c306-1ac4-7884dd1f0609.png)
- 結局、ddでバックアップする事とした。lsblkコマンドで、割当て名を確認。そして、dd中の進捗状況を表示させるため、pvをインストール。pvは最初から入っているモノと勘違いしてたけど、インストールが必要なのね。ついでに、圧縮速度を速めるため、pigzもインストール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/a5d923d7-a926-07af-c421-602fa55cafc2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/b7518a63-51d2-f82a-a8d7-60ec04eed8d3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/6f32f267-1528-5baa-3f07-f55e07edaa52.png)
- こんなコマンドで、バックアップ開始。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/fb87fd9c-d0e3-2660-aab8-091748082a6a.png)
- パーティションを120gbで切ったから、バックアップもそこで止まるかと思ったけど、120gbを超えても止まらなかった。利用してない領域も含めて512gb全てをバックアップするんだな。時間が無駄だわ。dd中は、pigzが頑張ってるな。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/f01db2ad-4472-2305-c42b-f8a15036f0d7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/dcc4d025-5b49-7be3-4028-bebef488995e.png)
- 結果、512gbのバックアップに40分程度（=2432秒）かかった。SD Card Copierの方が圧倒的に早く終わったから、128gbのsdカードがバックアップ用に塩漬けになるけど、1枚千円程度だし、そっちの方が効率いいかもしれない。ちなみに、バックアップファイルのサイズは3.9GiB。※GiB = 1024^3、1gb = 0.93GiB
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/d06ee737-b7a3-85e3-a805-fd0fe0dd7b27.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733720/e19fad7f-2259-3335-d7c4-5e9f5bce8f22.png)

# おわりに
- 今年のGWの後半は、ラズパイ5をいじってる間に終わってしまった。なんていうか、この手のインストール作業とか環境構築って、ジグソーパズル的な面白さがあるよね。つまり、生産性のある作業というより、パズルを解くような娯楽的な作業。
- あとは、osの軽量化とか、タッチパッドのジェスチャー設定（3本指スワイプとか）にも手を出したいけど、とりあえずは、ここまでで一旦終了。
- 冒頭の「警告」でも書いたけど、キーボードとモニタを付けて、wifiに繋いで作業を行った後、再びusb-cで母艦と繋いで作業したら、母艦からpi5にvncで繋げられたんだけど、母艦経由のインターネット接続が出来なくなってた。まあ、pi5からwifiに繋いでインターネットに繋がったから、実害はないんだけど、出来ていたことが出来なくなったのは気持ち悪い。そのうち、解決策を見つけたい。