오렌지 파이 원 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
패치나 구성 변경 없이 작동합니다.