Archive
Legacy technical documentation
How to build the OS2borgerPC Kiosk ISO image (x64)
In order to build the ISO image, use a Ubuntu 20.04 Server Edition installation CD and basically follow the instructions on this page:
https://gist.github.com/s3rj1k/55b10cd20f31542046018fcce32f103e
For more info about autoinstall, see this page:
https://ubuntu.com/server/docs/install/autoinstall
Basically, go to the directory where you wish to build the ISO, get the installation ISO and unpack it:
wget http://releases.ubuntu.com/focal/ubuntu-20.04.1-live-server-amd64.iso
# Extract ISO:
mkdir iso
7z x ubuntu-20.04.1-live-server-amd64.iso -oiso
rm -rf 'iso/[BOOT]/'
cp -r /path/to/image/ubuntu-image/* iso
md5sum iso/.disk/info > iso/md5sum.txt
sed -i 's|iso/|./|g' iso/md5sum.txt
Now you can make any modifications you want, e.g. to the install process in
nocloud/user-data or to the boot instructions in isolinux or
boot/grub.
Special customizations are best handled through late_commands in
nocloud/user-data.
If you need to include extra packages in the ISO, one way to do it is to
include the packages (.deb files) in a bespoke directory in the ISO
and install them directly with dpkg -i, either in a late_command
or using a script.
The wifi_setup script currently expect such packages to exist in the
directory scripts/wifi - as we need to be able to set up wifi
without a network connection, while we should, at the same time, never
enable wifi unless we know that it’s necessary.
Alternatively, you could make them officially part of the image by
adding them in pool/extras. This, however, requires you to unsquash
the embedded squashfs file system, update the package lists,
re-squash it and sign it. You must also compile a new version of the
ubuntu-keyring package to include your own GPG signing key.
If you need to do this, you can find instructions on doing so here:
https://help.ubuntu.com/community/InstallCDCustomization
If you did add debs to pool/extras, please note:
To generate a new
filesystem.squashfs, you must first unpack it with unsquashfs - the directory you get from that is where you put the updated keyrings.Delete the old filesystem.squashfs before rebuilding it with mksquashfs, otherwise your changes are written to new paths with “_1” appended.
Do not worry about
dpkg-scanpackages, just follow the instructions forapt-ftparchiveand you’re good.
Once you’re ready to create the ISO image for installation, run:
xorriso -as mkisofs -r -V os2borgerpc_kiosk -o os2borgerpc_kiosk-1.0.0rc1.iso -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat -isohybrid-apm-hfsplus -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin iso/boot iso
where “os2borgerpc_kiosk” and “os2borgerpc_kiosk-1.0.0rc1.iso” should be replaced by what you wish the tag and filename of the ISO image to be.
You’ll need to install the necessary dependencies to create the ISO - on Ubuntu 20.04, it can be done with:
sudo apt-get install xorriso isolinux