Hello Marco, Cc += Leonard On 13.03.24 20:45, Marco Felsch wrote: > + if (!barebox_hostname_is_valid(hostname)) { > + pr_err("Provided hostname is not compatible to systemd hostname requirements\n"); > + ret = -EINVAL; > + goto err_out; > + } > + > + hostname_bootarg = basprintf("systemd.hostname=%s", hostname); Linux >= v6.0 supports a hostname= parameter and there's a discussion to decide what the semantics should be and if it should differ to systemd.hostname=: https://github.com/systemd/systemd/pull/25158 I am not fully sure, whether we should go with hostname or systemd.hostname= here. @Leonard, what do you think? Cheers, Ahmad > -static bool barebox_hostname_is_valid(const char *s) > +bool barebox_hostname_is_valid(const char *s) > { > unsigned int n_dots = 0; > const char *p; > diff --git a/include/bootm.h b/include/bootm.h > index ee2b574521db..c69da85cdda1 100644 > --- a/include/bootm.h > +++ b/include/bootm.h > @@ -34,6 +34,11 @@ struct bootm_data { > * value of global.machine_id to Kernel. > */ > bool provide_machine_id; > + /* > + * provide_hostname - if true, try to add systemd.hostname= with value > + * of global.hostname to Kernel. > + */ > + bool provide_hostname; > unsigned long initrd_address; > unsigned long os_address; > unsigned long os_entry; > diff --git a/include/common.h b/include/common.h > index b7b4d9e35094..d7b5261bc921 100644 > --- a/include/common.h > +++ b/include/common.h > @@ -127,6 +127,7 @@ void barebox_set_model(const char *); > const char *barebox_get_hostname(void); > void barebox_set_hostname(const char *); > void barebox_set_hostname_no_overwrite(const char *); > +bool barebox_hostname_is_valid(const char *s); > > const char *barebox_get_serial_number(void); > void barebox_set_serial_number(const char *); -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |