-
-
Notifications
You must be signed in to change notification settings - Fork 36
Description
Using Debian bananas (kernel from Salsa) with initramfs-tools and plymouth, the initrd image is loading the asahi drm module and displays a plymouth splash (within 2 sec).
00:00:01.987 ../src/libply-splash-core/ply-device-manager.c:478:create_devi: creating objects for drm devices
00:00:01.988 ../src/libply-splash-core/ply-device-manager.c:498:create_devi: found device /sys/devices/platform/soc/206400000.gpu/drm/card0
00:00:01.989 ../src/libply-splash-core/ply-device-manager.c:505:create_devi: device is initialized
00:00:01.990 ../src/libply-splash-core/ply-device-manager.c:509:create_devi: found node /dev/dri/card0
00:00:01.990 ../src/libply-splash-core/ply-device-manager.c:396:create_devi: device subsystem is drm
00:00:01.991 ../src/libply-splash-core/ply-device-manager.c:403:create_devi: found DRM device /dev/dri/card0
00:00:01.991 ../src/libply-splash-core/ply-device-manager.c:1097:create_dev: creating devices for /dev/dri/card0 (renderer type: 1) (terminal: /dev/tty1)
00:00:01.992 ../src/libply-splash-core/ply-renderer.c:235:ply_renderer_open: trying to open renderer plugin /usr/lib/aarch64-linux-gnu/plymouth/renderers/drm.so
00:00:01.993 ../src/plugins/renderers/drm/plugin.c:894:create_backend : creating renderer backend for device /dev/dri/card0
00:00:01.993 ../src/plugins/renderers/drm/plugin.c:977:load_driver : Opening '/dev/dri/card0'
00:00:01.994 ../src/plugins/renderers/drm/plugin.c:987:load_driver : drm driver: asahi
[...]
00:00:02.004 ../src/plugins/renderers/drm/plugin.c:977:load_driver : Opening '/dev/dri/renderD128'
00:00:02.005 ../src/plugins/renderers/drm/plugin.c:987:load_driver : drm driver: asahi
[...]
00:00:02.040 ../src/ply-boot-server.c:395:print_connection_process_identity: connection is from pid 426 (/usr/bin/plymouth --show-splash) with parent pid 421 (/bin/sh /scripts/init-premount/plymouth)
00:00:02.041 ../src/ply-boot-server.c:494:ply_boot_connection_on_request : got show splash request
[...]
00:00:02.042 ../src/main.c:456:show_default_splash : Showing splash screen
With the same kernel, but using dracut to generate the initrd, the asahi drm module is loaded too late (after 9.5 sec) for plymouth to display a splash, and it falls back to text mode.
00:00:01.569 ../src/libply-splash-core/ply-device-manager.c:478:create_devi: creating objects for drm devices
00:00:01.570 ../src/main.c:2564:main : entering event loop
00:00:01.571 ../src/libply/ply-utils.c:1098:ply_get_kmsg_log_levels : opening /proc/sys/kernel/printk
00:00:01.571 ../src/libply/ply-utils.c:1106:ply_get_kmsg_log_levels : reading kmsg log levels
00:00:01.576 ../src/ply-boot-server.c:395:print_connection_process_identity: connection is from pid 526 (/usr/bin/plymouth show-splash) with parent pid 1 (/init splash)
00:00:01.578 ../src/ply-boot-server.c:494:ply_boot_connection_on_request : got show splash request
00:00:01.579 ../src/main.c:858:plymouth_should_ignore_show_splash_calls : checking if plymouth should be running
00:00:01.579 ../src/main.c:1757:tell_systemd_to_print_details : telling systemd to start printing details
00:00:01.579 ../src/main.c:1015:on_show_splash : no displays available to show splash on, waiting...
00:00:01.579 ../src/libply/ply-event-loop.c:1142:ply_event_loop_free_destin: freeing destination (1, 0x555585397140, 0x555585396580) of fd 12
00:00:01.581 ../src/ply-boot-server.c:391:print_connection_process_identity: connection is from toplevel init process (/init splash)
00:00:01.581 ../src/ply-boot-server.c:446:ply_boot_connection_on_request : got update request
[...]
00:00:01.791 ../src/libply-splash-core/ply-device-manager.c:1070:create_tex: adding text display for terminal /dev/tty1
[...]
00:00:01.792 ../src/libply-splash-core/ply-boot-splash.c:547:ply_boot_splas: showing splash screen
00:00:01.792 ../src/plugins/splash/script/plugin.c:423:show_splash_screen : no pixel displays
00:00:01.792 ../src/libply-splash-core/ply-boot-splash.c:553:ply_boot_splas: can't show splash: Success
[...]
00:00:09.571 ../src/libply-splash-core/ply-device-manager.c:403:create_devi: found DRM device /dev/dri/card0
00:00:09.572 ../src/libply-splash-core/ply-device-manager.c:1097:create_dev: creating devices for /dev/dri/card0 (renderer type: 1) (terminal: none)
00:00:09.572 ../src/libply-splash-core/ply-renderer.c:235:ply_renderer_open: trying to open renderer plugin /usr/lib/aarch64-linux-gnu/plymouth/renderers/drm.so
00:00:09.572 ../src/plugins/renderers/drm/plugin.c:894:create_backend : creating renderer backend for device /dev/dri/card0
00:00:09.572 ../src/plugins/renderers/drm/plugin.c:977:load_driver : Opening '/dev/dri/card0'
00:00:09.572 ../src/plugins/renderers/drm/plugin.c:987:load_driver : drm driver: asahi
[...]
00:00:09.575 ../src/libply-splash-core/ply-device-manager.c:498:create_devi: found device /sys/devices/platform/soc/206400000.gpu/drm/renderD128
00:00:09.576 ../src/libply-splash-core/ply-device-manager.c:505:create_devi: device is initialized
00:00:09.577 ../src/libply-splash-core/ply-device-manager.c:509:create_devi: found node /dev/dri/renderD128
00:00:09.577 ../src/libply-splash-core/ply-device-manager.c:396:create_devi: device subsystem is drm
00:00:09.578 ../src/libply-splash-core/ply-device-manager.c:403:create_devi: found DRM device /dev/dri/renderD128
00:00:09.579 ../src/libply-splash-core/ply-device-manager.c:1097:create_dev: creating devices for /dev/dri/renderD128 (renderer type: 1) (terminal: none)
00:00:09.579 ../src/libply-splash-core/ply-renderer.c:235:ply_renderer_open: trying to open renderer plugin /usr/lib/aarch64-linux-gnu/plymouth/renderers/drm.so
00:00:09.580 ../src/plugins/renderers/drm/plugin.c:894:create_backend : creating renderer backend for device /dev/dri/renderD128
00:00:09.581 ../src/plugins/renderers/drm/plugin.c:977:load_driver : Opening '/dev/dri/renderD128'
00:00:09.582 ../src/plugins/renderers/drm/plugin.c:987:load_driver : drm driver: asahi
On Ubuntu Asahi, which includes the simpledrm module, the dracut initrd loads the asahi drm too late as well (9 sec) and falls back to the simpledrm driver.
00:00:01.232 ../src/plugins/renderers/drm/plugin.c:990:load_driver : drm driver: simpledrm
[...]
00:00:01.825 ../src/main.c:456:show_default_splash : Showing splash screen
[...]
00:00:09.228 ../src/libply-splash-core/ply-device-manager.c:391:create_devi: found DRM device /dev/dri/card1
00:00:09.228 ../src/libply-splash-core/ply-device-manager.c:1111:create_dev: creating devices for /dev/dri/card1 (renderer type: 1) (terminal: none)
00:00:09.228 ../src/libply-splash-core/ply-renderer.c:247:ply_renderer_open: trying to open renderer plugin /usr/lib/aarch64-linux-gnu/plymouth/renderers/drm.so
00:00:09.228 ../src/plugins/renderers/drm/plugin.c:896:create_backend : creating renderer backend for device /dev/dri/card1
00:00:09.228 ../src/plugins/renderers/drm/plugin.c:980:load_driver : Opening '/dev/dri/card1'
00:00:09.228 ../src/plugins/renderers/drm/plugin.c:990:load_driver : drm driver: asahi
[...]
00:00:09.228 ../src/libply-splash-core/ply-device-manager.c:482:create_devi: found device /sys/devices/platform/soc/406400000.gpu/drm/renderD128
00:00:09.228 ../src/libply-splash-core/ply-device-manager.c:490:create_devi: device is initialized 1
00:00:09.228 ../src/libply-splash-core/ply-device-manager.c:494:create_devi: found node /dev/dri/renderD128
00:00:09.228 ../src/libply-splash-core/ply-device-manager.c:379:create_devi: device subsystem is drm
I have tried to force the asahi module to be loaded early by adding it to the force_drivers entry (in 10-asahi.conf):
force_drivers+=" asahi xhci-plat-hcd "
Although the asahi driver is probed early (entries within 2 sec, but only fully loaded after 9 sec), it still isn't able to be used by plymouth to display a splash and falls back to text mode/simpledrm.
00:00:01.652 ../src/libply-splash-core/ply-device-manager.c:478:create_devi: creating objects for drm devices
00:00:01.653 ../src/libply-splash-core/ply-device-manager.c:498:create_devi: found device /sys/devices/platform/soc/206400000.gpu/drm/card0
00:00:01.654 ../src/libply-splash-core/ply-device-manager.c:505:create_devi: device is initialized
00:00:01.655 ../src/libply-splash-core/ply-device-manager.c:509:create_devi: found node /dev/dri/card0
00:00:01.656 ../src/libply-splash-core/ply-device-manager.c:396:create_devi: device subsystem is drm
00:00:01.657 ../src/libply-splash-core/ply-device-manager.c:403:create_devi: found DRM device /dev/dri/card0
00:00:01.658 ../src/libply-splash-core/ply-device-manager.c:1097:create_dev: creating devices for /dev/dri/card0 (renderer type: 1) (terminal: /dev/tty1)
00:00:01.659 ../src/libply-splash-core/ply-renderer.c:235:ply_renderer_open: trying to open renderer plugin /usr/lib/aarch64-linux-gnu/plymouth/renderers/drm.so
00:00:01.660 ../src/plugins/renderers/drm/plugin.c:894:create_backend : creating renderer backend for device /dev/dri/card0
00:00:01.661 ../src/plugins/renderers/drm/plugin.c:977:load_driver : Opening '/dev/dri/card0'
00:00:01.662 ../src/plugins/renderers/drm/plugin.c:987:load_driver : drm driver: asahi
[...]
00:00:01.825 ../src/libply-splash-core/ply-device-manager.c:1070:create_tex: adding text display for terminal /dev/tty1
00:00:01.825 ../src/main.c:1144:on_text_display_added : text display added before splash loaded, so loading splash now
00:00:01.825 ../src/main.c:890:plymouth_should_show_default_splash : checking if plymouth should show default splash
00:00:01.825 ../src/main.c:918:plymouth_should_show_default_splash : using default splash because kernel command line has option "splash"
00:00:01.825 ../src/main.c:456:show_default_splash : Showing splash screen
[...]
00:00:09.690 ../src/libply-splash-core/ply-device-manager.c:509:create_devi: found node /dev/dri/renderD128
00:00:09.691 ../src/libply-splash-core/ply-device-manager.c:396:create_devi: device subsystem is drm
00:00:09.691 ../src/libply-splash-core/ply-device-manager.c:403:create_devi: found DRM device /dev/dri/renderD128
00:00:09.692 ../src/libply-splash-core/ply-device-manager.c:1097:create_dev: creating devices for /dev/dri/renderD128 (renderer type: 1) (terminal: none)
00:00:09.692 ../src/libply-splash-core/ply-renderer.c:235:ply_renderer_open: trying to open renderer plugin /usr/lib/aarch64-linux-gnu/plymouth/renderers/drm.so
00:00:09.693 ../src/plugins/renderers/drm/plugin.c:894:create_backend : creating renderer backend for device /dev/dri/renderD128
00:00:09.693 ../src/plugins/renderers/drm/plugin.c:977:load_driver : Opening '/dev/dri/renderD128'
00:00:09.694 ../src/plugins/renderers/drm/plugin.c:987:load_driver : drm driver: asahi
[...]
00:00:09.700 ../src/libply-splash-core/ply-device-manager.c:396:create_devi: device subsystem is drm
00:00:09.701 ../src/libply-splash-core/ply-device-manager.c:403:create_devi: found DRM device /dev/dri/card1
00:00:09.701 ../src/libply-splash-core/ply-device-manager.c:1097:create_dev: creating devices for /dev/dri/card1 (renderer type: 1) (terminal: none)
00:00:09.702 ../src/libply-splash-core/ply-renderer.c:235:ply_renderer_open: trying to open renderer plugin /usr/lib/aarch64-linux-gnu/plymouth/renderers/drm.so
00:00:09.702 ../src/plugins/renderers/drm/plugin.c:894:create_backend : creating renderer backend for device /dev/dri/card1
00:00:09.703 ../src/plugins/renderers/drm/plugin.c:977:load_driver : Opening '/dev/dri/card1'
00:00:09.704 ../src/plugins/renderers/drm/plugin.c:987:load_driver : drm driver: apple
Does the Fedora Asahi Remix's dracut initrd load and display the splash with the asahi drm driver or does it also fall back to simpledrm (can someone confirm)?
If it helps, I have put the full plymouth logs at: reviczky/asahi#8 (comment)