]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
main: add way to ignore /sys/class/tty/console/active
authorRay Strode <rstrode@redhat.com>
Tue, 10 Apr 2012 14:14:30 +0000 (10:14 -0400)
committerRay Strode <rstrode@redhat.com>
Tue, 10 Apr 2012 14:14:30 +0000 (10:14 -0400)
Previously OLPC used --kernel-command-line to make plymouth
ignore specific consoles.  That no longer works, now that we
read from /sys/class/tty/console/active

This commit adds an escape hatch, a way to get back to the old
behavior.

src/main.c

index 13d5f592185f6d9b59ed2017445cd2c84aa4e91d..de6c0fcfa40369c42c7f1c3400219f368ed5d436 100644 (file)
@@ -113,6 +113,7 @@ typedef struct
   uint32_t should_retain_splash : 1;
   uint32_t is_inactive : 1;
   uint32_t should_force_details : 1;
+  uint32_t should_ignore_implicit_consoles : 1;
 
   char *kernel_console_tty;
   char *override_splash_path;
@@ -2006,7 +2007,8 @@ check_for_consoles (state_t    *state,
   consoles = ply_hashtable_new (ply_hashtable_string_hash,
                                 ply_hashtable_string_compare);
 
-  if (!add_consoles_from_file (state,
+  if (state->should_ignore_implicit_consoles ||
+      !add_consoles_from_file (state,
                                consoles,
                                "/sys/class/tty/console/active"))
     {
@@ -2253,6 +2255,7 @@ main (int    argc,
   bool no_daemon = false;
   bool debug = false;
   bool attach_to_session;
+  bool ignore_implicit_consoles = false;
   ply_daemon_handle_t *daemon_handle = NULL;
   char *mode_string = NULL;
   char *kernel_command_line = NULL;
@@ -2266,6 +2269,7 @@ main (int    argc,
                                   "help", "This help message", PLY_COMMAND_OPTION_TYPE_FLAG,
                                   "attach-to-session", "Redirect console messages from screen to log", PLY_COMMAND_OPTION_TYPE_FLAG,
                                   "no-daemon", "Do not daemonize", PLY_COMMAND_OPTION_TYPE_FLAG,
+                                  "ignore-implicit-consoles", "Only use default console and consoles specified on kernel command line", PLY_COMMAND_OPTION_TYPE_FLAG,
                                   "debug", "Output debugging information", PLY_COMMAND_OPTION_TYPE_FLAG,
                                   "debug-file", "File to output debugging information to", PLY_COMMAND_OPTION_TYPE_STRING,
                                   "mode", "Mode is one of: boot, shutdown", PLY_COMMAND_OPTION_TYPE_STRING,
@@ -2291,6 +2295,7 @@ main (int    argc,
                                   "attach-to-session", &attach_to_session,
                                   "mode", &mode_string,
                                   "no-daemon", &no_daemon,
+                                  "ignore-implicit-consoles", &ignore_implicit_consoles,
                                   "debug", &debug,
                                   "debug-file", &debug_buffer_path,
                                   "pid-file", &pid_file,
@@ -2338,6 +2343,8 @@ main (int    argc,
       state.kernel_command_line_is_set = true;
     }
 
+  state.should_ignore_implicit_consoles = ignore_implicit_consoles;
+
   if (geteuid () != 0)
     {
       ply_error ("plymouthd must be run as root user");