我正在运行 Ubuntu 16.04,当我添加并选择默认添加的主题之外的另一个 Plymouth 主题时,重新启动进行测试时,我在关机过程中看到它,但是当重新启动时,在 grub 之后我得到一个黑屏,上面什么都没有,直到我进入登录屏幕。
答案1
安装还不够
每个 plymouth 主题都有一个优先级,默认情况下,优先级最高的主题被选为启动主题。您可以使用以下命令覆盖它:
sudo update-alternatives -config default.plymouth
显示的内容如下:
There are 2 choices for the alternative default.plymouth (providing /usr/share/plymouth/themes/default.plymouth).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/share/plymouth/themes/ubuntu-logo/ubuntu-logo.plymouth 100 auto mode
1 /usr/share/plymouth/themes/ubuntu-logo/ubuntu-logo-scale-2.plymouth 99 manual mode
2 /usr/share/plymouth/themes/ubuntu-logo/ubuntu-logo.plymouth 100 manual mode
Press <enter> to keep the current choice[*], or type selection number:
我的系统中当前选择的选项(也是默认选项)是 0(自动),您可以通过星号(*)看到它。
您还可以看到哪个是自动选择的主题。
您应该会看到您的主题列在那里,只需在选择列并按回车键。
然后您需要使您的更改生效,为此运行以下命令:
sudo update-initramfs -u
重启后你就会看到你的新主题。
这一切都已记录在这问题。
答案2
我在让 2011 年的地球日出主题在 Ubuntu 16.04 下工作时遇到了同样的问题(还有更多问题)。
将路径名从 <16.04 格式更改为 16.04 格式
该文件/usr/share/plymouth/themes/default.plymouth
有来自 Ubuntu 14.04 的旧路径,必须更改以反映 Ubuntu 16.04。
确保您的路径名包含如下内容:
[Plymouth Theme]
Name=Earth Sunrise
Description=This theme is a modification of Andre "Osku" Schmidt's Space sunrise plymouth theme
ModuleName=script
[script]
ImageDir=/usr/share/plymouth/themes/earth-sunrise
ScriptFile=/usr/share/plymouth/themes/earth-sunrise/earth-sunrise.script
initramfs-tools 中的帧缓冲区
编辑文件/etc/initramfs-tools/conf.d/splash
并添加以下行:
FRAMEBUFFER=y
平稳过渡至 GDM
为了实现平滑过渡,您必须禁用显示管理器单元,例如
systemctl disable gdm.service
启用相应的 DM-plymouth 单元(提供 GDM、LXDM、SLiM 单元),例如
systemctl enable gdm-plymouth.service
开启调试
编辑文件/etc/default/grub
并搜索 LINUX_DEFAULT 行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vt.handoff=7 kaslr"
并将其更改为:
GRUB_CMDLINE_LINUX_DEFAULT="plymouth:debug splash vt.handoff=7 kaslr"
注意plymouth:debug
是重要的事。还splash
总是需要调用普利茅斯。
重新启动后查看该文件/var/log/plymouth-debug.log
,它应该看起来像这样:
[main.c:1865] check_logging:checking if console messages should be redirected and logged
[main.c:1874] check_logging:logging will be enabled!
[main.c:1946] initialize_environment:source built on May 10 2016
[main.c:1957] initialize_environment:Making sure /run/plymouth exists
[ply-utils.c:703] ply_create_directory:directory '/run/plymouth' already exists
[main.c:1961] initialize_environment:initialized minimal work environment
[main.c:716] get_cache_file_for_mode:returning cache file '/var/lib/plymouth//boot-duration'
[main.c:321] load_settings:Trying to load /etc/plymouth//plymouthd.conf
[ply-key-file.c:83] ply_key_file_open_file:Failed to open key file /etc/plymouth//plymouthd.conf: No such file or directory
[main.c:449] find_system_default_splash:failed to load /etc/plymouth//plymouthd.conf
[main.c:321] load_settings:Trying to load /usr/share/plymouth//plymouthd.defaults
[ply-key-file.c:83] ply_key_file_open_file:Failed to open key file /usr/share/plymouth//plymouthd.defaults: No such file or directory
[main.c:463] find_distribution_default_splash:failed to load /usr/share/plymouth//plymouthd.defaults
[main.c:873] plymouth_should_show_default_splash:checking if plymouth should show default splash
[main.c:901] plymouth_should_show_default_splash:using default splash because kernel command line has option "splash"
[ply-device-manager.c:668] create_seats_from_terminals:checking for consoles
[ply-device-manager.c:555] add_consoles_from_file:opening /sys/class/tty/console/active
[ply-device-manager.c:563] add_consoles_from_file:reading file
[ply-device-manager.c:601] add_consoles_from_file:console /dev/pts/17 found!
[ply-device-manager.c:793] ply_device_manager_watch_seats:udev support disabled, creating fallback seat
[ply-device-manager.c:635] create_seat_for_terminal_and_renderer_type:creating seat for /dev/pts/17 (renderer type: 0) (terminal: /dev/pts/17)
[ply-renderer.c:230] ply_renderer_open_plugin:trying to open renderer plugin /usr/lib/x86_64-linux-gnu/plymouth/renderers/x11.so
[ply-renderer.c:250] ply_renderer_open_plugin:opened renderer plugin /usr/lib/x86_64-linux-gnu/plymouth/renderers/x11.so
[ply-seat.c:80] add_pixel_displays:Adding displays for 1 heads
[ply-terminal.c:600] ply_terminal_open:trying to open terminal '/dev/pts/17'
[ply-terminal.c:395] ply_terminal_look_up_geometry:looking up terminal text geometry
[ply-terminal.c:409] ply_terminal_look_up_geometry:terminal is now 80x24 text cells
[ply-seat.c:113] add_text_displays:adding text display for terminal /dev/pts/17
[main.c:1034] on_seat_added:listening for keystrokes
[main.c:1038] on_seat_added:listening for escape
[main.c:1042] on_seat_added:listening for backspace
[main.c:1046] on_seat_added:listening for enter
[main.c:2243] main:entering event loop
[ply-terminal.c:395] ply_terminal_look_up_geometry:looking up terminal text geometry
[ply-terminal.c:409] ply_terminal_look_up_geometry:terminal is now 81x24 text cells
[ply-terminal.c:395] ply_terminal_look_up_geometry:looking up terminal text geometry
[ply-terminal.c:409] ply_terminal_look_up_geometry:terminal is now 82x24 text cells
[ply-terminal.c:395] ply_terminal_look_up_geometry:looking up terminal text geometry
[ply-terminal.c:409] ply_terminal_look_up_geometry:terminal is now 85x24 text cells
[ply-terminal.c:395] ply_terminal_look_up_geometry:looking up terminal text geometry
[ply-terminal.c:409] ply_terminal_look_up_geometry:terminal is now 89x24 text cells
[ply-terminal.c:395] ply_terminal_look_up_geometry:looking up terminal text geometry
[ply-terminal.c:409] ply_terminal_look_up_geometry:terminal is now 92x24 text cells
[ply-terminal.c:395] ply_terminal_look_up_geometry:looking up terminal text geometry
[ply-terminal.c:409] ply_terminal_look_up_geometry:terminal is now 97x24 text cells
[ply-terminal.c:395] ply_terminal_look_up_geometry:looking up terminal text geometry
[ply-terminal.c:409] ply_terminal_look_up_geometry:terminal is now 101x24 text cells
[ply-terminal.c:395] ply_terminal_look_up_geometry:looking up terminal text geometry
[ply-terminal.c:409] ply_terminal_look_up_geometry:terminal is now 104x24 text cells
[ply-terminal.c:395] ply_terminal_look_up_geometry:looking up terminal text geometry
[ply-terminal.c:409] ply_terminal_look_up_geometry:terminal is now 108x24 text cells
[ply-terminal.c:395] ply_terminal_look_up_geometry:looking up terminal text geometry
[ply-terminal.c:409] ply_terminal_look_up_geometry:terminal is now 111x24 text cells
[ply-terminal.c:395] ply_terminal_look_up_geometry:looking up terminal text geometry
[ply-terminal.c:409] ply_terminal_look_up_geometry:terminal is now 112x24 text cells
[ply-boot-server.c:388] print_connection_process_identity:connection is from pid 8073 (plymouth --ping) with parent pid 7812 (sudo plymouth --ping)
[ply-event-loop.c:1060] ply_event_loop_handle_disconnect_for_source:calling disconnected_handler 0x406350 for fd 12
[ply-event-loop.c:1064] ply_event_loop_handle_disconnect_for_source:done calling disconnected_handler 0x406350 for fd 12
[ply-event-loop.c:1144] ply_event_loop_free_destinations_for_source:freeing destination (1, 0x406490, 0x406350) of fd 12
[ply-event-loop.c:643] ply_event_loop_remove_source_node:failed to delete fd 12 from epoll watch list: Bad file descriptor
[ply-boot-server.c:388] print_connection_process_identity:connection is from pid 10838 (plymouth show-splash) with parent pid 10837 (sudo plymouth show-splash)
[ply-boot-server.c:484] ply_boot_connection_on_request:got show splash request
[main.c:843] plymouth_should_ignore_show_splash_calls:checking if plymouth should be running
[main.c:942] on_show_splash:at least one seat already open, so loading splash
[main.c:873] plymouth_should_show_default_splash:checking if plymouth should show default splash
[main.c:901] plymouth_should_show_default_splash:using default splash because kernel command line has option "splash"
[main.c:476] show_default_splash:Showing splash screen
[main.c:495] show_default_splash:Trying old scheme for default splash
[main.c:1610] load_theme:Loading boot splash theme '/usr/share/plymouth/themes/default.plymouth'
[ply-key-file.c:171] ply_key_file_load_group:trying to load group Plymouth Theme
[ply-key-file.c:171] ply_key_file_load_group:trying to load group script
[ply-key-file.c:259] ply_key_file_load_groups:key file has no more groups
[main.c:1625] load_theme:attaching plugin to event loop
[main.c:1628] load_theme:attaching progress to plugin
[ply-boot-splash.c:178] attach_to_seat:adding pixel displays
[ply-boot-splash.c:191] attach_to_seat:Adding 1920x1080 pixel display
[ply-device-manager.c:841] ply_device_manager_activate_renderers:activating renderers
[ply-boot-splash.c:491] ply_boot_splash_show:showing splash screen
[./plugin.c:424] show_splash_screen:starting boot animation
[./plugin.c:302] start_animation:parsing script file
[./plugin.c:280] start_script_animation:executing script file
[ply-device-manager.c:881] ply_device_manager_activate_keyboards:activating keyboards
[main.c:294] show_messages:not displaying messages, since no boot splash
[ply-event-loop.c:1060] ply_event_loop_handle_disconnect_for_source:calling disconnected_handler 0x406350 for fd 12
[ply-event-loop.c:1064] ply_event_loop_handle_disconnect_for_source:done calling disconnected_handler 0x406350 for fd 12
[ply-event-loop.c:1144] ply_event_loop_free_destinations_for_source:freeing destination (1, 0x406490, 0x406350) of fd 12
[ply-event-loop.c:643] ply_event_loop_remove_source_node:failed to delete fd 12 from epoll watch list: Bad file descriptor
[ply-boot-server.c:388] print_connection_process_identity:connection is from pid 13320 (plymouth message --text=hello world) with parent pid 13319 (sudo plymouth message --text=hello world)
[ply-boot-server.c:637] ply_boot_connection_on_request:got show message request
[main.c:595] on_display_message:displaying message hello world
[ply-event-loop.c:1060] ply_event_loop_handle_disconnect_for_source:calling disconnected_handler 0x406350 for fd 12
[ply-event-loop.c:1064] ply_event_loop_handle_disconnect_for_source:done calling disconnected_handler 0x406350 for fd 12
[ply-event-loop.c:1144] ply_event_loop_free_destinations_for_source:freeing destination (1, 0x406490, 0x406350) of fd 12
[ply-event-loop.c:643] ply_event_loop_remove_source_node:failed to delete fd 12 from epoll watch list: Bad file descriptor
[ply-boot-server.c:388] print_connection_process_identity:connection is from pid 16361 (plymouth show-splash) with parent pid 16360 (sudo plymouth show-splash)
[ply-boot-server.c:484] ply_boot_connection_on_request:got show splash request
[main.c:920] on_show_splash:show splash called while already shown
[ply-event-loop.c:1060] ply_event_loop_handle_disconnect_for_source:calling disconnected_handler 0x406350 for fd 12
[ply-event-loop.c:1064] ply_event_loop_handle_disconnect_for_source:done calling disconnected_handler 0x406350 for fd 12
[ply-event-loop.c:1144] ply_event_loop_free_destinations_for_source:freeing destination (1, 0x406490, 0x406350) of fd 12
[ply-event-loop.c:643] ply_event_loop_remove_source_node:failed to delete fd 12 from epoll watch list: Bad file descriptor
[ply-boot-server.c:388] print_connection_process_identity:connection is from pid 17411 (plymouth pause-progress) with parent pid 17410 (sudo plymouth pause-progress)
[ply-boot-server.c:672] ply_boot_connection_on_request:got progress pause request
[main.c:665] on_progress_pause:pausing progress
[ply-event-loop.c:1060] ply_event_loop_handle_disconnect_for_source:calling disconnected_handler 0x406350 for fd 12
[ply-event-loop.c:1064] ply_event_loop_handle_disconnect_for_source:done calling disconnected_handler 0x406350 for fd 12
[ply-event-loop.c:1144] ply_event_loop_free_destinations_for_source:freeing destination (1, 0x406490, 0x406350) of fd 12
[ply-event-loop.c:643] ply_event_loop_remove_source_node:failed to delete fd 12 from epoll watch list: Bad file descriptor
[ply-boot-server.c:388] print_connection_process_identity:connection is from pid 21148 (plymouth show-splash) with parent pid 20299 (sudo plymouth show-splash)
[ply-boot-server.c:484] ply_boot_connection_on_request:got show splash request
[main.c:920] on_show_splash:show splash called while already shown
[ply-event-loop.c:1060] ply_event_loop_handle_disconnect_for_source:calling disconnected_handler 0x406350 for fd 12
[ply-event-loop.c:1064] ply_event_loop_handle_disconnect_for_source:done calling disconnected_handler 0x406350 for fd 12
[ply-event-loop.c:1144] ply_event_loop_free_destinations_for_source:freeing destination (1, 0x406490, 0x406350) of fd 12
[ply-event-loop.c:643] ply_event_loop_remove_source_node:failed to delete fd 12 from epoll watch list: Bad file descriptor
[ply-boot-server.c:388] print_connection_process_identity:connection is from pid 29215 (plymouth --quit) with parent pid 29214 (sudo plymouth --quit)
[ply-boot-server.c:519] ply_boot_connection_on_request:got quit request
[main.c:1290] on_quit:quitting (retain splash: false)
[main.c:1307] on_quit:system not initialized so skipping saving boot-duration file
[main.c:1566] tell_systemd_to_stop_printing_details:telling systemd to stop printing details
[main.c:1316] on_quit:closing log
[ply-device-manager.c:901] ply_device_manager_deactivate_keyboards:deactivating keyboards
[ply-seat.c:185] ply_seat_deactivate_keyboard:deactivating keyboard
[main.c:1322] on_quit:unloading splash
[ply-boot-splash.c:689] ply_boot_splash_become_idle:telling splash to become idle
[ply-boot-splash.c:668] on_idle:splash now idle
[main.c:1202] on_boot_splash_idle:boot splash idle
[main.c:1209] on_boot_splash_idle:hiding splash
[ply-device-manager.c:861] ply_device_manager_deactivate_renderers:deactivating renderers
[ply-seat.c:200] ply_seat_deactivate_renderer:deactivating renderer
[ply-event-loop.c:951] ply_event_loop_stop_watching_for_timeout:multiple matching timeouts found for removal
[main.c:1214] on_boot_splash_idle:quitting splash
[main.c:1070] quit_splash:quiting splash
[main.c:1072] quit_splash:freeing splash
[ply-boot-splash.c:406] ply_boot_splash_free:freeing splash
[ply-event-loop.c:965] ply_event_loop_stop_watching_for_timeout:no matching timeout found for removal
[ply-boot-splash.c:385] detach_from_seats:detaching from seats
[ply-boot-splash.c:110] detach_from_seat:removing keyboard
[ply-boot-splash.c:116] detach_from_seat:removing pixel displays
[ply-boot-splash.c:131] detach_from_seat:Removing 1920x1080 pixel display
[ply-boot-splash.c:139] detach_from_seat:removing text displays
[ply-boot-splash.c:153] detach_from_seat:Removing 112x24 text display
[ply-device-manager.c:901] ply_device_manager_deactivate_keyboards:deactivating keyboards
[main.c:1081] quit_splash:Not retaining splash, so deallocating VT
[ply-terminal.c:919] ply_terminal_deactivate_vt:terminal is not for a VT
[ply-terminal.c:669] ply_terminal_close:restoring color palette
[ply-terminal.c:673] ply_terminal_close:stop watching tty fd
[ply-event-loop.c:759] ply_event_loop_stop_watching_fd:stopping watching fd 11
[ply-event-loop.c:775] ply_event_loop_stop_watching_fd:removing destination for fd 11
[ply-event-loop.c:784] ply_event_loop_stop_watching_fd:no more destinations remaing for fd 11, removing source
[ply-terminal.c:679] ply_terminal_close:stop watching SIGWINCH signal
[ply-terminal.c:683] ply_terminal_close:setting buffered input
[main.c:1216] on_boot_splash_idle:quitting program
[main.c:1144] quit_program:cleaning up devices
[ply-device-manager.c:521] ply_device_manager_free:freeing device manager
[ply-device-manager.c:422] free_seats:removing seats
[main.c:957] on_seat_removed:no longer listening for keystrokes
[main.c:961] on_seat_removed:no longer listening for escape
[main.c:965] on_seat_removed:no longer listening for backspace
[main.c:969] on_seat_removed:no longer listening for enter
[ply-seat.c:307] free_pixel_displays:freeing 1 pixel displays
[ply-seat.c:328] free_text_displays:freeing 1 text displays
[main.c:1147] quit_program:exiting event loop
[ply-boot-server.c:350] ply_boot_connection_on_quit_complete:quit complete
[main.c:2245] main:exited event loop
[ply-boot-splash.c:406] ply_boot_splash_free:freeing splash
[main.c:2255] main:freeing terminal session
[main.c:2261] main:exiting with code 0
更新 initramfs
进行上述任何更改后运行:
sudo update-initramfs -u -k all