blob: fd888bb83409177b3f6911f678845b47f7dfd9a4 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001SUMMARY = "Serial terminal support for systemd"
Brad Bishopd7bf8c12018-02-25 22:55:05 -05002HOMEPAGE = "https://www.freedesktop.org/wiki/Software/systemd/"
Andrew Geissler7e0e3c02022-02-25 20:34:39 +00003LICENSE = "GPL-2.0-or-later"
Andrew Geissler90fd73c2021-03-05 15:25:55 -06004LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005
6PR = "r5"
7
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08008SERIAL_CONSOLES ?= "115200;ttyS0"
Andrew Geissler6ce62a22020-11-30 19:58:47 -06009SERIAL_TERM ?= "linux"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050010
11SRC_URI = "file://serial-getty@.service"
12
13S = "${WORKDIR}"
14
Brad Bishop316dfdd2018-06-25 12:45:53 -040015# As this package is tied to systemd, only build it when we're also building systemd.
Brad Bishop6dbb3162019-11-25 09:41:34 -050016inherit features_check
Brad Bishop316dfdd2018-06-25 12:45:53 -040017REQUIRED_DISTRO_FEATURES = "systemd"
18
Patrick Williamsc124f4f2015-09-15 14:41:29 -050019do_install() {
20 if [ ! -z "${SERIAL_CONSOLES}" ] ; then
21 default_baudrate=`echo "${SERIAL_CONSOLES}" | sed 's/\;.*//'`
Andrew Geissler5199d832021-09-24 16:47:35 -050022 install -d ${D}${systemd_system_unitdir}/
Patrick Williamsc124f4f2015-09-15 14:41:29 -050023 install -d ${D}${sysconfdir}/systemd/system/getty.target.wants/
Andrew Geissler5199d832021-09-24 16:47:35 -050024 install -m 0644 ${WORKDIR}/serial-getty@.service ${D}${systemd_system_unitdir}/
25 sed -i -e "s/\@BAUDRATE\@/$default_baudrate/g" ${D}${systemd_system_unitdir}/serial-getty@.service
26 sed -i -e "s/\@TERM\@/${SERIAL_TERM}/g" ${D}${systemd_system_unitdir}/serial-getty@.service
Patrick Williamsc124f4f2015-09-15 14:41:29 -050027
28 tmp="${SERIAL_CONSOLES}"
29 for entry in $tmp ; do
30 baudrate=`echo $entry | sed 's/\;.*//'`
31 ttydev=`echo $entry | sed -e 's/^[0-9]*\;//' -e 's/\;.*//'`
32 if [ "$baudrate" = "$default_baudrate" ] ; then
33 # enable the service
Andrew Geissler5199d832021-09-24 16:47:35 -050034 ln -sf ${systemd_system_unitdir}/serial-getty@.service \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050035 ${D}${sysconfdir}/systemd/system/getty.target.wants/serial-getty@$ttydev.service
36 else
37 # install custom service file for the non-default baudrate
Andrew Geissler5199d832021-09-24 16:47:35 -050038 install -m 0644 ${WORKDIR}/serial-getty@.service ${D}${systemd_system_unitdir}/serial-getty$baudrate@.service
39 sed -i -e "s/\@BAUDRATE\@/$baudrate/g" ${D}${systemd_system_unitdir}/serial-getty$baudrate@.service
Patrick Williamsc124f4f2015-09-15 14:41:29 -050040 # enable the service
Andrew Geissler5199d832021-09-24 16:47:35 -050041 ln -sf ${systemd_system_unitdir}/serial-getty$baudrate@.service \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050042 ${D}${sysconfdir}/systemd/system/getty.target.wants/serial-getty$baudrate@$ttydev.service
43 fi
44 done
45 fi
46}
47
Patrick Williamsc124f4f2015-09-15 14:41:29 -050048# This is a machine specific file
Andrew Geissler5199d832021-09-24 16:47:35 -050049FILES:${PN} = "${systemd_system_unitdir}/*.service ${sysconfdir}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050050PACKAGE_ARCH = "${MACHINE_ARCH}"
51
Patrick Williams213cb262021-08-07 19:21:33 -050052ALLOW_EMPTY:${PN} = "1"