Raspbian 12 Bookworm and 11 Bullseye for Libre Computer Boards

A new issue! I think it might be relevant to all images. When attempting to write the identical image to eMMC as what is currently booted on the uSD (say, Raspbian12) the kernel will not allow mounting of both rootfs (/dev/mmcblk0p2 and /dev/mmcblk1p2) to make changes as they both share the same 283cfb79-a50f-43ab-bc96-42f866f8d541 UUID, so I used btrfstune -u /dev/mmcblk0p2 to assign a new UUID, however now that it has a non-conflicting UUID and is able to mount side-by-side with the OS on uSD, it is no longer able to boot on its own. Does the uboot included in the image require the 283cfb79-a50f-43ab-bc96-42f866f8d541 UUID in order to be bootable?

**EDIT
Ah, need to update grub.cfg ?

btrfstune -u /dev/mmcblk0p2
mount /dev/mmcblk0p2 /mnt
sed -i "s|283cfb79-a50f-43ab-bc96-42f866f8d541|$(lsblk -o name,uuid|grep mmcblk0p2|awk '{print $2}')|g" /mnt/boot/grub/grub.cfg

**EDIT
Well, noā€¦ that still doesnā€™t workā€¦ maybe

btrfstune -u /dev/mmcblk0p2
mount /dev/mmcblk0p2 /mnt
mount -t proc proc /mnt/proc
mount -t sysfs /sys /mnt/sys
mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
chroot /mnt
update-grub
update-grub2

ā€¦and still doesnā€™t boot.

**EDIT
Nopeā€¦ I give up on using Raspbian12 uSD to write Raspbian12 to eMMCā€¦ this below works because Raspbian11 and Raspbian12 already have different UUIDs:

  1. write Raspbian11 to a uSD and boot
  2. download and write Raspbian12 to the eMMC with Raspberry Pi Imager, without ejecting
  3. echo "boot_targets=usb mmc1 mmc0" > /media/pi/bootfs/boot.ini so you donā€™t lose uSD boot
  4. chroot /media/pi/rootfs
  5. raspi-config > Advanced > Wayland > X11 and then exit without reboot
  6. exit chroot and then shutdown -h to power off and remove the uSD card
  7. boot from eMMC until it lands on a black screen, then CTRL+ALT+F1 to primary tty
  8. apt -y update && apt -y dist-upgrade then switch back to wayland
  9. raspi-config > Advanced > Wayland > Wayland and then exit with reboot
  10. fix the desktop as described above right-click desktop > Desktop Preferences > Menu Bar > Desktop 2

And FINALLY booting Raspbian12 natively on eMMC with touchscreen! Yay! Hopefully these fixes all get incorporated into the next build.

BTRFS has a limitation where UUIDs cannot be the same. This has been addressed in newer kernels which we will be moving to.

We do not change OS defaults if we can help it. Raspbian 12 ships with Wayland. Raspbian 11 ships with X11.

1 Like

Yes, and I have already encounter more of the raspbian 12 issues with this latest build.

Like disabling all animations that really slow the desktop down:
https://forums.raspberrypi.com/viewtopic.php?p=2212915

I do not see these as issues with the libre build, knowing that many of these come from upstream. I even found the 64x64 ghost screen showing up in some of my RPis with 12, so I assume thatā€™s an upstream issue.

However, the default boot order is DEFINITELY a libre-specific issue.

The default boot order is from upstream. Not a libre-specific issue. Thereā€™s a reason itā€™s that way.

Do you mean that upstream uboot sets the boot order ? So it is a uboot upstream issue? Do you have the link so we can create an issue there?

Theyā€™re most likely not going to take your suggestion because it is application specific. Booting from USB by default is generally a no-no unless thereā€™s a good reason. If you have an operating system installed on non-USB, they take priority. You can interrupt the boot and run boot_usb on your own just like you can F12 on BIOSes to select the boot device.

Every Windows PC that Iā€™ve ever used has defaulted to boot external/removable first, internal/fixed last, from big-brands like Dell/HP to DIY ASUS, MSI, Gigabyte, etc. itā€™s not unreasonable to see why that is the case for easier recovery of a failed system.

Go take it up with them. You have your reasons, but they design embedded systems all day.

Can anyone please explain the difference between the AML-s905 version and the lite-AML-s905 version of Raspbian please. I understand the full version will be full desktop and I dont need that. Thanks

Lite is for headless and no GUI. See the release notes.

This is not working. I have a useless renegade now because I am trying to set up bookworm lite headless and it will not load what I input in the pi imaging tool and therefore will not connect to my network.

Check the files that the Raspberry Pi imager creates. The way that WiFi is pre-configured changes between versions of the Imager. Pre-configure it yourself via instructions here: Raspbian 12 Bookworm and 11 Bullseye for Libre Computer Boards

Those instructions do not work for bookworm, you cannot use a WiFi conf file anymore. The pi imaging tool is creating the first run file, and upon first boot it must be running it because it is getting deleted, but it wonā€™t show up on the network. I had the same issue under bullseye but I was able to resolve it following the suggested directions and using the txt and conf files, but that is no longer an option with bookworm.

I tried windows for the imager instead of macOS. Made no difference. Still wonā€™t show up on network.

I tried the regular version instead of lite. Still doesnā€™t work. Iā€™m out of options and stuck with a useless device for my purpose. Wishing I would have just bought a pi.

Hey There!

So, the folks over at Raspberry Pi have introduced a new remote access service, called Connect, to deal with the issues around the lack of remote desktop options that work with Wayland.

Apparently, the service binds to the serial number of the board, normally found at /proc/device-tree/serial-number.

It looks like the AML-S905X-CC stores the serial number in /sys/bus/platform/drivers/meson-sm/firmware:secure-monitor/serial (based on this post).

Is there any way to get that serial number over into /proc/device-tree/serial-number?

$ rpi-connect signin
Unable to read device serial number from /proc/device-tree/serial-number

$ cat /sys/bus/platform/drivers/meson-sm/firmware:secure-monitor/serial
<24 character serial number>

$ ls /proc/device-tree
'#address-cells'    cvbs-connector     leds                regulator-vcc_3v3      smbios
 aliases            efuse              memory@0            regulator-vcc-card     soc
 analog-amplifier   emmc-pwrseq        model               regulator-vddio_ao18   sound
 arm-pmu            firmware           name                regulator-vddio_boot   __symbols__
 chosen             hdmi-connector     opp-table           reserved-memory        thermal-zones
 compatible         idle-states        psci                scpi                   timer
 cpus               interrupt-parent   regulator-hdmi-5v  '#size-cells'           xtal-clk

Thank you!

Is there any intention to update the images in the distro server - Latest update of Raspbian was late in 2023 ?

Debian stable version 12.6, was released on June 29th, 2024 and this seems to be introducing some difficulty upgrading the older software on the distro server !

1 Like

An easy way to set up a headless Raspbian system is to create a custom.toml file and store it on the boot partition on the SD card (/boot, not /boot/EFI) as described in this StackExchange post. Replace the capitalized words in the following file to the ones appropriate to your situation. Use the output from cat ~/.ssh/*.pub on your desktop machine for the authorized key value you want to use.

#Required
config_version = 1

# Raspberry Pi First Boot Setup
[system]
hostname = "HOSTNAME"

[user]
name = "USERNAME"
password = "PASSWORD"
password_encrypted = false

[ssh]
enabled = true
authorized_keys = [ "ssh-ed25519 ABC.......JmG me@desktop" ]
# this seems to broken in RPi's "init_config" and it sets "-k" instead of "-p"
# password_authentication = true

[wlan]
country = "US"
ssid = "SSID"
password = "SSID_PASSWORD"
password_encrypted = false
hidden = false

[locale]
keymap = "us"
timezone = "America/Chicago"

This only works on first boot, and will supposedly go away once Raspbian integrates cloud-init.