Comment 3 for bug 648013

Revision history for this message
iMac (imac-netstatz) wrote : Re: Maverick splash screen messed up by ATI proprietary drivers

I have the released 10.10 with and ATI card and plymouth falls back on the plymouth-text splash screen. I suspect this is the same problem I currently see on at least 3 other ATI GPU maverick system configurations here (all upgraded from Lucid), some laptops, others desktops. I'll do my best to get others to note this affects them.

On my particular laptop, when I remove the fglrx drivers and fall back on the open source radeon, the graphical boot only works after I additionally add a "sleep 2" to the end of "/usr/share/initramfs-tools/scripts/init-top/framebuffer" and rebuilding the initrd image. Without this flag I see my text-splash get resized after initially appearing, indicating a separate race that may be specific to my machine that I noted from Steve L's comments in another related bug. In any case without fglrx installed I see a graphical splash on shutdown. Perhaps a separate bug should be filed for this race condition issue, as it prevents people from correctly identifying the specific impact of the fglrx proprietary drivers.

Initrd image file listing output (below) verifies my plymouth packages installation, and I performed an uninstallation/re-installation of the plymouth packages early in my debugging process.

In my plymouth debug log (below), I can clearly see no supported renderers with the fglrx loading. I additionally verified using break=modules that the text-splash loaded to rule out any race conditions like the ones seen with the opensource drivers. In this case the "/sbin/plymouthd --mode=boot --pid-file=/dev/.initramfs/plymouth.pid resulted once again in plymouth-text splash. No /dev/fb0 (like with the opensource drivers) was present or noted in the dmesg.

Finally, with X loaded I can see the graphical splash (resized at a lower resolution than my native WSXGA+ 1680x1040) show by executing
  sudo plymouthd
  sudo plymouth --show-splash

-- plymouth debug --
[./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

root@repo:/home/imac# zcat /boot/initrd.img-$(uname -r) | cpio -t | grep -i plymouth
lib/plymouth
lib/plymouth/details.so
lib/plymouth/ubuntu-text.so
lib/plymouth/ubuntu-logo.png
lib/plymouth/renderers
lib/plymouth/renderers/vga16fb.so
lib/plymouth/renderers/frame-buffer.so
lib/plymouth/renderers/drm.so
lib/plymouth/themes
lib/plymouth/themes/ubuntu-text
lib/plymouth/themes/ubuntu-text/ubuntu-text.plymouth
lib/plymouth/themes/ubuntu-logo
lib/plymouth/themes/ubuntu-logo/ubuntu-logo.script
lib/plymouth/themes/ubuntu-logo/ubuntu-logo.plymouth
lib/plymouth/themes/ubuntu-logo/ubuntu_logo.png
lib/plymouth/themes/ubuntu-logo/progress_dot_on16.png
lib/plymouth/themes/ubuntu-logo/progress_dot_off16.png
lib/plymouth/themes/ubuntu-logo/progress_dot_off.png
lib/plymouth/themes/ubuntu-logo/password_field16.png
lib/plymouth/themes/ubuntu-logo/password_field.png
lib/plymouth/themes/ubuntu-logo/progress_dot_on.png
lib/plymouth/themes/ubuntu-logo/ubuntu_logo16.png
lib/plymouth/themes/details
lib/plymouth/themes/details/details.plymouth
lib/plymouth/themes/default.plymouth
lib/plymouth/themes/text.plymouth
lib/plymouth/label.so
lib/plymouth/script.so
96139 blocks
bin/plymouth
scripts/init-top/plymouth
scripts/panic/plymouth
scripts/init-bottom/plymouth
sbin/plymouthd
root@repo:/home/imac#

root@repo:/etc/alternatives# ls -al | grep plymouth
lrwxrwxrwx 1 root root 53 2010-05-04 21:47 default.plymouth -> /lib/plymouth/themes/ubuntu-logo/ubuntu-logo.plymouth
lrwxrwxrwx 1 root root 53 2010-10-12 15:06 text.plymouth -> /lib/plymouth/themes/ubuntu-text/ubuntu-text.plymouth

root@repo:/etc/alternatives# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-2.6.35-22-generic root=UUID=52543d1c-6080-4cdf-80e0-30b9af3748f7 ro quiet splash plymouth:debug=file:/var/log/plymouth-debug.log

Additionally I did not have any luck with one or more of the following workarounds
a) Adding to my kernel command line: nomodeset video=uvesafb:mode_option=640x480-24,mtrr=3,scroll=ywrap
b) Rebuilding initrd image after, "echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash"

A few unrelated notes that may be useful to people trying to verify my observations without fglrx. When fglrx is removed, it removes the blacklisting in /etc/modprobe.d/fglrx.conf for radeon (and no other should be present; I removed a legacy blacklist-fglrx-conf from an older pre-maverick package) and the following is observed allowing plymouth-theme-ubuntu-logo to display correctly on shutdown, and on boot if you don't have-or-workaround the race condition I described above.

# cat /var/log/dmesg | grep fb0
[ 4.457048] fb0: radeondrmfb frame buffer device

# lsmod | grep radeon
radeon 906714 2
ttm 68212 1 radeon
drm_kms_helper 32836 1 radeon
drm 206161 4 radeon,ttm,drm_kms_helper
i2c_algo_bit 6208 1 radeon

I also note that when I remove my specially crafted fglrx xorg.conf, the radeon module loads anyways even if fglrx is installed resulting in a X display with a black strip at the bottom of my display. A properly working fglrx on my system requires an xorg.conf on my system to keep X from loading radeon module on login.

i.e. #lsmod | grep radeon

shows no results only with my xorg.conf specifying fglrx.