Blob Blame History Raw
From 5b9f8f0a472c96002360e65eec3e9c07a345a893 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 5 Nov 2014 08:30:52 -0500
Subject: [PATCH] login: rerun vconsole-setup when switching from vgacon to
 fbcon

The initialization performed by systemd-vconsole-setup is reset
when changing console drivers (say from vgacon to fbcon), so we
need to run it in that case.

See
http://lists.freedesktop.org/archives/systemd-devel/2014-October/023919.html
http://lists.freedesktop.org/archives/systemd-devel/2014-October/024423.html
http://lists.freedesktop.org/archives/systemd-devel/2014-November/024881.html

This commit adds a udev rule to make systemd-vconsole-setup get run when
the fbcon device becomes available.

(david: moved into new file 90-vconsole.rules instead of 71-seats.rules;
        build-failures are on me, not on Ray)

(cherry picked from commit f6ba8671d83f9fce9a00045d8fa399a1c07ba7fc)
---
 Makefile.am                    |  3 +++
 src/vconsole/90-vconsole.rules | 11 +++++++++++
 2 files changed, 14 insertions(+)
 create mode 100644 src/vconsole/90-vconsole.rules

diff --git a/Makefile.am b/Makefile.am
index 410194957d..d057fcb9b1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4414,6 +4414,9 @@ rootlibexec_PROGRAMS += \
 nodist_systemunit_DATA += \
 	units/systemd-vconsole-setup.service
 
+dist_udevrules_DATA += \
+	src/vconsole/90-vconsole.rules
+
 SYSINIT_TARGET_WANTS += \
 	systemd-vconsole-setup.service
 endif
diff --git a/src/vconsole/90-vconsole.rules b/src/vconsole/90-vconsole.rules
new file mode 100644
index 0000000000..bf6a9efaa5
--- /dev/null
+++ b/src/vconsole/90-vconsole.rules
@@ -0,0 +1,11 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as published by
+#  the Free Software Foundation; either version 2.1 of the License, or
+#  (at your option) any later version.
+
+# Kernel resets vconsole state when changing console drivers so run
+# systemd-vconsole-setup when fbcon loads
+
+ACTION=="add", SUBSYSTEM=="graphics", KERNEL=="fbcon", RUN+="/usr/lib/systemd/systemd-vconsole-setup"