Bug 87993

Summary: Plymouth fails to show graphical animation
Product: plymouth Reporter: esa.peuha
Component: generalAssignee: Ray Strode [halfline] <rstrode>
Status: RESOLVED DUPLICATE QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: plymouth's debug log

Description esa.peuha 2015-01-03 12:58:43 UTC
Created attachment 111684 [details]
plymouth's debug log

On Lubuntu 14.10 with plymouth 0.9.0-0ubuntu7, plymouth doesn't show a
graphical animation on my machine. Other people also have this problem,
see https://bugs.launchpad.net/ubuntu/+source/plymouth/+bug/1370707

After reading the plymouth source and the debug log, I think I know
why. When plymouth checks udev the first time, this happens:

[ply-device-manager.c:705]                        create_seats_from_udev:Looking for devices from udev
[ply-device-manager.c:284]                    create_seats_for_subsystem:creating seats for drm devices
[ply-device-manager.c:284]                    create_seats_for_subsystem:creating seats for frame buffer devices
[ply-device-manager.c:303]                    create_seats_for_subsystem:found device /sys/devices/virtual/graphics/fbcon
[ply-device-manager.c:334]                    create_seats_for_subsystem:it's not initialized
[ply-device-manager.c:713]                        create_seats_from_udev:Creating non-graphical seat, since there's no suitable graphics hardware
[ply-device-manager.c:641]    create_seat_for_terminal_and_renderer_type:creating seat for /dev/tty7 (renderer type: 4294967295) (terminal: /dev/tty7)

So at this point the video hardware doesn't appear as a drm device,
and the fb device isn't ready, so plymouth creates a seat with text
display. So far everything is fine, but things go wrong later:

[ply-device-manager.c:357]                                 on_udev_event:got add event for device card0
[ply-device-manager.c:178]                   create_seat_for_udev_device:device is for local console: yes
[ply-device-manager.c:191]                   create_seat_for_udev_device:device subsystem is drm
[ply-device-manager.c:195]                   create_seat_for_udev_device:found DRM device /dev/dri/card0
[ply-device-manager.c:636]    create_seat_for_terminal_and_renderer_type:trying to create seat for local console when one already exists

So when udev adds the hardware as a drm device, plymouth tries to
create a seat with a pixel display, but because there already is the
seat with a text display pointing at the same local console, plymouth
gives up with the result that there is no seat with a pixel display
for the hardware. As far as I can tell, the logic in function
create_seat_for_terminal_and_renderer_type should be changed so that
if the existing seat has a text display, then either modify that seat
to have a pixel display or create a new seat with a pixel display.
Comment 1 Chris Bainbridge 2016-02-06 17:49:03 UTC

*** This bug has been marked as a duplicate of bug 80553 ***

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.