[systemd-devel] [PATCH] rules: rerun vconsole-setup when switching from vgacon to fbcon
David Herrmann
dh.herrmann at gmail.com
Wed Nov 5 06:53:47 PST 2014
Hi Ray
On Wed, Nov 5, 2014 at 3:48 PM, Ray Strode <halfline at gmail.com> wrote:
> From: Ray Strode <rstrode at redhat.com>
>
> 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 99-systemd.rules to make
> systemd-vconsole-setup get run when the fbcon device becomes available.
> ---
> rules/99-systemd.rules.in | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in
> index e30d9a8..4763b65 100644
> --- a/rules/99-systemd.rules.in
> +++ b/rules/99-systemd.rules.in
> @@ -1,39 +1,43 @@
> # 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.
>
> ACTION=="remove", GOTO="systemd_end"
>
> +# Kernel resets vconsole state when changing console drivers so run
> +# systemd-vconsole-setup when fbcon loads
> +SUBSYSTEM=="graphics", KERNEL=="fbcon", RUN+="/usr/lib/systemd/systemd-vconsole-setup"
> +
I had that change locally, but didn't push it because vconsole is
optional. Thus, this rule must be optional, too. I'm now digging into
autoconf+m4 to see how to do this... but I'm getting nowhere so far...
So if you have no idea how to make that rule be generated only if
ENABLE_VCONSOLE is set by configure, then we probably should take my
patch below.
Thanks
David
diff --git a/Makefile.am b/Makefile.am
index 3686103..f614b86 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4439,6 +4439,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 0000000..8334979
--- /dev/null
+++ b/src/vconsole/90-vconsole.rules
@@ -0,0 +1,10 @@
+# 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.
+
+# re-run vconsole if the VT driver changed
+
+ACTION=="add", SUBSYSTEM=="graphics", KERNEL=="fbcon",
RUN+="/usr/lib/systemd/systemd-vconsole-setup"
More information about the systemd-devel
mailing list