diff options
-rw-r--r-- | recipes-core/set-hostname/files/set-hostname.service | 13 | ||||
-rw-r--r-- | recipes-core/set-hostname/files/sethostname | 19 | ||||
-rw-r--r-- | recipes-core/set-hostname/set-hostname_1.0.bb | 30 |
3 files changed, 62 insertions, 0 deletions
diff --git a/recipes-core/set-hostname/files/set-hostname.service b/recipes-core/set-hostname/files/set-hostname.service new file mode 100644 index 0000000..306528b --- /dev/null +++ b/recipes-core/set-hostname/files/set-hostname.service @@ -0,0 +1,13 @@ +[Unit] +ConditionPathExists=|!/etc/hostname +Wants=network-pre.target +Before=network-pre.target +After=local-fs.target +After=sys-subsystem-net-devices-eth0.device + +[Service] +Type=oneshot +ExecStart=/usr/bin/sethostname + +[Install] +WantedBy=network.target diff --git a/recipes-core/set-hostname/files/sethostname b/recipes-core/set-hostname/files/sethostname new file mode 100644 index 0000000..87e6320 --- /dev/null +++ b/recipes-core/set-hostname/files/sethostname @@ -0,0 +1,19 @@ +#!/bin/sh +if [ ! -f /proc/device-tree/serial-number ]; then + serial="recovery-mode" +else + serial=$(tr -d '\0' </proc/device-tree/serial-number) + + #if serial number is empty we append no-serial-number string + if [ -z "$serial" -a "$serial" != " " ]; then + serial="no-serial-number" + fi +fi + +hostname=@@MACHINE@@"-"${serial} + +if [ -f /usr/bin/hostnamectl ]; then + /usr/bin/hostnamectl set-hostname ${hostname} +else + hostname ${hostname} +fi diff --git a/recipes-core/set-hostname/set-hostname_1.0.bb b/recipes-core/set-hostname/set-hostname_1.0.bb new file mode 100644 index 0000000..15fa66b --- /dev/null +++ b/recipes-core/set-hostname/set-hostname_1.0.bb @@ -0,0 +1,30 @@ +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +inherit systemd + +SRC_URI += " \ + file://sethostname \ + file://set-hostname.service \ +" + +FILES_${PN} = " \ + ${bindir} \ + ${systemd_system_unitdir} \ +" + +SYSTEMD_SERVICE_${PN} = " \ + set-hostname.service \ +" + +do_install () { + install -d ${D}${bindir} + install -m 0755 ${WORKDIR}/sethostname ${D}${bindir} + sed -i "s/@@MACHINE@@/${MACHINE}/g" ${D}${bindir}/sethostname + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/set-hostname.service ${D}${systemd_system_unitdir} + fi +} |