mirror of
https://gitlab.freedesktop.org/plymouth/plymouth.git
synced 2026-05-08 06:38:05 +02:00
read-only mirror of https://gitlab.freedesktop.org/plymouth/plymouth
Before this commit plymouthd would always mark itself as "unkillable" by setting "argv[0][0] = '@';" as documented here: https://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons/ There are 2 problems with this: 1. This causes filesystems to fail to remount read-only in some case, plymouthd may be holding open a deleted file (say an upgraded library). If that happens, then the filesystem won't allow the disk to be remounted read-only, because when plymouth dies, the filesystem will need to do I/O to clean up the removed file from disk. 2. This causes the "gracefully shutdown" of displays which the kernel's i915 driver recently introduced in commit fe0f1e3bfdfe ("drm/i915: Shut down displays gracefully on reboot") to get undone. Because of being "unkillable" plymouthd keeps running and showing the spinner animation to the very end, this results in a drmModeSetCrtc () call after the i915 display driver has turned off the displays. This causes 2 issues: 2.1 This causes the screen to go black for 1-2 seconds and then show the plymouth screen again for 1-2 seconds on poweroff/reboot which looks ugly: https://bugzilla.redhat.com/show_bug.cgi?id=1941329 2.2 This may cause issues with the attached monitors on reboot, since it undoes the gracefull shutdown which the i915 does. Change the code to only set "argv[0][0] = '@';" when run from the initrd at bootup, this solves the 2 mentioned issues and brings the code inline with the above specification which says this should only ever be used for daemons started from the initrd. Note this will cause plymouth to get killed on shutdown, leading to the last couple of text messages of shutdown being shown on shutdown. This will be fixed by the next couple of patches. Related: https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/118 Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1941329 Signed-off-by: Hans de Goede <hdegoede@redhat.com> |
||
|---|---|---|
| docs | ||
| images | ||
| po | ||
| scripts | ||
| src | ||
| systemd-units | ||
| themes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| acinclude.m4 | ||
| AUTHORS | ||
| autogen.sh | ||
| ChangeLog | ||
| configure.ac | ||
| COPYING | ||
| INSTALL | ||
| Makefile.am | ||
| NEWS | ||
| README | ||
| TODO | ||
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