[oe] [meta-oe][PATCH 1/1] systemd-serialgetty: use a wrapper script to find getty
Otavio Salvador
otavio at ossystems.com.br
Mon Nov 28 12:52:39 UTC 2011
The following binaries are checked:
/sbin/agetty
/sbin/mingetty
/sbin/getty
So this works out of box in most cases and doesn't enforce one getty
as dependency.
Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
---
.../recipes-core/systemd/systemd-serialgetty.bb | 13 ++++++++++---
.../systemd-serialgetty/serial-getty at .service | 2 +-
.../systemd-serialgetty/systemd-serialgetty | 13 +++++++++++++
3 files changed, 24 insertions(+), 4 deletions(-)
create mode 100755 meta-oe/recipes-core/systemd/systemd-serialgetty/systemd-serialgetty
diff --git a/meta-oe/recipes-core/systemd/systemd-serialgetty.bb b/meta-oe/recipes-core/systemd/systemd-serialgetty.bb
index 2b88d0c..c79ae84 100644
--- a/meta-oe/recipes-core/systemd/systemd-serialgetty.bb
+++ b/meta-oe/recipes-core/systemd/systemd-serialgetty.bb
@@ -2,12 +2,13 @@ DESCRIPTION = "Systemd serial config"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=751419260aa954499f7abaabaa882bbe"
-PR = "r1"
+PR = "r2"
SERIAL_CONSOLE ?= "115200 ttyS0"
SRC_URI = "file://LICENSE \
- file://serial-getty@.service"
+ file://serial-getty@.service \
+ file://systemd-serialgetty"
def get_baudrate(bb, d):
return bb.data.getVar('SERIAL_CONSOLE', d, 1).split()[0]
@@ -22,6 +23,9 @@ do_install() {
install -d ${D}${sysconfdir}/systemd/system/getty.target.wants/
install ${WORKDIR}/serial-getty at .service ${D}${base_libdir}/systemd/system/
+ # Install wrapper that looks for available getty binary
+ install -m 755 ${WORKDIR}/systemd-serialgetty ${D}${base_libdir}/systemd/
+
# enable the service
ln -sf ${base_libdir}/systemd/system/serial-getty at .service \
${D}${sysconfdir}/systemd/system/getty.target.wants/serial-getty@${@get_console(bb, d)}.service
@@ -34,5 +38,8 @@ RRECOMMENDS_${PN} = ""
RDEPENDS_${PN} = "systemd"
# This is a machine specific file
-FILES_${PN} = "${base_libdir}/systemd/system/serial-getty at .service ${sysconfdir}"
+FILES_${PN} = "${base_libdir}/systemd/systemd-serialgetty \
+ ${base_libdir}/systemd/system/serial-getty at .service \
+ ${sysconfdir} \
+ "
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta-oe/recipes-core/systemd/systemd-serialgetty/serial-getty at .service b/meta-oe/recipes-core/systemd/systemd-serialgetty/serial-getty at .service
index daf0dac..ee60a37 100644
--- a/meta-oe/recipes-core/systemd/systemd-serialgetty/serial-getty at .service
+++ b/meta-oe/recipes-core/systemd/systemd-serialgetty/serial-getty at .service
@@ -17,7 +17,7 @@ Before=getty.target
[Service]
Environment=TERM=vt100
-ExecStart=-/sbin/getty @BAUDRATE@ %I
+ExecStart=-/lib/systemd/systemd-serialgetty @BAUDRATE@ %I
Restart=always
RestartSec=0
UtmpIdentifier=%I
diff --git a/meta-oe/recipes-core/systemd/systemd-serialgetty/systemd-serialgetty b/meta-oe/recipes-core/systemd/systemd-serialgetty/systemd-serialgetty
new file mode 100755
index 0000000..688b4b4
--- /dev/null
+++ b/meta-oe/recipes-core/systemd/systemd-serialgetty/systemd-serialgetty
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+for g in /sbin/agetty \
+ /sbin/mingetty \
+ /sbin/getty; do
+ if [ -x "$g" ]; then
+ $g $@
+ exit 0
+ fi
+done
+
+echo "Failed to find the getty binary to use."
+exit 1
--
1.7.2.5
More information about the Openembedded-devel
mailing list