UbuntuMate 18.04.2 on PINN (NOOBS)

I am the author PINN, my fork of NOOBS that allows easy installation of many OSes (currently over 60 different OS variants) on the Raspberry Pi.
(See https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=142574 and https://github.com/procount/pinn/blob/master/README_PINN.md)
It has many more features than NOOBS such as: reinstallation/replacement of individual OSes, backup and restore of OSes, disk checking and recovery features etc. that make it more of an OS administration tool.

I previously made UbuntuMate 16.04 available for use with PINN, and I have now just completed adapting 18.04.2 beta1. This will be soon be made available in the next version of PINN under the testing category until it comes out of beta, when it will revert to the General category.

@Wimpy - The main reason ubuntuMate 18.04 requires the next version of PINN is the way this version handles its partitions, relying on the Label names of the partitions for reference. PINN is a multi-OS installer and boot manager, and its recent versions allow multiple copies of the same OS to be installed using its ProjectSpaces features. However, because of 18.04's use of partition labels, I have had to exclude 18.04 from being installed multiple times as I imagine the wrong partitions will end up being linked to, or shared between the 2 instances.

I imagine this use of labels is because of the extensive configuration that UbunutuMate does at startup and using labels makes it easy to find the other partitions, assuming they are unique. But I don't remember this being a problem with 16.04. Is there any specific reason for this change?

Due to the relocation of the OS partitions in a multi-boot environment, PINN updates a few files on installation (like cmdline.txt and etc/fstab). Typically for an SD card installation it will use the /dev/mmcblk0p6 notation and for installation to a USB device it will use the PARTUUID=123456-06 notation. For 18.04, PINN needs to maintain its use of label references.

I don't know if there is an easy adaption for this, or whether it is indeed necessary, since I imagine users who install UbuntuMate will only install one version for use as their main OS, but I'm just highlighting the issue.

I notice uboot.bin is present on the initial image, and some other uboot files get created after initial configuration. Are these actually used in the RPi environment, or are they just hangovers from the configuration process being suitable for many other targets?


1 Like

@procount What. A. Coincidence! :smile:

I was reading about PINN earlier this week so that I could produce appropriate boot and root tarballs for PINN. Thanks for making a start on this :slight_smile: If you've got any tips for me the create what you need, do let me know!

I switched to using labels to follow the convention used in the new Ubuntu server images, and it also made USB booting work without any manual tinkering by users. Sorry if this has caused you a headache.

As for uboot.bin, this is installed by flash-kernel which is used to configure initrd for the custom Raspberry Pi kernel used by Ubuntu. As it happens, I don't use uboot in 18.04 but instead, use the traditional boot loader because uboot has different binaries for Pi 2 and Pi 3. That would require I make/publish multiple images and something I want to avoid.

I'm working on beta2 images today, I'll see what I can do to clean up uboot cruft from the image. That said, when a kernel update is applied flash-kernel will deposit uboot in the appropriate places but this will not be an issue for PINN I think?

Thanks for getting in touch, I am keep to make sure Ubuntu MATE 18.04works well with PINN :slight_smile:

1 Like

That's great to hear! :smile:

I have a couple of articles on how to create a "Custom OS" for PINN:
One in the README_PINN.md
https://github.com/procount/pinn/blob/master/README_PINN.md#how-to-create-a-custom-os-version and another on my Wiki which is more of a tutorial.
You can find the result of my first conversion on sourceforge and use that for reference:

I am in the process of adding support for sha512 checksums to the tarballs, so there will be some additional work on top of the above links. See https://github.com/procount/pinn/wiki/JSON-fields for some hints prior to this being documented fully.

I kept the same slides that I used for 16.04, so feel free to update them to advertise the latest features and benefits of 18.04

Using labels is not a problem, it just causes the restriction that only one copy of UbuntuMate18.04 can be installed on the same drive. I just added a small test to make sure such OSes are not installed multiple times to avoid them referencing the wrong ones.

When the OS is installed, a custom partition_setup.sh script is used to adapt any references to the actual partitions used, so you can adapt this as you need. Raspbian uses partuuids to enable the OS to be installed on both USB and SD card.

Thank you for not using UBoot! AFAIK, it expects boot information to be found on partition 1, so I often end up taking it out to make an OS suitable for PINN. I don't think it adds anything when used on the RPi, but I appreciate it is useful for supporting other SBCs. The "cruft" is not an issue for PINN as it is not used. It was just a note.

Thanks for your support. If you need any help adapting for PINN (or want a beta of the next version for testing) just let me know. :smile:


I've got a few jobs queued up at the moment, but I will work on creating what you need for PINN. I'll point you at the code when I start on it :slight_smile:

No worries. Whenever you're ready. I'm still in testing phase for the next version of PINN.


Looking forward to updating my pi. Is there any update on this project? Thank you.

Hi Martin,
Any progress on this? Some users are asking me for updates

I am just checking if any progress was made with ubuntu and pinn,
I have extracted the boot and root across to empty project spaces, and now I believe cmdline.txt is replaced on ubuntu server images