]> code.ossystems Code Review - openembedded-core.git/commitdiff
systemd-serialgetty: do not use BindsTo
authorChen Qi <Qi.Chen@windriver.com>
Fri, 19 Jun 2020 07:02:55 +0000 (00:02 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 23 Jun 2020 09:57:20 +0000 (10:57 +0100)
This unit was changed from 'BindsTo' in the following commit.
"""
commit f0f359ec9210759f6b4dbfb35d3fba8af208c43a
Author: Jason Wessel <jason.wessel@windriver.com>
Date:   Thu Aug 29 07:00:31 2019 -0700

    serial-getty@.service: Allow device to fast fail if it does not exist
"""

It was changed back to 'BindTo' in the following commit.
"""
commit 63bbff61b78c651339c4b18d8376187379ec3b3c
Author: Otavio Salvador <otavio.salvador@gmail.com>
Date:   Fri Jun 12 14:30:44 2020 -0300

    systemd: Sync systemd-serialgetty@.service with upstream
"""

This is now causing runtime problem for qemuarm64. The default.target
is not reached until a timeout. Output is like below.

"""
root@qemuarm64:~# systemd-analyze
Bootup is not yet finished (org.freedesktop.systemd1.Manager.FinishTimestampMonotonic=0).
Please try again later.
Hint: Use 'systemctl list-jobs' to see active jobs
root@qemuarm64:~# systemctl list-jobs
JOB UNIT TYPE STATE
102 getty.target start waiting
1 multi-user.target start waiting
95 systemd-update-utmp-runlevel.service start waiting
110 serial-getty@hvc0.service start waiting
111 dev-hvc0.device start running
"""

We can see that we are waiting for /dev/hvc0, while in fact there's no /dev/hvc0.
Jason's commit actually solves such problem.

So restore to use Jason's method. Do not use 'BindsTo'.

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service

index 542b9057953aeca8ca38fd79575baf0d7d61b546..549d5660091086c179db27fb676934bf0bd2f3b5 100644 (file)
@@ -11,7 +11,8 @@
 Description=Serial Getty on %I
 Documentation=man:agetty(8) man:systemd-getty-generator(8)
 Documentation=http://0pointer.de/blog/projects/serial-console.html
-BindsTo=dev-%i.device
+PartOf=dev-%i.device
+ConditionPathExists=/dev/%i
 After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service getty-pre.target
 After=rc-local.service