Raspbian 12 Bookworm and 11 Bullseye for Libre Computer Boards

So bootloader resized on the uSD card? Then a full re-flash of a new .img download will include the latest bootloader as well?

MBR sits on sector 0.
Bootloader depending on the board start from 1 and end before 2047.
Filesystems start on sector 2048.

There is no overlap so any OS image can be moved to any board.

We refresh the images every 1-6 months to utilize the latest bootloaders. You can also use the libretech-flash-tool to install the very latest bootloader.

Thanks, I was able to do this successfully. For anyone who is curious, these were the detailed steps I took:

  1. Backup SD Card before starting as this operation could destroy data or render the card unbootable if something goes wrong (I used Win32 Disk Imager on a laptop to create a full backup image of my SD card and 7Zip to compress the image for storage on my laptop. I tested the backup by using Raspberry Pi Imager to write the backed-up image to a new SD card - Note: Raspberry Pi Imager is able to handle compressed images without the need to decompress first. I then Booted from the new/backup SD card to verify my backup was good).

  2. Download the libretech-flash-tool (I downloaded it to a folder on by LePotato, which was running Raspian, but this tool is just a collection of shell scripts, so it looks like you could probably run these from any Linux computer). Use the following command:
    git clone https://github.com/libre-computer-project/libretech-flash-tool.git

  3. Change to the new directory:
    cd libretech-flash-tool

  4. Use the following command to get a list of boards supported by the tool:
    ./lft.sh board-list

  5. Use the following command to get a list of block devices that the tool can write to (note: it will not display the device that you booted from even though it is capable to write to the boot device, but it will display other devices such as an SD card inserted into a USB card reader):
    ./lft.sh dev-list
    If you are planning to update the boot loader on the card you booted from, you can type “lsblk” to list all the block devices and find your card name there (in this case, my card was “mmcblk1”):

$ lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk1     179:0    0 29.5G  0 disk
├─mmcblk1p1 179:1    0  256M  0 part /boot/efi
└─mmcblk1p2 179:2    0 29.3G  0 part /
  1. You then flash the bootloader by typing:
    $ sudo ./lft.sh bl-flash [Board] [Device]
    (replace board with the board name from the list above that matches your board, and device with the device name for your SD card). For my example, this looks like the following:
    $ sudo ./lft.sh bl-flash aml-s905x-cc mmcblk1
    However, if device you typed is the boot device, you will get an error.
    BOOTLOADER_flash: DEVICE mmcblk1 is not a valid target.
    To get around this, you can use the “force” option:
    $ sudo ./lft.sh bl-flash aml-s905x-cc mmcblk1 force
    The process is very fast and you will see something like the following:
BOOTLOADER_flash: !!!WARNING!!! DEVICE mmcblk1 is mounted.
BOOTLOADER_get: downloading aml-s905x-cc bootloader to /tmp/tmp.9AVLF3IOwL.

--2023-08-22 18:39:51--  https://boot.libre.computer/ci//aml-s905x-cc
Resolving boot.libre.computer (boot.libre.computer)... 2600:3c00::f03c:93ff:fea1:358c, 192.53.162.101
Connecting to boot.libre.computer (boot.libre.computer)|2600:3c00::f03c:93ff:fea1:358c|:443... connected.

HTTP request sent, awaiting response... 200 OK
Length: 802816 (784K) [application/octet-stream]
Saving to: ‘/tmp/tmp.9AVLF3IOwL’

/tmp/tmp.9AVLF3IOwL           100%[=================================================>] 784.00K  1.83MB/s    in 0.4s

2023-08-22 18:39:52 (1.83 MB/s) - ‘/tmp/tmp.9AVLF3IOwL’ saved [802816/802816]

BOOTLOADER_get: downloaded aml-s905x-cc bootloader to /tmp/tmp.9AVLF3IOwL.
BOOTLOADER_flash: !!!WARNING!!! DEVICE mmcblk1 is mounted.
1568+0 records in
1568+0 records out
802816 bytes (803 kB, 784 KiB) copied, 0.0372677 s, 21.5 MB/s
BOOTLOADER_flash: bootloader written to mmcblk1 successfully.

After that you can reboot. If you have a serial console cable connected during the bootup, you should see a message early in the startup (before Grub) that shows the U-Boot version:
U-Boot 2023.07+ (Aug 16 2023 - 07:25:18 -0400) Libre Computer AML-S905X-CC

2 Likes
2023-08-29 14:41:58 root@lepotato:~/libretech-flash-tool# ./lft.sh board-list
all-h3-cc-h3
all-h3-cc-h5
aml-a311d-cc
aml-s805x-ac
aml-s905x-cc
aml-s905x-cc-v2
aml-s905d-pc
aml-s905d3-cc
roc-rk3328-cc
roc-rk3399-pc
2023-08-29 14:42:18 root@lepotato:~/libretech-flash-tool# ./lft.sh dev-list
zram0
2023-08-29 14:42:39 root@lepotato:~/libretech-flash-tool# ./lft.sh
COMMAND device-list board-help bootloader-help distro-help
2023-08-29 14:45:34 root@lepotato:~/libretech-flash-tool# 

Interesting that it shows zram0 as a device to update the bootloader. Shouldn’t the tool automatically pick the detected board if none is provided in the commandline? neofetch seems to be able to detect the running board.

libretech-flash-tool is for flashing the bootloader for any board on any storage device, not just the board it is running on. It can run on Linux machine as well.

im having an issue with the sudo apt update command. all it says is

Hit:1 Index of /repo/ linux InRelease
0% [Connecting to archive.raspberrypi.org]Bus error

what am i doing wrong ?

What does dmesg say? Bus errors are usually because your SD card is dying or dead.

-bash: /usr/bin/dmesg: Input/output error
is what i get when i try dmesg

i tried dmesg |grep -i machine and it gave me the same message

Yeah, it’s definitely your MicroSD card dying on you.

welp it was basically new so that sucks. ok ill try a new one thanks

See Troubleshooting MicroSD Card Performance and Recommended MicroSD Cards

ill do that now thanks

so i rebooted it and ran dmesg again and found this
mmc0: error -22 whilst initialising SDIO card
and i ran$ sudo dmesg | grep mmc and got this
[ 3.315421] meson-gx-mmc d0074000.mmc: Looking up vmmc-supply from device tree
[ 3.315644] meson-gx-mmc d0074000.mmc: Looking up vqmmc-supply from device tree
[ 3.315835] meson-gx-mmc d0074000.mmc: allocated mmc-pwrseq
[ 3.356784] meson-gx-mmc d0074000.mmc: no support for card’s volts
[ 3.357343] mmc0: error -22 whilst initialising SDIO card
[ 3.966537] meson-gx-mmc d0072000.mmc: Looking up vmmc-supply from device tree
[ 3.966688] meson-gx-mmc d0072000.mmc: Looking up vqmmc-supply from device tree
[ 3.966871] meson-gx-mmc d0072000.mmc: Got CD GPIO
[ 4.124586] mmc1: new ultra high speed SDR104 SDHC card at address aaaa
[ 4.126355] mmcblk1: mmc1:aaaa SK32G 29.7 GiB
[ 4.132176] mmcblk1: p1 p2
[ 4.491919] mmc0: Card stuck being busy! __mmc_poll_for_busy
[ 4.913729] BTRFS: device label rootfs devid 1 transid 306 /dev/mmcblk1p2 scanned by btrfs (243 )
[ 5.023741] BTRFS info (device mmcblk1p2): using crc32c (crc32c-generic) checksum algorithm
[ 5.026495] BTRFS info (device mmcblk1p2): disk space caching is enabled
[ 5.043390] BTRFS info (device mmcblk1p2): enabling ssd optimizations
[ 5.044296] BTRFS info (device mmcblk1p2): start tree-log replay
[ 7.692033] BTRFS info (device mmcblk1p2: state M): use zstd compression, level 3

mmc0 is the eMMC which you do not have attached. Our images are pretty robust against data corruption but that does not mean there is no corruption or that the issue won’t happen again. There’s something not fully working with your MicroSD card so don’t leave any critical data without backup once you get such an error.

its a brand new install of the image i just started it trying to get octoprint up and going but i couldnt even get passed the apt update or upgrade. so there shouldnt be anything to important on it yet

This is why a verify cycle during flashing is needed. Probably data errors were already occurring during the write stage. See our MicroSD card posts.

Hey i have been wondering what is trb skipping?

It depends on the device you have attached. USB is a complex protocol and device implementations. TRB skipping issues are device specific.

Hi. I have a renegade and am having problems with ssh on it. I have a pi4 set up running for years and know how to set it up. I can see the renegade from my router but when I try to ssh into it the password is always incorrect. I ‘think’ that I’m supposed to put a file userconfig.txt in /boot/efi partition with a password using openssl. Is the command ‘openssl passwd -6’ and then answer when it asks for the password taking the output and putting it in the userconfig.txt file? I’ve tried that and tried the Raspberry Pi Imager. Same result. Oh btw trying to use the:
2023-05-03-raspbian-bullseye-arm64-lite+roc-rk3328-cc.img.xz
image. Any thoughts?

It is userconf.txt, not userconfig.txt. Please read the original post carefully.