Raspberry Pi 4 Ubuntu Server / Desktop 18.04.3 Image (unofficial)

Fine, I'll do it myself
No Official Pi 4 Support? Fine, I’ll do it myself

This is a unofficial distribution of Ubuntu Server 18.04.3 for Raspberry Pi 4. It is provided with the purpose of letting us all play with the new Pi 4’s new increased RAM and other capabilities until Ubuntu’s repositories are updated with support for the newest Pi.

I want to thank all the commenters on this article and my Ubuntu Server Installation Guide for Raspberry Pi 4 who have contributed a ton of fixes to help get the image to the point it is at now! I also want to thank anyone who has reported issues or pull requests on the official GitHub page. This has truly been a collaborative effort and I expect it will continue to be until official support is released.

Features

  • Fully 64-bit kernel and userspace environment
  • Updates normally via apt dist-upgrade from the official Ubuntu repositories
  • Raspberry Pi userland utilities included (vcgencmd, dtoverlay, etc.)
  • raspi-config utility included (good for enabling I2C, SPI, etc.)
  • Uses the official 4.19.y Raspbian linux kernel built with arm64 flags
  • Firmware updates from the Raspbian image and the RPi-Distro/firmware-nonfree repository
  • 3D video hardware acceleration support via vc4-fkms-v3d stack.  Videos / games are giving very high and smooth FPS.
  • Includes kernel headers and the full kernel source tree used to build a kernel with your own custom flags (/usr/src/ directory)
  • Can build out-of-tree and DKMS modules
  • Full desktop support available via apt install kubuntu-desktop, xubuntu-desktop, xfce4, mate-desktop-environment, etc.
  • 5 GHz WiFi channel support
  • Working Bluetooth and WiFi
  • KVM virtualization support
  • Update script provided to update kernels/firmware/modules

GitHub Project Location

The image and source code to build the image are open source and freely available on GitHub:

https://github.com/TheRemote/Ubuntu-Server-raspi4-unofficial/

Update Bootloader Firmware First (using Raspbian)!

One important new thing to understand about the Raspberry Pi 4 vs. older Pis is that the 4 now has real onboard firmware that is on a special chip separate from everything else. Older Raspberry Pis did not have real onboard firmware and loaded all of their firmware from the SD card every single boot.

Before you install this image you should run Raspbian and install the latest firmware using this command:

sudo apt-get update && sudo apt-get dist-upgrade -y
sudo rpi-update

Next we are going to check for bootloader updates. We do this using the new rpi-eeprom utility. The following command will check for updates:

sudo rpi-eeprom-update -a

For a lot more information about the new rpi-eeprom bootloader utility make sure you check out my Raspberry Pi 4 Bootloader Guide.

If you have multiple SD cards or storage devices laying around it is a good idea to designate one of them as the “Official Raspbian Firmware Updater” card. Using this method you can periodically swap out the card and install the latest firmware updates to your Pi 4 and then switch right back to Ubuntu.

Preinstalled Image Download / Instructions

To download the precompiled image see the releases section located at https://github.com/TheRemote/Ubuntu-Server-raspi4-unofficial/releases

The file you are looking for on the releases page is ubuntu-18.04.3-preinstalled-server-arm64+raspi4.img.xz. Download this file and extract the .img file from inside. Use the free and awesome 7-zip if you are on Windows to extract the .img file.

Now burn the .img file using your favorite program. I use Win32DiskImager. Now insert your SD card / storage device into the Pi and start it up!

Username: ubuntu

Password: ubuntu

Upon logging in for the first time you will be required to change the default password to something else. Once you have done that log back in and you should be all set!

Updates

Using apt-get

First and foremost 99% of your updates will be coming from Ubuntu’s official repositories directly from apt as it would with any official image. The only things set on package hold (using apt-mark hold flash-kernel linux-raspi2 linux-image-raspi2 linux-headers-raspi2 linux-firmware-raspi2) to prevent them from overwriting the firmware already on the image. If you wish, you may apt-mark unhold those same packages and you will be 100% official Ubuntu. Your installation will probably immediately break if you do it now, but when the RPI 4 support is backported this is how you can change back to theirs.

Included Updater

I have also included an updater that will give you the latest kernel/firmware/modules/fixes that are included in each release. If Ubuntu’s 18.04.3 update servers get working firmware for the Raspberry Pi 4 I will change the update script to remove the apt-mark holds on the Raspberry Pi firmware package in apt and close the project down (leaving this here for people to learn from to hack an unsupported device into their own distros, or until I do it again on the next Pi release!)

Usage

If you have V18 or later of the image the updater is located at /home/Updater.sh. Type/paste:

sudo ./Updater.sh

If you have an older version of the image or need to manually update your Updater script, use the following commands:

wget https://raw.githubusercontent.com/TheRemote/Ubuntu-Server-raspi4-unofficial/master/Updater.sh
chmod +x Updater.sh
sudo ./Updater.sh

Updates to the kernel/firmware/fixes to common problems will be provided as long as there is interest.

Forcing Update

If you want to force the update (if you suspect/know something went wrong during an update, or you are troubleshooting, etc) use the following commands:

cd /home 
sudo rm /etc/imgrelease 
sudo ./Updater.sh

These commands remove a small file that contains the version of the image you have installed. This will cause the updater to allow you update again.

Install Full Ubuntu Desktop Version

To install the full version of Ubuntu Desktop use one of the following:

  • sudo apt-get update && sudo apt-get dist-upgrade -y && sudo apt-get install ubuntu-desktop -y
  • sudo apt-get update && sudo apt-get dist-upgrade -y && sudo apt-get install xubuntu-desktop -y
  • sudo apt-get update && sudo apt-get dist-upgrade -y && sudo apt-get install kubuntu-desktop -y

The xubuntu variant is lighter than the kubuntu variant but either one will need to download and install thousands of packages to complete the upgrade. This can obviously take quite a long time. How long it will take depends on your internet connection and the quality of your storage device.

Running this task overnight or when you have an errand to go run is definitely advised!

Performance

Storage

Beyond keeping your firmware and distribution up to date there is only one thing that sets apart one Ubuntu installation on a Pi from any other: your storage device. The difference between a low end to high end SD card can be a 2-3x performance, and the difference between a SD card and a solid state drive is a whole order of magnitude.

To help people know whether they have high performance storage I made the Raspberry Pi Storage Benchmark that will give you a performance score. Running the benchmark is really easy. Paste or type the following commands:

curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash

The storage benchmark will run several well known and respected benchmarks such as iozone and fio and calculate a score for your device.

Most importantly, to compare your score or if you want to just view other benchmark submissions check out the full results of all submissions in a searchable/sortable table at the Raspberry Pi Storage Benchmark Results Page.

Using USB Storage / Solid State Drive (SSD)

Right now the Pi 4 still lacks USB boot support. However, you can still do it by using the trick of having a SD card that you use as a bootloader only and have the rootfs on your USB storage. This is kind of a waste of a SD card but it’s definitely worth it as it allows you to hit those full sweet sweet USB 3.0 transfer speeds right now without waiting until the USB booting firmware update is released.

Using a solid state on the Ubuntu image is incredibly easy (even easier than Raspbian). Here’s the instructions:

  • Download the Desktop or Server image above and write it to your SD card
  • Navigate to the /boot drive on your SD card and open cmdline.txt
  • Change the part of the line that says root=/dev/mmcblk0p2 to root=/dev/sda2
  • Now burn the image again to your SSD
  • Plug in both the SSD and Micro SD and boot up the Pi

See my Raspberry Pi 4 USB Booting Guide for more information on USB booting / how this works / how to set it up.

Known Issues / Fixes

This section will be updated with known issues/fixes as people test the image and give feedback.

No display (HDMI)

If you have no display on your HDMI monitor you may need to toggle some options in /boot/config.txt. Put the SD card back in your computer and go to config.txt on the boot partition.

Here are some examples of good ones to try to get your display working:

#uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

#uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

#uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

#uncomment to force a HDMI mode rather than DVI. This can make audio work in DMT (computer monitor) modes
#hdmi_drive=2

#uncomment for composite PAL
#sdtv_mode=2

Which option or options may fix it for you is impossible to say. Everyone’s display is different so you may have to try a few times before you get it.

Kubuntu-Desktop display issues

If your windows are not drawing correctly in Kubuntu (missing window borders, black screens in windows, etc.) then you need to disable compositing.

Use the shortcut Alt + Shift + F12 to disable the compositor and everything will draw normally.  Now go into the Settings app and go to the “Compositor” section and uncheck “Enable compositor at startup” to prevent it from turning back on when you reboot.

This has been resolved in V16+.

Build Instructions

If you don’t want to use the precompiled binaries you can also build it yourself with the provided build script!

The build script is meant to be ran in a *throwaway* Ubuntu 18.04.3 Virtual Machine (VM). Here are the reasons you shouldn’t ignore this:

  • Absolutely no steps have been taken to make the process “secure” or “safe” for your main machine
  • It assumes the home directory is safe to build in (it’s not on a main system)
  • It installs hundreds of development packages that you only need to build the image (would bog down a main system)
  • It chroots into at least 4 different images during the build and chroots leak (causing instability/security concerns)
  • If things go wrong with the type of commands used in the script your system can get borked *real quick* (like instantly)

Now assuming you have your fresh throwaway VM ready download the build script:

cd ~
wget https://raw.githubusercontent.com/TheRemote/Ubuntu-Server-raspi4-unofficial/master/BuildPiKernel64bit.sh
chmod +x BuildPiKernel64bit.sh

Now is a good time to read through the build script to understand what it is doing. It will download several images and update them in a chroot and then extract the firmware. It then sets up all of the changes/fixes in the target image.

Once you feel you are ready to proceed run the build script with:

./BuildPiKernel64bit.sh

The script’s final output will be “ubuntu-18.04.3-preinstalled-server-arm64+raspi4.img” along with the xz compressed version and an updates.tar.xz file which is meant to bring a normal 18.04.3 installation up to date.

Release History

Release v26 – 12/20/2019

  • Updated to kernel 4.19.89
  • Power management firmware features for WiFi are now enabled (saves 55mA (~270mW) of power on Pi 4)
  • Updated firmware

Release v25 – 12/3/2019

  • Fixed issue with desktop driver not loading properly (thanks tarsij!)
  • Updated kernel with a few V3D and other fixes

Release v24 – 11/29/2019

  • Updated kernel to 4.19.86
  • Updated packages and firmware
  • This kernel has additional USB and V3D improvements

Release v23 – 11/21/2019

  • Updated kernel to 4.19.84
  • Fixed problem that could cause desktop v22 release to not load
  • Enabled AppArmor kernel flags
  • Fixed display performance in headless mode by setting hdmi_force_hotplug=1 to enable the creation of a virtual display
  • Added #dtparam=i2c0=on and #dtparam=i2c1=on examples to /boot/firmware/config.txt to help enable those interfaces if needed

Release v22 – 11/17/2019

  • Updated kernel to 4.19.83
    • This kernel includes a number of fixes to USB and other drivers — if you were having trouble with USB v22 is worth a try for you!
  • Fixed issue where lightdm service (used by xubuntu-desktop) would not load properly
  • Added bootcode.bin to /boot/firmware to allow older Pis to boot the image (3B+ confirmed to work so far, others need testing)
  • Added README documentation to /boot/firmware/overlays folder for documentation inside dtoverlay command
  • Updated firmware

Release v21 – 11/8/2019

  • Preinstalled Desktop binary (ubuntu-desktop) now available in the releases section
  • Netplan changes removed by popular demand — it was causing too many issues as everyone is using the image differently
  • Updater now removes old kernel source code automatically (no more manual cleaning of these large folders needed)

Release v20 – 11/7/2019

  • Fixed bug that was causing kernel modules to not load (updating using /home/Updater.sh recommended)

Release v19 – 11/6/2019

  • Fixed PulseAudio only playing sound in mono, stereo now works!
  • Added kernel flags to optimize speed/clean up warnings/fix crashes
  • Moved most fixes to /etc/rc.local so they are applied after installing a *ubuntu-desktop package without waiting for the next update
  • Removed machine-id from the base image so that cloned images wouldn’t all have a duplicate machine-id
  • Fixed audit service error
  • Fixed “spice-vdagent[2107]: Cannot access vdagent virtio channel /dev/virtio-ports/com.redhat.spice.0” error
  • Fixed triggerhappy crash related to /lib/systemd/system/triggerhappy.socket being wrong type

Release v18 – 11/3/2019

  • Update to kernel 4.19.81
  • Added udev rule to allow users to use vcgencmd without sudo (thanks xlazom00)
  • Fixed udev mounts not being visible (thanks wyuenho for the pull request)
  • Build script improvements now gets cross chain compiler / qemu user static 4.1 / related build dependencies
  • Build script now retrieves all dependencies for you on a blank Ubuntu 18.04.3 Virtual Machine (if you want to build)

Release v17 – 11/1/2019

  • Fixed issue with CUPS preventing firmware modules from loading in xubuntu-desktop
  • Fixed unescaped EOF issue that was messing up fixes in /etc/rc.local (thanks meisenzahl for the pull request!)

Release v16 – 10/31/2019

  • Updated Pi firmware (sound / video fixes, see https://github.com/Hexxeh/rpi-firmware/commit/c5736330216628b5ff8e3d17dde7cc03ce2126e6)
  • Updated Ubuntu-side firmware from updates included on the preinstalled 1910 release image
  • New 64 bit Raspberry Pi userland tools/libraries (vcgencmd) tools are now available — they are being freshly built each version now in the build script!
  • Fixed issue where Pulse would not come back on after first reboot
  • Fixed netplan so startup isn’t delayed by several minutes without an ethernet cable plugged in
  • Fixed several kernel flags related to sound/video

v15 Official Release – 10/28/2019

Script to update between releases is finally ready, and with that I am taking this out of pre-release!
To get the update script use the following commands:

wget https://raw.githubusercontent.com/TheRemote/Ubuntu-Server-raspi4-unofficial/master/Updater.sh
chmod +x Updater.sh
sudo ./Updater.sh

You can update from any pre-release release version. Please make a backup first!
The updater is located at /home/Updater.sh on v15 and up (to run type sudo bash /home/Updater.sh)

Pre-Release v14 – 10/26/2019

  • Kernel source tree and headers are now included in the image!
  • The kernel build source tree is located at rpi-linux-“${KERNEL_VERSION}”
  • Ubuntu’s first official release has come for the Pi 4 but it’s 19.10 only which is not a LTS release and support ends for it in -DKMS module building tested (you can test using apt install hello-dkms)
  • If you want custom kernel flags you can go to the /usr/src/rpi-linux folder and run make menuconfig (see BuildPiKernel64bit.sh for more info)
  • Rewrote build script to be more readable and reliable. It’s still a work in progress but I’m breaking things down into functions, etc.

Pre-Release v13 – 10/23/2019

  • raspi-config tool is now included with the image for (testing only, don’t use on critical fully set up images). You can use it to turn on i2c/spi/etc. File an issue if you find problems!
  • vcgencmd tool (and other libraspberrypi-userland packages) are now included (older build, works for essentials such as vcgencmd measure_temp, vcgencmd get_config int, vcgencmd get_throttled, etc)
  • Added 5Ghz WiFi band support (default regulatory domain US, change in /etc/default/crda if desired)
  • Updated kernel to 4.19.80
  • Fixed sound artifacts when playing YouTube/videos in browser
  • Fixed fsck errors during resize2fs operations

Pre-Release v12 – 10/6/2019

  • Fixed Bluetooth not automatically attaching (now appears in both console and desktop mode)
  • Updated firmware using the latest from the Raspbian image

Pre-Release v11 – 10/5/2019

  • Updated kernel and modules to rpi-4.19.75
  • Updated kernel to 4.19.76
  • Fixed several video driver issues including very low performance, YouTube videos in full screen freezing the Pi, low color resolution in xubuntu-desktop and graphical artifacts in kubuntu-desktop
  • Fixed bluetooth by adding missing firmware file not present in firmware-nonfree
  • Updated /boot/firmware/config.txt with useful HDMI debug flags — uncomment some of these such as hdmi_safe if you are not getting display output
  • Added lines in config.txt to configure SPI and i2C — you can uncomment these lines if you need to enable them
  • Updated WiFi firmware
  • Added missing regulatory.db files (used by WiFi) to /lib/firmware
  • Note for Kubuntu desktop: the compositor needs to be disabled for everything to draw correctly.  Use the shortcut Alt + Shift + F12 to disable the compositor and everything will draw normally.  Now go into the Settings app and go to the “Compositor” section and uncheck “Enable compositor at startup” to prevent it from turning back on when you reboot.

Pre-Release v10 – 10/3/2019

  • Fixed issue with wireless not showing in v9
  • Fixed bad symlink creation (pull request #38)

Pre-Release v9 – 10/2/2019

  • Updated kernel and modules to rpi-4.19.75
  • start*.elf and fixup*.dat files (GPU firmware) are now updated with each release
  • Kernel .config has been updated with the latest default config and Sakiki-‘s conform_config.sh parameters
  • New conform_config_jamesachambers.sh script added to better keep track of kernel config changes
  • SPI is now enabled
  • CPU bandwidth provisioning for FAIR_GROUP_SCHED is now enabled (CONFIG_CFS_BANDWIDTH=y)
  • Additional Ceph kernel config parameters enabled (see conform_config_jamesachambers.sh for all params)
  • A lot of additional hardware support has been enabled via the official Raspberry Pi default kernel config params — if you were having trouble with a device try v9
  • Cleaned up build script by adding additional needed dependencies to apt-get commands, broke up some sections and added additional comments

Pre-Release v8 – 9/21/2019

  • Updated kernel to rpi-4.19.73
  • Added hosts entry to prevent slow sudo command
  • Added CONFIG_CGROUP_PIDS=y to .config file
  • Committed extras folder to repository
  • Added forcefsck file to run fsck on first boot
  • Reduced image size substantially by running fstrim on .img

Pre-Release v7 – 9/8/2019

  • Updated kernel to rpi-4.19.71
  • Added CONFIG_BLK_DEV_RBD=y to kernel .config file to enable Ceph support

Pre-Release v6 – 9/7/2019

  • Updated kernel to rpi-4.19.71
  • Integrated all available updates from apt into the base image
  • Fixed display driver issue — if you are running v5 you can fix it by commenting out dtoverlay=vc4-fkms-v3d from /boot/config.txt
  • Enabled Ceph support in the kernel .config
  • Added build flags to kernel build line to build a more complete device tree (dtbo files)
  • Integrated all upstream updates since v5 from raspberrypi-linux and firmware-nonfree including a 3D driver fix for aarch64

Pre-Release v5 – 9/3/2019

  • Desktop support added
    • Expect lots of warnings in the logs. If you find solutions to them please leave a comment — many commits come from the comments!
    • Be advised — installing can take quite a while on a Pi — overnight or when you have something to do is a good time
  • Type one the following commands to install your preferred flavor of Ubuntu Desktop
    • sudo apt-get install xubuntu-desktop # or
    • sudo apt-get install kubuntu-desktop

Pre-Release v4 – 9/2/2019

  • Recompiled kernel to include support for Ubuntu features that are not present in Raspbian
  • Enabled USB UAS support
  • Fixed video driver by modifying config.txt and compiling with 3D support
  • System now boots clean and loads all modules (sudo systemd status)

Pre-Release v3 – 9/2/2019

  • Fixed IPv6 and a few other module load errors

Pre-Release v2 – 8/31/2019

  • Boot time reduced from 100s to around 30s
  • Messing with apt-mark or flash-kernel is no longer necessary and the fix has been built into the image
  • Fixed bluetooth firmware bug that was looking in /etc/firmware instead of /lib/firmware
  • Fixed entropy bug causing slow startup
  • Fixed mdadm.conf RAID warning
  • Module.symvars is now available in /boot/firmware/ if you need it to build kernel modules
    If you need the whole source tree check out the accompanying build script in the repository. It’s exactly the same as how the kernel and modules were built.
  • Various other fixes (special thanks to Joan at jamesachambers.com for contributing so many)
  • More at https://jamesachambers.com/raspberry-pi-ubuntu-server-18-04-2-installation-guide/

238 thoughts on “Raspberry Pi 4 Ubuntu Server / Desktop 18.04.3 Image (unofficial)”

  1. Avatar for Ricardo

    Hi James,
    I’m using v23 with all updates but I’m facing a problem, maybe you or someone give some tip.

    I’m using the server version, for a headless server, but I dont need the cloud-init package that comes with it. So I’m uninstalling it from the system, after I do that every time I try to enter over SSH (or locally, but more in SSH) its fast connecting and asking for password but then takes about 3minutes to show me the prompt and the system is ready to operate. I found the problem and its related with an motd script /etc/update-motd.d/50-landscape-sysinfo, the origin is precisely when it runs landscape-sysinfo, he should fail and after some timeout (maybe the 3min) he shows the prompt but not the info given by landscape-sysinfo. My question is why is cloud-init related to it? I thought it was same packages that were unistalled bu I’ve installed and the problem is the same. Just to cause more surprise if I use the system on a Rpi 3B+ the problem doesn’t occur! If you or someone have any idea just shout it! 🙂

    Thank’s.
    Ricardo

    1. Avatar for jamesachambers

      Hey Ricardo,

      Are you using a wired or wireless connection? If it’s wireless then the delay is that it’s waiting for the ethernet cable and eventually times out. You can fix this by adding optional: true into netplan. Here’s some code to recreate your Netplan for you with optional: true enabled:

      rm -rf /etc/netplan/50-cloud-init.yaml
      touch /etc/netplan/50-cloud-init.yaml
      cat << EOF2 | tee /etc/netplan/50-cloud-init.yaml >/dev/null
      network:
      ethernets:
      eth0:
      dhcp4: true
      optional: true
      version: 2
      EOF2
      netplan generate
      netplan --debug apply

      If you are already wired, I would like you to try this:

      sudo apt-get install haveged

      Now reboot and see if the problem still exists!

      1. Avatar for Ricardo

        Hello James,
        I was already connected by cable.

        I’ve installed haveged and one more time your sugestion work like a charm! Many Thanks!

        As sugestion, why not to add haveged in the server version? It should not conflict with cloud-init or others.

        Once again, Thanks!

        1. Avatar for jamesachambers

          Hey Ricardo,

          I’m very glad it worked! Haveged used to be in there but I removed it as I thought the low entropy issues that Haveged resolves were gone but apparently cloud-init is seeding the device so without havaged it gets stuck for a very long time.

          I will add haveged back in for v25!

  2. Avatar for elpidio

    V23 boots for me on pi 4/4Gb but I cannot enable wifi. I tried by editing /etc/wpa_supplicant/wpa_supplicant.conf directly, and via raspi-config, but no luck. Also I cannot change keyboard config to uk/pc-105. I tried with raspi-config and by running sudo dpkg-reconfigure keyboard-configuration.

    Any ideas ?

  3. Avatar for GB

    It doesnt work for headless installations like the original Raspbian. Could there be some modification so that Wifi parameters can be entered in wpa_supplicant file just like in the raspbian image ? (also SSH enable at first image write) ?

  4. Avatar for Bruce Schneider

    Hi James
    Just booted a clean V23 Desktop and I can change password but screen goes black(mouse moves OK). Have a blinking/flashing green lite for about 4 minutes, than goes solid green. anything I can look at??
    thanks,
    Bruce

      1. Avatar for Bruce Schneider

        Logs not available due to not being able to get into the system. However, booted another fresh v23 desktop, set login, waited 30+ min and have the 1st screen of the desktop but seems locked up again(solid green). Will give it a few hours to catch up. My Pi is 1 gb could be the reason.

        1. Avatar for Bruce Schneider

          I restarted with v23 server (on ssd) and added (apt install) desktop, and the system runs Ok… Will start to test other stuff.
          Thanks Jim, I’m enjoying playing with your releases.
          Bruce

  5. Avatar for Attila V

    Hi, James. Thx again for your work and contribution. I’m going to use Remmina to get the server or desktop from my linux laptop. No success. Would you so kind to help, and give a “how to..” ?
    Thanks again, Attila

  6. Avatar for Egil

    First, I must thank you for all the work you have done. I often visit this page to see the latest developments.

    Raspberry Pi 4, and 4 RAM
    Release v21 and Release v22 Desktop: Everything seemed OK.
    Install VLC media player, Install OK, but, when I try launch VLC nothing happens.

    Release v22 Server and Kubuntu (where VLC is pre-installed): Everything seemed OK.

    So a ‘’little’’ wish thinking:
    My dream is to install PIA (Private Internet Access) on Raspberry Pi 4 and it works the same way it does on Ubuntu Desktop on a regular PC. If you install PIA now on ” Destop’’ you get no error messages, but it is not installed either. On ”Server + Kubuntu” you apparently install PIA but when I try launch PIA nothing happens.
    I have installed PIA on Raspberry Pi 4 using the description on: https://ryanerickson.com/raspberry-pi-vpn-router-with-kill-switch/
    This seems to work properly. PIA website shows that PVN works. And it takes a while from I start PI4 until I manage to make the internet connection work. I guess this shows that ‘’kill-switch’’ works.
    But, this is something you have to be 100 % sure all the time. Without the icon that is green and you can enter settings for control, you will not be 100 % sure.
    Thank’s

  7. Avatar for elpidio

    I tried V22. I followed the instructions exactly to use Raspbian to update firmware. That worked.

    I downloaded V22 and burnt SD card images with Balena and Windows Disk Imager. Neither image could boot. The LEDs flash green a few times and then nothing. I just see a black screen on the monitor. I tried HDMI configuration options but no luck.

    Looking at the SD card I am puzzled – it appears to only have 40Mb used (same from Balena and Windows Disk Imager). The image is MUCH bigger. Any ideas what could be going on ?

      1. Avatar for Elpidio

        Hi, I tried V23 desktop version. and I got a lot further than last time with V22. The image starts to boot (so I assume my firmware updates using Raspbian worked). The system then spends a very long time alternating between a Pi ‘rainbow’ image and flashes of boot output. Finally it seems to lock on cloud_init.

        Since we are all basically using the same hardware and software, there are only a few variables that spring to mind. I am using:

        Pi 4/ 4Gb version
        SanDisk Extreme 64 GB microSDXC Memory Card + SD Adapter with A2 App Performance (your recommendation)
        AOC hdmi monitor

        It seems like the 4Gb Pi 4 is the most likely culprit. I have read that there are problems with the larger memory. Any ideas ?

        1. Avatar for Elpidio

          Ok, I had a bad contact to the psu. The Pi was resetting every time it started to boot because of undervoltage.

          V23 now boots fine ! Thanks for your help.

  8. Avatar for Robert Weir

    I am attempting to use your latest image to fast track an install of Ubuntu on PI4. I am trying to install ZoneMinder and use the PI4 essentially for little else. What you have prepared is an awesome assist for someone like myself to get up and running with ease and speed. I thank you for your efforts.
    I am moving forward and hope to be able to fully utilize the ZoneMinder application as a surveillance system. I have been a hardline “Open Software” (like free and open source) proponent most of my life. Your documentation on this process appears to be exemplary. Wish me luck in my endeavor.
    Thanks…
    Robert

  9. Avatar for Mark

    Hi John, I just upgraded from (I think) v.12 to (I think) V22 using the ./Updater.sh script. Seemed to work fine, but afterwards my BT is no longer working. It states that no BT adapters are found. I have tried to find some hints on Google, but no luck. Can you tell me how to re-enable BT? I am running the full desktop on it.

    Thanks for a very nice running distro!

      1. Avatar for Mark

        Ok, this is bizarre. It just started working again. Just some regular updates, and did not notice any to do with BT, but it works. Found out because I took the wrong mouse and my pointer started moving all of a sudden 😀

        Now updating to v24 btw. Excited to see how that performes. Thank you James!

  10. Avatar for khater

    hey james,
    after install the v21, and installing ubuntu desktop . it gets stuck on black screen with the mouse moving regularly

    1. Avatar for khater

      yes, I have used it also same problem..first time it booted and i entered to the desktop then it froze, the second time this problem reappeared

      1. Avatar for Bruce Schneider

        Loaded V22 server and installed desktop, no issue. Tried V22 desktop, changed password but black screen, mouse moves OK.
        Bruce

  11. Avatar for Ricardo

    Hello,
    first of all congrats for the nice work you’ve done!

    second.. is there a way to use this image in RPi 3B+ also? Ive tried, it works fine on RPi 4 but it doesn’t work on old device. I would like to have a image that work on both, any ideas?

    Thank’s

            1. Avatar for Ricardo

              Hi James,
              I saw that you’ve added the bootcoode.bin on v22 changelog, just downloaded and tried the server version and it’s not there, maybe you forget to put the file.
              I leave this comment just for “to-do” remind 😉

  12. Avatar for EmilFR

    Hi James,

    Great work on the Updater.sh script! Finally, my systems are updated to later release (not the latest tho, as they are in “production”, I try to limit until major updates from your side 🙂 )
    Any chance to update cmdline.txt and config.txt instead overwriting them?
    Also, what is the plan for future release after Canonical release full support image for RPi4 ?

    1. Avatar for Weliton

      Canonical sucks, come with new version of apache lib, php etc, some libs cant install in the right way, deprecated, made me back for this version.

    2. Avatar for jamesachambers

      Hey EmilFR, good to hear from you again!

      I’m glad it is helping! I think it’s smart to stay a few releases behind because although the changes from version to version on mine are relatively small and well documented they don’t go through any official “beta” channel or anything like that, they just go right out to the updater and I’d hate to make breaking changes to a production system!

      The bigger reason to stay slightly behind though is the Raspberry Pi kernel. Although tons of changes are fixes/improvements for the Pi 4 I’ve seen some strange stuff come through. One example is they changed the way the Ethernet LEDs behaved for what seems like no reason, then immediately reverted it back the next day. Although this is a pretty harmless and silly example stuff like this gives me pause that it gets through to the main “stable” branch. It also looks like they’ve jumped 2 kernel versions all the way up to 4.19.83 when I just barely built 4.19.81 a couple of days ago!

      As for plans for future releases a lot of it does depend on Canonical. Technically we’ve had our first “official” release for the Pi 4 in Ubuntu 19.10 but I would consider that release a disaster. It doesn’t have working USB! They released their roadmap for it last week here: https://ubuntu.com/blog/roadmap-for-official-support-for-the-raspberry-pi-4 and it’s clear to me that the team working on this know very well it’s broken but are stuck in red tape waiting for it to make it through the “process”. Here’s a quote: “Due to a kernel bug, USB ports are not supported out of the box in the official arm64 image on the 4GB RAM version. Kernel fixes have been identified by Canonical engineers. We are currently testing these fixes extensively. We will push updates within weeks, following successful test completion.”

      The timeframe of fixing the USB ports “within weeks” in their bleeding edge 19.10 distribution (which is only supported until July 2020) does not bode well for the stable LTS 18.04 branch getting all these fixes backported to LTS stable any time soon (to say the least). Indeed, even if you want to run 19.10 you are better off starting from this unofficial image and upgrading to 19.10. Then you will have 19.10 AND working USB ports (as well as all the latest RPI 4 firmware gathered from Raspbian, the firmware-nonfree repository, etc). So I think we are quite a ways off from seeing official 18.04 Pi 4 support.

      All that being said, that still leaves the question, what about when good, working support does finally come? For me, my motivation behind this project has really been to learn Linux inside and out all the way down to the firmware and hardware level, and I have learned a ton since this project started both from just troubleshooting/researching/diagnosing/fixing but also from you guys here in the comments and on GitHub. That has been really enjoyable and has also helped me professionally at work. So for me as long as there’s more things to fix/improve and knowledge to learn I will definitely keep supporting it! Everyone will also have the option at that point of simply switching their kernel/firmware to the official Ubuntu packages if they wish.

      There is also a failsafe built into this project though for people who don’t know/trust me or even if I got hit by a bus or something and essentially disappeared. The build script in the GitHub repository has come a really long way! It is now at the point where if you start with a completely stock freshly installed Ubuntu 18.04.3 virtual machine the build script will completely build the desktop and server image from scratch. It will download all dependencies, all firmware and stock images, literally everything for you without you doing *anything*. I actually build it like this quite often when I destroy my test VM through testing strange fixes and wipe it and start fresh.

      I think this is very important “insurance” for the image project because even a year or two from now you could build the latest kernel and firmware by just running this script in a VM and walking away and let it build! There’s no secret sauce in my head or anything like that in the project at this point that would stop anybody from creating the exact same release images that I am doing now. At this point I am coordinating/managing the project but a lot of issues and fixes are submitted through the GitHub project and it’s very easy to add your own fixes to the “ubuntufixes” script (formerly was in rc.local). So who knows, since a lot of the bugs and issues we are fixing have been in Ubuntu official for *years* this project could continue to evolve way past anything anybody (especially myself) envisioned!

      1. Avatar for EmilFR

        Hi James,

        That sounds very assuring for me knowing that you enjoy and will continue doing this project which has put many of people runs their preferred distro on RPI4.
        I was also surprise reading the news on canonical page that they still struggling with the 4GB memory and USB3 issue, which put me in doubt about their timeline on fully support release.
        And I prefer to use LTS release for my system which coming from you and they are currently running very well and no complaint about that.
        By the way, any comments on the cmdline.txt and config.txt being overwritten during upgrade?

  13. Avatar for Weliton

    Thanks for hear about netplan, I want to ask you about The rpi-eeprom-images, The fix of usb 3.0 that down temperature, already included? Thanks about The image, you working hard

  14. Avatar for Richard

    I just ran Updater.sh and it tells me to “periodically clear out the old kernel”. Is running the typical rm -rf enough/safe? Thanks.

  15. Avatar for Alexis

    Hi, the release v19 includes the eeprom updates for reducing the temperature of the pi4?
    PD: thank you very much for this distro, it work so well and its very very stable.

  16. Avatar for Weliton

    Please, remove the ‘Running Ubuntu Fixes, Fixing Netplan’ no make sense for everyone that want update have to change everytime, i use static ip, lucky i have a hdmi cable, because i use via ssh.

Leave a Comment

Your email address will not be published. Required fields are marked *

Type here..