I've updated my 'isorespin.sh' script to include the following concepts:
- rolling kernels
- target processors
and I've additionally included support for Peppermint OS (an Ubuntu kernel based distro).
The need for rolling kernels is primarily to address the shortfall that existing ISO kernels typically don't have the hardware support required for the latest devices. They ship with the 'kernel of the day' whereas the latest hardware tends to require, well, the latest kernel to fully work. Ubuntu have in part addressed this through their LTS Enablement Stacks. Another alternative to get 'newer' kernels is to enable the proposed repository however there is also a pre-release and test kernel repository together with the unstable repository where mainline kernels are migrated into Ubuntu as well as the upstream mainline kernels.
I've added an option '--rolling-list' to keeping track of what new kernels are available where with options to easily incorporate them when respinning an ISO. I've termed the kernel types as release, proposed, testing and unstable to reflect the repositories they are drawn from as described above. And if it is not abundantly obvious but any kernel other than the formally released ones are not encouraged for anyone needing a stable system or anyone who is not comfortable running into occasional or even frequent breakage.
The other concept I've introduced is respinning an ISO for a target processor. Whilst I've documented how to respin an ISO and what to include it does require reading. So now by including the option of '--atom' or '--apollo' you'll get an ISO that hopefully works on devices with the respective Intel SoCs. The options simply include the flags, packages, scripts and commands that I recommend and mirror the manual invocations of:
For '--atom': -l rtl8723bX_4.12.0_amd64.deb -f linuxium-install-UCM-files.sh -f wrapper-linuxium-install-UCM-files.sh -f linuxium-install-broadcom-drivers.sh -f wrapper-linuxium-install-broadcom-drivers.sh -c wrapper-linuxium-install-UCM-files.sh -c wrapper-linuxium-install-broadcom-drivers.sh
For '--apollo': -b rEFInd
The files are automatically downloaded from the internet if they are not found as part of the command invocation and this should simplify respinning for those looking something quick and easy.
Both these new functionality require that you have the 'curl' package installed prior to running the respin script however the script will check and warn you if it is missing.
The new syntax for 'isorespin.sh' is:
Usage: /usr/local/bin/isorespin.sh [ -h | -v | --rolling-list ]
/usr/local/bin/isorespin.sh -i <ISO> [ [ -u | -k <kernel> ] | -r "<repo> ... " | -p "<pkg> ... " | -l "<pkg.deb> ... " | -f "<file> | <directory> ... " | [ -s <size>MB | GB ] | [ -b GRUB | rEFInd ] | ...
/usr/local/bin/isorespin.sh ... -w <directory> | -d "<pkg> ... " | -e "<pkg> ... " | -c "<cmd> ... " | -o "<file> | <directory> ... " | -g "" | "<kernel boot parameter> ... " | ...
/usr/local/bin/isorespin.sh ... --apollo | --atom | ...
/usr/local/bin/isorespin.sh ... --rolling-release | --rolling-release-hwe | --rolling-release-hwe-edge | --rolling-proposed | --rolling-proposed-hwe | --rolling-proposed-hwe-edge | ...
/usr/local/bin/isorespin.sh ... --rolling-testing | --rolling-testing-hwe | --rolling-testing-hwe-edge | --rolling-unstable | --rolling-unstable-hwe | --rolling-unstable-hwe-edge ]
I've also added Peppermint OS support. This OS uses an Ubuntu kernel and is particularly suitabale for low specification devices like the original Ubuntu Intel Compute Stick which only has 1GB RAM and 8GB storage.
I was able to watch a YouTube video at 1080p via wifi which is pretty impressive for that device.
Mainline kernel v4.13 is progressing with RC2 released this week.
As the opt-in Ubuntu flavours released their Artful 17.10 Alpha 2 ISOs yesterday I've respun the Lubuntu one with "--atom -u" which generated the log:
Script '/usr/local/bin/isorespin.sh' called with '-i lubuntu-17.10-alpha2-desktop-amd64.iso --atom -u' ...
Work directory 'isorespin' used ...
ISO '/home/linuxium/lubuntu-17.10-alpha2-desktop-amd64.iso' respun ...
Bootloader 'GRUB' added ...
Kernel updated with mainline kernel version '4.13.0-041300rc2-generic' ...
Local package '/home/linuxium/isorespin/rtl8723bt_4.12.0_amd64.deb' added ...
File '/home/linuxium/isorespin/linuxium-install-UCM-files.sh' added ...
File '/home/linuxium/isorespin/wrapper-linuxium-install-UCM-files.sh' added ...
File '/home/linuxium/isorespin/linuxium-install-broadcom-drivers.sh' added ...
File '/home/linuxium/isorespin/wrapper-linuxium-install-broadcom-drivers.sh' added ...
Command run ...
# wrapper-linuxium-install-UCM-files.sh
./linuxium-install-UCM-files.sh: Extracting UCM files ...
./linuxium-install-UCM-files.sh: Installing UCM files ...
./linuxium-install-UCM-files.sh: Reloading UCM driver ...
./linuxium-install-UCM-files.sh: Installation of UCM finished
# wrapper-linuxium-install-broadcom-drivers.sh
./linuxium-install-broadcom-drivers.sh: Extracting Broadcom files ...
./linuxium-install-broadcom-drivers.sh: Installing Broadcom files ...
./linuxium-install-broadcom-drivers.sh: Reloading Broadcom driver ...
./linuxium-install-broadcom-drivers.sh: Installing Broadcom bluetooth service ...
Created symlink /etc/systemd/system/multi-user.target.wants/brcmbt.service -> /lib/systemd/system/brcmbt.service.
./linuxium-install-broadcom-drivers.sh: Starting Broadcom bluetooth service ...
Running in chroot, ignoring request.
./linuxium-install-broadcom-drivers.sh: Installation of Broadcom finished
Respun ISO created as 'linuxium-v4.13-rc2-lubuntu-17.10-alpha2-desktop-amd64.iso'.
and the respun ISO can be
I've also respun the Ubuntu 17.04 ISO and added a 200MB persistent partition meaning the ISO which now supports Intel Atom devices with also boot on Intel Apollo devices:
Script '/usr/local/bin/isorespin.sh' called with '-i ubuntu-17.04-desktop-amd64.iso -u --atom -s 200MB' ...
Work directory 'isorespin' used ...
ISO '/home/linuxium/ubuntu-17.04-desktop-amd64.iso' respun ...
Kernel boot parameters 'persistent' added ...
Bootmanager 'rEFInd' added ...
Kernel updated with mainline kernel version '4.13.0-041300rc2-generic' ...
Local package '/home/linuxium/isorespin/rtl8723bs_4.12.0_amd64.deb' added ...
File '/home/linuxium/isorespin/linuxium-install-UCM-files.sh' added ...
File '/home/linuxium/isorespin/wrapper-linuxium-install-UCM-files.sh' added ...
File '/home/linuxium/isorespin/linuxium-install-broadcom-drivers.sh' added ...
File '/home/linuxium/isorespin/wrapper-linuxium-install-broadcom-drivers.sh' added ...
Command run ...
# wrapper-linuxium-install-UCM-files.sh
./linuxium-install-UCM-files.sh: Extracting UCM files ...
./linuxium-install-UCM-files.sh: Installing UCM files ...
./linuxium-install-UCM-files.sh: Reloading UCM driver ...
./linuxium-install-UCM-files.sh: Installation of UCM finished
# wrapper-linuxium-install-broadcom-drivers.sh
./linuxium-install-broadcom-drivers.sh: Extracting Broadcom files ...
./linuxium-install-broadcom-drivers.sh: Installing Broadcom files ...
./linuxium-install-broadcom-drivers.sh: Reloading Broadcom driver ...
./linuxium-install-broadcom-drivers.sh: Installing Broadcom bluetooth service ...
Created symlink /etc/systemd/system/multi-user.target.wants/brcmbt.service -> /lib/systemd/system/brcmbt.service.
./linuxium-install-broadcom-drivers.sh: Starting Broadcom bluetooth service ...
Running in chroot, ignoring request.
./linuxium-install-broadcom-drivers.sh: Installation of Broadcom finished
Persistence partition of '200MB' added ...
Respun ISO created as 'linuxium-persistence-v4.13-rc2-ubuntu-17.04-desktop-amd64.iso'.
and the respun ISO can be
Anyone interested in running an ISO shown in the opening image can just respin the latest daily Ubuntu release with '--rolling-unstable --atom' options. Simple!