From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2 3/9] fix tty handling
Date: Thu, 5 Dec 2019 12:25:05 +0100 [thread overview]
Message-ID: <20191205112505.GC2539@scaer> (raw)
In-Reply-To: <20191111172443.6874-4-jeremy.rosen@smile.fr>
J?r?my, All,
On 2019-11-11 18:24 +0100, J?r?my Rosen spake thusly:
> Handling of tty is a bit tricky, we need to aggressively disable what
> systemd does with tty1 then update for what buildroot wants to do
>
> Rework the whole tty generation to work with presets
>
> Signed-off-by: J?r?my Rosen <jeremy.rosen@smile.fr>
> ---
> .../0002-allow-an-empty-DefaultInstance.patch | 28 +++++++++++++++++++
> package/systemd/80-buildroot.preset | 5 ++--
> package/systemd/systemd.mk | 26 +++++++++++++----
> 3 files changed, 50 insertions(+), 9 deletions(-)
> create mode 100644 package/systemd/0002-allow-an-empty-DefaultInstance.patch
>
> diff --git a/package/systemd/0002-allow-an-empty-DefaultInstance.patch b/package/systemd/0002-allow-an-empty-DefaultInstance.patch
> new file mode 100644
> index 0000000000..0cb4ffa985
> --- /dev/null
> +++ b/package/systemd/0002-allow-an-empty-DefaultInstance.patch
> @@ -0,0 +1,28 @@
> +From 087a91c29b9fd67bda9d4199789842263545cd12 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Rosen?= <jeremy.rosen@smile.fr>
> +Date: Sat, 2 Nov 2019 00:03:54 +0100
> +Subject: [PATCH] allow an empty DefaultInstance= in configuration files
> +
> +It is currently possible to override the DefaultInstance via drop-ins but
> +not remove it completely. Allow to do that by specifying an empty
> +DefaultInstance=
As discussed on IRC: add a pointer to the upstream commit.
Plus: add you own SoB line (upstream don't do SoBs, but we do, even on
back-ported patches.
> +
> diff --git a/package/systemd/systemd.mk b/package/systemd/systemd.mk
> index dc2ed80e7d..fc782d0af7 100644
> --- a/package/systemd/systemd.mk
> +++ b/package/systemd/systemd.mk
> @@ -429,22 +429,36 @@ ifneq ($(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)),)
> # systemd needs getty.service for VTs and serial-getty.service for serial ttys
> # note that console-getty.service should be used on /dev/console as it should not have dependencies
> # also patch the file to use the correct baud-rate, the default baudrate is 115200 so look for that
> +#
> +# systemd defaults to only have getty at tty.service enabled
> +# * DefaultInstance=tty1 in getty at service
> +# * no DefaultInstance in serial-getty at .service
> +# * WantedBy=getty.target in console-getty.service
> +# * console-getty is not enabled because of 90-systemd.preset
> +# We want "systemctl preset-all" to do the right thing, even when run on the target after boot
> +# * remove the default instance of getty at .service via a drop-in in /usr/lib
> +# * set a new DefaultInstance for getty at .service instead, if needed
> +# * set a new DefaultInstance for serial-getty at .service, if needed
> +# * override the systemd-provided preset for console-getty.service if needed
> define SYSTEMD_INSTALL_SERVICE_TTY
> + mkdir $(TARGET_DIR)/usr/lib/systemd/system/getty at .service.d;\
> + echo [Install] > $(TARGET_DIR)/usr/lib/systemd/system/getty at .service.d/buildroot-console.conf;\
> + echo DefaultInstance= >> $(TARGET_DIR)/usr/lib/systemd/system/getty at .service.d/buildroot-console.conf;\
> if [ $(BR2_TARGET_GENERIC_GETTY_PORT) = "console" ]; \
> then \
> TARGET="console-getty.service"; \
> - LINK_NAME="console-getty.service"; \
> + echo enable console-getty.service > $(TARGET_DIR)/usr/lib/systemd/system-preset/81-buildroot-tty.preset;\
Please use printf, not echo.
> elif echo $(BR2_TARGET_GENERIC_GETTY_PORT) | egrep -q 'tty[0-9]*$$'; \
> then \
> TARGET="getty at .service"; \
> - LINK_NAME="getty@$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)).service"; \
> + echo [Install] > $(TARGET_DIR)/usr/lib/systemd/system/getty at .service.d/buildroot-console.conf;\
> + echo DefaultInstance=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) >> $(TARGET_DIR)/usr/lib/systemd/system/getty at .service.d/buildroot-console.conf;\
printf '[Install]\nDefaultInstance=%s\n' \
"$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT))" \
>$(TARGET_DIR)/usr/lib/systemd/system/getty at .service.d/buildroot-console.conf; \
> else \
> TARGET="serial-getty at .service"; \
> - LINK_NAME="serial-getty@$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)).service"; \
> + mkdir $(TARGET_DIR)/usr/lib/systemd/system/serial-getty at .service.d;\
> + echo [Install] > $(TARGET_DIR)/usr/lib/systemd/system/serial-getty at .service.d/buildroot-console.conf;\
> + echo DefaultInstance=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) >> $(TARGET_DIR)/usr/lib/systemd/system/serial-getty at .service.d/buildroot-console.conf;\
Ditto.
I'm pretty pleased with all the big comment, and the code
simplifications. :-)
Regards,
Yann E. MORIN.
> fi; \
> - mkdir -p $(TARGET_DIR)/etc/systemd/system/getty.target.wants/; \
> - ln -fs ../../../../lib/systemd/system/$${TARGET} \
> - $(TARGET_DIR)/etc/systemd/system/getty.target.wants/$${LINK_NAME}; \
> if [ $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) -gt 0 ] ; \
> then \
> $(SED) 's,115200,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),' $(TARGET_DIR)/lib/systemd/system/$${TARGET}; \
> --
> 2.24.0.rc1
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
next prev parent reply other threads:[~2019-12-05 11:25 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-11 17:24 [Buildroot] [PATCH v2 0/9] use host-systemd to enable units Jérémy Rosen
2019-11-11 17:24 ` [Buildroot] [PATCH v2 1/9] new recipe : host-systemd Jérémy Rosen
2019-12-05 11:01 ` Yann E. MORIN
2019-11-11 17:24 ` [Buildroot] [PATCH v2 2/9] use host-systemctl preset all to enable units Jérémy Rosen
2019-12-05 11:33 ` Yann E. MORIN
2019-12-05 13:07 ` Yann E. MORIN
2019-12-07 11:39 ` Jérémy ROSEN
2019-12-07 11:40 ` Jérémy ROSEN
2019-12-07 16:42 ` Yann E. MORIN
2019-11-11 17:24 ` [Buildroot] [PATCH v2 3/9] fix tty handling Jérémy Rosen
2019-12-05 11:25 ` Yann E. MORIN [this message]
2019-11-11 17:24 ` [Buildroot] [PATCH v2 4/9] fix trivial packages with buildroot-provided services Jérémy Rosen
2019-12-05 11:35 ` Yann E. MORIN
2019-11-11 17:24 ` [Buildroot] [PATCH v2 5/9] fix trivial cases, upstream-provided services Jérémy Rosen
2019-12-05 11:36 ` Yann E. MORIN
2019-11-11 17:24 ` [Buildroot] [PATCH v2 6/9] package/connman: adapt to preset-all Jérémy Rosen
2019-12-05 12:57 ` Yann E. MORIN
2019-12-07 12:19 ` Jérémy ROSEN
2019-11-11 17:24 ` [Buildroot] [PATCH v2 7/9] package/linuxptp " Jérémy Rosen
2019-12-05 12:59 ` Yann E. MORIN
2019-11-11 17:24 ` [Buildroot] [PATCH v2 8/9] package/network-manager: " Jérémy Rosen
2019-12-05 13:01 ` Yann E. MORIN
2019-12-05 22:29 ` Arnout Vandecappelle
2019-12-07 13:28 ` Jérémy ROSEN
2019-11-11 17:24 ` [Buildroot] [PATCH v2 9/9] package/wpa_supplicant: adapt for preset-all Jérémy Rosen
2019-12-05 13:04 ` Yann E. MORIN
2019-12-07 13:31 ` Jérémy ROSEN
2019-11-19 9:58 ` [Buildroot] [PATCH v2 0/9] use host-systemd to enable units Jérémy ROSEN
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191205112505.GC2539@scaer \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox