[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