Raspberry Pi 4B rev 1.2版(2019-11-26)におけるHDMI罠まとめ
HDMIの変更が広範囲に影響してしまっていることが徐々に見えてきた……。不便。
ハードウェア
正しいHDMIケーブルの選別と購入がむずかしい。
私の環境は以下。
デバイス | HDMI type |
---|---|
Pi4B | D (micro) |
Display | C (mini) |
- Raspberry Pi 4BのHDMIは type D (micro) である
- 13.3inchなど小型ディスプレイのHDMIは type C (mini) であることが多いはず
- 変換ケーブルは A-D, A-C ならよくあるが、C-D はほとんどないか2700円とボッタクリ価格
妥協
以下2通りいずれかの組合せでC-Dにできる。
ケーブル | 変換キャップ |
---|---|
A-D | A-C |
A-C | A-D |
もしディスプレイ側がtype AならA-D
ケーブルだけでいい。
私の場合、A-Dケーブル1000円、A-C変換キャップ400円でC-Dにした。
ソフトウェア
/boot/config.txt
にはHDMIポートごとに適切な設定をせねばディスプレイに表示できない- https://www.raspberrypi.org/documentation/configuration/config-txt/video.md
[pi4]
,[HDMI:0]
,[HDMI:1]
など専用フィルタ書式を使い分ける必要がある
- VNCのURLにはIPに加えてその末尾に
:ディスプレイ番号
を入力せねば接続できない - Pi4BにてHDMIディスプレイを1つだけアクティブにする場合、HDMI 0 を使う必要がある(HDMI 1 だと問題あり)
- 表示する(解像度・黒枠除外の設定も)
複雑化
ふつうディスプレイを1つだけ使うと思う。このときHDMI 0ポートを使う必要がある。1ポートにケーブルを差してもダメ。さらに、/boot/config.txt
において[pi4]
,[HDMI:0]
のように適切な条件フィルタをつけて設定せねばならない。
ソフト的にポート番号を一致させ、ハード的に差込口も一致させねばならない。どれかひとつでも違えたらディスプレイが映らない……。ひどい。
HDMIポート番号の混乱
番号パターン | 対象 |
---|---|
0 ,1 |
基盤, /boot/config.txt の[HDMI:0] |
1 ,2 |
VNCのURL(<IP>:<HDMI番号> ) |
/boot/config.txt
私の環境では以下の設定でうまく映っている。
/boot/config.txt
# For more options and information see # http://rpf.io/configtxt # Some settings may impact device functionality. See link above for details # uncomment if you get no picture on HDMI for a default "safe" mode #hdmi_safe=1 # uncomment this if your display has a black border of unused pixels visible # and your display can output without overscan #disable_overscan=1 # uncomment the following to adjust overscan. Use positive numbers if console # goes off screen, and negative if there is too much border #overscan_left=16 #overscan_right=16 #overscan_top=16 #overscan_bottom=16 # uncomment to force a console size. By default it will be display's size minus # overscan. #framebuffer_width=1280 #framebuffer_height=720 # uncomment if hdmi display is not detected and composite is being output #hdmi_force_hotplug=1 # uncomment to force a specific HDMI mode (this will force VGA) #hdmi_group=1 #hdmi_mode=1 # uncomment to force a HDMI mode rather than DVI. This can make audio work in # DMT (computer monitor) modes #hdmi_drive=2 # uncomment to increase signal to HDMI, if you have interference, blanking, or # no display #config_hdmi_boost=4 # uncomment for composite PAL #sdtv_mode=2 #uncomment to overclock the arm. 700 MHz is the default. #arm_freq=800 # Uncomment some or all of these to enable the optional hardware interfaces #dtparam=i2c_arm=on #dtparam=i2s=on #dtparam=spi=on # Uncomment this to enable infrared communication. #dtoverlay=gpio-ir,gpio_pin=17 #dtoverlay=gpio-ir-tx,gpio_pin=18 # Additional overlays and parameters are documented /boot/overlays/README # Enable audio (loads snd_bcm2835) dtparam=audio=on # 2019-11-29 program_usb_boot_mode=1 program_usb_boot_timeout=1 [pi3] # 2018-09-22 cocopar 13.3inch 16:9 Display max_usb_current=1 hdmi_group=2 hdmi_mode=82 hdmi_cvt 1920 1080 60 6 0 0 0 gpu_mem=256 # 2018-09-21 Elecrow Display start # 古いディスプレイ(1024x768まで対応)だとブートしなくなる。(ディスプレイが暗い状態でチカチカするのを無限ループする)その場合はコメントアウトする。 #max_usb_current=1 #hdmi_group=2 #hdmi_mode=1 #hdmi_mode=82 #hdmi_cvt 1920 1080 60 6 0 0 0 #hdmi_drive=2 [pi3+] # 2018-09-22 cocopar 13.3inch 16:9 Display max_usb_current=1 hdmi_group=2 hdmi_mode=82 hdmi_cvt 1920 1080 60 6 0 0 0 gpu_mem=256 # 2018-09-21 Elecrow Display start # 古いディスプレイ(1024x768まで対応)だとブートしなくなる。(ディスプレイが暗い状態でチカチカするのを無限ループする)その場合はコメントアウトする。 #max_usb_current=1 #hdmi_group=2 #hdmi_mode=1 #hdmi_mode=82 #hdmi_cvt 1920 1080 60 6 0 0 0 #hdmi_drive=2 [pi4] hdmi_force_hotplug=1 hdmi_ignore_edid=0xa5000080 disable_overscan=1 # Enable DRM VC4 V3D driver on top of the dispmanx display stack dtoverlay=vc4-fkms-v3d max_framebuffers=2 # 2019-11-29 [HDMI:0] # 2018-09-22 cocopar 13.3inch 16:9 Display max_usb_current=1 hdmi_group=2 hdmi_mode=82 hdmi_cvt 1920 1080 60 6 0 0 0 gpu_mem=256 program_usb_boot_mode=1 program_usb_boot_timeout=1 # 2019-11-29 [HDMI:1] # 2018-09-21 Elecrow Display start # 古いディスプレイ(1024x768まで対応)だとブートしなくなる。(ディスプレイが暗い状態でチカチカするのを無限ループする)その場合はコメントアウトする。 max_usb_current=1 hdmi_group=2 hdmi_mode=1 hdmi_mode=82 hdmi_cvt 1920 1080 60 6 0 0 0 hdmi_drive=2 program_usb_boot_mode=1 program_usb_boot_timeout=1 [all] #dtoverlay=vc4-fkms-v3d
所感
HDMI仕様変更のせいで複雑化
Pi3B+より罠がかなり増えた。HDMIがtype Aで1ポートしかなかったので、まだ簡単だった。それでも設定には苦労させられた。
Pi4Bは type D 2ポート になり、一気に複雑化した。ケーブルの組合せは合わなくなり、合うケーブルの商品はかなり少ない。あってもボッタクリ価格。さらに設定は複雑化。表示設定はおろか、VNCログイン時のURLにまでHDMI番号が必要になる始末。
HDMI仕様変更の必要性に疑問
はたしてPi4Bのような低スペックマシンに、デュアルディスプレイなど必要あるだろうか。互換性を失わせてまでデュアルディスプレイにする必要はあるのか。学習に必要だろうか。安価に済むだろうか。
Raspberry Piの趣旨である「学習目的の安価なコンピュータ」という趣旨から外れてきたように感じる。売れるようになったから利益を産むべくインタフェース変更してケーブル類を売って儲けようという意図だろうと邪推できる。
たいてい売れて大企業化したり有名になったら腐敗する。Raspberry Piもこれから劣化するかもしれない。そうならないことを祈る。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
- bash 4.4.12(1)-release
$ uname -a Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux
前回まで
ハード。
- Raspberry Pi 4B (4GB) を2個予約した(KSY先行予約販売)
- Raspberry Pi 4B 届いた! 開封の儀
- Raspberry Pi 4B ヒートシンク取付
- Raspberry Pi 4B ケース装着
- HDMIまちがえて買ってた……(type A, C, D の罠)
ソフト。
- RPI4B Raspbian Buster USB boot 未対応……
- Raspbian Buster 2019-09-26 インストール
- Raspbian Buster 2019-09-26 ダウンロード
- Raspbian Buster 2019-09-26 HDMI設定について調べた
- Raspbian Buster 2019-09-26 インストール前の設定(Wi-Fi)
設定。
- Raspbian Buster ヘッドレス 初期設定 できないか調べた
- Raspberry Pi 4B でSSHログインできた
- Raspberry Pi 4B 初期設定(ヘッドレス)
- Raspberry Pi 4B SDブート+USBルート(≒USB boot)に成功
- VNCからRaspbian Busterへログインする方法を調べる
- VNCからRPI4B Raspbian Busterを初期セットアップする
- VNCからRPI4B Raspbian Busterをセットアップする
- Raspberry Pi 4B に HDMIケーブル A-D + 変換キャップ type A-C でディスプレイ表示する
企業。