From 523aea31bb7a705860f488f3431dc20745c31c48 Mon Sep 17 00:00:00 2001 From: Luka Pivk Date: Fri, 6 Mar 2020 16:01:52 +0100 Subject: hostname: generate a uniqe hostname on boot This will generate a hostname based on machine name and serial number. (E.g. colibri-imx7-031111777) If serial number is not found it will say "no-serial-number" in host name. If machine is not supported hostname will include "unsupported-device" string. If /dev/device-tree does not exist it will say "recovery-mode" as it assumes its in recovery mode of Toradex Easy Installer To prevent openembedded from creating /etc/hostname file add hostname_pn-base-files = "" to configration Related-to: TEI-100, ELB-1322 Signed-off-by: Luka Pivk --- .../set-hostname/files/set-hostname.service | 13 ++++++++++ recipes-core/set-hostname/files/sethostname | 19 ++++++++++++++ recipes-core/set-hostname/set-hostname_1.0.bb | 30 ++++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 recipes-core/set-hostname/files/set-hostname.service create mode 100644 recipes-core/set-hostname/files/sethostname create mode 100644 recipes-core/set-hostname/set-hostname_1.0.bb 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'