オレンジパイのHDMI出力が機能しないのはなぜですか?

オレンジパイのHDMI出力が機能しないのはなぜですか?

私はオレンジパイワンH3に関連するプロジェクトのための小さなLinuxディストリビューションを作成しましたが、HDMI出力は機能しません。

Linuxカーネルがこのデバイスをサポートしていることを確認するために別のディストリビューション(armbian)をテストしましたが、うまくいきました。これを念頭に置いて、それに応じてカーネル設定を変更し、関連する機能をすべて追加してみましたが、私のバージョンはまだ機能しません。

毎回試した後、dmesgを調べることにしましたが、削除できないエラーがあることがわかりました。

[    0.827899] sun4i-drm display-engine: bound 1100000.mixer (ops 0xc0851c2c)
[    0.835081] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xc084e2dc)
[    0.842821] sun8i-dw-hdmi 1ee0000.hdmi: supply hvcc not found, using dummy regulator
[    0.851453] sun8i-dw-hdmi 1ee0000.hdmi: Detected HDMI TX controller v1.32a with HDCP (sun8i_dw_hdmi_phy)
[    0.861330] sun8i-dw-hdmi 1ee0000.hdmi: registered DesignWare HDMI I2C bus driver
[    0.869108] sun4i-drm display-engine: bound 1ee0000.hdmi (ops 0xc0851228)
[    0.875927] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    0.882941] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
[    0.995934] random: fast init done
[    1.001697] sun4i-drm display-engine: [drm] *ERROR* fbdev: Failed to setup generic emulation (ret=-12)
[    1.013330] lima 1c40000.gpu: gp - mali400 version major 1 minor 1

インターネット上でこの特定のエラーに関する有用な情報が見つからず、カーネルソースから戻りコードの説明が見つかりません。問題を解決するにはどうすればよいですか?

私はそれを使用しています

- Linux version 5.8.13 (arm-linux-musleabihf-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35)
- No modules, no initrd/initramfs
- Machine model: Xunlong Orange Pi One
- U-boot (orangepi_one_defconfig)

ベストアンサー1

このエラーはメモリ不足エラー(ENOMEM)です。 CMAサイズは、モニターが使用する解像度の元のフレームよりも1つ大きい必要があるためです。

1920x1080 32bppは8MB程度必要で、デフォルトは16MBなので動作しますが、3840x2160 32bppは32MBより少し必要です。

Armbianは次のようにカーネル構成のデフォルトサイズを128Mに変更しました。CONFIG_CMA_SIZE_MBYTES=128

ただし、bootargを使用してCMAサイズを64Mに設定すると、パッチやcma=64M設定を変更せずに機能します。

おすすめ記事