Bug 87993 - Plymouth fails to show graphical animation
Summary: Plymouth fails to show graphical animation
Status: RESOLVED DUPLICATE of bug 80553
Alias: None
Product: plymouth
Classification: Unclassified
Component: general (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Ray Strode [halfline]
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-01-03 12:58 UTC by esa.peuha
Modified: 2016-02-06 17:49 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
plymouth's debug log (27.76 KB, text/plain)
2015-01-03 12:58 UTC, esa.peuha
Details

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.