Comment 3 for bug 770371

Revision history for this message
Peter Wu (lekensteyn) wrote : Re: Splash screen in text mode at boot up

I've an intel i5-460M and a nvidia GT 425m card, with the latter not in use. I've the same issue: although the splash screen has a background color (blue for Kubuntu), the splash screen is a text-only splash.

On my previous installation, I upgraded from Maverick to Natty. In Maverick, the splash screen was working fine, after the upgrade the above problem began to occur.
When using the Maverick kernel (2.6.35-28) to boot into Natty, the splash screen works fine. I've looked at the differences between the initrd of maverick and natty, and the only differences were the kernel files (/lib/modules/*).

A fresh installation of Natty did not help, the problem still exists.

I've compared debug logs (add plymouth:debug as boot option, it will generate a log at /var/log/plymouth-debug.log) of two identical systems running maverick and natty, and the problem is that the intel driver is not loaded or something:

The relevant output on maverick is:
[./plugin.c] create_backend:creating renderer backend for device /dev/dri/card0
[./plugin.c] load_driver:Attempting to load driver 'i915'

Natty shows:
[./plugin.c] create_backend:creating renderer backend for device /dev/dri/card0
[./plugin.c] load_driver:Attempting to load driver '(null)'
[./plugin.c] load_driver:drmOpen failed
[ply-renderer.c] ply_renderer_open:could not open rendering device for plugin /lib/plymouth/renderers/drm.so
[./plugin.c] create_backend:creating renderer backend for device /dev/fb0
[./plugin.c] open_device:could not open '/dev/fb0': No such file or directory
[ply-renderer.c] ply_renderer_open:could not open rendering device for plugin /lib/plymouth/renderers/frame-buffer.so
[./plugin.c] open_device:could not open '/dev/fb0': No such file or directory
[ply-renderer.c] ply_renderer_open:could not open rendering device for plugin /lib/plymouth/renderers/vga16fb.so
[ply-renderer.c] ply_renderer_open:could not find suitable rendering plugin
[main.c] add_default_displays_and_keyboard:could not open renderer /dev/fb
[main.c] add_display_and_keyboard_for_terminal:adding display and keyboard for /dev/tty7

Looking in the source code (apt-get source plymouth), the message comes from plymouth-0.8.2/src/plugins/renderers/drm/plugin.c:473.
`null` refers to the driver name, and is defined in the line above (472) by calling find_driver_for_device("/dev/dri/card0").
Reasons why that function may return NULL:
- /dev/dri/card0 does not exist
- /dev/dri/card0 is not a character device (unlikely)
- /sys/dev/char/XX:YY/device/driver does not exist (run `stat -c'%t.%T' /dev/dri/card0` to get XX:YY)
- The previous link in /sys/... did not point to a valid driver (i915)

When booting with the options `quiet splash` options removed, and `nosplash break=top` added (drops to a shell before running local-top scripts like plymouth), I checked some stuff:
- cat /proc/modules: no modules seems to be loaded
- ls -l /dev/dri/card0: missing AHA! PROBLEM FOUND!

Next, I try to load the i915 driver manually:
    modprobe i915
When done, I pressed Ctrl + D (exit) and w00t: the nice splash screen finally shows up!

Now I need to find a way to fix this in a proper way.