<div dir="auto"><div>Longer term, for migrating this SKU to generic flavour foundations wants a "settings" package built by ubuntu-meta or ubuntu-settings or a new one that mimicks raspi-settings package. But we don't have that yet, nor is it seeded, nor there is any infra to detect when to install or use it. So it is very fuzzy right now.</div><div dir="auto"><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Thu, 23 Nov 2023, 11:09 Dimitri John Ledkov, <<a href="mailto:dimitri.ledkov@canonical.com">dimitri.ledkov@canonical.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 23 Nov 2023, 09:53 Andy Whitcroft, <<a href="mailto:apw@canonical.com" target="_blank" rel="noreferrer">apw@canonical.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>This does not feel it is in the right place.  This would mean people who install just the kernel would not have this support. It would also preclude having an HWE version of such a kernel (not planned admittedly).  For SGX we did this via a new linux-base-<foo> binary package containing them (from source linux-base) and then IIRC the linux-image-<abi> packages depend on that.</div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">What do you mean by "just install the kernel"? As that is not a supported configuration. And today many of our kernels do not work without a meta installed, due to initramfs hooks, udev rules, blacklists, deps on cloud tools etc.</div><div dir="auto"><br></div><div dir="auto">(Looking at this kernel, some cloud kernels, and riscv kernels).</div><div dir="auto"><br></div><div dir="auto">And this is an SKU specific kernel, and SKU specific hack. Since both systemd & bluez refuse to self generate MAC for WiFi & Bluetooth, despite doing it happily for ethernet. And kernel doesn't, and we don't (yet or ever) have any other support to gather the real device MACs.</div><div dir="auto"><br></div><div dir="auto">These scripts must not be used with any other kernel. And there must be only the one copy of them at a time.... Hence shipping these in meta.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>-apw<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Nov 22, 2023 at 1:26 PM Juerg Haefliger <<a href="mailto:juerg.haefliger@canonical.com" rel="noreferrer noreferrer" target="_blank">juerg.haefliger@canonical.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, 22 Nov 2023 13:45:02 +0100<br>
Thibault Ferrante <<a href="mailto:thibault.ferrante@canonical.com" rel="noreferrer noreferrer" target="_blank">thibault.ferrante@canonical.com</a>> wrote:<br>
<br>
> On 27-10-2023 20:26, Juerg Haefliger wrote:<br>
> > BugLink: <a href="https://bugs.launchpad.net/2041000" rel="noreferrer noreferrer noreferrer" target="_blank">https://bugs.launchpad.net/2041000</a><br>
> > BugLink: <a href="https://bugs.launchpad.net/2037534" rel="noreferrer noreferrer noreferrer" target="_blank">https://bugs.launchpad.net/2037534</a>  <br>
> <br>
> These URLs are missing 'bugs/'<br>
<br>
Yes. Will fix at commit-time.<br>
<br>
<br>
> > <br>
> > The X13s comes up with no BT public address, it's hidden probably in<br>
> > secret storage that the kernel can't get to (yet), so it needs to be<br>
> > set by userspace after bluez is up. For some reason, a delay is<br>
> > required, so do that and also calculate a unique MAC based on<br>
> > /etc/machine-id.<br>
> > <br>
> > Signed-off-by: Juerg Haefliger <<a href="mailto:juerg.haefliger@canonical.com" rel="noreferrer noreferrer" target="_blank">juerg.haefliger@canonical.com</a>><br>
> > ---<br>
> >   debian/install                                |  1 +<br>
> >   share/set-bt-public-addr                      | 34 +++++++++++++++++++<br>
> >   ...laptop-image-bluetooth-public-addr.service |  3 +-<br>
> >   3 files changed, 37 insertions(+), 1 deletion(-)<br>
> >   create mode 100755 share/set-bt-public-addr<br>
> > <br>
> > diff --git a/debian/install b/debian/install<br>
> > index aeb5be43a521..b2825799c756 100644<br>
> > --- a/debian/install<br>
> > +++ b/debian/install<br>
> > @@ -3,3 +3,4 @@ hooks/* usr/share/initramfs-tools/hooks/<br>
> >   grub.d/* etc/default/grub.d/<br>
> >   rules.d/* lib/udev/rules.d/<br>
> >   systemd-system/* lib/systemd/system/<br>
> > +share/* usr/share/linux-laptop/<br>
> > diff --git a/share/set-bt-public-addr b/share/set-bt-public-addr<br>
> > new file mode 100755<br>
> > index 000000000000..b6443d8bff3a<br>
> > --- /dev/null<br>
> > +++ b/share/set-bt-public-addr<br>
> > @@ -0,0 +1,34 @@<br>
> > +#!/bin/sh<br>
> > +#<br>
> > +# Set X13s bluetooth public address<br>
> > +#<br>
> > +<br>
> > +idx=<br>
> > +for hci in /sys/class/bluetooth/hci* ; do<br>
> > +   rp=$(realpath "${hci}")<br>
> > +   case "${rp}" in<br>
> > +           */serial0/serial0-0/*)<br>
> > +                   idx=${rp##*/hci}<br>
> > +                   break<br>
> > +                   ;;<br>
> > +   esac<br>
> > +done<br>
> > +<br>
> > +if [ -z "${idx}" ] ; then<br>
> > +   echo "No serial BT adapter found"<br>
> > +   exit 0<br>
> > +fi<br>
> > +<br>
> > +<br>
> > +# Bytes 1-3 from /etc/machine-id<br>
> > +nic=$(sed 's/\(..\)/\1:/g' /etc/machine-id | cut -c 1-8)<br>
> > +<br>
> > +# Qualcomm OUI<br>
> > +oui="f0:fd:8c"  <br>
> <br>
> One of the Qualcom OUI is '8c:fd:f0', why it isn't in the same order ?<br>
> <br>
> > +<br>
> > +mac="${nic}:${oui}"  <br>
> <br>
> Same about ordering, why nic is first here ?<br>
<br>
Because btmgmt wants the MAC in reverse order. Don't ask me why...<br>
<br>
...Juerg<br>
<br>
<br>
> > +echo "Set public addr of hci${idx} to ${mac}"<br>
> > +<br>
> > +# Do not use '--index N' yet since bluez is currently broken (LP: #2041496)<br>
> > +#/usr/bin/yes 2>/dev/null | /usr/bin/btmgmt --index "${idx}" public-addr "${mac}"<br>
> > +/usr/bin/yes 2>/dev/null | /usr/bin/btmgmt public-addr "${mac}"<br>
> > diff --git a/systemd-system/linux-laptop-image-bluetooth-public-addr.service b/systemd-system/linux-laptop-image-bluetooth-public-addr.service<br>
> > index fbe57b41da07..dd13274aff1f 100644<br>
> > --- a/systemd-system/linux-laptop-image-bluetooth-public-addr.service<br>
> > +++ b/systemd-system/linux-laptop-image-bluetooth-public-addr.service<br>
> > @@ -3,7 +3,8 @@ Description=Set Bluetooth Address<br>
> >   After=bluetooth.service<br>
> >   <br>
> >   [Service]<br>
> > -ExecStart=/bin/bash -c "/usr/bin/btmgmt --timeout 30 public-addr AD:5A:00:F0:FD:8C"<br>
> > +ExecStartPre=/usr/bin/sleep 5<br>
> > +ExecStart=/usr/share/linux-laptop/set-bt-public-addr<br>
> >   <br>
> >   [Install]<br>
> >   WantedBy=bluetooth.service  <br>
> <br>
> <br>
> --<br>
> Thibault<br>
> <br>
<br>
-- <br>
kernel-team mailing list<br>
<a href="mailto:kernel-team@lists.ubuntu.com" rel="noreferrer noreferrer" target="_blank">kernel-team@lists.ubuntu.com</a><br>
<a href="https://lists.ubuntu.com/mailman/listinfo/kernel-team" rel="noreferrer noreferrer noreferrer" target="_blank">https://lists.ubuntu.com/mailman/listinfo/kernel-team</a><br>
</blockquote></div>
-- <br>
kernel-team mailing list<br>
<a href="mailto:kernel-team@lists.ubuntu.com" rel="noreferrer noreferrer" target="_blank">kernel-team@lists.ubuntu.com</a><br>
<a href="https://lists.ubuntu.com/mailman/listinfo/kernel-team" rel="noreferrer noreferrer noreferrer" target="_blank">https://lists.ubuntu.com/mailman/listinfo/kernel-team</a><br>
</blockquote></div></div></div>
</blockquote></div></div></div>