Raspberry Pi 5 - RaspiOS

RaspiOS on Raspberry Pi 5

back to main Pi 5 page.

links

8086tiny, BlueR, btleplug, ble-mesh, Bluetooth Mesh Rust,

local links

Pepper Jobs XtendTouch XT1310F monitor,

History

2025-05-25: mmcblk0p2 - reboot, *Debian 12.11 is in

tingo@tipi5-linux:~ $ cat /etc/debian_version 
12.11

kernel

tingo@tipi5-linux:~ $ uname -a
Linux tipi5-linux 6.12.25+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.25-1+rpt1 (2025-04-30) aarch64 GNU/Linux

2025-05-25: mmcblk0p2 - apt - upgrade

tingo@tipi5-linux:~ $ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  libc++1-16 libc++abi1-16 libcamera0.4 libunwind-16
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  firmware-intel-graphics firmware-intel-misc firmware-marvell-prestera firmware-mediatek firmware-nvidia-graphics
  libcamera0.5 linux-headers-6.12.25+rpt-common-rpi linux-headers-6.12.25+rpt-rpi-2712
  linux-headers-6.12.25+rpt-rpi-v8 linux-image-6.12.25+rpt-rpi-2712 linux-image-6.12.25+rpt-rpi-v8
  linux-kbuild-6.12.25+rpt mesa-libgallium pplug-netman-schema sudopwd zenoty
The following packages have been kept back:
  raspberrypi-ui-mods wf-panel-pi wfplug-connect wfplug-squeek
The following packages will be upgraded:
  agnostics base-files bash busybox chromium chromium-browser chromium-common chromium-l10n chromium-sandbox
  cpp-12 cups-pk-helper curl debian-archive-keyring distro-info-data dns-root-data ffmpeg firefox firmware-atheros
  firmware-brcm80211 firmware-libertas firmware-misc-nonfree firmware-realtek g++-12 gcc-12 gcc-12-base
  ghostscript gstreamer1.0-plugins-good gui-pkinst gui-updater imagemagick-6-common initramfs-tools
  initramfs-tools-core labwc libabsl20220623 libasan8 libatomic1 libavcodec59 libavdevice59 libavfilter8
  libavformat59 libavutil57 libc-bin libc-dev-bin libc-devtools libc-l10n libc6 libc6-dbg libc6-dev libcamera-ipa
  libcamera-tools libcap2 libcap2-bin libcc1-0 libcurl3-gnutls libcurl4 libegl-mesa0 libfreetype6 libgbm-dev
  libgbm1 libgcc-12-dev libgcc-s1 libgfortran5 libgl1-mesa-dev libgl1-mesa-dri libglapi-mesa libglib2.0-0
  libglib2.0-bin libglib2.0-data libglib2.0-dev libglib2.0-dev-bin libglx-mesa0 libgomp1 libgs-common libgs10
  libgs10-common libgssapi-krb5-2 libhwasan0 libitm1 libjavascriptcoregtk-4.1-0 libk5crypto3 libkrb5-3
  libkrb5support0 libliftoff0 liblsan0 liblzma5 libmagickcore-6.q16-6 libmagickcore-6.q16-6-extra
  libmagickwand-6.q16-6 libnm0 libnuma1 libopenh264-7 libpam-systemd libperl5.36 libpipewire-0.3-0
  libpipewire-0.3-common libpipewire-0.3-modules libpisp-common libpisp1 libpixman-1-0 libpoppler-cpp0v5
  libpoppler-glib8 libpoppler126 libpostproc56 libpython3.11 libpython3.11-dev libpython3.11-minimal
  libpython3.11-stdlib libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5printsupport5 libqt5sql5
  libqt5sql5-sqlite libqt5test5 libqt5widgets5 libqt5xml5 librabbitmq4 libspa-0.2-bluetooth libspa-0.2-libcamera
  libspa-0.2-modules libssl-dev libssl3 libstdc++-12-dev libstdc++6 libswresample4 libswscale6 libsystemd-shared
  libsystemd0 libtsan2 libubsan1 libudev-dev libudev1 libwayland-bin libwayland-client0 libwayland-cursor0
  libwayland-dev libwayland-egl1 libwayland-server0 libwebkit2gtk-4.1-0 libwlroots-0.18 libxslt1.1
  linux-headers-rpi-2712 linux-headers-rpi-v8 linux-image-rpi-2712 linux-image-rpi-v8 linux-libc-dev locales login
  lp-connection-editor lxpanel lxpanel-data lxplug-bluetooth lxplug-cputemp lxplug-ejecter lxplug-magnifier
  lxplug-menu lxplug-netman lxplug-updater lxplug-volumepulse lxtask mesa-vdpau-drivers mesa-vulkan-drivers meson
  net-tools network-manager node-postcss node-serialize-javascript openssh-client openssh-server
  openssh-sftp-server openssl passwd perl perl-base perl-modules-5.36 piclone pipanel pipewire pipewire-bin
  pipewire-libcamera pipewire-pulse pishutdown piwiz pixflat-icons pixflat-theme poppler-utils pprompt
  python3-jinja2 python3-libcamera python3-picamera2 python3.11 python3.11-dev python3.11-minimal python3.11-venv
  qt5-gtk-platformtheme raindrop raspberrypi-sys-mods raspi-config raspi-firmware raspi-utils raspi-utils-core
  raspi-utils-dt raspi-utils-eeprom raspi-utils-otp raspinfo rasputin rc-gui rp-bookshelf rp-prefapps
  rpd-plym-splash rpi-chromium-mods rpi-connect rpi-eeprom rpi-imager rpicam-apps ssh systemd systemd-sysv
  systemd-timesyncd tzdata udev userconf-pi vim-common vim-tiny wget wireless-regdb xserver-common
  xserver-xorg-core xz-utils
230 upgraded, 16 newly installed, 0 to remove and 4 not upgraded.
Need to get 797 MB of archives.
After this operation, 312 MB of additional disk space will be used.
[..]
update-initramfs: Generating /boot/initrd.img-6.12.25+rpt-rpi-v8
'/boot/initrd.img-6.12.25+rpt-rpi-v8' -> '/boot/firmware/initramfs8'
update-initramfs: Generating /boot/initrd.img-6.12.25+rpt-rpi-2712
'/boot/initrd.img-6.12.25+rpt-rpi-2712' -> '/boot/firmware/initramfs_2712'
update-initramfs: Generating /boot/initrd.img-6.6.74+rpt-rpi-v8
update-initramfs: Generating /boot/initrd.img-6.6.74+rpt-rpi-2712
update-initramfs: Generating /boot/initrd.img-6.6.62+rpt-rpi-v8
update-initramfs: Generating /boot/initrd.img-6.6.62+rpt-rpi-2712

apt - autoremove

tingo@tipi5-linux:~ $ sudo apt autoremove
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  libc++1-16 libc++abi1-16 libcamera0.4 libunwind-16 linux-headers-6.6.62+rpt-common-rpi linux-headers-6.6.62+rpt-rpi-2712
  linux-headers-6.6.62+rpt-rpi-v8 linux-image-6.6.62+rpt-rpi-2712 linux-image-6.6.62+rpt-rpi-v8 linux-kbuild-6.6.62+rpt
0 upgraded, 0 newly installed, 10 to remove and 4 not upgraded.
After this operation, 126 MB disk space will be freed.
[..]
Removing libc++1-16:arm64 (1:16.0.6-15~deb12u1) ...
Removing libc++abi1-16:arm64 (1:16.0.6-15~deb12u1) ...
Removing libcamera0.4:arm64 (0.4.0+rpt20250213-1) ...
Removing libunwind-16:arm64 (1:16.0.6-15~deb12u1) ...
Removing linux-headers-6.6.62+rpt-rpi-2712 (1:6.6.62-1+rpt1) ...
Removing linux-headers-6.6.62+rpt-rpi-v8 (1:6.6.62-1+rpt1) ...
Removing linux-headers-6.6.62+rpt-common-rpi (1:6.6.62-1+rpt1) ...
Removing linux-image-6.6.62+rpt-rpi-2712 (1:6.6.62-1+rpt1) ...
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Deleting /boot/initrd.img-6.6.62+rpt-rpi-2712
Removing linux-image-6.6.62+rpt-rpi-v8 (1:6.6.62-1+rpt1) ...
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Deleting /boot/initrd.img-6.6.62+rpt-rpi-v8
Removing linux-kbuild-6.6.62+rpt (1:6.6.62-1+rpt1) ...
Processing triggers for libc-bin (2.36-9+rpt2+deb12u10) ...

2025-02-23: mmcblk0p2 - XT1310F - with power in the top right usb-C connector, and usb touch connected to the Pi5 in the lower port, the touch works. From journalctl -S -5m

Feb 23 20:48:14 tipi5-linux kernel: usb 1-2: new high-speed USB device number 2 using xhci-hcd
Feb 23 20:48:15 tipi5-linux kernel: usb 1-2: New USB device found, idVendor=1a40, idProduct=0101, bcdDevice= 1.11
Feb 23 20:48:15 tipi5-linux kernel: usb 1-2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
Feb 23 20:48:15 tipi5-linux kernel: usb 1-2: Product: USB 2.0 Hub
Feb 23 20:48:15 tipi5-linux kernel: hub 1-2:1.0: USB hub found
Feb 23 20:48:15 tipi5-linux kernel: hub 1-2:1.0: 4 ports detected
Feb 23 20:48:15 tipi5-linux kernel: usb 1-2.1: new full-speed USB device number 3 using xhci-hcd
Feb 23 20:48:15 tipi5-linux kernel: usb 1-2.1: New USB device found, idVendor=27c0, idProduct=0858, bcdDevice= 1.13
Feb 23 20:48:15 tipi5-linux kernel: usb 1-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Feb 23 20:48:15 tipi5-linux kernel: usb 1-2.1: Product: TouchScreen
Feb 23 20:48:15 tipi5-linux kernel: usb 1-2.1: Manufacturer: WingCool Inc.
Feb 23 20:48:15 tipi5-linux kernel: usb 1-2.1: SerialNumber: 9LQ0172005164
Feb 23 20:48:15 tipi5-linux kernel: input: WingCool Inc. TouchScreen Touchscreen as /devices/platform/axi/1000120000.pcie/1f00200000.usb/xhci-hcd.0/usb1/1-2/1-2.1/1-2.1:1.0/0003:27C0:0858.0003/input/input11
Feb 23 20:48:15 tipi5-linux kernel: hid-generic 0003:27C0:0858.0003: input,hiddev96,hidraw0: USB HID v1.10 Device [WingCool Inc. TouchScreen] on usb-xhci-hcd.0-2.1/input0
Feb 23 20:48:15 tipi5-linux kernel: hid-generic 0003:27C0:0858.0004: hiddev97,hidraw1: USB HID v1.10 Device [WingCool Inc. TouchScreen] on usb-xhci-hcd.0-2.1/input1
Feb 23 20:48:15 tipi5-linux kernel: input: WingCool Inc. TouchScreen as /devices/platform/axi/1000120000.pcie/1f00200000.usb/xhci-hcd.0/usb1/1-2/1-2.1/1-2.1:1.2/0003:27C0:0858.0005/input/input12
Feb 23 20:48:15 tipi5-linux kernel: hid-generic 0003:27C0:0858.0005: input,hidraw2: USB HID v1.10 Mouse [WingCool Inc. TouchScreen] on usb-xhci-hcd.0-2.1/input2
Feb 23 20:48:16 tipi5-linux kernel: usb 1-2.4: new full-speed USB device number 4 using xhci-hcd
Feb 23 20:48:16 tipi5-linux kernel: usb 1-2.4: New USB device found, idVendor=1d5c, idProduct=7102, bcdDevice= 1.00
Feb 23 20:48:16 tipi5-linux kernel: usb 1-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Feb 23 20:48:16 tipi5-linux kernel: usb 1-2.4: Product: Generic Billboard Device
Feb 23 20:48:16 tipi5-linux kernel: usb 1-2.4: Manufacturer: Fresco Logic, Inc
Feb 23 20:48:16 tipi5-linux mtp-probe[7397]: checking bus 1, device 3: "/sys/devices/platform/axi/1000120000.pcie/1f00200000.usb/xhci-hcd.0/usb1/1-2/1-2.1"
Feb 23 20:48:16 tipi5-linux mtp-probe[7397]: bus: 1, device: 3 was not an MTP device
Feb 23 20:48:16 tipi5-linux kernel: input: WingCool Inc. TouchScreen as /devices/platform/axi/1000120000.pcie/1f00200000.usb/xhci-hcd.0/usb1/1-2/1-2.1/1-2.1:1.0/0003:27C0:0858.0003/input/input13
Feb 23 20:48:16 tipi5-linux kernel: hid-multitouch 0003:27C0:0858.0003: input,hiddev96,hidraw0: USB HID v1.10 Device [WingCool Inc. TouchScreen] on usb-xhci-hcd.0-2.1/input0

2025-02-23: mmcblk0p2 - apt - upgrade

tingo@tipi5-linux:~ $ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  raspberrypi-ui-mods wf-panel-pi wfplug-connect wfplug-squeek
The following packages will be upgraded:
  firefox libcamera-ipa libcamera-tools libcamera0.4 libgnutls30 libjavascriptcoregtk-4.1-0 libtasn1-6 libwebkit2gtk-4.1-0 lxpanel lxpanel-data lxplug-bluetooth
  lxplug-cputemp lxplug-ejecter lxplug-menu lxplug-netman lxplug-updater lxplug-volumepulse openssh-client openssh-server openssh-sftp-server pipanel pixflat-theme
  python3-libcamera python3-simplejpeg raspi-config rpi-connect rpi-eeprom rpicam-apps ssh
29 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
Need to get 146 MB of archives.
After this operation, 14.7 MB of additional disk space will be used.
[..]
Processing triggers for libc-bin (2.36-9+rpt2+deb12u9) ...
Processing triggers for man-db (2.11.2-2) ...

2025-02-23: mmcblk0p2 - XT1310F - reboot, with the HMDI monitor connected - I now get a volume control in the panel bare on my screen. wpctl reports

tingo@tipi5-linux:~ $ wpctl status
PipeWire 'pipewire-0' [1.2.7, tingo@tipi5-linux, cookie:3746739236]
 └─ Clients:
        33. pipewire                            [1.2.7, tingo@tipi5-linux, pid:995]
        35. WirePlumber                         [1.2.7, tingo@tipi5-linux, pid:994]
        36. WirePlumber [export]                [1.2.7, tingo@tipi5-linux, pid:994]
        61. xdg-desktop-portal-wlr              [1.2.7, tingo@tipi5-linux, pid:1285]
        66. xdg-desktop-portal                  [1.2.7, tingo@tipi5-linux, pid:1232]
        67. unknown                             [1.2.7, tingo@tipi5-linux, pid:1160]
        68. wpctl                               [1.2.7, tingo@tipi5-linux, pid:1993]

Audio
 ├─ Devices:
       59. Built-in Audio                      [alsa]
       60. Built-in Audio                      [alsa]
   
 ├─ Sinks:
   *   65. Built-in Audio Digital Stereo (HDMI) [vol: 0.40]
   
 ├─ Sink endpoints:
   
 ├─ Sources:
   
 ├─ Source endpoints:
   
 └─ Streams:

Video
 ├─ Devices:
       42. rpivid                              [v4l2]
       43. pispbe                              [v4l2]
       44. pispbe                              [v4l2]
       45. pispbe                              [v4l2]
       46. pispbe                              [v4l2]
       47. pispbe                              [v4l2]
       48. pispbe                              [v4l2]
       49. pispbe                              [v4l2]
       50. pispbe                              [v4l2]
       51. pispbe                              [v4l2]
       52. pispbe                              [v4l2]
       53. pispbe                              [v4l2]
       54. pispbe                              [v4l2]
       55. pispbe                              [v4l2]
       56. pispbe                              [v4l2]
       57. pispbe                              [v4l2]
       58. pispbe                              [v4l2]
   
 ├─ Sinks:
   
 ├─ Sink endpoints:
   
 ├─ Sources:
   
 ├─ Source endpoints:
   
 └─ Streams:

Settings
 └─ Default Configured Node Names:

interesting. pactl reports

tingo@tipi5-linux:~ $ pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 75
Tile Size: 65472
User Name: tingo
Host Name: tipi5-linux
Server Name: PulseAudio (on PipeWire 1.2.7)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.platform-107c701400.hdmi.hdmi-stereo
Default Source: alsa_output.platform-107c701400.hdmi.hdmi-stereo.monitor
Cookie: df52:b424

and I have sound.

2025-02-23: mmcblk0p2 - I plugged in the XT1310F monitor via HDMI. Picture works great, but ther is no sound. wpctl says

tingo@tipi5-linux:~ $ wpctl status
PipeWire 'pipewire-0' [1.2.7, tingo@tipi5-linux, cookie:1882652940]
 └─ Clients:
        33. pipewire                            [1.2.7, tingo@tipi5-linux, pid:966]
        35. WirePlumber                         [1.2.7, tingo@tipi5-linux, pid:965]
        36. WirePlumber [export]                [1.2.7, tingo@tipi5-linux, pid:965]
        65. xdg-desktop-portal-wlr              [1.2.7, tingo@tipi5-linux, pid:1302]
        66. xdg-desktop-portal                  [1.2.7, tingo@tipi5-linux, pid:1269]
        67. unknown                             [1.2.7, tingo@tipi5-linux, pid:1140]
        68. Chromium input                      [1.2.7, tingo@tipi5-linux, pid:6536]
        69. wpctl                               [1.2.7, tingo@tipi5-linux, pid:7118]

Audio
 ├─ Devices:
       59. Built-in Audio                      [alsa]
       60. Built-in Audio                      [alsa]
   
 ├─ Sinks:
   *   34. Dummy Output                        [vol: 1.00]
   
 ├─ Sink endpoints:
   
 ├─ Sources:
   
 ├─ Source endpoints:
   
 └─ Streams:

Video
 ├─ Devices:
       42. rpivid                              [v4l2]
       43. pispbe                              [v4l2]
       44. pispbe                              [v4l2]
       45. pispbe                              [v4l2]
       46. pispbe                              [v4l2]
       47. pispbe                              [v4l2]
       48. pispbe                              [v4l2]
       49. pispbe                              [v4l2]
       50. pispbe                              [v4l2]
       51. pispbe                              [v4l2]
       52. pispbe                              [v4l2]
       53. pispbe                              [v4l2]
       54. pispbe                              [v4l2]
       55. pispbe                              [v4l2]
       56. pispbe                              [v4l2]
       57. pispbe                              [v4l2]
       58. pispbe                              [v4l2]
   
 ├─ Sinks:
   
 ├─ Sink endpoints:
   
 ├─ Sources:
   
 ├─ Source endpoints:
   
 └─ Streams:

Settings
 └─ Default Configured Node Names:

hmm - no HDMI in that list of sinks. and pactl info says

tingo@tipi5-linux:~ $ pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 96
Tile Size: 65472
User Name: tingo
Host Name: tipi5-linux
Server Name: PulseAudio (on PipeWire 1.2.7)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: auto_null
Default Source: auto_null.monitor
Cookie: 7037:010c

2025-02-20: mmcblk0p2 - bluez - test simple functionality

tingo@tipi5-linux:~/work/bluez $ tools/btmgmt info
Index list with 1 item
hci0:   Primary controller
    addr 2C:CF:67:38:23:FF version 9 manufacturer 305 class 0x6c0000
    supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr le advertising secure-conn debug-keys privacy configuration static-addr phy-configuration 
    current settings: powered bondable ssp br/edr le secure-conn 
    name tipi5-linux
    short name 
hci0:   Configuration options
    supported options: public-address 
    missing options: 

2025-02-20: mmcblk0p2 - bluez - I manually linked in cleanup.h into the ell directory

tingo@tipi5-linux:~/work/bluez $ ll ell/clean*
lrwxrwxrwx 1 tingo tingo 23 Feb 20 23:03 ell/cleanup.h -> ../../ell/ell/cleanup.h

and that made bluez build

tingo@tipi5-linux:~/work/bluez $ make
/bin/bash ./config.status --recheck
running CONFIG_SHELL=/bin/bash /bin/bash ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable-mesh --no-create --no-recursion
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to create a pax tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for C/C++ restrict keyword... __restrict__
checking for gcc... (cached) gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking whether gcc accepts -fPIE... yes
checking build system type... aarch64-unknown-linux-gnu
checking host system type... aarch64-unknown-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert aarch64-unknown-linux-gnu file names to aarch64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert aarch64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for file... file
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for explicit_bzero... yes
checking for rawmemchr... yes
checking for signalfd... yes
checking for clock_gettime in -lrt... yes
checking for pthread_create in -lpthread... yes
checking for dlopen in -ldl... yes
checking for linux/types.h... yes
checking for linux/if_alg.h... yes
checking for glib-2.0 >= 2.28... yes
checking for dbus-1 >= 1.6... yes
checking D-Bus configuration directory... /etc
checking D-Bus system bus services dir... /usr/share/dbus-1/system-services
checking D-Bus session bus services dir... /usr/share/dbus-1/services
${prefix}/share/zsh/site-functions
checking for libudev >= 172... yes
checking for udev_hwdb_new in -ludev... yes
checking udev directory... /lib/udev
checking for json-c >= 0.13... yes
checking for libical... yes
checking for readline/readline.h... yes
checking systemd system unit dir... /lib/systemd/system
checking systemd user unit dir... /usr/lib/systemd/user
checking for rst2man... rst2man
checking that generated files are newer than configure... done
configure: creating ./config.status
 /bin/bash ./config.status
config.status: creating Makefile
config.status: creating src/bluetoothd.rst
config.status: creating lib/bluez.pc
config.status: creating mesh/bluetooth-meshd.rst
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
  GEN      lib/bluetooth/bluetooth.h
  GEN      lib/bluetooth/hci.h
  GEN      lib/bluetooth/hci_lib.h
  GEN      lib/bluetooth/sco.h
  GEN      lib/bluetooth/l2cap.h
  GEN      lib/bluetooth/sdp.h
  GEN      lib/bluetooth/sdp_lib.h
  GEN      lib/bluetooth/rfcomm.h
  GEN      lib/bluetooth/bnep.h
  GEN      lib/bluetooth/cmtp.h
  GEN      lib/bluetooth/hidp.h
  GEN      ell/shared
  GEN      ell/internal
  GEN      ell/ell.h
  GEN      src/builtin.h
  GEN      obexd/src/builtin.h
make --no-print-directory all-am
  CC       client/main.o
  CC       client/display.o
  CC       client/agent.o
  CC       client/advertising.o
  CC       client/adv_monitor.o
  CC       client/gatt.o
client/gatt.c: In function ‘str2bytearray’:
client/gatt.c:793:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  793 |         return g_memdup(value, i);
      |         ^~~~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from client/gatt.c:27:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       client/admin.o
  CC       gdbus/mainloop.lo
  CC       gdbus/watch.lo
  CC       gdbus/object.lo
  CC       gdbus/client.lo
  CC       gdbus/polkit.lo
  CCLD     gdbus/libgdbus-internal.la
  CC       src/shared/queue.lo
  CC       src/shared/util.lo
  CC       src/shared/mgmt.lo
  CC       src/shared/crypto.lo
  CC       src/shared/ecc.lo
  CC       src/shared/ringbuf.lo
  CC       src/shared/hci.lo
  CC       src/shared/hci-crypto.lo
  CC       src/shared/hfp.lo
  CC       src/shared/uhid.lo
  CC       src/shared/pcap.lo
  CC       src/shared/btsnoop.lo
  CC       src/shared/ad.lo
  CC       src/shared/att.lo
  CC       src/shared/gatt-helpers.lo
  CC       src/shared/gatt-client.lo
  CC       src/shared/gatt-server.lo
  CC       src/shared/gatt-db.lo
  CC       src/shared/gap.lo
  CC       src/shared/log.lo
  CC       src/shared/shell.lo
  CC       src/shared/io-glib.lo
  CC       src/shared/timeout-glib.lo
  CC       src/shared/mainloop-glib.lo
  CC       src/shared/mainloop-notify.lo
  CC       src/shared/tester.lo
  CCLD     src/libshared-glib.la
  CCLD     client/bluetoothctl
  CC       monitor/main.o
  CC       monitor/display.o
  CC       monitor/hcidump.o
  CC       monitor/ellisys.o
  CC       monitor/control.o
  CC       monitor/packet.o
  CC       monitor/vendor.o
  CC       monitor/lmp.o
  CC       monitor/crc.o
  CC       monitor/ll.o
  CC       monitor/l2cap.o
  CC       monitor/sdp.o
  CC       monitor/avctp.o
  CC       monitor/avdtp.o
  CC       monitor/a2dp.o
  CC       monitor/rfcomm.o
  CC       monitor/bnep.o
  CC       monitor/hwdb.o
  CC       monitor/keys.o
  CC       monitor/analyze.o
  CC       monitor/intel.o
  CC       monitor/broadcom.o
  CC       monitor/msft.o
  CC       monitor/jlink.o
  CC       lib/bluetooth.lo
  CC       lib/hci.lo
  CC       lib/sdp.lo
  CC       lib/uuid.lo
  CCLD     lib/libbluetooth-internal.la
  CC       src/shared/io-mainloop.lo
  CC       src/shared/timeout-mainloop.lo
  CC       src/shared/mainloop.lo
  CCLD     src/libshared-mainloop.la
  CCLD     monitor/btmon
  CC       tools/rctest.o
  CCLD     tools/rctest
  CC       tools/l2test.o
  CCLD     tools/l2test
  CC       tools/l2ping.o
  CCLD     tools/l2ping
  CC       tools/bluemoon.o
  CCLD     tools/bluemoon
  CC       tools/hex2hcd.o
  CCLD     tools/hex2hcd
  CC       tools/mpris-proxy.o
  CCLD     tools/mpris-proxy
  CC       tools/btattach.o
  CCLD     tools/btattach
  CC       tools/meshctl.o
  CC       tools/mesh/agent.o
  CC       tools/mesh-gatt/node.o
  CC       tools/mesh-gatt/gatt.o
tools/mesh-gatt/gatt.c: In function ‘mesh_gatt_write’:
tools/mesh-gatt/gatt.c:341:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  341 |         data->gatt_data = g_memdup(buf, len);
      |         ^~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from tools/mesh-gatt/gatt.c:23:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       tools/mesh-gatt/crypto.o
  CC       tools/mesh-gatt/net.o
  CC       tools/mesh-gatt/prov.o
  CC       tools/mesh-gatt/util.o
  CC       tools/mesh-gatt/prov-db.o
  CC       tools/mesh-gatt/config-client.o
  CC       tools/mesh-gatt/config-server.o
  CC       tools/mesh-gatt/onoff-model.o
  CCLD     tools/meshctl
  CC       tools/mesh-cfgclient.o
  CC       tools/mesh/cfgcli.o
  CC       tools/mesh/keys.o
  CC       tools/mesh/util.o
  CC       tools/mesh/remote.o
  CC       tools/mesh/mesh-db.o
  CC       mesh/util.o
  CC       mesh/crypto.o
  CC       src/shared/io-ell.lo
  CC       src/shared/timeout-ell.lo
  CC       src/shared/mainloop-ell.lo
  CCLD     src/libshared-ell.la
  CC       ell/util.lo
  CC       ell/log.lo
  CC       ell/queue.lo
  CC       ell/hashmap.lo
  CC       ell/random.lo
  CC       ell/signal.lo
  CC       ell/time.lo
  CC       ell/timeout.lo
  CC       ell/io.lo
  CC       ell/idle.lo
  CC       ell/main.lo
  CC       ell/settings.lo
  CC       ell/strv.lo
  CC       ell/string.lo
  CC       ell/cipher.lo
  CC       ell/checksum.lo
  CC       ell/pem.lo
  CC       ell/cert.lo
  CC       ell/cert-crypto.lo
  CC       ell/key.lo
  CC       ell/base64.lo
  CC       ell/utf8.lo
  CC       ell/dbus.lo
  CC       ell/dbus-message.lo
  CC       ell/dbus-util.lo
  CC       ell/dbus-service.lo
  CC       ell/dbus-client.lo
  CC       ell/dbus-name-cache.lo
  CC       ell/dbus-filter.lo
  CC       ell/gvariant-util.lo
  CC       ell/siphash.lo
  CC       ell/uuid.lo
  CC       ell/tester.lo
  CC       ell/tls.lo
  CC       ell/tls-extensions.lo
  CC       ell/tls-suites.lo
  CC       ell/tls-record.lo
  CC       ell/ecc.lo
  CC       ell/ecc-external.lo
  CC       ell/ecdh.lo
  CCLD     ell/libell-internal.la
  CCLD     tools/mesh-cfgclient
  CC       tools/mesh-cfgtest.o
  CCLD     tools/mesh-cfgtest
  CC       profiles/cups/main.o
  CC       profiles/cups/sdp.o
  CC       profiles/cups/spp.o
  CC       profiles/cups/hcrp.o
  CCLD     profiles/cups/bluetooth
  CC       tools/bdaddr.o
  CC       src/oui.o
  CCLD     tools/bdaddr
  CC       tools/avinfo.o
  CCLD     tools/avinfo
  CC       tools/avtest.o
  CCLD     tools/avtest
  CC       tools/scotest.o
  CCLD     tools/scotest
  CC       tools/amptest.o
  CCLD     tools/amptest
  CC       tools/hwdb.o
  CCLD     tools/hwdb
  CC       tools/hcieventmask.o
  CCLD     tools/hcieventmask
  CC       tools/hcisecfilter.o
  CCLD     tools/hcisecfilter
  CC       tools/btinfo.o
  CCLD     tools/btinfo
  CC       tools/btconfig.o
  CCLD     tools/btconfig
  CC       tools/btsnoop.o
  CCLD     tools/btsnoop
  CC       tools/btproxy.o
  CCLD     tools/btproxy
  CC       tools/btiotest.o
  CC       btio/btio.o
  CCLD     tools/btiotest
  CC       tools/bneptest.o
  CC       src/log.o
  CC       profiles/network/bnep.o
  CCLD     tools/bneptest
  CC       tools/mcaptest.o
  CC       profiles/health/mcap.o
  CCLD     tools/mcaptest
  CC       tools/cltest.o
  CCLD     tools/cltest
  CC       tools/oobtest.o
  CCLD     tools/oobtest
  CC       tools/advtest.o
  CCLD     tools/advtest
  CC       tools/seq2bseq.o
  CCLD     tools/seq2bseq
  CC       tools/nokfw.o
  CCLD     tools/nokfw
  CC       tools/rtlfw.o
  CCLD     tools/rtlfw
  CC       tools/bcmfw.o
  CCLD     tools/bcmfw
  CC       tools/create-image.o
  CCLD     tools/create-image
  CC       tools/eddystone.o
  CCLD     tools/eddystone
  CC       tools/ibeacon.o
  CCLD     tools/ibeacon
  CC       tools/btgatt-client.o
  CC       src/uuid-helper.o
  CCLD     tools/btgatt-client
  CC       tools/btgatt-server.o
  CCLD     tools/btgatt-server
  CC       tools/test-runner.o
  CCLD     tools/test-runner
  CC       tools/check-selftest.o
  CCLD     tools/check-selftest
  CC       tools/gatt-service.o
tools/gatt-service.c: In function ‘desc_write’:
tools/gatt-service.c:130:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  130 |         desc->value = g_memdup(value, len);
      |         ^~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from tools/gatt-service.c:23:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
tools/gatt-service.c: In function ‘chr_write’:
tools/gatt-service.c:268:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  268 |         chr->value = g_memdup(value, len);
      |         ^~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
tools/gatt-service.c: In function ‘register_characteristic’:
tools/gatt-service.c:595:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  595 |         chr->value = g_memdup(value, vlen);
      |         ^~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CCLD     tools/gatt-service
  CC       profiles/iap/main.o
  CCLD     profiles/iap/iapd
  CC       tools/btmgmt.o
  CCLD     tools/btmgmt
  CC       gobex/gobex.o
  CC       gobex/gobex-defs.o
  CC       gobex/gobex-packet.o
gobex/gobex-packet.c: In function ‘g_obex_packet_set_data’:
gobex/gobex-packet.c:204:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  204 |                 pkt->data.buf = g_memdup(data, len);
      |                 ^~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from gobex/gobex-defs.h:13,
                 from gobex/gobex-packet.c:17:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       gobex/gobex-header.o
gobex/gobex-header.c: In function ‘g_obex_header_decode’:
gobex/gobex-header.c:225:25: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  225 |                         header->v.data = g_memdup(ptr, header->vlen);
      |                         ^~~~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from gobex/gobex-header.h:13,
                 from gobex/gobex-header.c:16:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
gobex/gobex-header.c: In function ‘g_obex_header_new_bytes’:
gobex/gobex-header.c:413:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  413 |         header->v.data = g_memdup(data, len);
      |         ^~~~~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       gobex/gobex-transfer.o
  CC       gobex/gobex-apparam.o
  CC       tools/obex-client-tool.o
  CCLD     tools/obex-client-tool
  CC       tools/obex-server-tool.o
  CCLD     tools/obex-server-tool
  CC       tools/bluetooth-player.o
  CCLD     tools/bluetooth-player
  CC       tools/obexctl.o
  CCLD     tools/obexctl
  CC       plugins/bluetoothd-hostname.o
  CC       plugins/bluetoothd-wiimote.o
  CC       plugins/bluetoothd-autopair.o
  CC       plugins/bluetoothd-policy.o
plugins/policy.c: In function ‘policy_init’:
plugins/policy.c:858:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  858 |                 reconnect_intervals = g_memdup(default_intervals,
      |                 ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from plugins/policy.c:20:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
plugins/policy.c:889:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  889 |                 reconnect_intervals = g_memdup(default_intervals,
      |                 ^~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       profiles/audio/bluetoothd-source.o
  CC       profiles/audio/bluetoothd-sink.o
  CC       profiles/audio/bluetoothd-a2dp.o
  CC       profiles/audio/bluetoothd-avdtp.o
  CC       profiles/audio/bluetoothd-media.o
  CC       profiles/audio/bluetoothd-transport.o
  CC       profiles/audio/bluetoothd-control.o
  CC       profiles/audio/bluetoothd-avctp.o
profiles/audio/avctp.c: In function ‘avctp_send_req’:
profiles/audio/avctp.c:1730:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 1730 |         req->operands = g_memdup(operands, operand_count);
      |         ^~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from profiles/audio/avctp.c:29:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
profiles/audio/avctp.c: In function ‘avctp_send_browsing_req’:
profiles/audio/avctp.c:1768:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 1768 |         req->operands = g_memdup(operands, operand_count);
      |         ^~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       profiles/audio/bluetoothd-avrcp.o
profiles/audio/avrcp.c: In function ‘avrcp_handle_get_current_player_value’:
profiles/audio/avrcp.c:1301:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 1301 |         settings = g_memdup(&pdu->params[1], pdu->params[0]);
      |         ^~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from profiles/audio/avrcp.c:30:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
profiles/audio/avrcp.c: In function ‘avrcp_set_browsed_player_rsp’:
profiles/audio/avrcp.c:2804:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 2804 |                 folders[count] = g_memdup(&pdu->params[i], len);
      |                 ^~~~~~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
profiles/audio/avrcp.c: In function ‘avrcp_player_parse_features’:
profiles/audio/avrcp.c:2891:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 2891 |         player->features = g_memdup(features, 16);
      |         ^~~~~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       profiles/audio/bluetoothd-player.o
  CC       profiles/network/bluetoothd-manager.o
  CC       profiles/network/bluetoothd-bnep.o
  CC       profiles/network/bluetoothd-server.o
  CC       profiles/network/bluetoothd-connection.o
  CC       profiles/input/bluetoothd-manager.o
  CC       profiles/input/bluetoothd-server.o
  CC       profiles/input/bluetoothd-device.o
  CC       profiles/input/bluetoothd-hog.o
  CC       profiles/input/bluetoothd-hog-lib.o
profiles/input/hog-lib.c: In function ‘report_read_cb’:
profiles/input/hog-lib.c:532:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  532 |         report->value = g_memdup(pdu, len);
      |         ^~~~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from profiles/input/hog-lib.c:27:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
profiles/input/hog-lib.c: In function ‘hog_attach_hog’:
profiles/input/hog-lib.c:1612:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 1612 |                 hog->primary = g_memdup(primary, sizeof(*primary));
      |                 ^~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
profiles/input/hog-lib.c:1626:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 1626 |         instance->primary = g_memdup(primary, sizeof(*primary));
      |         ^~~~~~~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       profiles/deviceinfo/bluetoothd-dis.o
profiles/deviceinfo/dis.c: In function ‘bt_dis_new_primary’:
profiles/deviceinfo/dis.c:146:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  146 |                 dis->primary = g_memdup(primary, sizeof(*dis->primary));
      |                 ^~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from profiles/deviceinfo/dis.c:17:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       profiles/battery/bluetoothd-bas.o
profiles/battery/bas.c: In function ‘bt_bas_new’:
profiles/battery/bas.c:78:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
   78 |                 bas->primary = g_memdup(primary, sizeof(*bas->primary));
      |                 ^~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from profiles/battery/bas.c:18:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       profiles/scanparam/bluetoothd-scpp.o
profiles/scanparam/scpp.c: In function ‘bt_scpp_new’:
profiles/scanparam/scpp.c:113:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  113 |                 scan->primary = g_memdup(primary, sizeof(*scan->primary));
      |                 ^~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from profiles/scanparam/scpp.c:19:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       profiles/input/bluetoothd-suspend-none.o
  CC       profiles/gap/bluetoothd-gas.o
  CC       profiles/scanparam/bluetoothd-scan.o
  CC       profiles/deviceinfo/bluetoothd-deviceinfo.o
  CC       profiles/battery/bluetoothd-battery.o
profiles/battery/battery.c: In function ‘read_initial_battery_level_cb’:
profiles/battery/battery.c:162:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  162 |         batt->initial_value = g_memdup(value, length);
      |         ^~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from profiles/battery/battery.c:24:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       attrib/bluetoothd-att.o
  CC       attrib/bluetoothd-gatt.o
attrib/gatt.c: In function ‘gatt_discover_char’:
attrib/gatt.c:699:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  699 |         dc->uuid = g_memdup(uuid, sizeof(bt_uuid_t));
      |         ^~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from attrib/gatt.c:19:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
attrib/gatt.c: In function ‘gatt_write_char’:
attrib/gatt.c:967:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  967 |         long_write->value = g_memdup(value, vlen);
      |         ^~~~~~~~~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
attrib/gatt.c: In function ‘gatt_discover_desc’:
attrib/gatt.c:1133:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 1133 |         dd->uuid = g_memdup(uuid, sizeof(bt_uuid_t));
      |         ^~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       attrib/bluetoothd-gattrib.o
  CC       attrib/bluetoothd-gatt-service.o
  CC       btio/bluetoothd-btio.o
  CC       src/bluetoothd-main.o
  CC       src/bluetoothd-log.o
  CC       src/bluetoothd-backtrace.o
  CC       src/bluetoothd-rfkill.o
  CC       src/bluetoothd-sdpd-server.o
  CC       src/bluetoothd-sdpd-request.o
  CC       src/bluetoothd-sdpd-service.o
  CC       src/bluetoothd-sdpd-database.o
  CC       src/bluetoothd-attrib-server.o
src/attrib-server.c: In function ‘attrib_db_add_new’:
src/attrib-server.c:342:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  342 |         a->data = g_memdup(value, len);
      |         ^
In file included from /usr/include/glib-2.0/glib.h:84,
                 from src/attrib-server.c:21:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       src/bluetoothd-gatt-database.o
  CC       src/bluetoothd-sdp-xml.o
  CC       src/bluetoothd-sdp-client.o
  CC       src/bluetoothd-textfile.o
  CC       src/bluetoothd-uuid-helper.o
  CC       src/bluetoothd-plugin.o
  CC       src/bluetoothd-storage.o
  CC       src/bluetoothd-advertising.o
  CC       src/bluetoothd-agent.o
  CC       src/bluetoothd-error.o
  CC       src/bluetoothd-adapter.o
  CC       src/bluetoothd-profile.o
  CC       src/bluetoothd-service.o
  CC       src/bluetoothd-gatt-client.o
  CC       src/bluetoothd-device.o
  CC       src/bluetoothd-dbus-common.o
  CC       src/bluetoothd-eir.o
src/eir.c: In function ‘eir_parse’:
src/eir.c:326:25: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  326 |                         eir->hash = g_memdup(data, 16);
      |                         ^~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from src/eir.c:22:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
src/eir.c:332:25: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  332 |                         eir->randomizer = g_memdup(data, 16);
      |                         ^~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       src/bluetoothd-adv_monitor.o
  CC       src/bluetoothd-battery.o
  GEN      src/bluetooth.service
  CCLD     src/bluetoothd
  CC       btio/obexd-btio.o
  CC       gobex/obexd-gobex.o
  CC       gobex/obexd-gobex-defs.o
  CC       gobex/obexd-gobex-packet.o
gobex/gobex-packet.c: In function ‘g_obex_packet_set_data’:
gobex/gobex-packet.c:204:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  204 |                 pkt->data.buf = g_memdup(data, len);
      |                 ^~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from gobex/gobex-defs.h:13,
                 from gobex/gobex-packet.c:17:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       gobex/obexd-gobex-header.o
gobex/gobex-header.c: In function ‘g_obex_header_decode’:
gobex/gobex-header.c:225:25: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  225 |                         header->v.data = g_memdup(ptr, header->vlen);
      |                         ^~~~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from gobex/gobex-header.h:13,
                 from gobex/gobex-header.c:16:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
gobex/gobex-header.c: In function ‘g_obex_header_new_bytes’:
gobex/gobex-header.c:413:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  413 |         header->v.data = g_memdup(data, len);
      |         ^~~~~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       gobex/obexd-gobex-transfer.o
  CC       gobex/obexd-gobex-apparam.o
  CC       obexd/plugins/obexd-filesystem.o
  CC       obexd/plugins/obexd-bluetooth.o
  CC       obexd/plugins/obexd-opp.o
  CC       obexd/plugins/obexd-ftp.o
  CC       obexd/plugins/obexd-irmc.o
  CC       obexd/plugins/obexd-pbap.o
  CC       obexd/plugins/obexd-vcard.o
  CC       obexd/plugins/obexd-phonebook-dummy.o
  CC       obexd/plugins/obexd-mas.o
  CC       obexd/plugins/obexd-messages-dummy.o
  CC       obexd/client/obexd-mns.o
  CC       obexd/src/obexd-main.o
  CC       obexd/src/obexd-plugin.o
  CC       obexd/src/obexd-log.o
  CC       obexd/src/obexd-manager.o
  CC       obexd/src/obexd-obex.o
obexd/src/obex.c: In function ‘parse_apparam’:
obexd/src/obex.c:597:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  597 |         os->apparam = g_memdup(apparam, len);
      |         ^~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from obexd/src/obex.c:29:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       obexd/src/obexd-mimetype.o
  CC       obexd/src/obexd-service.o
  CC       obexd/src/obexd-transport.o
  CC       obexd/src/obexd-server.o
  CC       obexd/client/obexd-manager.o
  CC       obexd/client/obexd-session.o
  CC       obexd/client/obexd-bluetooth.o
  CC       obexd/client/obexd-sync.o
  CC       obexd/client/obexd-pbap.o
  CC       obexd/client/obexd-ftp.o
  CC       obexd/client/obexd-opp.o
  CC       obexd/client/obexd-map.o
  CC       obexd/client/obexd-map-event.o
  CC       obexd/client/obexd-transfer.o
  CC       obexd/client/obexd-transport.o
  CC       obexd/client/obexd-driver.o
  CCLD     obexd/src/obexd
  CC       mesh/mesh.o
  CC       mesh/net-keys.o
  CC       mesh/mesh-io.o
  CC       mesh/mesh-mgmt.o
  CC       mesh/mesh-io-generic.o
  CC       mesh/mesh-io-unit.o
  CC       mesh/net.o
  CC       mesh/friend.o
  CC       mesh/appkey.o
  CC       mesh/node.o
  CC       mesh/model.o
  CC       mesh/cfgmod-server.o
  CC       mesh/mesh-config-json.o
  CC       mesh/dbus.o
  CC       mesh/agent.o
  CC       mesh/prov-acceptor.o
  CC       mesh/prov-initiator.o
  CC       mesh/manager.o
  CC       mesh/pb-adv.o
  CC       mesh/keyring.o
  CC       mesh/rpl.o
  CC       mesh/main.o
  GEN      mesh/bluetooth-mesh.service
  CCLD     mesh/bluetooth-meshd
  GEN      src/bluetoothd.8
  GEN      monitor/btmon.1
  GEN      tools/rctest.1
  GEN      tools/l2ping.1
  GEN      tools/btattach.1
  GEN      mesh/bluetooth-meshd.8
  GEN      obexd/src/obex.service

2025-02-20: mmcblk0p2 - bluez - configure with mesh enabled

tingo@tipi5-linux:~/work/bluez $ ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable-mesh
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to create a pax tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for C/C++ restrict keyword... __restrict__
checking for gcc... (cached) gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking whether gcc accepts -fPIE... yes
checking build system type... aarch64-unknown-linux-gnu
checking host system type... aarch64-unknown-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert aarch64-unknown-linux-gnu file names to aarch64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert aarch64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for file... file
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for explicit_bzero... yes
checking for rawmemchr... yes
checking for signalfd... yes
checking for clock_gettime in -lrt... yes
checking for pthread_create in -lpthread... yes
checking for dlopen in -ldl... yes
checking for linux/types.h... yes
checking for linux/if_alg.h... yes
checking for glib-2.0 >= 2.28... yes
checking for dbus-1 >= 1.6... yes
checking D-Bus configuration directory... /etc
checking D-Bus system bus services dir... /usr/share/dbus-1/system-services
checking D-Bus session bus services dir... /usr/share/dbus-1/services
${prefix}/share/zsh/site-functions
checking for libudev >= 172... yes
checking for udev_hwdb_new in -ludev... yes
checking udev directory... /lib/udev
checking for json-c >= 0.13... yes
checking for libical... yes
checking for readline/readline.h... yes
checking systemd system unit dir... /lib/systemd/system
checking systemd user unit dir... /usr/lib/systemd/user
checking for rst2man... rst2man
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/bluetoothd.rst
config.status: creating lib/bluez.pc
config.status: creating mesh/bluetooth-meshd.rst
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

make

tingo@tipi5-linux:~/work/bluez $ make
  GEN      lib/bluetooth/bluetooth.h
  GEN      lib/bluetooth/hci.h
  GEN      lib/bluetooth/hci_lib.h
  GEN      lib/bluetooth/sco.h
  GEN      lib/bluetooth/l2cap.h
  GEN      lib/bluetooth/sdp.h
  GEN      lib/bluetooth/sdp_lib.h
  GEN      lib/bluetooth/rfcomm.h
  GEN      lib/bluetooth/bnep.h
  GEN      lib/bluetooth/cmtp.h
  GEN      lib/bluetooth/hidp.h
  GEN      ell/shared
  GEN      ell/internal
  GEN      ell/ell.h
  GEN      src/builtin.h
  GEN      obexd/src/builtin.h
make --no-print-directory all-am
  CC       client/main.o
  CC       client/display.o
  CC       client/agent.o
  CC       client/advertising.o
  CC       client/adv_monitor.o
  CC       client/gatt.o
client/gatt.c: In function ‘str2bytearray’:
client/gatt.c:793:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  793 |         return g_memdup(value, i);
      |         ^~~~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from client/gatt.c:27:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       client/admin.o
  CC       gdbus/mainloop.lo
  CC       gdbus/watch.lo
  CC       gdbus/object.lo
  CC       gdbus/client.lo
  CC       gdbus/polkit.lo
  CCLD     gdbus/libgdbus-internal.la
  CC       src/shared/queue.lo
  CC       src/shared/util.lo
  CC       src/shared/mgmt.lo
  CC       src/shared/crypto.lo
  CC       src/shared/ecc.lo
  CC       src/shared/ringbuf.lo
  CC       src/shared/hci.lo
  CC       src/shared/hci-crypto.lo
  CC       src/shared/hfp.lo
  CC       src/shared/uhid.lo
  CC       src/shared/pcap.lo
  CC       src/shared/btsnoop.lo
  CC       src/shared/ad.lo
  CC       src/shared/att.lo
  CC       src/shared/gatt-helpers.lo
  CC       src/shared/gatt-client.lo
  CC       src/shared/gatt-server.lo
  CC       src/shared/gatt-db.lo
  CC       src/shared/gap.lo
  CC       src/shared/log.lo
  CC       src/shared/shell.lo
  CC       src/shared/io-glib.lo
  CC       src/shared/timeout-glib.lo
  CC       src/shared/mainloop-glib.lo
  CC       src/shared/mainloop-notify.lo
  CC       src/shared/tester.lo
  CCLD     src/libshared-glib.la
  CCLD     client/bluetoothctl
  CC       monitor/main.o
  CC       monitor/display.o
  CC       monitor/hcidump.o
  CC       monitor/ellisys.o
  CC       monitor/control.o
  CC       monitor/packet.o
  CC       monitor/vendor.o
  CC       monitor/lmp.o
  CC       monitor/crc.o
  CC       monitor/ll.o
  CC       monitor/l2cap.o
  CC       monitor/sdp.o
  CC       monitor/avctp.o
  CC       monitor/avdtp.o
  CC       monitor/a2dp.o
  CC       monitor/rfcomm.o
  CC       monitor/bnep.o
  CC       monitor/hwdb.o
  CC       monitor/keys.o
  CC       monitor/analyze.o
  CC       monitor/intel.o
  CC       monitor/broadcom.o
  CC       monitor/msft.o
  CC       monitor/jlink.o
  CC       lib/bluetooth.lo
  CC       lib/hci.lo
  CC       lib/sdp.lo
  CC       lib/uuid.lo
  CCLD     lib/libbluetooth-internal.la
  CC       src/shared/io-mainloop.lo
  CC       src/shared/timeout-mainloop.lo
  CC       src/shared/mainloop.lo
  CCLD     src/libshared-mainloop.la
  CCLD     monitor/btmon
  CC       tools/rctest.o
  CCLD     tools/rctest
  CC       tools/l2test.o
  CCLD     tools/l2test
  CC       tools/l2ping.o
  CCLD     tools/l2ping
  CC       tools/bluemoon.o
  CCLD     tools/bluemoon
  CC       tools/hex2hcd.o
  CCLD     tools/hex2hcd
  CC       tools/mpris-proxy.o
  CCLD     tools/mpris-proxy
  CC       tools/btattach.o
  CCLD     tools/btattach
  CC       tools/meshctl.o
  CC       tools/mesh/agent.o
  CC       tools/mesh-gatt/node.o
  CC       tools/mesh-gatt/gatt.o
tools/mesh-gatt/gatt.c: In function ‘mesh_gatt_write’:
tools/mesh-gatt/gatt.c:341:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  341 |         data->gatt_data = g_memdup(buf, len);
      |         ^~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from tools/mesh-gatt/gatt.c:23:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       tools/mesh-gatt/crypto.o
  CC       tools/mesh-gatt/net.o
  CC       tools/mesh-gatt/prov.o
  CC       tools/mesh-gatt/util.o
  CC       tools/mesh-gatt/prov-db.o
  CC       tools/mesh-gatt/config-client.o
  CC       tools/mesh-gatt/config-server.o
  CC       tools/mesh-gatt/onoff-model.o
  CCLD     tools/meshctl
  CC       tools/mesh-cfgclient.o
In file included from tools/mesh-cfgclient.c:26:
./ell/ell.h:1:10: fatal error: ell/util.h: No such file or directory
    1 | #include <ell/util.h>
      |          ^~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:6965: tools/mesh-cfgclient.o] Error 1
make: *** [Makefile:4154: all] Error 2

2025-02-20: mmcblk0p2 - apt - install libjson-c-dev

tingo@tipi5-linux:~/work/bluez $ sudo apt install libjson-c-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  libjson-c-dev
0 upgraded, 1 newly installed, 0 to remove and 33 not upgraded.
Need to get 70.9 kB of archives.
After this operation, 311 kB of additional disk space will be used.
[..]
Preparing to unpack .../libjson-c-dev_0.16-2_arm64.deb ...
Unpacking libjson-c-dev:arm64 (0.16-2) ...
Setting up libjson-c-dev:arm64 (0.16-2) ...

2025-02-20: mmcblk0p2 - bluez - make

tingo@tipi5-linux:~/work/bluez $ make
  GEN      lib/bluetooth/bluetooth.h
  GEN      lib/bluetooth/hci.h
  GEN      lib/bluetooth/hci_lib.h
  GEN      lib/bluetooth/sco.h
  GEN      lib/bluetooth/l2cap.h
  GEN      lib/bluetooth/sdp.h
  GEN      lib/bluetooth/sdp_lib.h
  GEN      lib/bluetooth/rfcomm.h
  GEN      lib/bluetooth/bnep.h
  GEN      lib/bluetooth/cmtp.h
  GEN      lib/bluetooth/hidp.h
  GEN      ell/shared
  GEN      src/builtin.h
  GEN      obexd/src/builtin.h
make --no-print-directory all-am
  CC       client/main.o
  CC       client/display.o
  CC       client/agent.o
  CC       client/advertising.o
  CC       client/adv_monitor.o
  CC       client/gatt.o
client/gatt.c: In function ‘str2bytearray’:
client/gatt.c:793:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  793 |         return g_memdup(value, i);
      |         ^~~~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from client/gatt.c:27:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       client/admin.o
  CC       gdbus/mainloop.lo
  CC       gdbus/watch.lo
  CC       gdbus/object.lo
  CC       gdbus/client.lo
  CC       gdbus/polkit.lo
  CCLD     gdbus/libgdbus-internal.la
  CC       src/shared/queue.lo
  CC       src/shared/util.lo
  CC       src/shared/mgmt.lo
  CC       src/shared/crypto.lo
  CC       src/shared/ecc.lo
  CC       src/shared/ringbuf.lo
  CC       src/shared/hci.lo
  CC       src/shared/hci-crypto.lo
  CC       src/shared/hfp.lo
  CC       src/shared/uhid.lo
  CC       src/shared/pcap.lo
  CC       src/shared/btsnoop.lo
  CC       src/shared/ad.lo
  CC       src/shared/att.lo
  CC       src/shared/gatt-helpers.lo
  CC       src/shared/gatt-client.lo
  CC       src/shared/gatt-server.lo
  CC       src/shared/gatt-db.lo
  CC       src/shared/gap.lo
  CC       src/shared/log.lo
  CC       src/shared/shell.lo
  CC       src/shared/io-glib.lo
  CC       src/shared/timeout-glib.lo
  CC       src/shared/mainloop-glib.lo
  CC       src/shared/mainloop-notify.lo
  CC       src/shared/tester.lo
  CCLD     src/libshared-glib.la
  CCLD     client/bluetoothctl
  CC       monitor/main.o
  CC       monitor/display.o
  CC       monitor/hcidump.o
  CC       monitor/ellisys.o
  CC       monitor/control.o
  CC       monitor/packet.o
  CC       monitor/vendor.o
  CC       monitor/lmp.o
  CC       monitor/crc.o
  CC       monitor/ll.o
  CC       monitor/l2cap.o
  CC       monitor/sdp.o
  CC       monitor/avctp.o
  CC       monitor/avdtp.o
  CC       monitor/a2dp.o
  CC       monitor/rfcomm.o
  CC       monitor/bnep.o
  CC       monitor/hwdb.o
  CC       monitor/keys.o
  CC       monitor/analyze.o
  CC       monitor/intel.o
  CC       monitor/broadcom.o
  CC       monitor/msft.o
  CC       monitor/jlink.o
  CC       lib/bluetooth.lo
  CC       lib/hci.lo
  CC       lib/sdp.lo
  CC       lib/uuid.lo
  CCLD     lib/libbluetooth-internal.la
  CC       src/shared/io-mainloop.lo
  CC       src/shared/timeout-mainloop.lo
  CC       src/shared/mainloop.lo
  CCLD     src/libshared-mainloop.la
  CCLD     monitor/btmon
  CC       tools/rctest.o
  CCLD     tools/rctest
  CC       tools/l2test.o
  CCLD     tools/l2test
  CC       tools/l2ping.o
  CCLD     tools/l2ping
  CC       tools/bluemoon.o
  CCLD     tools/bluemoon
  CC       tools/hex2hcd.o
  CCLD     tools/hex2hcd
  CC       tools/mpris-proxy.o
  CCLD     tools/mpris-proxy
  CC       tools/btattach.o
  CCLD     tools/btattach
  CC       profiles/cups/main.o
  CC       profiles/cups/sdp.o
  CC       profiles/cups/spp.o
  CC       profiles/cups/hcrp.o
  CCLD     profiles/cups/bluetooth
  CC       tools/bdaddr.o
  CC       src/oui.o
  CCLD     tools/bdaddr
  CC       tools/avinfo.o
  CCLD     tools/avinfo
  CC       tools/avtest.o
  CCLD     tools/avtest
  CC       tools/scotest.o
  CCLD     tools/scotest
  CC       tools/amptest.o
  CCLD     tools/amptest
  CC       tools/hwdb.o
  CCLD     tools/hwdb
  CC       tools/hcieventmask.o
  CCLD     tools/hcieventmask
  CC       tools/hcisecfilter.o
  CCLD     tools/hcisecfilter
  CC       tools/btinfo.o
  CCLD     tools/btinfo
  CC       tools/btconfig.o
  CCLD     tools/btconfig
  CC       tools/btsnoop.o
  CCLD     tools/btsnoop
  CC       tools/btproxy.o
  CCLD     tools/btproxy
  CC       tools/btiotest.o
  CC       btio/btio.o
  CCLD     tools/btiotest
  CC       tools/bneptest.o
  CC       src/log.o
  CC       profiles/network/bnep.o
  CCLD     tools/bneptest
  CC       tools/mcaptest.o
  CC       profiles/health/mcap.o
  CCLD     tools/mcaptest
  CC       tools/cltest.o
  CCLD     tools/cltest
  CC       tools/oobtest.o
  CCLD     tools/oobtest
  CC       tools/advtest.o
  CCLD     tools/advtest
  CC       tools/seq2bseq.o
  CCLD     tools/seq2bseq
  CC       tools/nokfw.o
  CCLD     tools/nokfw
  CC       tools/rtlfw.o
  CCLD     tools/rtlfw
  CC       tools/bcmfw.o
  CCLD     tools/bcmfw
  CC       tools/create-image.o
  CCLD     tools/create-image
  CC       tools/eddystone.o
  CCLD     tools/eddystone
  CC       tools/ibeacon.o
  CCLD     tools/ibeacon
  CC       tools/btgatt-client.o
  CC       src/uuid-helper.o
  CCLD     tools/btgatt-client
  CC       tools/btgatt-server.o
  CCLD     tools/btgatt-server
  CC       tools/test-runner.o
  CCLD     tools/test-runner
  CC       tools/check-selftest.o
  CCLD     tools/check-selftest
  CC       tools/gatt-service.o
tools/gatt-service.c: In function ‘desc_write’:
tools/gatt-service.c:130:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  130 |         desc->value = g_memdup(value, len);
      |         ^~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from tools/gatt-service.c:23:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
tools/gatt-service.c: In function ‘chr_write’:
tools/gatt-service.c:268:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  268 |         chr->value = g_memdup(value, len);
      |         ^~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
tools/gatt-service.c: In function ‘register_characteristic’:
tools/gatt-service.c:595:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  595 |         chr->value = g_memdup(value, vlen);
      |         ^~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CCLD     tools/gatt-service
  CC       profiles/iap/main.o
  CCLD     profiles/iap/iapd
  CC       tools/btmgmt.o
  CCLD     tools/btmgmt
  CC       gobex/gobex.o
  CC       gobex/gobex-defs.o
  CC       gobex/gobex-packet.o
gobex/gobex-packet.c: In function ‘g_obex_packet_set_data’:
gobex/gobex-packet.c:204:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  204 |                 pkt->data.buf = g_memdup(data, len);
      |                 ^~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from gobex/gobex-defs.h:13,
                 from gobex/gobex-packet.c:17:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       gobex/gobex-header.o
gobex/gobex-header.c: In function ‘g_obex_header_decode’:
gobex/gobex-header.c:225:25: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  225 |                         header->v.data = g_memdup(ptr, header->vlen);
      |                         ^~~~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from gobex/gobex-header.h:13,
                 from gobex/gobex-header.c:16:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
gobex/gobex-header.c: In function ‘g_obex_header_new_bytes’:
gobex/gobex-header.c:413:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  413 |         header->v.data = g_memdup(data, len);
      |         ^~~~~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       gobex/gobex-transfer.o
  CC       gobex/gobex-apparam.o
  CC       tools/obex-client-tool.o
  CCLD     tools/obex-client-tool
  CC       tools/obex-server-tool.o
  CCLD     tools/obex-server-tool
  CC       tools/bluetooth-player.o
  CCLD     tools/bluetooth-player
  CC       tools/obexctl.o
  CCLD     tools/obexctl
  CC       plugins/bluetoothd-hostname.o
  CC       plugins/bluetoothd-wiimote.o
  CC       plugins/bluetoothd-autopair.o
  CC       plugins/bluetoothd-policy.o
plugins/policy.c: In function ‘policy_init’:
plugins/policy.c:858:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  858 |                 reconnect_intervals = g_memdup(default_intervals,
      |                 ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from plugins/policy.c:20:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
plugins/policy.c:889:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  889 |                 reconnect_intervals = g_memdup(default_intervals,
      |                 ^~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       profiles/audio/bluetoothd-source.o
  CC       profiles/audio/bluetoothd-sink.o
  CC       profiles/audio/bluetoothd-a2dp.o
  CC       profiles/audio/bluetoothd-avdtp.o
  CC       profiles/audio/bluetoothd-media.o
  CC       profiles/audio/bluetoothd-transport.o
  CC       profiles/audio/bluetoothd-control.o
  CC       profiles/audio/bluetoothd-avctp.o
profiles/audio/avctp.c: In function ‘avctp_send_req’:
profiles/audio/avctp.c:1730:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 1730 |         req->operands = g_memdup(operands, operand_count);
      |         ^~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from profiles/audio/avctp.c:29:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
profiles/audio/avctp.c: In function ‘avctp_send_browsing_req’:
profiles/audio/avctp.c:1768:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 1768 |         req->operands = g_memdup(operands, operand_count);
      |         ^~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       profiles/audio/bluetoothd-avrcp.o
profiles/audio/avrcp.c: In function ‘avrcp_handle_get_current_player_value’:
profiles/audio/avrcp.c:1301:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 1301 |         settings = g_memdup(&pdu->params[1], pdu->params[0]);
      |         ^~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from profiles/audio/avrcp.c:30:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
profiles/audio/avrcp.c: In function ‘avrcp_set_browsed_player_rsp’:
profiles/audio/avrcp.c:2804:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 2804 |                 folders[count] = g_memdup(&pdu->params[i], len);
      |                 ^~~~~~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
profiles/audio/avrcp.c: In function ‘avrcp_player_parse_features’:
profiles/audio/avrcp.c:2891:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 2891 |         player->features = g_memdup(features, 16);
      |         ^~~~~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       profiles/audio/bluetoothd-player.o
  CC       profiles/network/bluetoothd-manager.o
  CC       profiles/network/bluetoothd-bnep.o
  CC       profiles/network/bluetoothd-server.o
  CC       profiles/network/bluetoothd-connection.o
  CC       profiles/input/bluetoothd-manager.o
  CC       profiles/input/bluetoothd-server.o
  CC       profiles/input/bluetoothd-device.o
  CC       profiles/input/bluetoothd-hog.o
  CC       profiles/input/bluetoothd-hog-lib.o
profiles/input/hog-lib.c: In function ‘report_read_cb’:
profiles/input/hog-lib.c:532:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  532 |         report->value = g_memdup(pdu, len);
      |         ^~~~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from profiles/input/hog-lib.c:27:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
profiles/input/hog-lib.c: In function ‘hog_attach_hog’:
profiles/input/hog-lib.c:1612:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 1612 |                 hog->primary = g_memdup(primary, sizeof(*primary));
      |                 ^~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
profiles/input/hog-lib.c:1626:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 1626 |         instance->primary = g_memdup(primary, sizeof(*primary));
      |         ^~~~~~~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       profiles/deviceinfo/bluetoothd-dis.o
profiles/deviceinfo/dis.c: In function ‘bt_dis_new_primary’:
profiles/deviceinfo/dis.c:146:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  146 |                 dis->primary = g_memdup(primary, sizeof(*dis->primary));
      |                 ^~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from profiles/deviceinfo/dis.c:17:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       profiles/battery/bluetoothd-bas.o
profiles/battery/bas.c: In function ‘bt_bas_new’:
profiles/battery/bas.c:78:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
   78 |                 bas->primary = g_memdup(primary, sizeof(*bas->primary));
      |                 ^~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from profiles/battery/bas.c:18:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       profiles/scanparam/bluetoothd-scpp.o
profiles/scanparam/scpp.c: In function ‘bt_scpp_new’:
profiles/scanparam/scpp.c:113:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  113 |                 scan->primary = g_memdup(primary, sizeof(*scan->primary));
      |                 ^~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from profiles/scanparam/scpp.c:19:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       profiles/input/bluetoothd-suspend-none.o
  CC       profiles/gap/bluetoothd-gas.o
  CC       profiles/scanparam/bluetoothd-scan.o
  CC       profiles/deviceinfo/bluetoothd-deviceinfo.o
  CC       profiles/battery/bluetoothd-battery.o
profiles/battery/battery.c: In function ‘read_initial_battery_level_cb’:
profiles/battery/battery.c:162:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  162 |         batt->initial_value = g_memdup(value, length);
      |         ^~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from profiles/battery/battery.c:24:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       attrib/bluetoothd-att.o
  CC       attrib/bluetoothd-gatt.o
attrib/gatt.c: In function ‘gatt_discover_char’:
attrib/gatt.c:699:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  699 |         dc->uuid = g_memdup(uuid, sizeof(bt_uuid_t));
      |         ^~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from attrib/gatt.c:19:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
attrib/gatt.c: In function ‘gatt_write_char’:
attrib/gatt.c:967:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  967 |         long_write->value = g_memdup(value, vlen);
      |         ^~~~~~~~~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
attrib/gatt.c: In function ‘gatt_discover_desc’:
attrib/gatt.c:1133:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
 1133 |         dd->uuid = g_memdup(uuid, sizeof(bt_uuid_t));
      |         ^~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       attrib/bluetoothd-gattrib.o
  CC       attrib/bluetoothd-gatt-service.o
  CC       btio/bluetoothd-btio.o
  CC       src/bluetoothd-main.o
  CC       src/bluetoothd-log.o
  CC       src/bluetoothd-backtrace.o
  CC       src/bluetoothd-rfkill.o
  CC       src/bluetoothd-sdpd-server.o
  CC       src/bluetoothd-sdpd-request.o
  CC       src/bluetoothd-sdpd-service.o
  CC       src/bluetoothd-sdpd-database.o
  CC       src/bluetoothd-attrib-server.o
src/attrib-server.c: In function ‘attrib_db_add_new’:
src/attrib-server.c:342:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  342 |         a->data = g_memdup(value, len);
      |         ^
In file included from /usr/include/glib-2.0/glib.h:84,
                 from src/attrib-server.c:21:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       src/bluetoothd-gatt-database.o
  CC       src/bluetoothd-sdp-xml.o
  CC       src/bluetoothd-sdp-client.o
  CC       src/bluetoothd-textfile.o
  CC       src/bluetoothd-uuid-helper.o
  CC       src/bluetoothd-plugin.o
  CC       src/bluetoothd-storage.o
  CC       src/bluetoothd-advertising.o
  CC       src/bluetoothd-agent.o
  CC       src/bluetoothd-error.o
  CC       src/bluetoothd-adapter.o
  CC       src/bluetoothd-profile.o
  CC       src/bluetoothd-service.o
  CC       src/bluetoothd-gatt-client.o
  CC       src/bluetoothd-device.o
  CC       src/bluetoothd-dbus-common.o
  CC       src/bluetoothd-eir.o
src/eir.c: In function ‘eir_parse’:
src/eir.c:326:25: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  326 |                         eir->hash = g_memdup(data, 16);
      |                         ^~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from src/eir.c:22:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
src/eir.c:332:25: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  332 |                         eir->randomizer = g_memdup(data, 16);
      |                         ^~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       src/bluetoothd-adv_monitor.o
  CC       src/bluetoothd-battery.o
  GEN      src/bluetooth.service
  CCLD     src/bluetoothd
  CC       btio/obexd-btio.o
  CC       gobex/obexd-gobex.o
  CC       gobex/obexd-gobex-defs.o
  CC       gobex/obexd-gobex-packet.o
gobex/gobex-packet.c: In function ‘g_obex_packet_set_data’:
gobex/gobex-packet.c:204:17: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  204 |                 pkt->data.buf = g_memdup(data, len);
      |                 ^~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from gobex/gobex-defs.h:13,
                 from gobex/gobex-packet.c:17:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       gobex/obexd-gobex-header.o
gobex/gobex-header.c: In function ‘g_obex_header_decode’:
gobex/gobex-header.c:225:25: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  225 |                         header->v.data = g_memdup(ptr, header->vlen);
      |                         ^~~~~~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from gobex/gobex-header.h:13,
                 from gobex/gobex-header.c:16:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
gobex/gobex-header.c: In function ‘g_obex_header_new_bytes’:
gobex/gobex-header.c:413:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  413 |         header->v.data = g_memdup(data, len);
      |         ^~~~~~
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       gobex/obexd-gobex-transfer.o
  CC       gobex/obexd-gobex-apparam.o
  CC       obexd/plugins/obexd-filesystem.o
  CC       obexd/plugins/obexd-bluetooth.o
  CC       obexd/plugins/obexd-opp.o
  CC       obexd/plugins/obexd-ftp.o
  CC       obexd/plugins/obexd-irmc.o
  CC       obexd/plugins/obexd-pbap.o
  CC       obexd/plugins/obexd-vcard.o
  CC       obexd/plugins/obexd-phonebook-dummy.o
  CC       obexd/plugins/obexd-mas.o
  CC       obexd/plugins/obexd-messages-dummy.o
  CC       obexd/client/obexd-mns.o
  CC       obexd/src/obexd-main.o
  CC       obexd/src/obexd-plugin.o
  CC       obexd/src/obexd-log.o
  CC       obexd/src/obexd-manager.o
  CC       obexd/src/obexd-obex.o
obexd/src/obex.c: In function ‘parse_apparam’:
obexd/src/obex.c:597:9: warning: ‘g_memdup’ is deprecated: Use 'g_memdup2' instead [-Wdeprecated-declarations]
  597 |         os->apparam = g_memdup(apparam, len);
      |         ^~
In file included from /usr/include/glib-2.0/glib.h:84,
                 from obexd/src/obex.c:29:
/usr/include/glib-2.0/glib/gstrfuncs.h:259:23: note: declared here
  259 | gpointer              g_memdup         (gconstpointer mem,
      |                       ^~~~~~~~
  CC       obexd/src/obexd-mimetype.o
  CC       obexd/src/obexd-service.o
  CC       obexd/src/obexd-transport.o
  CC       obexd/src/obexd-server.o
  CC       obexd/client/obexd-manager.o
  CC       obexd/client/obexd-session.o
  CC       obexd/client/obexd-bluetooth.o
  CC       obexd/client/obexd-sync.o
  CC       obexd/client/obexd-pbap.o
  CC       obexd/client/obexd-ftp.o
  CC       obexd/client/obexd-opp.o
  CC       obexd/client/obexd-map.o
  CC       obexd/client/obexd-map-event.o
  CC       obexd/client/obexd-transfer.o
  CC       obexd/client/obexd-transport.o
  CC       obexd/client/obexd-driver.o
  CCLD     obexd/src/obexd
  GEN      src/bluetoothd.8
  GEN      monitor/btmon.1
  GEN      tools/rctest.1
  GEN      tools/l2ping.1
  GEN      tools/btattach.1
  GEN      obexd/src/obex.service

2025-02-20: mmcblk0p2 - bluez - configure

tingo@tipi5-linux:~/work/bluez $ ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to create a pax tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for C/C++ restrict keyword... __restrict__
checking for gcc... (cached) gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking whether gcc accepts -fPIE... yes
checking build system type... aarch64-unknown-linux-gnu
checking host system type... aarch64-unknown-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert aarch64-unknown-linux-gnu file names to aarch64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert aarch64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for file... file
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for explicit_bzero... yes
checking for rawmemchr... yes
checking for signalfd... yes
checking for clock_gettime in -lrt... yes
checking for pthread_create in -lpthread... yes
checking for dlopen in -ldl... yes
checking for linux/types.h... yes
checking for linux/if_alg.h... yes
checking for glib-2.0 >= 2.28... yes
checking for dbus-1 >= 1.6... yes
checking D-Bus configuration directory... /etc
checking D-Bus system bus services dir... /usr/share/dbus-1/system-services
checking D-Bus session bus services dir... /usr/share/dbus-1/services
${prefix}/share/zsh/site-functions
checking for libudev >= 172... yes
checking for udev_hwdb_new in -ludev... yes
checking udev directory... /lib/udev
checking for libical... yes
checking for readline/readline.h... yes
checking systemd system unit dir... /lib/systemd/system
checking systemd user unit dir... /usr/lib/systemd/user
checking for rst2man... rst2man
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/bluetoothd.rst
config.status: creating lib/bluez.pc
config.status: creating mesh/bluetooth-meshd.rst
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands

2025-02-20: mmcblk0p2 - apt - install libical-dev

tingo@tipi5-linux:~/work/bluez $ sudo apt install libical-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  gir1.2-ical-3.0 icu-devtools libdb-dev libdb5.3-dev libical3 libicu-dev
Suggested packages:
  db5.3-doc icu-doc
The following NEW packages will be installed:
  gir1.2-ical-3.0 icu-devtools libdb-dev libdb5.3-dev libical-dev libical3 libicu-dev
0 upgraded, 7 newly installed, 0 to remove and 33 not upgraded.
Need to get 11.9 MB of archives.
After this operation, 60.7 MB of additional disk space will be used.
[..]
Setting up libdb-dev:arm64 (5.3.2) ...
Setting up libical-dev:arm64 (3.0.16-1+b1) ...
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9+rpt2+deb12u9) ...

apt - install libreadline-dev

tingo@tipi5-linux:~/work/bluez $ sudo apt install libreadline-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libncurses-dev
Suggested packages:
  ncurses-doc readline-doc
The following NEW packages will be installed:
  libncurses-dev libreadline-dev
0 upgraded, 2 newly installed, 0 to remove and 33 not upgraded.
Need to get 487 kB of archives.
After this operation, 3,259 kB of additional disk space will be used.
[..]
Setting up libncurses-dev:arm64 (6.4-4) ...
Setting up libreadline-dev:arm64 (8.2-1.3) ...
Processing triggers for man-db (2.11.2-2) ...

2025-02-20: mmcblk0p2 - bluez - configure

tingo@tipi5-linux:~/work/bluez $ ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to create a pax tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for C/C++ restrict keyword... __restrict__
checking for gcc... (cached) gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking whether gcc accepts -fPIE... yes
checking build system type... aarch64-unknown-linux-gnu
checking host system type... aarch64-unknown-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert aarch64-unknown-linux-gnu file names to aarch64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert aarch64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for file... file
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for explicit_bzero... yes
checking for rawmemchr... yes
checking for signalfd... yes
checking for clock_gettime in -lrt... yes
checking for pthread_create in -lpthread... yes
checking for dlopen in -ldl... yes
checking for linux/types.h... yes
checking for linux/if_alg.h... yes
checking for glib-2.0 >= 2.28... yes
checking for dbus-1 >= 1.6... yes
checking D-Bus configuration directory... /etc
checking D-Bus system bus services dir... /usr/share/dbus-1/system-services
checking D-Bus session bus services dir... /usr/share/dbus-1/services
${prefix}/share/zsh/site-functions
checking for libudev >= 172... yes
checking for udev_hwdb_new in -ludev... yes
checking udev directory... /lib/udev
checking for libical... no
configure: error: libical is required

2025-02-20: mmcblk0p2 - bluez - bootstrap

tingo@tipi5-linux:~/work/bluez $ ./bootstrap
configure.ac:21: installing './compile'
configure.ac:33: installing './config.guess'
configure.ac:33: installing './config.sub'
configure.ac:5: installing './install-sh'
configure.ac:5: installing './missing'
Makefile.am: installing './depcomp'
parallel-tests: installing './test-driver'
configure.ac:19: warning: The macro `AC_LANG_C' is obsolete.
configure.ac:19: You should run autoupdate.
./lib/autoconf/c.m4:72: AC_LANG_C is expanded from...
configure.ac:19: the top level
configure.ac:33: warning: The macro `AC_PROG_LIBTOOL' is obsolete.
configure.ac:33: You should run autoupdate.
aclocal.m4:122: AC_PROG_LIBTOOL is expanded from...
configure.ac:33: the top level
configure.ac:45: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:45: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
acinclude.m4:32: MISC_FLAGS is expanded from...
configure.ac:45: the top level
configure.ac:47: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:47: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:47: the top level
configure.ac:86: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:86: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:86: the top level
configure.ac:99: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:99: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:99: the top level
configure.ac:112: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:112: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:112: the top level
configure.ac:125: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:125: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:125: the top level
configure.ac:137: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:137: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:137: the top level
configure.ac:151: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:151: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:151: the top level
configure.ac:155: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:155: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:155: the top level
configure.ac:159: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:159: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:159: the top level
configure.ac:163: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:163: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:163: the top level
configure.ac:167: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:167: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:167: the top level
configure.ac:171: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:171: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:171: the top level
configure.ac:175: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:175: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:175: the top level
configure.ac:179: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:179: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:179: the top level
configure.ac:183: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:183: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:183: the top level
configure.ac:187: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:187: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:187: the top level
configure.ac:191: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:191: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:191: the top level
configure.ac:195: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:195: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:195: the top level
configure.ac:199: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:199: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:199: the top level
configure.ac:212: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:212: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:212: the top level
configure.ac:224: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:224: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:224: the top level
configure.ac:228: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:228: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:228: the top level
configure.ac:239: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:239: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:239: the top level
configure.ac:250: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:250: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:250: the top level
configure.ac:260: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:260: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:260: the top level
configure.ac:264: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:264: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:264: the top level
configure.ac:279: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:279: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:279: the top level
configure.ac:289: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:289: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:289: the top level
configure.ac:294: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:294: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:294: the top level
configure.ac:308: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:308: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:308: the top level
configure.ac:321: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:321: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:321: the top level
configure.ac:326: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:326: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:326: the top level
configure.ac:338: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:338: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:338: the top level
configure.ac:343: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:343: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:343: the top level
configure.ac:348: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:348: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:348: the top level
configure.ac:353: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:353: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:353: the top level
configure.ac:358: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:358: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:358: the top level
configure.ac:363: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:363: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:363: the top level
configure.ac:367: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:367: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:367: the top level
configure.ac:401: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:401: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:401: the top level
configure.ac:423: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:423: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:423: the top level
configure.ac:440: warning: AC_OUTPUT should be used without arguments.
configure.ac:440: You should run autoupdate.

2025-02-20: mmcblk0p2 - apt - install autoconf, automake

tingo@tipi5-linux:~/work/bluez $ sudo apt install autoconf automake
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  autotools-dev m4
Suggested packages:
  autoconf-archive gnu-standards autoconf-doc libtool gettext m4-doc
The following NEW packages will be installed:
  autoconf automake autotools-dev m4
0 upgraded, 4 newly installed, 0 to remove and 33 not upgraded.
Need to get 1,483 kB of archives.
After this operation, 4,831 kB of additional disk space will be used.
[..]
Setting up m4 (1.4.19-3) ...
Setting up autotools-dev (20220109.1) ...
Setting up autoconf (2.71-3) ...
Setting up automake (1:1.16.5-1.3) ...
update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode

apt - install libtool

tingo@tipi5-linux:~/work/bluez $ sudo apt install libtool
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libltdl-dev
Suggested packages:
  libtool-doc gfortran | fortran95-compiler gcj-jdk
The following NEW packages will be installed:
  libltdl-dev libtool
0 upgraded, 2 newly installed, 0 to remove and 33 not upgraded.
Need to get 682 kB of archives.
After this operation, 2,213 kB of additional disk space will be used.
[..]
Setting up libtool (2.4.7-7~deb12u1) ...
Setting up libltdl-dev:arm64 (2.4.7-7~deb12u1) ...
Processing triggers for man-db (2.11.2-2) ...

2025-02-20: mmcblk0p2 - bluez - clone the bluez repository

tingo@tipi5-linux:~/work $ git clone https://git.kernel.org/pub/scm/bluetooth/bluez.git
Cloning into 'bluez'...
remote: Enumerating objects: 141129, done.
remote: Counting objects: 100% (151/151), done.
remote: Compressing objects: 100% (89/89), done.
remote: Total 141129 (delta 104), reused 62 (delta 62), pack-reused 140978
Receiving objects: 100% (141129/141129), 23.92 MiB | 1.92 MiB/s, done.
Resolving deltas: 100% (108682/108682), done.

check out 5.62 into a new branch

tingo@tipi5-linux:~/work/bluez $ git checkout -b work-5.62 5.62
Switched to a new branch 'work-5.62'

2025-02-20: mmcblk0p2 - rust - Bluetooth Mesh Rust fails when compiling examples.

2025-02-09: mmcblk0p2 - rust - ble-mesh is five years old, with no current activity.

2025-02-09: mmcblk0p2 - rust - try the btleplug project. The examples work, but there isn't a mesh example discover

tingo@tipi5-linux:~/personal/projects/2025/rust/btleplug $ target/debug/examples/discover_adapters_peripherals --help
Starting scan on hci0 (usb:v1D6Bp0246d0542)...
Peripheral "DELL-52280-LATI" is connected: false
Connecting to peripheral "DELL-52280-LATI"...
Error connecting to peripheral, skipping: Timeout waiting for reply
Peripheral "(peripheral name unknown)" is connected: false
Connecting to peripheral "(peripheral name unknown)"...
Error connecting to peripheral, skipping: Timeout waiting for reply
Peripheral "(peripheral name unknown)" is connected: false
Connecting to peripheral "(peripheral name unknown)"...
Error connecting to peripheral, skipping: le-connection-abort-by-local
Peripheral "JBL Xtreme 3" is connected: false
Connecting to peripheral "JBL Xtreme 3"...
Error connecting to peripheral, skipping: Timeout waiting for reply
Peripheral "(peripheral name unknown)" is connected: false
Connecting to peripheral "(peripheral name unknown)"...
Error connecting to peripheral, skipping: Timeout waiting for reply
Peripheral "(peripheral name unknown)" is connected: false
Connecting to peripheral "(peripheral name unknown)"...
Error connecting to peripheral, skipping: Timeout waiting for reply
Peripheral "43\" Crystal UHD" is connected: false
Connecting to peripheral "43\" Crystal UHD"...
Error connecting to peripheral, skipping: Timeout waiting for reply
Peripheral "(peripheral name unknown)" is connected: false
Connecting to peripheral "(peripheral name unknown)"...
Error connecting to peripheral, skipping: Timeout waiting for reply
Peripheral "(peripheral name unknown)" is connected: false
Connecting to peripheral "(peripheral name unknown)"...
Error connecting to peripheral, skipping: Timeout waiting for reply
Peripheral "(peripheral name unknown)" is connected: false
Connecting to peripheral "(peripheral name unknown)"...
Error connecting to peripheral, skipping: Timeout waiting for reply
Error: Other(DbusError(D-Bus error: Method "GetAll" with signature "s" on interface "org.freedesktop.DBus.Properties" doesn't exist
 (org.freedesktop.DBus.Error.UnknownObject)))

lights

tingo@tipi5-linux:~/personal/projects/2025/rust/btleplug $ target/debug/examples/lights
thread 'main' panicked at examples/lights.rs:54:44:
No lights found
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

event driven discovery

tingo@tipi5-linux:~/personal/projects/2025/rust/btleplug $ cargo run --example event_driven_discovery
   Compiling btleplug v0.11.7 (/home/tingo/personal/projects/2025/rust/btleplug)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.88s
     Running `target/debug/examples/event_driven_discovery`
CentralState: PoweredOn
DeviceDiscovered: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_B8_B4_09_5F_1A_E1\0") }) Name: 43" Crystal UHD
DeviceDiscovered: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }) Name: JBL Xtreme 3
DeviceDiscovered: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_6B_1A_9D_00_18_ED\0") }) 
DeviceDiscovered: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }) 
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_B8_B4_09_5F_1A_E1\0") }), {117: [66, 4, 1, 32, 103, 36, 13, 0, 2, 1, 43, 1, 1, 0, 1, 4, 127, 0, 0, 0, 0, 0, 0, 28]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_6B_1A_9D_00_18_ED\0") }), {76: [12, 14, 0, 83, 19, 20, 150, 162, 205, 116, 9, 16, 3, 97, 255, 7, 16, 5, 113, 28, 209, 10, 182]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_B8_B4_09_5F_1A_E1\0") }), {117: [2, 24, 52, 161, 152, 98, 170, 89, 89, 58, 79, 99, 255, 131, 53, 100, 110, 11, 6, 158, 73]}
DeviceDiscovered: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }) 
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_B8_B4_09_5F_1A_E1\0") }), {117: [66, 4, 1, 32, 103, 36, 13, 0, 2, 1, 43, 1, 1, 0, 1, 4, 127, 0, 0, 0, 0, 0, 0, 28]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
DeviceDiscovered: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_F8_F9_FF_4B_DC_C1\0") }) 
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
DeviceDiscovered: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_10_2B_41_53_01_2F\0") }) 
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }), {87: [47, 32, 1, 40, 78, 89]}
ServiceDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }), {0000fddf-0000-1000-8000-00805f9b34fb: []}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
DeviceDiscovered: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_CD_9E_BE_1F_F3_71\0") }) 
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_B8_B4_09_5F_1A_E1\0") }), {117: [2, 24, 52, 161, 152, 98, 170, 89, 89, 58, 79, 99, 255, 131, 53, 100, 110, 11, 6, 158, 73]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }), {87: [47, 32, 1, 40, 78, 89]}
ServiceDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }), {0000fddf-0000-1000-8000-00805f9b34fb: []}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }), {87: [47, 32, 1, 40, 78, 89]}
ServiceDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }), {0000fddf-0000-1000-8000-00805f9b34fb: []}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_B8_B4_09_5F_1A_E1\0") }), {117: [66, 4, 1, 1, 103, 184, 180, 9, 95, 26, 225, 186, 180, 9, 95, 26, 224, 1, 0, 0, 0, 0, 0, 0]}
DeviceDiscovered: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_E2_60_B0_58_AC_67\0") }) Name: Stue
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }), {87: [47, 32, 1, 40, 78, 89]}
ServiceDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }), {0000fddf-0000-1000-8000-00805f9b34fb: []}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_CD_9E_BE_1F_F3_71\0") }), {76: [18, 2, 0, 3]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_B8_B4_09_5F_1A_E1\0") }), {117: [2, 24, 52, 161, 152, 98, 170, 89, 89, 58, 79, 99, 255, 131, 53, 100, 110, 11, 6, 158, 73]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_10_2B_41_53_01_2F\0") }), {117: [66, 4, 1, 1, 126, 16, 43, 65, 83, 1, 47, 18, 43, 65, 83, 1, 46, 1, 24, 84, 227, 0, 0, 0]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_B8_B4_09_5F_1A_E1\0") }), {117: [2, 24, 52, 161, 152, 98, 170, 89, 89, 58, 79, 99, 255, 131, 53, 100, 110, 11, 6, 158, 73]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_6B_1A_9D_00_18_ED\0") }), {76: [16, 6, 113, 30, 209, 10, 182, 56]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_CD_9E_BE_1F_F3_71\0") }), {76: [18, 2, 0, 3]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_B8_B4_09_5F_1A_E1\0") }), {117: [66, 4, 1, 1, 103, 184, 180, 9, 95, 26, 225, 186, 180, 9, 95, 26, 224, 1, 0, 0, 0, 0, 0, 0]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_6B_1A_9D_00_18_ED\0") }), {76: [16, 6, 113, 30, 209, 10, 182, 56]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }), {87: [47, 32, 1, 40, 78, 89]}
ServiceDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }), {0000fddf-0000-1000-8000-00805f9b34fb: []}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }), {87: [47, 32, 1, 40, 78, 89]}
ServiceDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }), {0000fddf-0000-1000-8000-00805f9b34fb: []}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_B8_B4_09_5F_1A_E1\0") }), {117: [2, 24, 52, 161, 152, 98, 170, 89, 89, 58, 79, 99, 255, 131, 53, 100, 110, 11, 6, 158, 73]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_B8_B4_09_5F_1A_E1\0") }), {117: [2, 24, 52, 161, 152, 98, 170, 89, 89, 58, 79, 99, 255, 131, 53, 100, 110, 11, 6, 158, 73]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_CD_9E_BE_1F_F3_71\0") }), {76: [18, 2, 0, 3]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_6B_1A_9D_00_18_ED\0") }), {76: [16, 6, 113, 30, 209, 10, 182, 56]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_10_2B_41_53_01_2F\0") }), {117: [66, 4, 1, 1, 126, 16, 43, 65, 83, 1, 47, 18, 43, 65, 83, 1, 46, 1, 24, 84, 227, 0, 0, 0]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_B8_B4_09_5F_1A_E1\0") }), {117: [2, 24, 52, 161, 152, 98, 170, 89, 89, 58, 79, 99, 255, 131, 53, 100, 110, 11, 6, 158, 73]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_F8_F9_FF_4B_DC_C1\0") }), {76: [18, 2, 0, 0]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
DeviceDiscovered: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_E0_6F_59_28_F9_EF\0") }) 
DeviceDiscovered: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_FD_62_32_40_6E_11\0") }) 
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_10_2B_41_53_01_2F\0") }), {117: [66, 4, 1, 1, 126, 16, 43, 65, 83, 1, 47, 18, 43, 65, 83, 1, 46, 1, 24, 84, 227, 0, 0, 0]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_6B_1A_9D_00_18_ED\0") }), {76: [16, 6, 113, 30, 209, 10, 182, 56]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_B8_B4_09_5F_1A_E1\0") }), {117: [66, 4, 1, 1, 103, 184, 180, 9, 95, 26, 225, 186, 180, 9, 95, 26, 224, 1, 0, 0, 0, 0, 0, 0]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_6B_1A_9D_00_18_ED\0") }), {76: [16, 6, 113, 30, 209, 10, 182, 56]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_CD_9E_BE_1F_F3_71\0") }), {76: [18, 2, 0, 3]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_6B_1A_9D_00_18_ED\0") }), {76: [16, 6, 113, 30, 209, 10, 182, 56]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
DeviceDiscovered: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D4_6A_6A_8F_D5_E2\0") }) Name: DELL-52280-LATI
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_B8_B4_09_5F_1A_E1\0") }), {117: [2, 24, 52, 161, 152, 98, 170, 89, 89, 58, 79, 99, 255, 131, 53, 100, 110, 11, 6, 158, 73]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ServiceDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_E2_60_B0_58_AC_67\0") }), {0000fe0f-0000-1000-8000-00805f9b34fb: [102, 16, 255, 255, 2]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_6B_1A_9D_00_18_ED\0") }), {76: [16, 6, 113, 30, 209, 10, 182, 56]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_78_F2_53_96_6D_FA\0") }), {76: [16, 5, 13, 28, 222, 197, 46]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_52_C8_60_E0_0B_3D\0") }), {6: [1, 9, 32, 2, 13, 135, 17, 177, 70, 126, 51, 76, 167, 102, 140, 150, 230, 112, 82, 132, 86, 244, 242, 33, 172, 187, 112]}
ManufacturerDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }), {87: [47, 32, 1, 40, 78, 89]}
ServiceDataAdvertisement: PeripheralId(DeviceId { object_path: Path("/org/bluez/hci0/dev_D8_37_3B_98_02_9E\0") }), {0000fddf-0000-1000-8000-00805f9b34fb: []}

2025-02-09: mmcblk0p2 - rust - try the BluetoothMeshRust project. First checkout the rpository, then update the submodules

tingo@tipi5-linux:~/personal/projects/2025/rust $ git clone https://github.com/AndrewGi/BluetoothMeshRust.git
Cloning into 'BluetoothMeshRust'...
remote: Enumerating objects: 2251, done.
remote: Counting objects: 100% (2/2), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2251 (delta 0), reused 0 (delta 0), pack-reused 2249 (from 1)
Receiving objects: 100% (2251/2251), 1.17 MiB | 642.00 KiB/s, done.
Resolving deltas: 100% (1571/1571), done.

tingo@tipi5-linux:~/personal/projects/2025/rust/BluetoothMeshRust $ git submodule update --init
Submodule 'async_driver' (https://github.com/AndrewGi/async_driver.git) registered for path 'async_driver'
Submodule 'btle' (https://github.com/AndrewGi/btle.git) registered for path 'btle'
Cloning into '/home/tingo/personal/projects/2025/rust/BluetoothMeshRust/async_driver'...
Cloning into '/home/tingo/personal/projects/2025/rust/BluetoothMeshRust/btle'...
Submodule path 'async_driver': checked out '4f26ee7eaf591ca691140c5dfd684b5d32a539a8'
Submodule path 'btle': checked out '9a9aee942c4ad470f7c43cb0afb17ddfa2d822d9'

try to build it

tingo@tipi5-linux:~/personal/projects/2025/rust/BluetoothMeshRust $ cargo build
    Updating crates.io index
     Locking 65 packages to latest compatible versions
      Adding aead v0.3.2 (available: v0.5.2)
      Adding aes v0.6.0 (available: v0.8.4)
      Adding block-modes v0.7.0 (available: v0.9.1)
      Adding cmac v0.5.1 (available: v0.7.2)
      Adding generic-array v0.14.7 (available: v1.2.0)
      Adding rand v0.7.3 (available: v0.9.0)
      Adding subtle v2.4.1 (available: v2.6.1)
  Downloaded aead v0.3.2
  Downloaded block-padding v0.2.1
  Downloaded cipher v0.2.5
  Downloaded opaque-debug v0.3.1
  Downloaded dbl v0.3.2
  Downloaded cc v1.2.13
  Downloaded block-modes v0.7.0
  Downloaded crypto-mac v0.10.1
  Downloaded subtle v2.4.1
  Downloaded rand_core v0.5.1
  Downloaded rand_chacha v0.2.2
  Downloaded getrandom v0.1.16
  Downloaded aes v0.6.0
  Downloaded aes-soft v0.6.4
  Downloaded rand v0.7.3
  Downloaded cmac v0.5.1
  Downloaded tokio v0.3.7
  Downloaded 17 crates (980.9 KB) in 1.43s
   Compiling proc-macro2 v1.0.93
   Compiling typenum v1.17.0
   Compiling version_check v0.9.5
   Compiling libc v0.2.169
   Compiling autocfg v1.4.0
   Compiling unicode-ident v1.0.16
   Compiling generic-array v0.14.7
   Compiling slab v0.4.9
   Compiling cfg-if v1.0.0
   Compiling quote v1.0.38
   Compiling syn v2.0.98
   Compiling getrandom v0.1.16
   Compiling pin-project-lite v0.2.16
   Compiling futures-core v0.3.31
   Compiling futures-task v0.3.31
   Compiling cipher v0.2.5
   Compiling byteorder v1.5.0
   Compiling pin-utils v0.1.0
   Compiling shlex v1.3.0
   Compiling futures-util v0.3.31
   Compiling cc v1.2.13
   Compiling tokio v0.3.7
   Compiling rand_core v0.5.1
   Compiling num_cpus v1.16.0
   Compiling serde v1.0.217
   Compiling subtle v2.4.1
   Compiling opaque-debug v0.3.1
   Compiling aes-soft v0.6.4
   Compiling crypto-mac v0.10.1
   Compiling ring v0.17.8
   Compiling futures-executor v0.3.31
   Compiling dbl v0.3.2
   Compiling getrandom v0.2.15
   Compiling zerocopy-derive v0.7.35
   Compiling serde_derive v1.0.217
   Compiling untrusted v0.9.0
   Compiling spin v0.9.8
   Compiling futures-sink v0.3.31
   Compiling futures-io v0.3.31
   Compiling zerocopy v0.7.35
   Compiling block-padding v0.2.1
   Compiling block-modes v0.7.0
   Compiling driver_async v0.0.3 (/home/tingo/personal/projects/2025/rust/BluetoothMeshRust/async_driver)
warning: struct `ConversionError` is never constructed
 --> async_driver/src/lib.rs:8:8
  |
8 | struct ConversionError(pub ());
  |        ^^^^^^^^^^^^^^^
  |
  = note: `#[warn(dead_code)]` on by default

warning: `driver_async` (lib) generated 1 warning
   Compiling cmac v0.5.1
   Compiling btle v0.1.4 (/home/tingo/personal/projects/2025/rust/BluetoothMeshRust/btle)
warning: unexpected `cfg` condition value: `bluez_dbus`
  --> btle/src/lib.rs:35:7
   |
35 | #[cfg(feature = "bluez_dbus")]
   |       ^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: expected values for `feature` are: `bluez_socket`, `classic`, `default`, `hci`, `hci_usb`, `libc`, `nix`, `remote`, `serde`, `serde-1`, `std`, `tokio`, `usbw`, `winrt`, `winrt_bluetooth_bindings`, and `winrt_drivers`
   = help: consider adding `bluez_dbus` as a feature in `Cargo.toml`
   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
   = note: `#[warn(unexpected_cfgs)]` on by default

   Compiling ppv-lite86 v0.2.20
   Compiling rand_chacha v0.2.2
   Compiling rand v0.7.3
   Compiling aes v0.6.0
   Compiling aead v0.3.2
warning: `btle` (lib) generated 1 warning
   Compiling bluetooth_mesh v0.1.4 (/home/tingo/personal/projects/2025/rust/BluetoothMeshRust)
warning: elided lifetime has a name
   --> src/net.rs:574:10
    |
569 | impl<'a> PrivateHeader<'a> {
    |      -- lifetime `'a` declared here
...
574 |     ) -> PrivateHeader {
    |          ^^^^^^^^^^^^^ this elided lifetime gets resolved as `'a`
    |
    = note: `#[warn(elided_named_lifetimes)]` on by default

error[E0277]: expected a `FnOnce(&[u8])` closure, found `ecdh::Error`
   --> src/crypto/ecdh.rs:66:13
    |
63  |         ring::agreement::agree_ephemeral(
    |         -------------------------------- required by a bound introduced by this call
...
66  |             Error::EarlyPublicKeyAgreementKey,
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected an `FnOnce(&[u8])` closure, found `ecdh::Error`
    |
    = help: the trait `for<'a> FnOnce(&'a [u8])` is not implemented for `ecdh::Error`
note: required by a bound in `agree_ephemeral`
   --> /home/tingo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ring-0.17.8/src/agreement.rs:248:15
    |
245 | pub fn agree_ephemeral<B: AsRef<[u8]>, R>(
    |        --------------- required by a bound in this function
...
248 |     kdf: impl FnOnce(&[u8]) -> R,
    |               ^^^^^^^^^^^^^^^^^^ required by this bound in `agree_ephemeral`

error[E0061]: this function takes 3 arguments but 4 arguments were supplied
   --> src/crypto/ecdh.rs:63:9
    |
63  |         ring::agreement::agree_ephemeral(
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
67  |             |b| Ok(kdf(b)),
    |             -------------- unexpected argument #4 of type `{closure@src/crypto/ecdh.rs:67:13: 67:16}`
    |
note: function defined here
   --> /home/tingo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ring-0.17.8/src/agreement.rs:245:8
    |
245 | pub fn agree_ephemeral<B: AsRef<[u8]>, R>(
    |        ^^^^^^^^^^^^^^^
help: remove the extra argument
    |
66  -             Error::EarlyPublicKeyAgreementKey,
67  -             |b| Ok(kdf(b)),
66  +             Error::EarlyPublicKeyAgreementKey,
    |

error[E0308]: mismatched types
  --> src/crypto/ecdh.rs:63:9
   |
57 |       ) -> Result<D, Error> {
   |            ---------------- expected `Result<D, ecdh::Error>` because of return type
...
63 | /         ring::agreement::agree_ephemeral(
64 | |             self.key,
65 | |             &ring::agreement::UnparsedPublicKey::new(&ring::agreement::ECDH_P256, p_key.as_ref()),
66 | |             Error::EarlyPublicKeyAgreementKey,
67 | |             |b| Ok(kdf(b)),
68 | |         )
   | |_________^ expected `Result<D, Error>`, found `Result<_, Unspecified>`
   |
   = note: expected enum `Result<D, ecdh::Error>`
              found enum `Result<_, Unspecified>`
help: use the `?` operator to extract the `Result<_, Unspecified>` value, propagating a `Result::Err` value to the caller
   |
68 |         )?
   |          +

Some errors have detailed explanations: E0061, E0277, E0308.
For more information about an error, try `rustc --explain E0061`.
warning: `bluetooth_mesh` (lib) generated 1 warning
error: could not compile `bluetooth_mesh` (lib) due to 3 previous errors; 1 warning emitted

2025-02-09: mmcblk0p2 - rust - BlueR - try to build the mesh examples - provisioner

tingo@tipi5-linux:~/personal/projects/2025/rust/bluer/bluer $ cargo build --features="mesh" --example mesh_provisioner
   Compiling bluer v0.17.3 (/home/tingo/personal/projects/2025/rust/bluer/bluer)
error[E0433]: failed to resolve: use of undeclared crate or module `btmesh_models`
  --> bluer/examples/mesh_provisioner.rs:20:5
   |
20 | use btmesh_models::{
   |     ^^^^^^^^^^^^^ use of undeclared crate or module `btmesh_models`

error[E0432]: unresolved imports `bluer::mesh::provisioner::ProvisionerControlHandle`, `bluer::mesh::provisioner::ProvisionerEvent`
  --> bluer/examples/mesh_provisioner.rs:16:36
   |
16 |         provisioner::{Provisioner, ProvisionerControlHandle, ProvisionerEvent},
   |                                    ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
   |                                    |                         |
   |                                    |                         no `ProvisionerEvent` in `mesh::provisioner`
   |                                    |                         help: a similar name exists in the module: `Provisioner`
   |                                    no `ProvisionerControlHandle` in `mesh::provisioner`

error[E0432]: unresolved import `btmesh_models`
  --> bluer/examples/mesh_provisioner.rs:20:5
   |
20 | use btmesh_models::{
   |     ^^^^^^^^^^^^^ use of undeclared crate or module `btmesh_models`

error[E0061]: this function takes 0 arguments but 1 argument was supplied
   --> bluer/examples/mesh_provisioner.rs:50:45
    |
50  |     let (element_control, element_handle) = element_control(5);
    |                                             ^^^^^^^^^^^^^^^ - unexpected argument of type `{integer}`
    |
note: function defined here
   --> /home/tingo/personal/projects/2025/rust/bluer/bluer/src/mesh/element.rs:346:8
    |
346 | pub fn element_control() -> (ElementControl, ElementControlHandle) {
    |        ^^^^^^^^^^^^^^^
help: remove the extra argument
    |
50  -     let (element_control, element_handle) = element_control(5);
50  +     let (element_control, element_handle) = element_control();
    |

error[E0063]: missing fields `_non_exhaustive` and `vendor_models` in initializer of `bluer::mesh::element::Element`
  --> bluer/examples/mesh_provisioner.rs:57:24
   |
57 |         elements: vec![Element {
   |                        ^^^^^^^ missing `_non_exhaustive` and `vendor_models`

error[E0560]: struct `Provisioner` has no field named `control_handle`
  --> bluer/examples/mesh_provisioner.rs:63:13
   |
63 |             control_handle: ProvisionerControlHandle { messages_tx: prov_tx },
   |             ^^^^^^^^^^^^^^ `Provisioner` does not have this field
   |
   = note: available fields are: `net_index`

error[E0560]: struct `bluer::mesh::application::Application` has no field named `events_tx`
  --> bluer/examples/mesh_provisioner.rs:66:9
   |
66 |         events_tx: app_tx,
   |         ^^^^^^^^^ `bluer::mesh::application::Application` does not have this field
   |
   = note: all struct fields are already assigned

error[E0624]: method `application` is private
  --> bluer/examples/mesh_provisioner.rs:71:27
   |
71 |     let registered = mesh.application(sim.clone()).await?;
   |                           ^^^^^^^^^^^ private method
   |
  ::: /home/tingo/personal/projects/2025/rust/bluer/bluer/src/mesh/network.rs:40:5
   |
40 |     async fn application(&self, app: Application) -> Result<ApplicationHandle> {
   |     -------------------------------------------------------------------------- private method defined here

error[E0599]: no method named `clone` found for struct `bluer::mesh::application::Application` in the current scope
  --> bluer/examples/mesh_provisioner.rs:71:43
   |
71 |     let registered = mesh.application(sim.clone()).await?;
   |                                           ^^^^^ method not found in `Application`

error[E0599]: no method named `clone` found for struct `bluer::mesh::application::Application` in the current scope
  --> bluer/examples/mesh_provisioner.rs:72:32
   |
72 |     let node = mesh.attach(sim.clone(), &args.token).await?;
   |                                ^^^^^ method not found in `Application`

error[E0308]: mismatched types
  --> bluer/examples/mesh_provisioner.rs:72:41
   |
72 |     let node = mesh.attach(sim.clone(), &args.token).await?;
   |                     ------              ^^^^^^^^^^^ expected `u64`, found `&String`
   |                     |
   |                     arguments to this method are incorrect
   |
note: method defined here
  --> /home/tingo/personal/projects/2025/rust/bluer/bluer/src/mesh/network.rs:90:18
   |
90 |     pub async fn attach(&self, app: Application, token: u64) -> Result<Node> {
   |                  ^^^^^^

error[E0615]: attempted to take value of method `management` on type `Node`
  --> bluer/examples/mesh_provisioner.rs:74:10
   |
74 |     node.management.add_node(Uuid::parse_str(&args.uuid)?).await?;
   |          ^^^^^^^^^^ method, not a field
   |
help: use parentheses to call the method
   |
74 |     node.management().add_node(Uuid::parse_str(&args.uuid)?).await?;
   |                    ++

error[E0308]: mismatched types
   --> bluer/examples/mesh_provisioner.rs:90:50
    |
90  | ...                   node.add_app_key(0, unicast, 0, 0, false).await?;
    |                            ----------- ^ expected `&ElementRef`, found integer
    |                            |
    |                            arguments to this method are incorrect
    |
note: method defined here
   --> /home/tingo/personal/projects/2025/rust/bluer/bluer/src/mesh/node.rs:110:18
    |
110 |     pub async fn add_app_key(
    |                  ^^^^^^^^^^^

error[E0609]: no field `opcode` on type `ReceivedDevKeyMessage`
   --> bluer/examples/mesh_provisioner.rs:124:76
    |
124 | ...                   match ConfigurationServer::parse(&received.opcode, &received.parameters).map_err(|_| std::fmt::Error)? {
    |                                                                  ^^^^^^ unknown field
    |
    = note: available fields are: `source`, `remote`, `net_index`, `data`

error[E0609]: no field `parameters` on type `ReceivedDevKeyMessage`
   --> bluer/examples/mesh_provisioner.rs:124:94
    |
124 | ...                   match ConfigurationServer::parse(&received.opcode, &received.parameters).map_err(|_| std::fmt::Error)? {
    |                                                                                    ^^^^^^^^^^ unknown field
    |
    = note: available fields are: `source`, `remote`, `net_index`, `data`

error[E0308]: mismatched types
  --> bluer/examples/mesh_provisioner.rs:60:29
   |
60 |             control_handle: Some(element_handle),
   |                             ^^^^^^^^^^^^^^^^^^^^ expected `ElementControlHandle`, found `Option<ElementControlHandle>`
   |
   = note: expected struct `ElementControlHandle`
                found enum `Option<ElementControlHandle>`

Some errors have detailed explanations: E0061, E0063, E0308, E0432, E0433, E0560, E0599, E0609, E0615...
For more information about an error, try `rustc --explain E0061`.
error: could not compile `bluer` (example "mesh_provisioner") due to 16 previous errors

mesh_sensor_server

tingo@tipi5-linux:~/personal/projects/2025/rust/bluer/bluer $ cargo build --features="mesh" --example mesh_sensor_server
   Compiling bluer v0.17.3 (/home/tingo/personal/projects/2025/rust/bluer/bluer)
error[E0433]: failed to resolve: use of undeclared crate or module `btmesh_common`
  --> bluer/examples/mesh_sensor_server.rs:17:5
   |
17 | use btmesh_common::{opcode::Opcode, CompanyIdentifier, InsufficientBuffer, ModelIdentifier, ParseError};
   |     ^^^^^^^^^^^^^ use of undeclared crate or module `btmesh_common`

error[E0432]: unresolved import `bluer::mesh::application::ApplicationMessage`
  --> bluer/examples/mesh_sensor_server.rs:13:32
   |
13 |     application::{Application, ApplicationMessage},
   |                                ^^^^^^^^^^^^^^^^^^
   |                                |
   |                                no `ApplicationMessage` in `mesh::application`
   |                                help: a similar name exists in the module: `ApplicationHandle`

error[E0433]: failed to resolve: use of undeclared crate or module `btmesh_models`
  --> bluer/examples/mesh_sensor_server.rs:18:5
   |
18 | use btmesh_models::{
   |     ^^^^^^^^^^^^^ use of undeclared crate or module `btmesh_models`

error[E0432]: unresolved import `btmesh_common`
  --> bluer/examples/mesh_sensor_server.rs:17:5
   |
17 | use btmesh_common::{opcode::Opcode, CompanyIdentifier, InsufficientBuffer, ModelIdentifier, ParseError};
   |     ^^^^^^^^^^^^^ use of undeclared crate or module `btmesh_common`

error[E0432]: unresolved import `btmesh_models`
  --> bluer/examples/mesh_sensor_server.rs:18:5
   |
18 | use btmesh_models::{
   |     ^^^^^^^^^^^^^ use of undeclared crate or module `btmesh_models`

error[E0404]: expected trait, found struct `Model`
   --> bluer/examples/mesh_sensor_server.rs:191:6
    |
191 | impl Model for VendorModel {
    |      ^^^^^ not a trait

warning: unexpected `cfg` condition value: `defmt`
   --> bluer/examples/mesh_sensor_server.rs:201:12
    |
201 | #[cfg_attr(feature = "defmt", derive(defmt::Format))]
    |            ^^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `bluetoothd`, `custom_debug`, `dbus`, `dbus-crossroads`, `dbus-tokio`, `default`, `displaydoc`, `full`, `id`, `l2cap`, `lazy_static`, `mesh`, `pin-project`, `rfcomm`, `serde`, and `tokio-stream`
    = help: consider adding `defmt` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
    = note: `#[warn(unexpected_cfgs)]` on by default

error[E0433]: failed to resolve: use of undeclared crate or module `heapless`
   --> bluer/examples/mesh_sensor_server.rs:175:42
    |
175 |         &self, _: PropertyId, xmit: &mut heapless::Vec<u8, N>,
    |                                          ^^^^^^^^ use of undeclared crate or module `heapless`

error[E0433]: failed to resolve: use of undeclared crate or module `heapless`
   --> bluer/examples/mesh_sensor_server.rs:210:28
    |
210 |         &self, _xmit: &mut heapless::Vec<u8, N>,
    |                            ^^^^^^^^ use of undeclared crate or module `heapless`

Some errors have detailed explanations: E0404, E0432, E0433.
For more information about an error, try `rustc --explain E0404`.
warning: `bluer` (example "mesh_sensor_server") generated 1 warning
error: could not compile `bluer` (example "mesh_sensor_server") due to 8 previous errors; 1 warning emitted

2025-02-06: mmcblk0p2 - apt - install bluez-meshd

tingo@tipi5-linux:~ $ sudo apt install bluez-meshd
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libell0
The following NEW packages will be installed:
  bluez-meshd libell0
0 upgraded, 2 newly installed, 0 to remove and 16 not upgraded.
Need to get 552 kB of archives.
After this operation, 1,549 kB of additional disk space will be used.
[..]
Setting up bluez-meshd (5.66-1+rpt1+deb12u2) ...
Processing triggers for libc-bin (2.36-9+rpt2+deb12u9) ...
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for dbus (1.14.10-1~deb12u1) ...

2025-02-06: mmcblk0p2 - rust - add target

tingo@tipi5-linux:~ $ rustup target add thumbv7em-none-eabihf
info: downloading component 'rust-std' for 'thumbv7em-none-eabihf'
info: installing component 'rust-std' for 'thumbv7em-none-eabihf'

2025-02-06: mmcblk0p2 - rust - install probe-rs

tingo@tipi5-linux:~ $ cargo install probe-rs-tools --locked
    Updating crates.io index
[..]
    Finished `release` profile [optimized] target(s) in 10m 01s
  Installing /home/tingo/.cargo/bin/cargo-embed
  Installing /home/tingo/.cargo/bin/cargo-flash
  Installing /home/tingo/.cargo/bin/probe-rs
   Installed package `probe-rs-tools v0.26.0` (executables `cargo-embed`, `cargo-flash`, `probe-rs`)

mesh_sensor_client

tingo@tipi5-linux:~/personal/projects/2025/rust/bluer/bluer $ cargo build --features="mesh" --example mesh_sensor_client
   Compiling bluer v0.17.3 (/home/tingo/personal/projects/2025/rust/bluer/bluer)
error[E0433]: failed to resolve: use of undeclared crate or module `btmesh_common`
  --> bluer/examples/mesh_sensor_client.rs:16:5
   |
16 | use btmesh_common::{opcode::Opcode, CompanyIdentifier, InsufficientBuffer, ModelIdentifier, ParseError};
   |     ^^^^^^^^^^^^^ use of undeclared crate or module `btmesh_common`

error[E0432]: unresolved import `bluer::mesh::application::ApplicationMessage`
  --> bluer/examples/mesh_sensor_client.rs:13:32
   |
13 |     application::{Application, ApplicationMessage},
   |                                ^^^^^^^^^^^^^^^^^^
   |                                |
   |                                no `ApplicationMessage` in `mesh::application`
   |                                help: a similar name exists in the module: `ApplicationHandle`

error[E0433]: failed to resolve: use of undeclared crate or module `btmesh_models`
  --> bluer/examples/mesh_sensor_client.rs:17:5
   |
17 | use btmesh_models::{
   |     ^^^^^^^^^^^^^ use of undeclared crate or module `btmesh_models`

error[E0432]: unresolved import `btmesh_common`
  --> bluer/examples/mesh_sensor_client.rs:16:5
   |
16 | use btmesh_common::{opcode::Opcode, CompanyIdentifier, InsufficientBuffer, ModelIdentifier, ParseError};
   |     ^^^^^^^^^^^^^ use of undeclared crate or module `btmesh_common`

error[E0432]: unresolved import `btmesh_models`
  --> bluer/examples/mesh_sensor_client.rs:17:5
   |
17 | use btmesh_models::{
   |     ^^^^^^^^^^^^^ use of undeclared crate or module `btmesh_models`

error[E0404]: expected trait, found struct `Model`
   --> bluer/examples/mesh_sensor_client.rs:170:6
    |
170 | impl Model for VendorModel {
    |      ^^^^^ not a trait

warning: unexpected `cfg` condition value: `defmt`
   --> bluer/examples/mesh_sensor_client.rs:180:12
    |
180 | #[cfg_attr(feature = "defmt", derive(defmt::Format))]
    |            ^^^^^^^^^^^^^^^^^
    |
    = note: expected values for `feature` are: `bluetoothd`, `custom_debug`, `dbus`, `dbus-crossroads`, `dbus-tokio`, `default`, `displaydoc`, `full`, `id`, `l2cap`, `lazy_static`, `mesh`, `pin-project`, `rfcomm`, `serde`, and `tokio-stream`
    = help: consider adding `defmt` as a feature in `Cargo.toml`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
    = note: `#[warn(unexpected_cfgs)]` on by default

error[E0433]: failed to resolve: use of undeclared crate or module `heapless`
   --> bluer/examples/mesh_sensor_client.rs:157:42
    |
157 |         &self, _: PropertyId, xmit: &mut heapless::Vec<u8, N>,
    |                                          ^^^^^^^^ use of undeclared crate or module `heapless`

error[E0433]: failed to resolve: use of undeclared crate or module `heapless`
   --> bluer/examples/mesh_sensor_client.rs:189:28
    |
189 |         &self, _xmit: &mut heapless::Vec<u8, N>,
    |                            ^^^^^^^^ use of undeclared crate or module `heapless`

Some errors have detailed explanations: E0404, E0432, E0433.
For more information about an error, try `rustc --explain E0404`.
warning: `bluer` (example "mesh_sensor_client") generated 1 warning
error: could not compile `bluer` (example "mesh_sensor_client") due to 8 previous errors; 1 warning emitted

2025-02-06: mmcblk0p2 - rust - check version

tingo@tipi5-linux:~ $ rustup check
stable-aarch64-unknown-linux-gnu - Up to date : 1.84.1 (e71f9a9a9 2025-01-27)
rustup - Up to date : 1.27.1

2025-02-06: mmcblk0p2 - install Rust, via

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

the install

Welcome to Rust!

This will download and install the official compiler for the Rust
programming language, and its package manager, Cargo.

Rustup metadata and toolchains will be installed into the Rustup
home directory, located at:

  /home/tingo/.rustup

This can be modified with the RUSTUP_HOME environment variable.

The Cargo home directory is located at:

  /home/tingo/.cargo

This can be modified with the CARGO_HOME environment variable.

The cargo, rustc, rustup and other commands will be added to
Cargo's bin directory, located at:

  /home/tingo/.cargo/bin

This path will then be added to your PATH environment variable by
modifying the profile files located at:

  /home/tingo/.profile
  /home/tingo/.bashrc

You can uninstall at any time with rustup self uninstall and
these changes will be reverted.

Current installation options:


   default host triple: aarch64-unknown-linux-gnu
     default toolchain: stable (default)
               profile: default
  modify PATH variable: yes

1) Proceed with standard installation (default - just press enter)
2) Customize installation
3) Cancel installation
>1
[..]
  stable-aarch64-unknown-linux-gnu updated - rustc 1.84.1 (e71f9a9a9 2025-01-27) (from rustc 1.83.0 (90b35a623 2024-11-26))


Rust is installed now. Great!

To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).

To configure your current shell, you need to source
the corresponding env file under $HOME/.cargo.

This is usually done by running one of the following (note the leading DOT):
. "$HOME/.cargo/env"            # For sh/bash/zsh/ash/dash/pdksh
source "$HOME/.cargo/env.fish"  # For fish

2025-02-06: mmcblk0p2 - add Expose key ( + Space) via

mousepad .config/wayfire.ini

and adding the following lines

[expo]
toggle=<super> KEY_SPACE

the I can use Win + Space to Expose all 9 workspaces.

2025-02-06: mmcblk0p2 - Bitraf build night, I set up the Pi 5 with the XtendTouch monitor, using the included mini HDMI cable.

2025-02-02: mmcblk0p2 - reboot, Debian 12.9 is in

tingo@tipi5-linux:~ $ cat /etc/debian_version 
12.9

and a new kernel

tingo@tipi5-linux:~ $ uname -a
Linux tipi5-linux 6.6.74+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.74-1+rpt1 (2025-01-27) aarch64 GNU/Linux

2025-02-02: mmcblk0p2 - apt - upgrade

tingo@tipi5-linux:~ $ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following package was automatically installed and is no longer required:
  libcamera0.3
Use 'sudo apt autoremove' to remove it.
The following NEW packages will be installed:
  libcamera0.4 linux-headers-6.6.74+rpt-common-rpi linux-headers-6.6.74+rpt-rpi-2712 linux-headers-6.6.74+rpt-rpi-v8 linux-image-6.6.74+rpt-rpi-2712
  linux-image-6.6.74+rpt-rpi-v8 linux-kbuild-6.6.74+rpt
The following packages will be upgraded:
  avahi-daemon avahi-utils base-files dnsmasq-base firefox git git-man gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-x
  initramfs-tools initramfs-tools-core labwc libavahi-client3 libavahi-common-data libavahi-common3 libavahi-core7 libavahi-glib1 libcamera-ipa libcamera-tools libebml5
  libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 libkpathsea6 libliftoff0 libnfsidmap1 libopenjp2-7 libpam-systemd libpipewire-0.3-0 libpipewire-0.3-common
  libpipewire-0.3-modules libpisp-common libpisp1 libpython3.11 libpython3.11-dev libpython3.11-minimal libpython3.11-stdlib libsoup2.4-1 libsoup2.4-common
  libspa-0.2-bluetooth libspa-0.2-libcamera libspa-0.2-modules libsrt1.5-gnutls libsynctex2 libsystemd-shared libsystemd0 libtiff6 libudev-dev libudev1 libwlroots-0.18
  linux-headers-rpi-2712 linux-headers-rpi-v8 linux-image-rpi-2712 linux-image-rpi-v8 linux-libc-dev nfs-common openssh-client openssh-server openssh-sftp-server
  pipewire pipewire-bin pipewire-libcamera pipewire-pulse python3-av python3-jinja2 python3-libcamera python3-picamera2 python3-pidng python3-pkg-resources
  python3-setuptools python3-setuptools-whl python3-urllib3 python3-werkzeug python3.11 python3.11-dev python3.11-minimal python3.11-venv raspi-config realvnc-vnc-server
  rpi-connect rpi-eeprom rpicam-apps rsync ssh systemd systemd-sysv systemd-timesyncd ucf udev
90 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 239 MB of archives.
After this operation, 144 MB of additional disk space will be used.
[..]
Processing triggers for initramfs-tools (0.142+rpt3+deb12u1) ...
update-initramfs: Generating /boot/initrd.img-6.6.74+rpt-rpi-v8
'/boot/initrd.img-6.6.74+rpt-rpi-v8' -> '/boot/firmware/initramfs8'
update-initramfs: Generating /boot/initrd.img-6.6.74+rpt-rpi-2712
'/boot/initrd.img-6.6.74+rpt-rpi-2712' -> '/boot/firmware/initramfs_2712'
update-initramfs: Generating /boot/initrd.img-6.6.62+rpt-rpi-v8
update-initramfs: Generating /boot/initrd.img-6.6.62+rpt-rpi-2712
update-initramfs: Generating /boot/initrd.img-6.6.51+rpt-rpi-v8
update-initramfs: Generating /boot/initrd.img-6.6.51+rpt-rpi-2712

apt - autoremove

tingo@tipi5-linux:~ $ sudo apt autoremove
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  libcamera0.3 linux-headers-6.6.51+rpt-common-rpi linux-headers-6.6.51+rpt-rpi-2712 linux-headers-6.6.51+rpt-rpi-v8 linux-image-6.6.51+rpt-rpi-2712
  linux-image-6.6.51+rpt-rpi-v8 linux-kbuild-6.6.51+rpt
0 upgraded, 0 newly installed, 7 to remove and 0 not upgraded.
After this operation, 124 MB disk space will be freed.
[..]
Removing libcamera0.3:arm64 (0.3.2+rpt20241119-1) ...
Removing linux-headers-6.6.51+rpt-rpi-2712 (1:6.6.51-1+rpt3) ...
Removing linux-headers-6.6.51+rpt-rpi-v8 (1:6.6.51-1+rpt3) ...
Removing linux-headers-6.6.51+rpt-common-rpi (1:6.6.51-1+rpt3) ...
Removing linux-image-6.6.51+rpt-rpi-2712 (1:6.6.51-1+rpt3) ...
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Deleting /boot/initrd.img-6.6.51+rpt-rpi-2712
Removing linux-image-6.6.51+rpt-rpi-v8 (1:6.6.51-1+rpt3) ...
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Deleting /boot/initrd.img-6.6.51+rpt-rpi-v8
Removing linux-kbuild-6.6.51+rpt (1:6.6.51-1+rpt3) ...
Processing triggers for libc-bin (2.36-9+rpt2+deb12u9) ...

2025-01-14: mmcblk0p2 - build 8086tiny, then test it:

tingo@tipi5-linux:~/personal/projects/8086tiny $ ./runme 
FreeDOS kernel - SVN (build 2040 OEM:0xfd) [compiled Apr  7 2012]
Kernel compatibility 7.10 - WATCOMC - FAT32 support

(C) Copyright 1995-2011 Pasquale J. Villani and The FreeDOS Project.
All Rights Reserved. This is free software and comes with ABSOLUTELY NO
WARRANTY; you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation;
either version 2, or (at your option) any later version.
 - InitDiskno hard disks detected

FreeCom version 0.82 pl 3 XMS_Swap [Dec 10 2003 06:49:21]


 type HELP to get support on commands and navigation

A:\>ver

FreeCom version 0.82 pl 3 XMS_Swap [Dec 10 2003 06:49:21]

A:\>quitemu
tingo@tipi5-linux:~/personal/projects/8086tiny $ 

very nice.

2025-01-13: mmcblk0p2 - apt - install libsdl2-dev

tingo@tipi5-linux:~/personal/projects/2024/rust/webcam/scanner $ sudo apt install libsdl2-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  bsdextrautils bsdutils eject fdisk gir1.2-ibus-1.0 libasound2-dev libblkid-dev libblkid1 libdbus-1-dev libdecor-0-dev libdrm-dev libdrm-etnaviv1
  libdrm-freedreno1 libdrm-tegra0 libfdisk1 libffi-dev libgbm-dev libglib2.0-0 libglib2.0-bin libglib2.0-data libglib2.0-dev libglib2.0-dev-bin
  libibus-1.0-5 libibus-1.0-dev libmount-dev libmount1 libpciaccess-dev libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpulse-dev libpulse-mainloop-glib0
  libsamplerate0-dev libselinux1-dev libsepol-dev libsmartcols1 libsndio-dev libuuid1 libwayland-bin libwayland-dev libxcursor-dev libxfixes-dev
  libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev libxrender-dev libxss-dev libxv-dev libxxf86vm-dev mount rfkill util-linux util-linux-extra
  uuid-dev
Suggested packages:
  libasound2-doc low-memory-monitor libgirepository1.0-dev libglib2.0-doc libxml2-utils cryptsetup-bin libwayland-doc util-linux-locales
Recommended packages:
  uuid-runtime
The following NEW packages will be installed:
  gir1.2-ibus-1.0 libasound2-dev libblkid-dev libdbus-1-dev libdecor-0-dev libdrm-dev libdrm-etnaviv1 libdrm-freedreno1 libdrm-tegra0 libffi-dev
  libgbm-dev libglib2.0-dev libglib2.0-dev-bin libibus-1.0-5 libibus-1.0-dev libmount-dev libpciaccess-dev libpcre2-32-0 libpcre2-dev libpcre2-posix3
  libpulse-dev libpulse-mainloop-glib0 libsamplerate0-dev libsdl2-dev libselinux1-dev libsepol-dev libsndio-dev libwayland-bin libwayland-dev
  libxcursor-dev libxfixes-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev libxrender-dev libxss-dev libxv-dev libxxf86vm-dev uuid-dev
The following packages will be upgraded:
  bsdextrautils bsdutils eject fdisk libblkid1 libfdisk1 libglib2.0-0 libglib2.0-bin libglib2.0-data libmount1 libsmartcols1 libuuid1 mount rfkill
  util-linux util-linux-extra
16 upgraded, 40 newly installed, 0 to remove and 60 not upgraded.
Need to get 12.6 MB of archives.
After this operation, 37.3 MB of additional disk space will be used.
[..]
Setting up libsdl2-dev:arm64 (2.26.5+dfsg-1) ...

apt - install libsdl1.2-dev

tingo@tipi5-linux:~/personal/projects/8086tiny $ sudo apt install libsdl1.2-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libcaca-dev libpng-dev libpng-tools libslang2-dev
The following NEW packages will be installed:
  libcaca-dev libpng-dev libpng-tools libsdl1.2-dev libslang2-dev
0 upgraded, 5 newly installed, 0 to remove and 60 not upgraded.
Need to get 2,606 kB of archives.
After this operation, 10.4 MB of additional disk space will be used.
[..]
Setting up libsdl1.2-dev (1.2.15+dfsg2-8) ...
Processing triggers for man-db (2.11.2-2) ...

2024-12-28: mmcblk0p2 - rust- get source for mxw fork

tingo@tipi5-linux:~/personal/projects/2024/rust/mice $ git clone https://github.com/dxbednarczyk/mxw.git
Cloning into 'mxw'...
remote: Enumerating objects: 489, done.
remote: Counting objects: 100% (160/160), done.
remote: Compressing objects: 100% (85/85), done.
remote: Total 489 (delta 90), reused 121 (delta 70), pack-reused 329 (from 1)
Receiving objects: 100% (489/489), 123.54 KiB | 1.21 MiB/s, done.
Resolving deltas: 100% (277/277), done.

build it

tingo@tipi5-linux:~/personal/projects/2024/rust/mice/mxw $ cargo build
   Compiling hidapi v2.6.1
   Compiling rustversion v1.0.17
   Compiling clap_derive v4.5.4
   Compiling lazy_static v1.4.0
   Compiling cfg-if v1.0.0
   Compiling colored v2.1.0
   Compiling anyhow v1.0.86
   Compiling strum_macros v0.26.3
   Compiling strum v0.26.2
   Compiling clap v4.5.4
   Compiling mxw v0.1.2 (/home/tingo/personal/projects/2024/rust/mice/mxw)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.48s

see if it runs

tingo@tipi5-linux:~/personal/projects/2024/rust/mice/mxw $ cargo run
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.04s
     Running `target/debug/mxw`
Cross platform CLI tool for Glorious' wireless mice.

Originally reverse engineered using USB packet logs sniffed with
WireShark and USBPcap, as well as a decompilation of the official
Windows program (Glorious Core).


Usage: mxw <COMMAND>

Commands:
  report  Retrieve information about the device
  config  Change the device's various settings

Options:
  -h, --help     Print help
  -V, --version  Print version

try it

tingo@tipi5-linux:~/personal/projects/2024/rust/mice/mxw $ cargo run report battery
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.03s
     Running `target/debug/mxw report battery`
31%

nice. build a release version

tingo@tipi5-linux:~/personal/projects/2024/rust/mice/mxw $ cargo build --release
   Compiling proc-macro2 v1.0.85
   Compiling unicode-ident v1.0.12
   Compiling utf8parse v0.2.1
   Compiling pkg-config v0.3.30
   Compiling anstyle-parse v0.2.4
   Compiling colorchoice v1.0.1
   Compiling anstyle-query v1.0.3
   Compiling cc v1.0.98
   Compiling heck v0.5.0
   Compiling is_terminal_polyfill v1.70.0
   Compiling libc v0.2.155
   Compiling rustversion v1.0.17
   Compiling anstyle v1.0.7
   Compiling quote v1.0.36
   Compiling anstream v0.6.14
   Compiling syn v2.0.66
   Compiling clap_lex v0.7.0
   Compiling strsim v0.11.1
   Compiling anyhow v1.0.86
   Compiling hidapi v2.6.1
   Compiling clap_builder v4.5.2
   Compiling cfg-if v1.0.0
   Compiling lazy_static v1.4.0
   Compiling colored v2.1.0
   Compiling strum v0.26.2
   Compiling clap_derive v4.5.4
   Compiling strum_macros v0.26.3
   Compiling clap v4.5.4
   Compiling mxw v0.1.2 (/home/tingo/personal/projects/2024/rust/mice/mxw)
    Finished `release` profile [optimized] target(s) in 26.88s

copied to ~/bin/ (I had to create it first) for easy access

tingo@tipi5-linux:~ $ which mxw
/home/tingo/bin/mxw
tingo@tipi5-linux:~ $ mxw --version
mxw 0.1.2
tingo@tipi5-linux:~ $ mxw report battery
31%
tingo@tipi5-linux:~ $ mxw report firmware
0.3.8.0

2024-12-28: mmcblk0p2 - add udev rules for the Glorious O- mouse

# 2024-12-28 Torfinn Ingolfsen, I have a Glorious O- mouse, so different product ids: 2013, 2024
#
# Edited by vlk on 12/02/22
# Here's the guide I followed:
# https://github.com/libusb/hidapi/blob/master/udev/69-hid.rules

# Line that lets me access Glorous Model O- Wireless
SUBSYSTEMS=="usb", ATTRS{idVendor}=="258a", ATTRS{idProduct}=="2013", TAG+="uaccess"

# Line that lets me access Glorious Model O- Wireless when unplugged
SUBSYSTEMS=="usb", ATTRS{idVendor}=="258a", ATTRS{idProduct}=="2024", TAG+="uaccess"

load the new rules

tingo@tipi5-linux:~/personal/projects/2024/rust/mice/mxw $ sudo udevadm control --reload-rules && sudo udevadm trigger

2024-12-28: mmcblk0p2 - apt - install libudev-dev

tingo@tipi5-linux:~ $ sudo apt install libudev-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  libudev-dev
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 52.7 kB of archives.
After this operation, 144 kB of additional disk space will be used.
[..]
Setting up libudev-dev:arm64 (252.31-1~deb12u1) ...
Processing triggers for man-db (2.11.2-2) ...

2024-12-28: mmcblk0p2 - try to install npm thing for scanner

tingo@tipi5-linux:~/personal/projects/2024/rust/webcam/scanner $ npm install
npm WARN deprecated stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility

added 256 packages, and audited 257 packages in 1m

100 packages are looking for funding
  run `npm fund` for details

50 vulnerabilities (1 moderate, 49 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

and this

tingo@tipi5-linux:~/personal/projects/2024/rust/webcam/scanner $ npx parcel build src/index.html --public-url .
⠴ Building index.html...
Browserslist: caniuse-lite is outdated. Please run:
  npx update-browserslist-db@latest
parcel-transformer-pwa-manifest: Generating icons for Document Scanner...
parcel-transformer-pwa-manifest: Generating shortcut icons...
parcel-transformer-pwa-manifest: Generating favicons...
🚨 Build failed.

@parcel/core: Failed to resolve '../../pkg/scanner' from './src/workers/process.ts'

  /home/tingo/personal/projects/2024/rust/webcam/scanner/src/workers/process.ts:1:73
  > 1 | import init, { find_document, extract_document, Quad as WasmQuad } from '../../pkg/scanner';
  >   |                                                                         ^^^^^^^^^^^^^^^^^^^
    2 | import { Message, Messages } from './ipc'
    3 | 

@parcel/resolver-default: Cannot load file '../../pkg/scanner' in './src/workers'.
💡 Did you mean '../../.vscode'?
💡 Did you mean '../../package'?

or this

Server running at http://localhost:1234
🚨 Build failed.

unknown: Entry /home/tingo/personal/projects/2024/rust/webcam/scanner/run does not exist

fix the caniuse-lite thing

tingo@tipi5-linux:~/personal/projects/2024/rust/webcam/scanner $ npx update-browserslist-db@latest
Need to install the following packages:
  update-browserslist-db@1.1.1
Ok to proceed? (y) y
Latest version:     1.0.30001690
Installed version:  1.0.30001532
Removing old caniuse-lite from lock file
Installing new caniuse-lite version
$ npm install caniuse-lite
Cleaning package.json dependencies from caniuse-lite
$ npm uninstall caniuse-lite
caniuse-lite has been successfully updated

No target browser changes

try this way then

tingo@tipi5-linux:~/personal/projects/2024/rust/webcam/scanner $ npm run
Lifecycle scripts included in scanner@0.0.1:
  start
    parcel src/index.html

available via `npm run-script`:
  build-wasm
    wasm-pack build --target web
  build
    tsc && tsc -p src/workers/tsconfig.json && parcel build src/index.html --public-url .

ok, try npm start then

tingo@tipi5-linux:~/personal/projects/2024/rust/webcam/scanner $ npm start 

> scanner@0.0.1 start
> parcel src/index.html

Server running at http://localhost:1234
🚨 Build failed.

@parcel/core: Failed to resolve '../../pkg/scanner' from './src/workers/process.ts'

  /home/tingo/personal/projects/2024/rust/webcam/scanner/src/workers/process.ts:1:73
  > 1 | import init, { find_document, extract_document, Quad as WasmQuad } from '../../pkg/scanner';
  >   |                                                                         ^^^^^^^^^^^^^^^^^^^
    2 | import { Message, Messages } from './ipc'
    3 | 

@parcel/resolver-default: Cannot load file '../../pkg/scanner' in './src/workers'.
💡 Did you mean '../../.vscode'?
💡 Did you mean '../../package'?

check the scanner.wasm

tingo@tipi5-linux:~/personal/projects/2024/rust/webcam/scanner $ file target/wasm32-unknown-unknown/release/scanner.wasm
target/wasm32-unknown-unknown/release/scanner.wasm: WebAssembly (wasm) binary module version 0x1 (MVP)

ok, make a pkg, and copy it there

tingo@tipi5-linux:~/personal/projects/2024/rust/webcam/scanner $ mkdir pkg
tingo@tipi5-linux:~/personal/projects/2024/rust/webcam/scanner $ cp target/wasm32-unknown-unknown/release/scanner.wasm pkg/scanner

do a npm start again

tingo@tipi5-linux:~/personal/projects/2024/rust/webcam/scanner $ npm start 

> scanner@0.0.1 start
> parcel src/index.html

Server running at http://localhost:1234
🚨 Build failed.

@parcel/core: No transformers found for pkg/scanner.

  /home/tingo/personal/projects/2024/rust/webcam/scanner/node_modules/parcel-config-pwa-manifest/index.json:2:3
    1 | {
  > 2 |   "transformers": {
  >   |   ^^^^^^^^^^^^^^^^^
  > 3 |     "*.{htm,html}": ["...", "parcel-transformer-pwa-manifest"],
  >   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  > 4 |     "__ptpm_raw:*": ["@parcel/transformer-raw"],
  >   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  > 5 |     "__ptpm_process:*": ["parcel-transformer-pwa-manifest"]
  >   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  > 6 |   }
  >   | ^^^
    7 | }

  /home/tingo/personal/projects/2024/rust/webcam/scanner/node_modules/@parcel/config-default/index.json:3:3
     2 |   "bundler": "@parcel/bundler-default",
  >  3 |   "transformers": {
  >    |   ^^^^^^^^^^^^^^^^^
  >  4 |     "types:*.{ts,tsx}": ["@parcel/transformer-typescript-types"],
  >    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  >  5 |     "bundle-text:*": ["...", "@parcel/transformer-inline-string"],
  >    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  >  6 |     "data-url:*": ["...", "@parcel/transformer-inline-string"],
  >    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  >  7 |     "worklet:*.{js,mjs,jsm,jsx,es6,cjs,ts,tsx}": [
  >    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  >  8 |       "@parcel/transformer-worklet",
  >    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  >  9 |       "..."
  >    | ^^^^^^^^^^^
  > 10 |     ],
  >    | ^^^^^^
  > 11 |     "*.{js,mjs,jsm,jsx,es6,cjs,ts,tsx}": [
  >    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  > 12 |       "@parcel/transformer-babel",
  >    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  > 13 |       "@parcel/transformer-js",
  >    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

nope, doesn't work.

2024-12-28: mmcblk0p2 - apt - install npm

tingo@tipi5-linux:~ $ sudo apt install npm
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  eslint gyp handlebars libc-ares2 libjs-async libjs-events libjs-inherits libjs-is-typedarray libjs-prettify libjs-regenerate libjs-source-map
  libjs-sprintf-js libjs-typedarray-to-buffer libjs-util libnode-dev libnode108 libnotify-bin libssl-dev libuv1 libuv1-dev node-abbrev node-acorn
  node-agent-base node-ajv node-ajv-keywords node-ampproject-remapping node-ansi-escapes node-ansi-regex node-ansi-styles node-anymatch node-aproba
  node-archy node-are-we-there-yet node-argparse node-arrify node-assert node-async node-async-each node-auto-bind
  node-babel-helper-define-polyfill-provider node-babel-plugin-add-module-exports node-babel-plugin-lodash node-babel-plugin-polyfill-corejs2
  node-babel-plugin-polyfill-corejs3 node-babel-plugin-polyfill-regenerator node-babel7 node-babel7-runtime node-balanced-match node-base
  node-base64-js node-binary-extensions node-brace-expansion node-braces node-browserslist node-builtins node-busboy node-cacache node-cache-base
  node-camelcase node-caniuse-lite node-chalk node-chokidar node-chownr node-chrome-trace-event node-ci-info node-cjs-module-lexer node-cli-boxes
  node-cli-cursor node-cli-table node-cli-truncate node-cliui node-clone node-clone-deep node-collection-visit node-color-convert node-color-name
  node-colors node-columnify node-commander node-commondir node-concat-stream node-console-control-strings node-convert-source-map
  node-copy-concurrently node-core-js node-core-js-compat node-core-js-pure node-core-util-is node-coveralls node-css-loader
  node-css-selector-tokenizer node-data-uri-to-buffer node-debbundle-es-to-primitive node-debug node-decamelize node-decompress-response
  node-deep-equal node-deep-is node-defaults node-define-properties node-define-property node-defined node-del node-delegates node-depd node-diff
  node-doctrine node-electron-to-chromium node-encoding node-end-of-stream node-enhanced-resolve node-err-code node-errno node-error-ex
  node-es-abstract node-es-module-lexer node-es6-error node-escape-string-regexp node-escodegen node-eslint-scope node-eslint-utils
  node-eslint-visitor-keys node-espree node-esprima node-esquery node-esrecurse node-estraverse node-esutils node-events node-fancy-log
  node-fast-deep-equal node-fast-levenshtein node-fetch node-file-entry-cache node-fill-range node-find-cache-dir node-find-up node-flat-cache
  node-flatted node-for-in node-for-own node-foreground-child node-fs-readdir-recursive node-fs-write-stream-atomic node-fs.realpath node-function-bind
  node-functional-red-black-tree node-gauge node-get-caller-file node-get-stream node-get-value node-glob node-glob-parent node-globals node-globby
  node-got node-graceful-fs node-growl node-gyp node-has-flag node-has-unicode node-has-value node-has-values node-hosted-git-info
  node-https-proxy-agent node-iconv-lite node-icss-utils node-ieee754 node-iferr node-ignore node-imurmurhash node-indent-string node-inflight
  node-inherits node-ini node-interpret node-ip node-ip-regex node-is-arrayish node-is-binary-path node-is-buffer node-is-descriptor node-is-extendable
  node-is-extglob node-is-glob node-is-number node-is-path-cwd node-is-path-inside node-is-plain-obj node-is-plain-object node-is-primitive
  node-is-stream node-is-typedarray node-is-windows node-isarray node-isexe node-isobject node-istanbul node-jest-debbundle node-jest-worker
  node-js-tokens node-js-yaml node-jsesc node-json-buffer node-json-parse-better-errors node-json-schema node-json-schema-traverse
  node-json-stable-stringify node-json5 node-jsonify node-jsonparse node-kind-of node-lcov-parse node-levn node-loader-runner node-locate-path
  node-lodash node-lodash-packages node-log-driver node-lowercase-keys node-lru-cache node-make-dir node-map-visit node-memfs node-memory-fs
  node-merge-stream node-micromatch node-mime node-mime-types node-mimic-response node-minimatch node-minimist node-minipass node-mixin-deep
  node-mkdirp node-move-concurrently node-ms node-mute-stream node-n3 node-negotiator node-neo-async node-nopt node-normalize-package-data
  node-normalize-path node-npm-bundled node-npm-package-arg node-npm-run-path node-npmlog node-object-assign node-object-inspect node-object-visit
  node-once node-opener node-optimist node-optionator node-osenv node-p-cancelable node-p-limit node-p-locate node-p-map node-parse-json
  node-pascalcase node-path-dirname node-path-exists node-path-is-absolute node-path-is-inside node-path-type node-picocolors node-pify node-pkg-dir
  node-postcss node-postcss-modules-extract-imports node-postcss-modules-values node-postcss-value-parser node-prelude-ls node-process-nextick-args
  node-progress node-promise-inflight node-promise-retry node-promzard node-prr node-pump node-punycode node-quick-lru node-randombytes node-read
  node-read-package-json node-read-pkg node-readable-stream node-readdirp node-rechoir node-regenerate node-regenerate-unicode-properties
  node-regenerator-runtime node-regenerator-transform node-regexpp node-regexpu-core node-regjsgen node-regjsparser node-repeat-string
  node-require-directory node-resolve node-resolve-cwd node-resolve-from node-restore-cursor node-resumer node-retry node-rimraf node-run-queue
  node-safe-buffer node-schema-utils node-sellside-emitter node-semver node-serialize-javascript node-set-blocking node-set-immediate-shim
  node-set-value node-shebang-command node-shebang-regex node-shell-quote node-signal-exit node-slash node-slice-ansi node-source-list-map
  node-source-map node-source-map-support node-spdx-correct node-spdx-exceptions node-spdx-expression-parse node-spdx-license-ids node-sprintf-js
  node-ssri node-stack-utils node-string-decoder node-string-width node-strip-ansi node-strip-bom node-strip-json-comments node-supports-color node-tap
  node-tap-mocha-reporter node-tap-parser node-tapable node-tape node-tar node-terser node-text-table node-through node-time-stamp
  node-to-fast-properties node-to-regex-range node-tslib node-type-check node-typedarray node-typedarray-to-buffer node-undici
  node-unicode-canonical-property-names-ecmascript node-unicode-match-property-ecmascript node-unicode-match-property-value-ecmascript
  node-unicode-property-aliases-ecmascript node-union-value node-unique-filename node-unset-value node-uri-js node-util node-util-deprecate node-uuid
  node-v8-compile-cache node-v8flags node-validate-npm-package-license node-validate-npm-package-name node-watchpack node-wcwidth.js node-webassemblyjs
  node-webpack-sources node-which node-wide-align node-widest-line node-wordwrap node-wrap-ansi node-wrappy node-write node-write-file-atomic node-ws
  node-xtend node-y18n node-yallist node-yaml node-yargs node-yargs-parser nodejs nodejs-doc terser webpack
Suggested packages:
  node-babel-eslint node-esprima-fb node-inquirer libjs-angularjs libssl-doc node-babel-plugin-polyfill-es-shims node-babel7-debug livescript chai
  node-jest-diff
The following NEW packages will be installed:
  eslint gyp handlebars libc-ares2 libjs-async libjs-events libjs-inherits libjs-is-typedarray libjs-prettify libjs-regenerate libjs-source-map
  libjs-sprintf-js libjs-typedarray-to-buffer libjs-util libnode-dev libnode108 libnotify-bin libssl-dev libuv1 libuv1-dev node-abbrev node-acorn
  node-agent-base node-ajv node-ajv-keywords node-ampproject-remapping node-ansi-escapes node-ansi-regex node-ansi-styles node-anymatch node-aproba
  node-archy node-are-we-there-yet node-argparse node-arrify node-assert node-async node-async-each node-auto-bind
  node-babel-helper-define-polyfill-provider node-babel-plugin-add-module-exports node-babel-plugin-lodash node-babel-plugin-polyfill-corejs2
  node-babel-plugin-polyfill-corejs3 node-babel-plugin-polyfill-regenerator node-babel7 node-babel7-runtime node-balanced-match node-base
  node-base64-js node-binary-extensions node-brace-expansion node-braces node-browserslist node-builtins node-busboy node-cacache node-cache-base
  node-camelcase node-caniuse-lite node-chalk node-chokidar node-chownr node-chrome-trace-event node-ci-info node-cjs-module-lexer node-cli-boxes
  node-cli-cursor node-cli-table node-cli-truncate node-cliui node-clone node-clone-deep node-collection-visit node-color-convert node-color-name
  node-colors node-columnify node-commander node-commondir node-concat-stream node-console-control-strings node-convert-source-map
  node-copy-concurrently node-core-js node-core-js-compat node-core-js-pure node-core-util-is node-coveralls node-css-loader
  node-css-selector-tokenizer node-data-uri-to-buffer node-debbundle-es-to-primitive node-debug node-decamelize node-decompress-response
  node-deep-equal node-deep-is node-defaults node-define-properties node-define-property node-defined node-del node-delegates node-depd node-diff
  node-doctrine node-electron-to-chromium node-encoding node-end-of-stream node-enhanced-resolve node-err-code node-errno node-error-ex
  node-es-abstract node-es-module-lexer node-es6-error node-escape-string-regexp node-escodegen node-eslint-scope node-eslint-utils
  node-eslint-visitor-keys node-espree node-esprima node-esquery node-esrecurse node-estraverse node-esutils node-events node-fancy-log
  node-fast-deep-equal node-fast-levenshtein node-fetch node-file-entry-cache node-fill-range node-find-cache-dir node-find-up node-flat-cache
  node-flatted node-for-in node-for-own node-foreground-child node-fs-readdir-recursive node-fs-write-stream-atomic node-fs.realpath node-function-bind
  node-functional-red-black-tree node-gauge node-get-caller-file node-get-stream node-get-value node-glob node-glob-parent node-globals node-globby
  node-got node-graceful-fs node-growl node-gyp node-has-flag node-has-unicode node-has-value node-has-values node-hosted-git-info
  node-https-proxy-agent node-iconv-lite node-icss-utils node-ieee754 node-iferr node-ignore node-imurmurhash node-indent-string node-inflight
  node-inherits node-ini node-interpret node-ip node-ip-regex node-is-arrayish node-is-binary-path node-is-buffer node-is-descriptor node-is-extendable
  node-is-extglob node-is-glob node-is-number node-is-path-cwd node-is-path-inside node-is-plain-obj node-is-plain-object node-is-primitive
  node-is-stream node-is-typedarray node-is-windows node-isarray node-isexe node-isobject node-istanbul node-jest-debbundle node-jest-worker
  node-js-tokens node-js-yaml node-jsesc node-json-buffer node-json-parse-better-errors node-json-schema node-json-schema-traverse
  node-json-stable-stringify node-json5 node-jsonify node-jsonparse node-kind-of node-lcov-parse node-levn node-loader-runner node-locate-path
  node-lodash node-lodash-packages node-log-driver node-lowercase-keys node-lru-cache node-make-dir node-map-visit node-memfs node-memory-fs
  node-merge-stream node-micromatch node-mime node-mime-types node-mimic-response node-minimatch node-minimist node-minipass node-mixin-deep
  node-mkdirp node-move-concurrently node-ms node-mute-stream node-n3 node-negotiator node-neo-async node-nopt node-normalize-package-data
  node-normalize-path node-npm-bundled node-npm-package-arg node-npm-run-path node-npmlog node-object-assign node-object-inspect node-object-visit
  node-once node-opener node-optimist node-optionator node-osenv node-p-cancelable node-p-limit node-p-locate node-p-map node-parse-json
  node-pascalcase node-path-dirname node-path-exists node-path-is-absolute node-path-is-inside node-path-type node-picocolors node-pify node-pkg-dir
  node-postcss node-postcss-modules-extract-imports node-postcss-modules-values node-postcss-value-parser node-prelude-ls node-process-nextick-args
  node-progress node-promise-inflight node-promise-retry node-promzard node-prr node-pump node-punycode node-quick-lru node-randombytes node-read
  node-read-package-json node-read-pkg node-readable-stream node-readdirp node-rechoir node-regenerate node-regenerate-unicode-properties
  node-regenerator-runtime node-regenerator-transform node-regexpp node-regexpu-core node-regjsgen node-regjsparser node-repeat-string
  node-require-directory node-resolve node-resolve-cwd node-resolve-from node-restore-cursor node-resumer node-retry node-rimraf node-run-queue
  node-safe-buffer node-schema-utils node-sellside-emitter node-semver node-serialize-javascript node-set-blocking node-set-immediate-shim
  node-set-value node-shebang-command node-shebang-regex node-shell-quote node-signal-exit node-slash node-slice-ansi node-source-list-map
  node-source-map node-source-map-support node-spdx-correct node-spdx-exceptions node-spdx-expression-parse node-spdx-license-ids node-sprintf-js
  node-ssri node-stack-utils node-string-decoder node-string-width node-strip-ansi node-strip-bom node-strip-json-comments node-supports-color node-tap
  node-tap-mocha-reporter node-tap-parser node-tapable node-tape node-tar node-terser node-text-table node-through node-time-stamp
  node-to-fast-properties node-to-regex-range node-tslib node-type-check node-typedarray node-typedarray-to-buffer node-undici
  node-unicode-canonical-property-names-ecmascript node-unicode-match-property-ecmascript node-unicode-match-property-value-ecmascript
  node-unicode-property-aliases-ecmascript node-union-value node-unique-filename node-unset-value node-uri-js node-util node-util-deprecate node-uuid
  node-v8-compile-cache node-v8flags node-validate-npm-package-license node-validate-npm-package-name node-watchpack node-wcwidth.js node-webassemblyjs
  node-webpack-sources node-which node-wide-align node-widest-line node-wordwrap node-wrap-ansi node-wrappy node-write node-write-file-atomic node-ws
  node-xtend node-y18n node-yallist node-yaml node-yargs node-yargs-parser nodejs nodejs-doc npm terser webpack
0 upgraded, 395 newly installed, 0 to remove and 0 not upgraded.
Need to get 29.7 MB of archives.
After this operation, 175 MB of additional disk space will be used.
[..]
Setting up npm (9.2.0~ds1-1) ...
Processing triggers for libc-bin (2.36-9+rpt2+deb12u9) ...
Processing triggers for man-db (2.11.2-2) ...

2024-12-28: mmcblk0p2 - rust - build scanner on RaspiOS needs wasm target

tingo@tipi5-linux:~/personal/projects/2024/rust/webcam/scanner $ rustup target add wasm32-unknown-unknown
info: downloading component 'rust-std' for 'wasm32-unknown-unknown'
info: installing component 'rust-std' for 'wasm32-unknown-unknown'
 18.9 MiB /  18.9 MiB (100 %)  12.4 MiB/s in  1s ETA:  0s

build it

tingo@tipi5-linux:~/personal/projects/2024/rust/webcam/scanner $ cargo build
   Compiling quote v1.0.14
   Compiling cfg-if v1.0.0
   Compiling wasm-bindgen v0.2.78
   Compiling syn v1.0.84
   Compiling wasm-bindgen-backend v0.2.78
   Compiling wasm-bindgen-macro-support v0.2.78
   Compiling wasm-bindgen-macro v0.2.78
   Compiling js-sys v0.3.55
   Compiling console_error_panic_hook v0.1.7
   Compiling web-sys v0.3.55
   Compiling scanner v0.1.0 (/home/tingo/personal/projects/2024/rust/webcam/scanner)
warning: unused imports: `GradientVotesResult`, `Line`, and `Point`
 --> src-rs/image/mod.rs:7:20
  |
7 | pub use document::{GradientVotesResult, Line, Point, Quad, ScoredQuad};
  |                    ^^^^^^^^^^^^^^^^^^^  ^^^^  ^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: `scanner` (lib) generated 1 warning (run `cargo fix --lib -p scanner` to apply 1 suggestion)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.67s
warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.78
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`

2024-12-28: mmcblk0p2 - Xorg / Wayland - keyboard layout was back to gb after the update. I had to fix it in ~/.config/wayfire.ini

tingo@tipi5-linux:~ $ grep xkb_layout ~/.config/wayfire.ini
#xkb_layout=gb
xkb_layout=no

and logout / login.

2024-12-28: mmcblk0p2 - install rust viua rustup

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
[..]
   default host triple: aarch64-unknown-linux-gnu
     default toolchain: stable (default)
               profile: default
  modify PATH variable: yes
[..]
info: profile set to 'default'
info: default host triple is aarch64-unknown-linux-gnu
info: syncing channel updates for 'stable-aarch64-unknown-linux-gnu'
info: latest update on 2024-11-28, rust version 1.83.0 (90b35a623 2024-11-26)
info: downloading component 'cargo'
info: default toolchain set to 'stable-aarch64-unknown-linux-gnu'

  stable-aarch64-unknown-linux-gnu installed - rustc 1.83.0 (90b35a623 2024-11-26)


Rust is installed now. Great!

To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).

To configure your current shell, you need to source
the corresponding env file under $HOME/.cargo.

This is usually done by running one of the following (note the leading DOT):
. "$HOME/.cargo/env"            # For sh/bash/zsh/ash/dash/pdksh
source "$HOME/.cargo/env.fish"  # For fish

2024-12-28: mmcblk0p2 - apt - autoremove

tingo@tipi5-linux:~ $ sudo apt autoremove
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra edid-decode libqt5qmlworkerscript5 libqt5quickcontrols2-5 libqt5quicktemplates2-5
  libwlroots12 linux-headers-6.6.31+rpt-common-rpi linux-headers-6.6.31+rpt-rpi-2712 linux-headers-6.6.31+rpt-rpi-v8 linux-image-6.6.31+rpt-rpi-2712
  linux-image-6.6.31+rpt-rpi-v8 linux-kbuild-6.6.31+rpt python3-gi-cairo qml-module-qtgraphicaleffects qml-module-qtquick-controls2
  qml-module-qtquick-layouts qml-module-qtquick-templates2 qml-module-qtquick-window2 qml-module-qtquick2
0 upgraded, 0 newly installed, 21 to remove and 0 not upgraded.
After this operation, 138 MB disk space will be freed.
[..]
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9+rpt2+deb12u9) ...

apt - reinstall chromium-browser

tingo@tipi5-linux:~ $ sudo apt install chromium-browser
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  chromium-browser
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 97.6 kB of archives.
After this operation, 344 kB of additional disk space will be used.
[..]
Setting up chromium-browser (1:130.0.6723.116-1~deb12u1+rpt1) ...

2024-12-28: mmcblk0p2 - apt - upgrade raspberrypi-ui-mods

tingo@tipi5-linux:~ $ sudo apt install raspberrypi-ui-mods
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra edid-decode libqt5qmlworkerscript5 libqt5quickcontrols2-5 libqt5quicktemplates2-5
  libwlroots12 linux-headers-6.6.31+rpt-common-rpi linux-headers-6.6.31+rpt-rpi-2712 linux-headers-6.6.31+rpt-rpi-v8 linux-image-6.6.31+rpt-rpi-2712
  linux-image-6.6.31+rpt-rpi-v8 linux-kbuild-6.6.31+rpt python3-gi-cairo qml-module-qtgraphicaleffects qml-module-qtquick-controls2
  qml-module-qtquick-layouts qml-module-qtquick-templates2 qml-module-qtquick-window2 qml-module-qtquick2
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  raindrop rasputin
The following packages will be REMOVED:
  arandr lxinput
The following NEW packages will be installed:
  raindrop rasputin
The following packages will be upgraded:
  raspberrypi-ui-mods
1 upgraded, 2 newly installed, 2 to remove and 0 not upgraded.
Need to get 1,176 kB of archives.
After this operation, 98.3 kB disk space will be freed.
[..]

2024-12-28: mmcblk0p2 - reboot, a new kernel is in

tingo@tipi5-linux:~ $ uname -a
Linux tipi5-linux 6.6.62+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.62-1+rpt1 (2024-11-25) aarch64 GNU/Linux

2024-12-28: mmcblk0p2 - apt - update and upgrade

tingo@tipi5-linux:~ $ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra libqt5qmlworkerscript5 libqt5quickcontrols2-5 libqt5quicktemplates2-5
  libwlroots12 qml-module-qtgraphicaleffects qml-module-qtquick-controls2 qml-module-qtquick-layouts qml-module-qtquick-templates2
  qml-module-qtquick-window2 qml-module-qtquick2
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  libwlroots-0.18 libxcb-errors0 linux-headers-6.6.62+rpt-common-rpi linux-headers-6.6.62+rpt-rpi-2712 linux-headers-6.6.62+rpt-rpi-v8
  linux-image-6.6.62+rpt-rpi-2712 linux-image-6.6.62+rpt-rpi-v8 linux-kbuild-6.6.62+rpt
The following packages have been kept back:
  raspberrypi-ui-mods
The following packages will be upgraded:
  edid-decode firefox gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-x initramfs-tools initramfs-tools-core labwc libcamera-ipa
  libcamera-tools libcamera0.3 libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libjavascriptcoregtk-4.1-0 libliftoff0
  libpixman-1-0 librados2 librbd1 libwebkit2gtk-4.1-0 linux-headers-rpi-2712 linux-headers-rpi-v8 linux-image-rpi-2712 linux-image-rpi-v8
  linux-libc-dev lxde lxde-core pcmanfm piwiz python3-libcamera python3-picamera2 raspberrypi-net-mods raspberrypi-sys-mods raspi-config raspi-firmware
  rc-gui rpi-eeprom rpicam-apps tzdata wfplug-connect
40 upgraded, 8 newly installed, 0 to remove and 1 not upgraded.
Need to get 231 MB of archives.
After this operation, 125 MB of additional disk space will be used.
[..]
Processing triggers for initramfs-tools (0.142+rpt2+deb12u1) ...
update-initramfs: Generating /boot/initrd.img-6.6.62+rpt-rpi-v8
'/boot/initrd.img-6.6.62+rpt-rpi-v8' -> '/boot/firmware/initramfs8'
update-initramfs: Generating /boot/initrd.img-6.6.62+rpt-rpi-2712
'/boot/initrd.img-6.6.62+rpt-rpi-2712' -> '/boot/firmware/initramfs_2712'
update-initramfs: Generating /boot/initrd.img-6.6.51+rpt-rpi-v8
update-initramfs: Generating /boot/initrd.img-6.6.51+rpt-rpi-2712
update-initramfs: Generating /boot/initrd.img-6.6.31+rpt-rpi-v8
update-initramfs: Generating /boot/initrd.img-6.6.31+rpt-rpi-2712

2024-12-01: c2 - when avahi works, I can ping and ssh into the machine with name. Like this

tingo@kg-core2:~ $ ping tipi5-linux.local
PING tipi5-linux.local (10.1.161.39): 56 data bytes
64 bytes from 10.1.161.39: icmp_seq=0 ttl=64 time=13.662 ms
64 bytes from 10.1.161.39: icmp_seq=1 ttl=64 time=0.907 ms
64 bytes from 10.1.161.39: icmp_seq=2 ttl=64 time=20.611 ms
^C
--- tipi5-linux.local ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.907/11.726/20.611/8.160 ms

and ssh

tingo@kg-core2:~ $ ssh tipi5-linux.local
Linux tipi5-linux 6.6.51+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.51-1+rpt3 (2024-10-08) aarch64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Dec  1 12:18:59 2024 from 10.1.150.52

most of the time it doesn't work, then I have to ssh into it via ip address first

tingo@kg-core2:~ $ ping tipi5-linux.local
ping: cannot resolve tipi5-linux.local: Name does not resolve
tingo@kg-core2:~ $ ssh 10.1.161.39
Linux tipi5-linux 6.6.51+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.51-1+rpt3 (2024-10-08) aarch64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Nov 24 17:49:15 2024 from 10.1.150.52

I wish I knew how to fix this.

2024-11-24: mmcblk0p2 - reboot, Debian 12.8 is in

tingo@tipi5-linux:~ $ cat /etc/debian_version 
12.8

kernel

tingo@tipi5-linux:~ $ uname -a
Linux tipi5-linux 6.6.51+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.51-1+rpt3 (2024-10-08) aarch64 GNU/Linux

2024-11-24: mmcblk0p2 - apt - upgrade

tingo@tipi5-linux:~ $ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra libqt5qmlworkerscript5 libqt5quickcontrols2-5 libqt5quicktemplates2-5 qml-module-qtgraphicaleffects
  qml-module-qtquick-controls2 qml-module-qtquick-layouts qml-module-qtquick-templates2 qml-module-qtquick-window2 qml-module-qtquick2
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  autotouch chromium chromium-common chromium-l10n chromium-sandbox dconf-cli fonts-liberation labwc-prompt libc++1-16 libc++abi1-16 libconfig++9v5 libffado2 libfuse2
  libharfbuzz-subset0 libminizip1 libspa-0.2-libcamera libunwind-16 libupower-glib3 libxml++2.6-2v5 linux-headers-6.6.51+rpt-common-rpi linux-headers-6.6.51+rpt-rpi-2712
  linux-headers-6.6.51+rpt-rpi-v8 linux-image-6.6.51+rpt-rpi-2712 linux-image-6.6.51+rpt-rpi-v8 linux-kbuild-6.6.51+rpt notification-daemon python3-attr python3-json-pointer
  python3-jsonschema python3-libarchive-c python3-pyrsistent python3-rfc3987 python3-tqdm python3-uritemplate python3-webcolors raspi-utils-core raspi-utils-dt
  raspi-utils-eeprom raspi-utils-otp raspinfo upower wfplug-connect wfplug-squeek xmlstarlet
The following packages will be upgraded:
  agnostics base-files bluez bsdextrautils bsdutils bubblewrap chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra cups cups-browsed cups-client cups-common
  cups-core-drivers cups-daemon cups-filters cups-filters-core-drivers cups-ipp-utils cups-ppdc cups-server-common curl distro-info-data eject fdisk ffmpeg firefox
  firmware-atheros firmware-brcm80211 firmware-libertas firmware-misc-nonfree firmware-realtek ghostscript gir1.2-gtk-3.0 git git-man gstreamer1.0-alsa gstreamer1.0-plugins-base
  gstreamer1.0-x gtk-update-icon-cache gtk2-engines-pixbuf gui-pkinst gui-updater imagemagick-6-common initramfs-tools initramfs-tools-core iputils-ping labwc libaom3
  libarchive13 libavcodec59 libavdevice59 libavfilter8 libavformat59 libavutil57 libblkid1 libbluetooth3 libc-bin libc-dev-bin libc-devtools libc-l10n libc6 libc6-dbg libc6-dev
  libcamera-ipa libcamera-tools libcamera0.3 libcjson1 libcups2 libcupsfilters1 libcupsimage2 libcurl3-gnutls libcurl4 libdrm-amdgpu1 libdrm-common libdrm-nouveau2
  libdrm-radeon1 libdrm2 libexpat1 libexpat1-dev libfdisk1 libfm-data libfm-extra4 libfm-gtk-data libfm-gtk4 libfm-modules libfm4 libfontembed1 libglib2.0-0 libglib2.0-bin
  libglib2.0-data libgs-common libgs10 libgs10-common libgssapi-krb5-2 libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 libgtk-3-0 libgtk-3-common libgtk2.0-0 libgtk2.0-bin
  libgtk2.0-common libheif1 libjavascriptcoregtk-4.1-0 libk5crypto3 libkrb5-3 libkrb5support0 liblightdm-gobject-1-0 libmagickcore-6.q16-6 libmagickcore-6.q16-6-extra
  libmagickwand-6.q16-6 libmount1 libmpg123-0 libneatvnc0 libnghttp2-14 libnss3 libntfs-3g89 libpam-systemd libpipewire-0.3-0 libpipewire-0.3-common libpipewire-0.3-modules
  libpisp-common libpisp1 libpostproc56 libpython3.11 libpython3.11-dev libpython3.11-minimal libpython3.11-stdlib libsmartcols1 libspa-0.2-bluetooth libspa-0.2-modules
  libsqlite3-0 libssl3 libswresample4 libswscale6 libsystemd-shared libsystemd0 libudev1 libuuid1 libvlc-bin libvlc5 libvlccore9 libwayland-client0 libwayland-cursor0
  libwayland-egl1 libwayland-server0 libwebkit2gtk-4.1-0 libwlroots12 lightdm linux-headers-rpi-2712 linux-headers-rpi-v8 linux-image-rpi-2712 linux-image-rpi-v8 linux-libc-dev
  locales lxinput lxpanel lxpanel-data lxplug-bluetooth lxplug-ejecter lxplug-menu lxplug-netman lxplug-updater lxplug-volumepulse lxtask mount ninja-build ntfs-3g openssl
  pcmanfm pi-greeter piclone pipanel pipewire pipewire-bin pipewire-libcamera pipewire-pulse pishutdown piwiz pixflat-icons pixflat-theme pprompt python3-cryptography
  python3-gpiozero python3-libcamera python3-numpy python3-picamera2 python3-renderpm python3-reportlab python3-reportlab-accel python3-v4l2 python3.11 python3.11-dev
  python3.11-minimal python3.11-venv raspberrypi-net-mods raspberrypi-sys-mods raspberrypi-ui-mods raspi-config raspi-firmware raspi-utils rc-gui rfkill rp-bookshelf rp-prefapps
  rpd-plym-splash rpi-chromium-mods rpi-connect rpi-eeprom rpi-imager rpicam-apps systemd systemd-sysv systemd-timesyncd udev usb.ids userconf-pi util-linux util-linux-extra vlc
  vlc-bin vlc-data vlc-l10n vlc-plugin-access-extra vlc-plugin-base vlc-plugin-notify vlc-plugin-qt vlc-plugin-samba vlc-plugin-skins2 vlc-plugin-video-output
  vlc-plugin-video-splitter vlc-plugin-visualization wayvnc wf-panel-pi wpasupplicant xserver-common xserver-xorg-core xwayland zlib1g zlib1g-dev
239 upgraded, 44 newly installed, 0 to remove and 0 not upgraded.
Need to get 715 MB of archives.
After this operation, 127 MB of additional disk space will be used.
[..]
Setting up piwiz (0.85) ...
Processing triggers for mailcap (3.70+nmu1) ...
Processing triggers for fontconfig (2.14.1-4) ...
Processing triggers for desktop-file-utils (0.26-1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.36.0-1.1) ...
Processing triggers for libc-bin (2.36-9+rpt2+deb12u9) ...
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for dbus (1.14.10-1~deb12u1) ...
Processing triggers for shared-mime-info (2.2-1) ...
Processing triggers for initramfs-tools (0.142+rpt1+deb12u1) ...
update-initramfs: Generating /boot/initrd.img-6.6.51+rpt-rpi-v8
'/boot/initrd.img-6.6.51+rpt-rpi-v8' -> '/boot/firmware/initramfs8'
update-initramfs: Generating /boot/initrd.img-6.6.51+rpt-rpi-2712
'/boot/initrd.img-6.6.51+rpt-rpi-2712' -> '/boot/firmware/initramfs_2712'
update-initramfs: Generating /boot/initrd.img-6.6.31+rpt-rpi-v8
update-initramfs: Generating /boot/initrd.img-6.6.31+rpt-rpi-2712
Processing triggers for libvlc-bin:arm64 (1:3.0.21-0+rpt3+deb12u1) ...

2024-11-24: mmcblk0p2 - lsblk info

tingo@tipi5-linux:~ $ lsblk -f
NAME        FSTYPE FSVER LABEL  UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
mmcblk0                                                                             
├─mmcblk0p1 vfat   FAT32 bootfs 9BE2-1346                             435.4M    15% /boot/firmware
└─mmcblk0p2 ext4   1.0   rootfs 12974fe2-889e-4060-b497-1d6ac3fbbb4b   49.3G     8% /

2024-08-18: mmcblk0p2 - eeprom status

tingo@tipi5-linux:~ $ rpi-eeprom-update
*** UPDATE AVAILABLE ***
BOOTLOADER: update available
   CURRENT: Fri  5 Jan 15:57:40 UTC 2024 (1704470260)
    LATEST: Wed  5 Jun 15:41:49 UTC 2024 (1717602109)
   RELEASE: default (/lib/firmware/raspberrypi/bootloader-2712/default)
            Use raspi-config to change the release.

2024-08-18: mmcblk0p2 - lsblk info

tingo@tipi5-linux:~ $ lsblk -f
NAME        FSTYPE FSVER LABEL  UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
mmcblk0                                                                             
├─mmcblk0p1 vfat   FAT32 bootfs 9BE2-1346                             435.4M    15% /boot/firmware
└─mmcblk0p2 ext4   1.0   rootfs 12974fe2-889e-4060-b497-1d6ac3fbbb4b   49.3G     8% /

2024-08-18: tested the Micro-HDMI adapter (61308) - it works.

2024-08-16: wired up the Pi 5 with a monitor (using a micro-HDMI adapter), usb keyboard and mouse, and plugged in an ethernet cable (I forgot that I had entered wireless details). Plugged in the power supply. Pi 5 booted, restarted a few times, and showed the desktop. From ssh

tingo@kg-core2:~ $ ssh tipi5-linux.local
Linux tipi5-linux 6.6.31+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Jul  4 02:17:05 2024

os info

tingo@tipi5-linux:~ $ cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

kernel

tingo@tipi5-linux:~ $ uname -a
Linux tipi5-linux 6.6.31+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64 GNU/Linux

2024-08-16: I created this page.