Find a file
Gaël PORTAY 7dcd1f645d ply-device-manager: Fix bad assertion
The function watch_for_udev_events() asserts that udev_monitor cannot be
NULL.

This situation is actually possible and it is easy reproductible by
deactivating and reactivating the splash then.

This commit removes that assertion which is not true. Furthermore, the
function allocates a monitor if it is NULL, right after that assertion.

Fixes:

	00:12:42.405 ply-boot-server.c:393:print_connection_process_identity       : connection is from pid 2227 (plymouth reactivate) with parent pid 2137 (-ash)
	00:12:42.405 ply-boot-server.c:521:ply_boot_connection_on_request          : got reactivate request
	00:12:42.405 ply-terminal.c:637:ply_terminal_open                          : trying to open terminal '/dev/tty1'
	00:12:42.405 ply-terminal.c:430:ply_terminal_refresh_geometry              : looking up terminal text geometry
	00:12:42.405 ply-terminal.c:442:ply_terminal_refresh_geometry              : terminal is now 240x67 text cells
	00:12:42.405 ply-device-manager.c:1062:ply_device_manager_activate_keyboard: activating keyboards
	00:12:42.405 ply-device-manager.c:1114:ply_device_manager_unpause          : ply_device_manager_unpause() called, resuming watching for udev events
	00:12:42.405 ply-device-manager.c:1118:ply_device_manager_unpause          : ply_device_manager_unpause(): timeout elapsed while paused, looking for udev devices
	00:12:42.406 ply-device-manager.c:909:create_devices_from_udev             : Timeout elapsed, looking for devices from udev
	00:12:42.406 ply-device-manager.c:331:create_devices_for_subsystem         : creating objects for drm devices
	00:12:42.407 ply-device-manager.c:351:create_devices_for_subsystem         : found device /sys/devices/platform/soc/soc:gpu/drm/card0
	00:12:42.407 ply-device-manager.c:358:create_devices_for_subsystem         : device is initialized
	00:12:42.408 ply-device-manager.c:367:create_devices_for_subsystem         : found node /dev/dri/card0
	00:12:42.408 ply-device-manager.c:275:create_devices_for_udev_device       : device subsystem is drm
	00:12:42.408 ply-device-manager.c:278:create_devices_for_udev_device       : found DRM device /dev/dri/card0
	00:12:42.408 ply-device-manager.c:774:create_devices_for_terminal_and_rende: ignoring device /dev/dri/card0 since it's already managed
	00:12:42.408 ply-device-manager.c:351:create_devices_for_subsystem         : found device /sys/devices/platform/soc/soc:gpu/drm/card0/card0-Composite-1
	00:12:42.408 ply-device-manager.c:358:create_devices_for_subsystem         : device is initialized
	00:12:42.409 ply-device-manager.c:351:create_devices_for_subsystem         : found device /sys/devices/platform/soc/soc:gpu/drm/card0/card0-HDMI-A-1
	00:12:42.409 ply-device-manager.c:358:create_devices_for_subsystem         : device is initialized
	00:12:42.409 ply-device-manager.c:351:create_devices_for_subsystem         : found device /sys/devices/platform/soc/soc:gpu/drm/card0/card0-Writeback-1
	00:12:42.410 ply-device-manager.c:358:create_devices_for_subsystem         : device is initialized
	00:12:42.410 ply-device-manager.c:351:create_devices_for_subsystem         : found device /sys/devices/platform/soc/soc:gpu/drm/renderD128
	00:12:42.410 ply-device-manager.c:358:create_devices_for_subsystem         : device is initialized
	00:12:42.410 ply-device-manager.c:371:create_devices_for_subsystem         : device doesn't have a devices tag
	00:12:42.410 ply-device-manager.c:331:create_devices_for_subsystem         : creating objects for frame buffer devices
	00:12:42.411 ply-device-manager.c:351:create_devices_for_subsystem         : found device /sys/devices/platform/soc/soc:gpu/graphics/fb0
	00:12:42.412 ply-device-manager.c:358:create_devices_for_subsystem         : device is initialized
	00:12:42.412 ply-device-manager.c:367:create_devices_for_subsystem         : found node /dev/fb0
	00:12:42.412 ply-device-manager.c:275:create_devices_for_udev_device       : device subsystem is graphics
	00:12:42.412 ply-device-manager.c:281:create_devices_for_udev_device       : found frame buffer device /dev/fb0
	00:12:42.412 ply-device-manager.c:231:fb_device_has_drm_device             : trying to find associated drm node for fb device (path: platform-soc:gpu)
	00:12:42.418 ply-device-manager.c:285:create_devices_for_udev_device       : ignoring, since there's a DRM device associated with it
	00:12:42.418 ply-device-manager.c:351:create_devices_for_subsystem         : found device /sys/devices/virtual/graphics/fbcon
	00:12:42.418 ply-device-manager.c:374:create_devices_for_subsystem         : it's not initialized
	Assertion failed: manager->udev_monitor == NULL (ply-device-manager.c: watch_for_udev_events: 461)
	Aborted

Signed-off-by: Gaël PORTAY <gael.portay@collabora.com>
2021-03-23 11:00:20 +01:00
docs docs: fix man page cross-reference 2020-05-30 13:51:47 +02:00
images ship bizcom unconditionally 2008-06-22 00:49:24 -04:00
po Added translation using Weblate (Sinhala) 2021-03-23 10:41:42 +01:00
scripts scripts: Remove new-object.sh 2021-03-06 10:40:36 +01:00
src ply-device-manager: Fix bad assertion 2021-03-23 11:00:20 +01:00
systemd-units systemd: switch to KillMode=mixed 2021-02-22 12:45:11 +00:00
themes autogoo: use /proc/self/fd/0 instead of /dev/stdin 2020-07-09 09:34:36 -04:00
.gitignore gitignore: Add translation related generated files to .gitignore 2019-10-15 11:33:55 +02:00
.gitlab-ci.yml Apply suggestion to .gitlab-ci.yml 2020-07-08 19:20:46 +00:00
acinclude.m4 [configure] Add AS_AC_EXPAND for configured dirs 2009-08-07 16:32:32 -04:00
AUTHORS Add Peter to AUTHORS 2008-06-10 21:59:10 -04:00
autogen.sh build-goo: get rid of warnings related to non-GNU systems 2013-12-11 13:32:54 -05:00
ChangeLog Put in ChangeLog request to not use ChangeLog 2008-05-20 15:15:03 -04:00
configure.ac The use of AM_GNU_GETTEXT_VERSION in configure.ac instructs autopoint to 2021-03-09 12:12:23 +00:00
COPYING initial import 2007-05-08 17:48:00 -04:00
INSTALL build-goo: Remove vestigial remnants of old GDM integration code. 2020-03-07 00:36:54 +08:00
Makefile.am po: drop intltool usage 2020-07-08 15:12:54 -04:00
NEWS initial import 2007-05-08 17:48:00 -04:00
README README: add link to Code of Conduct 2018-08-06 14:58:18 -04:00
TODO Add hack to make maintenance mode probably work when 2008-06-30 17:55:15 -04:00

plymouth - graphical boot animation and logger

Plymouth is an application that runs very early in the boot process
(even before the root filesystem is mounted!) that provides a graphical
boot animation while the boot process happens in the background.

It is designed to work on systems with DRM modesetting drivers. The idea
is that early on in the boot process the native mode for the computer is
set, plymouth uses that mode, and that mode stays throughout the entire
boot process up to and after X starts. Ideally, the goal is to get rid
of all flicker during startup.

For systems that don't have DRM mode settings drivers, plymouth falls
back to text mode (it can also use a legacy /dev/fb interface).

In either text or graphics mode, the boot messages are completely
occluded.  After the root file system is mounted read-write, the
messages are dumped to /var/log/boot.log. Also, the user can see the
messages at any time during boot up by hitting the escape key.

Plymouth isn't really designed to be built from source by end users. For
it to work correctly, it needs integration with the distribution.
Because it starts so early, it needs to be packed into the
distribution's initial ram disk, and the distribution needs to poke
plymouth to tell it how boot is progressing.

plymouth ships with two binaries: /sbin/plymouthd and /bin/plymouth

The first one, plymouthd, does all the heavy lifting. It logs the
session and shows the splash screen. The second one, /bin/plymouth, is
the control interface to plymouthd.

It supports things like plymouth show-splash, or plymouth
ask-for-password, which trigger the associated action in plymouthd.

Plymouth supports various "splash" themes which are analogous to
screensavers, but happen at boot time. There are several sample themes
shipped with plymouth, but most distributions that use plymouth ship
something customized for their distribution.

Plymouth isn't done yet. It's still under active development, but is
used in several popular distros already, including Fedora, Mandriva,
Ubuntu and others.  See the distributions page for more information.

As with other projects hosted on freedesktop.org, Plymouth follows its
Code of Conduct, based on the Contributor Covenant. Please conduct
yourself in a respectful and civilized manner when using the above
mailing lists, bug trackers, etc:

	https://www.freedesktop.org/wiki/CodeOfConduct