Raspberry Pi 4B 導入

## 【前文】
地元のショップにも入荷したので早速購入。
しかしセットアップでは嵌りどころもあったので記録に残す。

## 【microSDカードにイメージ書き込み】
これは今まで通りなので問題なし。
因みに、公式サイトからイメージを DL、解凍して balenaEtcher でライティング、と手順を紹介しているサイトを見かけることがあるけど、balenaEtcher は zipファイルを直接指定できる。（解凍不要）
でも 7z形式には対応していないんだよなぁ。自分はイメージバックアップを 7z形式で保管しているので、そこが惜しまれる。

## 【USB電源】
購入した後に知ったんだけど、[USB Type-Cポート問題](https://hanpenblog.com/11049/ "Raspberry Pi 4のUSB Type-Cポートが規格通りでない話の詳細") って解決済みなんだね。
[RSで販売しているOkdoロゴのあるPi4は、バグを改修している版になります。](https://twitter.com/RSJapanMK/status/1199191628767875072?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1199191628767875072&ref_url=https%3A%2F%2Fraspi.taneyats.com%2Fentry%2Fabout-raspi4-power-supply "RSコンポーネンツ　(Pi4販売開始！)さんはTwitterを使っています_ 「RSで販売しているOkdoロゴのあるPi4は、バグを改修している版になります。 https___t.co_GypQ1CyG10 https___t.co_lli9Tfjejl」 _ Twitter")

それでもできれば正規版の電源が欲しかったけど、本体を購入したお店ではまだ扱っていなかったので、[Tinker Board用電源セット](https://www.marutsu.co.jp/pc/i/952046/ "Tinker Board用電源セット(5V_3.0A) TSI-TB036-5V3Aの通販ならマルツオンライン") を併せて購入。
勿論これで問題なかったけど、この場合は別途 5V/3.0A に対応した USB Type-Cケーブルが必要。

てか、Tinker Board も新しいのが出るんだよね。[先日の IoT展示会](https://ascii.jp/elem/000/001/973/1973494/ "ASCII.jp：ASUS、組み込み＆IoT展示会「ET＆IoT Technology 2019」に出展") で見てきたんだけど、こちらも気になるところ。


## 【HDMI接続】
RPi4B のモニタ出力はマイクロHDMI × 2。
いざ本体を手にして、単一出力の場合はどちらに繋げるんだ？ と悩んだのは自分だけだろうか。
結論は電源用USB端子に近い方。公式の導入手順書にその説明がある。
[Setting up your Raspberry Pi - Connect your Pi](https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up/4 "Setting up your Raspberry Pi - Connect your Pi _ Raspberry Pi Projects") 

> Raspberry Pi 4
> 
> Connect your screen to the first of Raspberry Pi 4’s HDMI ports, labelled HDMI0.

https://projects-static.raspberrypi.org/projects/raspberry-pi-setting-up/edbc847fb73193738573d2c16bc039602b0b3657/en/images/pi-hdmi-1.png

なんだけど、最初は悩んだよ(笑)。
RPi4B本体に付属する説明書を確認するも、それらしき説明は見つからず。
次に公式の [データシート](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711/rpi_DATA_2711_1p0_preliminary.pdf "rpi_DATA_2711_1p0_preliminary.pdf") を確認。
> 5.4 HDMI
> The Pi4B has 2x micro-HDMI ports, both of which support CEC and HDMI 2.0 with resolutions up to
4Kp60.

どちらも CEC、HDMI2.0、4Kp60 に対応しているよ～ん、ぐらいのことしか書かれていないし。
実際、普通に使う分にはどちらでも同じなのかも。
但し、HDMI1側に繋げた場合は kodi でリモコンが効かないことを確認しているので、原則 HDMI0側に接続が正だと思われ。

## 【HDMIケーブル】
トラブルの元になるので、HDMI -> マイクロHDMI ケーブルを用意すべし。
HDMI -> マイクロHDMI 変換アダプタを噛ませるのはよろしくない。自分は 2種類ほどノーブランドの変換アダプタを試してみたけど問題があった。

まず試したのは以下。
[HDMI変換アダプター AF-microM【EM-EASHAFHDM-BK】](https://www.marutsu.co.jp/pc/i/827862/ "HDMI変換アダプター AF-microM EM-EASHAFHDM-BKの通販ならマルツオンライン") 
画像が掲載されていないのでアマゾンから似たやつを挙げると以下。
[HDMI(メス)to Micro HDMI(オス) マイクロHDMI変換アダプタ](https://www.amazon.co.jp/HDMI-%E3%83%A1%E3%82%B9-Micro-%E3%82%AA%E3%82%B9-%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%ADHDMI%E5%A4%89%E6%8F%9B%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF/dp/B00CIQ3UGA "Amazon _ HDMI(メス)to Micro HDMI(オス) マイクロHDMI変換アダプタ _ OEM _ 変換コネクタ 通販") 

このタイプは HDMIメスの部分の幅があるので、RPi4B の HDMI0 に差すと、隣の電源用USBに差したコネクタにギリ干渉する。
HDMI出力、CEC には問題なかったけど。

ならばと次に試したのが以下。
[エスエスエーサービス [ microHDMI 変換ケーブル ] タイプD(オス)-タイプA(メス) [15cm] MCHDMI-15H](https://www.amazon.co.jp/%E3%82%A8%E3%82%B9%E3%82%A8%E3%82%B9%E3%82%A8%E3%83%BC%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9-microHDMI-%E5%A4%89%E6%8F%9B%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB-%E3%82%BF%E3%82%A4%E3%83%97A-MCHDMI-15H/dp/B00KS4WJ2K/ref=sr_1_33?keywords=microhdmi+%E5%A4%89%E6%8F%9B&qid=1575109438&sr=8-33 "Amazon.co.jp： エスエスエーサービス [ microHDMI 変換ケーブル ] タイプD(オス)-タイプA(メス) [15cm] MCHDMI-15H_ パソコン・周辺機器") 

このタイプなら接続に問題はないけど、少なくとも上記製品はダメ。
kodi で試したらリモコンが効かなかった。つまり、CEC信号を通していないっぽい。
ちゃんとしたメーカー品なら大丈夫なのかもしれない。

また後述する Wi-Fi問題もあるので、繰り返しになるけどちゃんとした  HDMI -> マイクロHDMI ケーブルの使用が無難。

## 【画面解像度】
画面解像度の変更ができないんだけど。自分だけ？
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/b9caeaf7-ce85-cd38-1d4b-fbfac0fb0460.png" width=75%>
`raspi-config` から変更しても反映されないっぽい。謎。



## 【Wi-Fi】
今回最も嵌ったのがこれ。
Wi-Fiの接続が不安定で泣かされた。繋がっても直ぐに切れたり、デスクトップ画面から手動で接続しても繋がらないケースが頻発。元々自宅の Wi-Fi は不安定なので、最初はそれが原因かと思っていたけど、それにしても酷い。
設定を見直したり、RPi4B本体、Wi-Fi中継機、親機、CTU を再起動したり、色々と試行錯誤を繰り返し疲労困憊。パトラッシュ、僕はもう疲れたよ。

気を取り直して公式フォーラムにあたってみると、すげー挙がってるのね。

[Pi 4 4GB- Wifi not working when resolution is set too high](https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=254640 "Pi 4 4GB- Wifi not working when resolution is set too high - Raspberry Pi Forums")
[Raspberry Pi 4b WiFi 5Ghz (ac) bugs](https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=247405 "Raspberry Pi 4b WiFi 5Ghz (ac) bugs - Raspberry Pi Forums")
[No WiFi on a 4B-4GB with Raspbian Buster](https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=249869 "No WiFi on a 4B-4GB with Raspbian Buster - Raspberry Pi Forums")
[RPi 4 cannot connect to WiFi](https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=245067 "RPi 4 cannot connect to WiFi - Raspberry Pi Forums")

高い解像度に設定すると Wi-Fi が機能しない、とかにわかに信じがたい意見もあったりで情報が錯綜している感じ。
そもそも、RPi4B の Wi-Fiチップは、3B+ と同じらしいので、急に問題が出てくるのも不思議。
取り合えずフォーラムで挙がっている意見をピックアップしておく。

- HDMI0にモニターを接続するとWiFiが失敗するが HDMI1に接続すると問題はなくなった
- 可能な限り低い解像度を使用する
- 1920x1200から1024x768に切り替えましたが、pingは機能していました。1920x1200に戻すと、すぐにpingが停止しました。1024x768に切り替えると、再びpingが成功しました
- microHDMI-HDMIアダプターからmicroHDMIをHDMIに直接接続するケーブルに変更しました。ケーブルの長さは1.8 mです。また、無線LANは高解像度で機能しています
- HDMIケーブル/干渉が原因であるという結論に達しました。ケーブルを変更すると、問題が解決しました。その間、私はいくつかの小さなことも微調整しましたが、より低いチャンネル番号を選択した後はもう問題は見られません。
- 私の観点からすると、起動時にRaspberry Pi 4がアクセスポイントとの関連付けを早すぎると、他の処理が多すぎるようです。同時に、ソフトウェアの何かが詰まってしまい、利用可能なWiFiアクセスポイントを「見る」ことができるようになりましたが、接続できません。忙しい起動期間中にRaspberry Pi 4をアクセスポイントに接続しないようにすると、問題なく動作するようです。
- 他の人が言ったように、USB 3.0ハードドライブが接続されることは避けてください。2.4GHz干渉を引き起こす可能性があります。WD Passport 2TB USB 3.0ドライブは、プラグを抜くのを忘れた場合にこのような問題を引き起こすことで有名です。
- 10未満のWiFiチャネルを使用する（異なる場所でPiを使用する場合、実際には良いオプションではありません）
- 1920x1200とは異なるモニター解像度を使用する（私の意見ではオプションなし）
- アダプタの使用は推奨セットアップではありません。最良の結果を得るには、uHDMI-HDMIケーブルを使用する必要があります

## 【Wi-Fi環境調整】
上記フォーラムの情報で気になったのが Wi-Fiチャンネルの変更。自分は自動設定任せで特に弄ったことはなかった。試してみることに。
まず母艦（Windows10）に [WiFi Analyzer](https://www.microsoft.com/ja-jp/p/wifi-analyzer/9nblggh33n0n?activetab=pivot:overviewtab "WiFi Analyzer を入手 - Microsoft Store ja-JP") をインストール。WiFi Analyzer によれば、2.4GHz帯 は CH13 が空いていて推奨とのこと。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/050ebd27-7bcd-e8d2-05a5-64d135cb6651.png" width=75%>

早速設定するも、Wi-Fi親機と中継機が繋がらなくなった。ダメじゃん。
2.4GHz帯のチャンネルは自動設定に戻し、5GHz帯だけ手動で設定した。

HDMIケーブルもメーカー製のHDMI -> マイクロHDMIケーブルを購入し、差し替えた。
以来、RPi4B の Wi-Fi が切れる問題は解消した。元々不安定だった Wi-Fi環境も今のところ安定している。これにはびっくり。
これで暫くは様子見。

## 【雑感】
導入で躓いてしまいミソがついたけど、それを除けば動作はキビキビしているし、RPi3B+ より速いことが実感できて満足。（当たり前か）
個人的には、これで後は [USB3.0 ファームウェア不具合による加熱問題](https://happy-crypto.xyz/raspberrypi-4/#USB30 "USB3.0 ファームウェア不具合による加熱問題") が解消すれば嬉しいんだけど。

因みに本体の発熱問題も現在進行形で対応中の模様。
[Thermal testing Raspberry Pi 4](https://www.raspberrypi.org/blog/thermal-testing-raspberry-pi-4/ "Thermal testing Raspberry Pi 4")
> 新しいRaspberry Piモデルの発売は、物語の始まりにすぎません。開発は継続的であり、新しいソフトウェアとファームウェアにより、各ボードが工場のフロアからロールオフされた後もずっと改善されています。

てか、発売前の段階で何とかしておいてよ、とも思うけど。
それと、こう本体の温度が高くなると、値は張るけど金属ケースに食指が動くけど、これまた Wi-Fi に干渉（減衰）するという話もあり、悩ましい。

それと、[Raspberry Pi 4の向きで涼しく](https://www.raspberrypi.org/app/uploads/2019/11/Raspberry-Pi-on-side-Placeholder-Photo.jpeg "Raspberry Pi 4の向きで涼しく") にはワラタ。公式で言うかね。初代プレステかっての。
> ファームウェアのアップグレードは大きな利益をもたらしますが、Raspberry Piを横に置いてはどうでしょうか？

たまたまだけど、RPi4B も含め、3B+、3B、2B を自分も同様に設置している。まさかこれが正解だったは……。

## 【余談】
今回、Wi-Fi問題で散々公式ファーラムを見て回ったお陰で、Wi-Fi以外にも色々と情報を得ることができて勉強になった。
例えば以下。
[Pi4 64-bit raspbian kernel for testing - Focus on Pi4](https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=250730 "Pi4 64-bit raspbian kernel for testing - Focus on Pi4 - Raspberry Pi Forums")

公式でも OS は 64bit に対応して欲しいという要望は前から出ている話。
RPi4B が [Eben Upton氏の公式ブログで発表された時](https://www.raspberrypi.org/blog/raspberry-pi-4-on-sale-now-from-35/ "Raspberry Pi 4 on sale now from $35 - Raspberry Pi") も、殺到する祝福コメントの中に、何故未だに OS が 64bit に対応していないのか、といった不満のコメントもあり、中の人が理由を説明していて、なるほどなぁと思ったりもした。

そもそも、最新の 4B を含め、3、2、初代、Zero、CM1～3 全てが同じ OS イメージで動くのは凄いよ。後方互換を保証するのが Raspbian の方針とはいえ。

しかし、RPi4B では更に（ハードウェア的に）速くなりました、って話になればなるほど、ソフト的には後方互換に足を引っ張られていることが残念な訳で。
公式でも 64bit 対応キボンヌ（死語）な感じ。

## 【関連投稿】
[Busterヘッドレスセットアップ](https://qiita.com/god19/items/c1cefcd71e8bae9b986e "Busterヘッドレスセットアップ - Qiita")
[Raspberry Pi 4B 画面解像度設定（TV出力版）改](https://qiita.com/god19/items/12db104cf5f77110480b "Raspberry Pi 4B 画面解像度設定（TV出力版）改 - Qiita")
[Raspberry Pi 4B 64bit kernel を試す](https://qiita.com/god19/items/463b2c089159856d23ac "Raspberry Pi 4B 64bit kernel を試す - Qiita")