Hi Ahmad, On 24-03-14, Ahmad Fatoum wrote: > 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 Thanks for the pointer, I think this discussion is still ongoing and after skipping through the longly thread my impression is that the semantics are the same. > I am not fully sure, whether we should go with hostname or systemd.hostname= here. As you have said, the hostname= param was added with v6.0 so by this change distros using older kernels could benefit. Also I think that hostname and systemd.hostname should be the same, to cite the GH discussion: 8<------------------------------------------------------------------- ... If there was already hostname= with those semantics on the kernel side in place, I'm pretty sure we would've just reused it instead of defining systemd.hostname=. ... 8<------------------------------------------------------------------- Therefore I would keep the systemd.hostname as it was done by this patch or we can supply both systemd.hostname= and hostname= but setting it to the same value. Regards, Marco > @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 | > >