Ubuntu 22.04.1 Jammy LTS for Libre Computer Boards

If you encounter any problems, please reply to the post with your issue.

The images are located on our distro server.

  1. Use the image with a suffix that matches your board! eg. +aml-s905x-cc.img.xz
    1.a. See Libre Comptuer Board Naming and Conventions
  2. Decompress/extract the xz compressed image .img.xz with 7-zip.
  3. Write to a MicroSD card with a bit-accurate flashing tool!

For the desktop images, we recommend using 2GB+ boards and having a heatsink and fan for best experience. It will run very poorly on 1GB boards due to swapping.

We will be continuously releasing images to address the issues discovered.
Continuous updates are delivered through our repo servers via apt.

Please note that some issues may be related to Ubuntu and not are specific to our boards. You can leave a comment for those issues and we will raise it in upstream in Ubuntu proper.

List Wait

  • ROC-RK3328-CC u-boot crypto

Consultancy Work

  • ROC-RK3328-CC u-boot HDMI support

Need To Fix

  • ALL-H3-CC-H3 Bootloader improvements
  • ALL-H3-CC-Hx HDMI Audio
  • ALL-H3-CC Set Lower Temperature Thresholds
  • AML-S805X-AC Analog, ALSA Configs, and Desktop
  • ROC-RK3399-PC Button after Power Down
  • AML-S905X-CC u-boot vanilla kernel Ethernet Internal PHY


  • ILI9486 driver fixed
  • AML-S905X-CC Fixed 4K60
  • AML-S905X-CC Fixed SPICC for ILI9486


  • ROC-RK3328-CC Stability Issues
  • ROC-RK3328-CC u-boot Compression
  • ROC-RK3399-PC u-boot Compression


  • ROC-RK3328-CC add RK805 support
  • Add support for additional IIO and misc devices
  • Add base images


  • Add gpio and dto utilities


  • ROC-RK3328-CC Pin Control on some GPIO


  • ROC-RK3399-PC control USB PD reset


  • ROC-RK3399-PC Memory Performance
  • ROC-RK3399-PC PCI-E support


  • ROC-RK3328-CC Memory Performance
  • Remove IWD and standardize around netplan for server images
  • Set RGB default colorspace on Amlogic
  • Improve low resolution display compatibility for Amlogic



  • Improved HID devices support


  • ALL-H3-CC-H3 docker support
  • Add weston-binder
  • Add connman-gtk
  • Add help link to weston


  • Optimize Gnome
  • Add cloud_init eatmydata apt wrapper


  • Set hostname in cloud-init
  • Add linux firmware
  • Copy meson firmware


  • Add RTW88 SDIO and USB support
  • Add gst123
  • AML-S805X-AC Update firmware with new device tree


  • Remove needrestart due to excessive resource use
  • Add swap via cloud-init to server images for better performance


  • ALL-H3-CC-H5 fixed MMC init stuck on reboot
  • ROC-RK3328-CC u-boot rng support


  • ROC-RK3328-CC fixed stereo analog out
  • ROC-RK3328-CC add hw decoder support
  • ROC-RK3328-CC add GPU DVFS


  • AML-S905X-CC Fix SPI modes and I2C-ao bias
  • ALL-H3-CC-H3 Chrome support


  • ALL-H3-CC-H5 Desktop Ubuntu startup configurator issue
  • Improve Chrome performance
  • Swapfile error for Desktop Images
  • Include boot firmware on images for ROC-RK3399-PC (Renegade Elite)


  • Add ALSA, IWD, Weston, Xwayland, xinit, v4l-utils
  • Show GRUB menu and increase timeout to 2s
  • Fix ALSA config for AML-S905X-CC (Le Potato)
  • Use Linux kernel and headers stable meta package

On the AML-S905x-CC, I find the current image locks up and reboots roughly every 2 out of 3 boots when reaching

“Begin: Running /scripts/init-bottom … done.”

On occasion it doesn’t reboot, just locks up, and it is then necessary to power-cycle the board.

As well, on the very first boot, I get the following:
Begin: Running /scripts/init-bottom …[ 5.760783] Unable to handle kernel paging request at virtual address 49e35000a99a11be
[ 5.763275] Mem abort info:
[ 5.766003] ESR = 0x0000000096000021
[ 5.769606] EC = 0x25: DABT (current EL), IL = 32 bits
[ 5.774879] SET = 0, FnV = 0
[ 5.777872] EA = 0, S1PTW = 0
[ 5.780985] FSC = 0x21: alignment fault
[ 5.784945] Data abort info:
[ 5.787774] ISV = 0, ISS = 0x00000021
[ 5.791585] CM = 0, WnR = 0
[ 5.794509] [49e35000a99a11be] address between user and kernel address ranges
[ 5.801623] Internal error: Oops: 96000021 [#1] PREEMPT SMP
[ 5.807120] Modules linked in: btrfs blake2b_generic xor xor_neon raid6_pq zstd_compress libcrc32c dw_hdmi_i2s_audio meson_gxl dwmac_generic crct10dif_ce meson_dw_hdmi dw_hdmi meson_drm lima drm_display_helper drm_cma_helper gpu_sched drm_shmem_helper dwmac_meson8b meson_canvas cec stmmac_platform rc_core stmmac pcs_xpcs display_connector drm_kms_helper drm
[ 5.838762] CPU: 3 PID: 329 Comm: plymouth Not tainted 5.19.0-gd26a03ff5568 #1
[ 5.845690] Hardware name: Unknown Unknown Product/Unknown Product, BIOS 2022.04-00026-g1cf922c4a8 04/01/2022
[ 5.855547] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=–)
[ 5.862418] pc : page_readlink+0x90/0x120
[ 5.866358] lr : path_openat+0x43c/0xfd0
[ 5.870238] sp : ffff800008fa3b90
[ 5.873510] x29: ffff800008fa3b90 x28: ffff800008fa3c88 x27: ffff08130143c9c0
[ 5.880618] x26: 0000000000000000 x25: ffff800008fa3ce8 x24: 0000000000000001
[ 5.887691] x23: ffff800008fa3ce8 x22: 0000000000000000 x21: ffff08135a0c1600
[ 5.894763] x20: ffff800008fa3da4 x19: 0000000000000000 x18: 0000000000000000
[ 5.901836] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
[ 5.908908] x14: 0000ffffffffffff x13: 0000000000000000 x12: fefefefefefefeff
[ 5.915981] x11: 0000fffffffffff8 x10: ffff081301428000 x9 : 0000000000000003
[ 5.923053] x8 : 637261612f62696c x7 : d0e0fee0fee5febf x6 : f2921e6b9faf5f44
[ 5.930126] x5 : 0000000000000007 x4 : 49e35000a99a11be x3 : 0000000000000000
[ 5.937198] x2 : 0000000000000001 x1 : 49e35000a99a118b x0 : 49e35000a99a118a
[ 5.944271] Call trace:
[ 5.946642] page_readlink+0x90/0x120
[ 5.950276] do_filp_open+0x80/0x130
[ 5.953812] do_sys_openat2+0xb4/0x170
[ 5.957522] __arm64_sys_openat+0x64/0xb0
[ 5.961492] invoke_syscall+0x48/0x114
[ 5.965198] el0_svc_common.constprop.0+0x44/0xfc
[ 5.969865] do_el0_svc+0x30/0xc0
[ 5.973128] el0_svc+0x34/0xb0
[ 5.976145] el0t_64_sync_handler+0xbc/0x140
[ 5.980382] el0t_64_sync+0x18c/0x190
[ 5.984004] Code: d50323bf d65f03c0 9429397e f9800091 (885f7c81)
[ 5.990062] —[ end trace 0000000000000000 ]—
Segmentation fault

Thanks for the report. We have fixed this and it will be resolved when the CI generates the new images today.

1 Like

For a different topic, and I think that was already a known issue, but when sending a shutdown command through the console the board reboots instead of halting. Was that by design or just an oversight? Overwriting the systemd shutdown.target with halt.target might be a solution but I haven’t tested it yet.

Also, if I can make two small suggestions:

  • changing the grub timeout on the server version so it shows the grub menu for 3-5 seconds (currently it’s 0 and hidden), to either select recovery mode or a previous kernel build if something goes pear-shaped with a kernel upgrade. I can already do that change by hand and it works quite well even over the serial debugging link.

  • adding a ‘default’ minimal X.org/X11 configuration, otherwise “X --configure” can’t identify the display driver to use if someone wants to run a different, lighter GUI that’s not Wayland compatible (such as LXDE/LXQT/XFCE). This would apply to both the server and desktop builds.

The following two files, placed in /etc/X11/xorg.conf.d/ work just fine after some testing.


Section "Monitor"
    Identifier	"Monitor0"
    Option	"DPMS" "false"

Section "ServerFlags"
    Option	"BlankTime" "0"
    Option	"StandbyTime" "0"
    Option	"SuspendTime" "0"
    Option	"Offtime" "0"


Section "ServerFlags"
    Option	"AutoAddGPU" "off"

Section "OutputClass"
    Identifier	"Meson"
    MatchDriver	"meson"
    Driver	"modesetting"
    Option	"PrimaryGPU" "true"

Finally, that’s more of a minor hardware documentation issue on the AML-S905X-CC. The jumper to select between HDMI-CEC and GPIO11, near the HDMI connector and TTY debugging header, has no silkscreen marking whatsoever. Which position on that jumper gives which option?

Good recommendations. We will add 3 second delay and default X11 configurations.

@Maes The jumper configuration by default for HDMI towards the inside of the board. To move it to control the GPIO on the header, move the jumper towards the edge of the board. Updating the GPIO header spreadsheet.

1 Like

For the ALL-H3-CC-H5 I’m getting to a grey background with mouse cursor, but no further. I’ll check more tomorrow, I realized I have no idea where my Potato has gotten to…

Is that with the default desktop image?
Also, is it after GUI login or do you not get a login prompt?

AFAIK if there’s no login prompt it would point to something weird going on with the display manager, if it’s after the login prompt it points to something with the shell itself.

ALL-H3-CC-H5 might take a bit if the SoC gets hot or the MicroSD card is slow. Will double check after pushing the images with the update for Le Potato and X11 configurations today.

1 Like

Replicated the hang. It was working last week. Will fix this today.

If anything is ever constant, it’s that Linux will fight you. :smiley:

1 Like

I’m having issues with the network connection with the s805x image on La Frite. I get the following:
meson8b-dwmac c9410000.ethernet eth0: Reset adapter
This was an issue with previous revisions of the image and would work after a couple reboots, but it doesn’t seem to got back up again anymore

1 Like

This needs a firmware update. Will generate a firmware update shortly.

1 Like

The 2022-08-07 server image for the 905X seems to work fine and boots without freezing or crashing at /scripts/init-bottom as long as the emmc isn’t plugged in, but I might have an old bootloader on it that I will wipe before doing more testing.

I also tested my idea of replacing systemd’s shutdown.target with halt.target and that’s a no-go, not only does it not work but it outright makes it impossible to shut down the system since it creates a circular dependency. Renaming the files back to their original and power-cycling the system fixes that issue.

The 3-second delay to the grub menu works great and doesn’t add a noticeable delay to boot time, that will definitely be useful in case of issues.

Even after installing pulseaudio on the server image, the HDMI audio doesn’t seem to be detected correctly (or at all)? I will do more testing on that.

I will test the desktop image later today and tomorrow.

There’s a lot of fixes in flight. Best to test the images tomorrow. The changes will be in the top-post. HDMI audio should be working on the images. Double check there’s an /etc/alsa/asound.conf in your image.

With regards to shutdown, try shutdown -H instead of shutdown -P. Halting the machine. Normal shutdown triggers the reset pin on the SoC which does a full reboot.

For audio, test using speaker-test -c 2 to test ALSA. If pulse doesn’t work, then it is somewhere between pulse and alsa. You can also try pipewire.

1 Like

There’s a bug in upstream Ubuntu’s chromium-browser snap. It does not read from .config/chromium-flags.conf.

Just uploaded new images. We tested the server and the desktop images and were able to get both on Le Potato.


It would be just a minor thing, but during the debugging and development phase would it be possible to add the build or upload date, or a revision number, to the image filenames? Just to make it easier to sort out which is which with multiple versions on the same machine.

1 Like

We have a lot of scripts tied to the naming. We have pretty’d the download site with better looking indexes so you can see when new images changed.


1 Like

For the latest S905x server image uploaded on August 10th, at least, there isn’t an asound.conf in /etc/alsa, only a ‘conf.d’ folder containing the file ‘50-pipewire.conf’

speaker-text -c 2, however, does work just fine.

Here is the current output of aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: LIBRETECHCC [LIBRETECH-CC], device 0: fe.dai-link-0 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

and here is the current output of aplay -L

    Discard all samples (playback) or generate zero samples (capture)
    PipeWire Sound Server
    Direct hardware device without any conversions
    Hardware device with all software conversions
    Default Audio Device
    Default Audio Device
    Direct sample mixing device

Here is the content of /proc/asound/cards

0 [LIBRETECHCC    ]: gx-sound-card - LIBRETECH-CC

and here is the content of /proc/asound/devices

  1:        : sequencer
  2: [ 0- 0]: digital audio playback
  3: [ 0]   : control
 33:        : timer

What should be the content of /etc/alsa/asound.conf? I’ll type it in the current system and see how it goes.

For the next image would it be ok for me to request a few additional kernel modules and overlays, or would that be scheduled for later on in the debugging process?
For the intended use I would need the modules for

  • spi-meson-spicc.ko (already present in the current image, but not sure how to activate it)
  • whichever would be the one appropriate to enable the 1st i2c bus (that goes to 7J1 pins 3 & 5)
  • whichever would be the one appropriate to enable uarta (uart on 7J1 pins 8&10)
  • module sc16is7xx.ko (for sc16is750/752 uart-over-i2c or spi)
  • pps-gpio

On a different note, the X11 configuration files mentioned previously weren’t added in /etc/X11/xorg.conf.d on the server image at least