summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHendrik Brueckner <brueckner@redhat.com>2014-03-11 18:41:09 +0100
committerLukas Nykryn <lnykryn@redhat.com>2014-03-13 10:42:26 +0100
commitfc6c7fe9becdd70ae6b671c396f2ad2db0b71cd7 (patch)
treeb7a1b906dced6e2de9512ca9bb8f482281dc9b8e
parentc3441de0613490a1f29d5f1fd0856e07e7c90b49 (diff)
getty: Start getty on 3270 terminals available on Linux on System z
Add the first 3270 terminal device that is associated with the Linux preferred console to the list of virtualization consoles. This is required to automatically start a getty if the conmode=3270 kernel parameter is specified for Linux on z/VM instances. Note that a queued upstream patch also enable the 3270 terminal device if it is associated with the Linux preferred console. How To successfully start agetty on a 3270 terminal, a change in the agetty parameter order is required. Previously, agetty would started like this: /sbin/agetty --keep-baud 3270/tty1 115200,38400,9600 TERM The agetty program interprets the "3270/tty1" as baud rate and fails to start with the "bad speed: 3270/tty1" error message. Fixing this in agetty is more complex rather than reordering the command line parameters like this: /sbin/agetty --keep-baud 115200,38400,9600 3270/tty1 TERM According to agetty sources and "agetty --help", agetty accepts the "tty", "baudrate tty", and "tty baudrate" specifications. P.S. The "tty: Set correct tty name in 'active' sysfs attribute" introduces a change to display the terminal device which is associated with the Linux preferred console. This change helps to let systemd handle this particular case only. Without the changes of this commit, no additional 3270 terminal device can be managed by systemd. https://git.kernel.org/cgit/linux/kernel/git/gregkh/tty.git/commit/?id=723abd87f6e536f1353c8f64f621520bc29523a3
-rw-r--r--rules/99-systemd.rules.in2
-rw-r--r--src/getty-generator/getty-generator.c3
-rw-r--r--units/serial-getty@.service.m42
3 files changed, 4 insertions, 3 deletions
diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in
index 04a59c4604..db72373c16 100644
--- a/rules/99-systemd.rules.in
+++ b/rules/99-systemd.rules.in
@@ -7,7 +7,7 @@
ACTION=="remove", GOTO="systemd_end"
-SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*", TAG+="systemd"
+SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty[0-9]*", TAG+="systemd"
KERNEL=="vport*", TAG+="systemd"
diff --git a/src/getty-generator/getty-generator.c b/src/getty-generator/getty-generator.c
index 08b3b1e7df..6a4aa2c1d9 100644
--- a/src/getty-generator/getty-generator.c
+++ b/src/getty-generator/getty-generator.c
@@ -124,7 +124,8 @@ int main(int argc, char *argv[]) {
"xvc0\0"
"hvsi0\0"
"sclp_line0\0"
- "ttysclp0\0";
+ "ttysclp0\0"
+ "3270!tty1\0";
_cleanup_free_ char *active = NULL;
const char *j;
diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4
index e94cdb4aa4..4ac51e768d 100644
--- a/units/serial-getty@.service.m4
+++ b/units/serial-getty@.service.m4
@@ -22,7 +22,7 @@ Before=getty.target
IgnoreOnIsolate=yes
[Service]
-ExecStart=-/sbin/agetty --keep-baud %I 115200,38400,9600 $TERM
+ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM
Type=idle
Restart=always
RestartSec=0