mirror of
https://git.yoctoproject.org/poky
synced 2026-02-24 02:19:39 +01:00
SERIAL_CONSOLES is now set from SERIAL_CONSOLE if not already set. This is a little bit gnarly because we have to create a separate service file for each different baud rate; assume that the first baud rate is the default, thus preserving the previous behaviour in the event there is only one baud rate in use. This change also installs the service file before modifying it in place, allowing do_install to re-execute properly; additionally the service file now has the correct permissions (i.e. no execute bit set). (From OE-Core rev: cd89a71d0c3dce14d59134667bc47fa8210cfa7a) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
50 lines
1.9 KiB
BlitzBasic
50 lines
1.9 KiB
BlitzBasic
DESCRIPTION = "Systemd serial config"
|
|
LICENSE = "GPLv2+"
|
|
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
|
|
|
|
PR = "r3"
|
|
|
|
SERIAL_CONSOLE ?= "115200 ttyS0"
|
|
|
|
SRC_URI = "file://serial-getty@.service"
|
|
|
|
do_install() {
|
|
if [ ! -z "${SERIAL_CONSOLES}" ] ; then
|
|
default_baudrate=`echo "${SERIAL_CONSOLES}" | sed 's/\;.*//'`
|
|
install -d ${D}${systemd_unitdir}/system/
|
|
install -d ${D}${sysconfdir}/systemd/system/getty.target.wants/
|
|
install -m 0644 ${WORKDIR}/serial-getty@.service ${D}${systemd_unitdir}/system/
|
|
sed -i -e s/\@BAUDRATE\@/$default_baudrate/g ${D}${systemd_unitdir}/system/serial-getty@.service
|
|
|
|
tmp="${SERIAL_CONSOLES}"
|
|
for entry in $tmp ; do
|
|
baudrate=`echo $entry | sed 's/\;.*//'`
|
|
ttydev=`echo $entry | sed -e 's/^[0-9]*\;//' -e 's/\;.*//'`
|
|
if [ "$baudrate" = "$default_baudrate" ] ; then
|
|
# enable the service
|
|
ln -sf ${systemd_unitdir}/system/serial-getty@.service \
|
|
${D}${sysconfdir}/systemd/system/getty.target.wants/serial-getty@$ttydev.service
|
|
else
|
|
# install custom service file for the non-default baudrate
|
|
install -m 0644 ${WORKDIR}/serial-getty@.service ${D}${systemd_unitdir}/system/serial-getty$baudrate@.service
|
|
sed -i -e s/\@BAUDRATE\@/$baudrate/g ${D}${systemd_unitdir}/system/serial-getty$baudrate@.service
|
|
# enable the service
|
|
ln -sf ${systemd_unitdir}/system/serial-getty$baudrate@.service \
|
|
${D}${sysconfdir}/systemd/system/getty.target.wants/serial-getty$baudrate@$ttydev.service
|
|
fi
|
|
done
|
|
fi
|
|
}
|
|
|
|
RDEPENDS_${PN} = "systemd"
|
|
|
|
# This is a machine specific file
|
|
FILES_${PN} = "${systemd_unitdir}/system/*.service ${sysconfdir}"
|
|
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
|
|
|
# As this package is tied to systemd, only build it when we're also building systemd.
|
|
python () {
|
|
if not oe.utils.contains ('DISTRO_FEATURES', 'systemd', True, False, d):
|
|
raise bb.parse.SkipPackage("'systemd' not in DISTRO_FEATURES")
|
|
}
|