I am trying to reduce boot time in a Raspberry Pi 4 using Yocto Linux. The system uses SysV init. There is psplash that uses framebuffer, and Qt application that uses DRM/eglfs, displayed respectively.

I decided to launch udev after my application starts in order to save 1+ seconds. This does not affect my Qt application, since it uses DRM/eglfs. However, it affects psplash since udev somehow creates /dev/fb0. Here is an excerpt from dmesg regarding drm / fb:

[    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
[    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 

I could not find a udev rule that handles framebuffer:

    root@raspberrypi4-64:/lib/udev/rules.d# grep -nir "drm"                             
    60-drm.rules:3:ACTION!="remove", SUBSYSTEM=="drm", SUBSYSTEMS=="pci|usb|platform", I
    50-udev-default.rules:34:SUBSYSTEM=="drm", KERNEL!="renderD*", GROUP="video"        
    50-udev-default.rules:39:SUBSYSTEM=="drm", KERNEL=="renderD*", GROUP="video", MODE="
    root@raspberrypi4-64:/lib/udev/rules.d# grep -nir "fb" 

In fact, grep -nir "fb" gives nothing.

I would like to identify how udev initializes framebuffer devices, and initialize it before psplash (by using stuff like tmpfs, mknod), without udev. I already tried doing mknod /dev/fb0 c 29 0, /dev/fb0 is created but nothing on the display. Is this possible? Any help is appreciated.

NOTE: If anything is missing in the description, please let me know.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.