Raspberry Pi 4의 부팅 시간을 줄이기 위해 Yocto Linux를 사용하려고 합니다. 시스템은 SysV init를 사용합니다. 프레임버퍼를 사용하여 psplash를 표시하고 DRM/eglfs를 사용하여 Qt 애플리케이션을 각각 표시합니다.
1초 이상을 절약하기 위해 애플리케이션이 시작된 후에 udev를 시작하기로 결정했습니다. DRM/eglfs를 사용하므로 내 Qt 애플리케이션에는 영향을 미치지 않습니다. 그러나 udev가 어떻게든 생성되기 때문에 psplash에 영향을 미칩니다 /dev/fb0
. 다음은 drm/fb에 관한 dmesg에서 발췌한 내용입니다.
[ 8.825197] [drm] Initialized v3d 1.0.0 20180419 for fec00000.v3d on minor 0
[ 8.849067] initcall v3d_drm_register+0x0/0x1000 [v3d] returned 0 after 45382 use
cs
[ 9.093550] calling vc4_drm_register+0x0/0x1000 [vc4] @ 295
[ 9.118718] vc4-drm soc:gpu: bound fe600000.firmwarekms (ops vc4_fkms_ops [vc4])
[ 9.134170] [drm] Initialized vc4 0.0.0 20140616 for soc:gpu on minor 1
[ 9.146065] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 9.159925] [drm] No driver support for vblank timestamp query.
[ 9.171742] [drm] Setting vblank_disable_immediate to false because get_vblank_ti
mestamp == NULL
[ 9.337974] vc4-drm soc:gpu: fb0: DRM emulated frame buffer device
프레임버퍼 처리에 대한 udev 규칙을 찾을 수 없습니다.
root@raspberrypi4-64:/lib/udev/rules.d# grep -nir "drm"
60-drm.rules:3:ACTION!="remove", SUBSYSTEM=="drm", SUBSYSTEMS=="pci|usb|platform", I
MPORT{builtin}="path_id"
50-udev-default.rules:34:SUBSYSTEM=="drm", KERNEL!="renderD*", GROUP="video"
50-udev-default.rules:39:SUBSYSTEM=="drm", KERNEL=="renderD*", GROUP="video", MODE="
0666"
root@raspberrypi4-64:/lib/udev/rules.d# grep -nir "fb"
사실 grep -nir "fb"
아무것도 주어지지 않습니다.
udev가 프레임 버퍼 장치를 초기화하고 udev 없이 psplash(tmpfs, mknod 등을 사용하여) 전에 초기화하는 방법을 결정하고 싶습니다. /dev/fb0을 생성하여 이 작업을 시도했지만 mknod /dev/fb0 c 29 0
디스플레이에 아무 것도 나타나지 않습니다. 가능합니까? 도움을 주시면 감사하겠습니다.
노트:설명에 누락된 부분이 있으면 알려주시기 바랍니다.