|
@@ -434,37 +434,42 @@ define SYSTEMD_USERS
|
|
|
endef
|
|
|
|
|
|
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 provides multiple units to autospawn getty as neede
|
|
|
+# * getty@.service to start a getty on normal TTY
|
|
|
+# * sertial-getty@.service to start a getty on serial lines
|
|
|
+# * console-getty.service for generic /dev/console
|
|
|
+# * container-getty@.service for a getty on /dev/pts/*
|
|
|
#
|
|
|
-# systemd defaults to only have getty@tty.service enabled
|
|
|
-# * DefaultInstance=tty1 in getty@service
|
|
|
-# * no DefaultInstance in serial-getty@.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@.service via a drop-in in /usr/lib
|
|
|
-# * set a new DefaultInstance for getty@.service instead, if needed
|
|
|
-# * set a new DefaultInstance for serial-getty@.service, if needed
|
|
|
-# * override the systemd-provided preset for console-getty.service if needed
|
|
|
+# the generator systemd-getty-generator will
|
|
|
+# * read the console= kernel command line parameter
|
|
|
+# * enable one of the above units depending on what it finds
|
|
|
+#
|
|
|
+# Systemd defaults to enablinb getty@tty1.service
|
|
|
+#
|
|
|
+# What we want to do
|
|
|
+# * Enable a getty on $BR2_TARGET_GENERIC_TTY_PATH
|
|
|
+# * Set the baudrate for all units according to BR2_TARGET_GENERIC_GETTY_BAUDRATE
|
|
|
+# * Always enable a getty on the console using systemd-getty-generator
|
|
|
+# (backward compatibility with previous releases of buildroot)
|
|
|
+#
|
|
|
+# What we do
|
|
|
+# * disable getty@tty1 (enabled by upstream systemd)
|
|
|
+# * enable getty@xxx if $BR2_TARGET_GENERIC_TTY_PATH is a tty
|
|
|
+# * enable serial-getty@xxx for other $BR2_TARGET_GENERIC_TTY_PATH
|
|
|
+# * rewrite baudrates if a baudrate is provided
|
|
|
define SYSTEMD_INSTALL_SERVICE_TTY
|
|
|
mkdir $(TARGET_DIR)/usr/lib/systemd/system/getty@.service.d; \
|
|
|
printf '[Install]\nDefaultInstance=\n' \
|
|
|
>$(TARGET_DIR)/usr/lib/systemd/system/getty@.service.d/buildroot-console.conf; \
|
|
|
if [ $(BR2_TARGET_GENERIC_GETTY_PORT) = "console" ]; \
|
|
|
then \
|
|
|
- TARGET="console-getty.service"; \
|
|
|
- printf 'enable console-getty.service\n' \
|
|
|
- >$(TARGET_DIR)/usr/lib/systemd/system-preset/81-buildroot-tty.preset; \
|
|
|
+ : ; \
|
|
|
elif echo $(BR2_TARGET_GENERIC_GETTY_PORT) | egrep -q 'tty[0-9]*$$'; \
|
|
|
then \
|
|
|
- TARGET="getty@.service"; \
|
|
|
printf '[Install]\nDefaultInstance=%s\n' \
|
|
|
$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) \
|
|
|
>$(TARGET_DIR)/usr/lib/systemd/system/getty@.service.d/buildroot-console.conf; \
|
|
|
else \
|
|
|
- TARGET="serial-getty@.service"; \
|
|
|
mkdir $(TARGET_DIR)/usr/lib/systemd/system/serial-getty@.service.d;\
|
|
|
printf '[Install]\nDefaultInstance=%s\n' \
|
|
|
$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) \
|
|
@@ -472,7 +477,10 @@ define SYSTEMD_INSTALL_SERVICE_TTY
|
|
|
fi; \
|
|
|
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}; \
|
|
|
+ $(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/getty@.service; \
|
|
|
+ $(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/serial-getty@.service; \
|
|
|
+ $(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/console-getty@.service; \
|
|
|
+ $(SED) 's/115200/$(BR2_TARGET_GENERIC_GETTY_BAUDRATE),115200/' $(TARGET_DIR)/lib/systemd/system/container-getty@.service; \
|
|
|
fi
|
|
|
endef
|
|
|
endif
|