Tuesday 31 December 2019

New features in 'isorespin.sh'

Canonical publishing new releases of Ubuntu means new release code names, version numbers and updated EOL schedules for existing releases. In turn this drives new versions of 'isorespin.sh' which include support for these latest releases together with any idiosyncrasies of the resultant ISOs that need specific coding work arounds. Inevitably new versions are also required for bug fixes and also as opportunities arise for general improvements.

One such opportunity came as a result of users wanting to respin Ubuntu-Studio ISOs which earlier were not supported as this distro used 'lowlatency' kernels rather than the standard 'generic' kernel. Although adding support for Ubuntu-Studio was relatively easy it did require a change to how kernel packages were handled in general.

In turn this prompted a complete rewrite of how 'rolling' kernels were processed and included important efficiency improvements together with support for the installation of meta kernel packages where appropriate rather than specific kernel versions facilitating easier ongoing upgrades post ISO installation.

Finally three new options ('--debug', '--interactive' and '--dist-upgrade') have been added which improve the overall functionality of 'isorespin.sh'. These have resulted in a rework of the 'usage' text:

linuxium@LINUXIUM:~$ isorespin.sh --help
Usage: /usr/local/bin/isorespin.sh [ -h | -v | --check | --rolling-list ]
       /usr/local/bin/isorespin.sh -i <ISO> [ [ -u | -k <kernel> ] | [ --dist-upgrade | --upgrade ] | ...
       /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 ] | ...
       /usr/local/bin/isorespin.sh ... -b [ GRUB | GRUB-32 | GRUB-64 | rEFInd | Linuxium ] | -g [ "" | "<kernel boot parameter> ... " ] | -s [ <size>MB | <size>GB ] | -w <directory> | ...
       /usr/local/bin/isorespin.sh ... --key "<repo> ... " | -r "<repo> ... " | -p "<pkg> ... " | -l "<pkg.deb> ... " | -e "<pkg> ... " | -d "<pkg> ... " | -f [ "<file> | <directory> ... " ] | ...
       /usr/local/bin/isorespin.sh ... -c "<cmd> ... " | -o [ "<file> | <directory> ... " ] | -t <template configuration file> | --apollo | --atom | --interactive | --debug ]

The first new option is '--debug'. Most of the options don't include their interaction with the ISO when being executed either on the screen or in the log file. For example when adding the package 'ethtool' the log merely includes a line stating that the package has been added:

The '--debug' option redirects the output from executing the commands behind an option to the log file. Using the same example the complete output from installing the package is now included in the log file:

While including the output from successful option execution may be interesting the key benefit of using '--debug' is when a command run as part of an option fails. Having the full output including the actual error messages in the log file is invaluable for debugging respinning issues.

The second new option has been included as sometimes trying to respin an ISO using complex option combinations fails as typically the consequences of running certain commands or their effect on the ISO are not fully known or easily predictable. In these circumstances respinning interactively would be easier and hence the new option '--interactive'. This option simply drops you into a 'root' shell where you can manually enter commands to modify the ISO:

Simply press 'control-D' when finished to return to respinning the ISO. This option uses the 'script' command to record the interactive session so that it can be included in the log file in full if the '--debug' option is used in conjunction or manipulated to just show a summary of the commands entered for inclusion into the default log file. This command summary is also included in the 'README.isorespin' file that is added to the respun ISO. As a result 'isorespin.sh' now depends on the package 'bsdutils' being installed which should already be the case in most situations. Because 'script' makes a typescript of everything displayed on the terminal it also includes temporary progress text together with cursor movement control codes and colour control codes which may become visible depending on how the log file is viewed. This may not be ideal in every circumstance however it is a compromise believed to be worthwhile considering the functionality gained.

Using the same example as earlier but this time installing the 'ethtool' package interactively having first performed an ''apt update':

the 'cat' command displays the log file created using the '--debug' option without distractions:

Because when performing the 'apt update' command various 'source' files are needed to be downloaded which result in progress text temporarily being displayed on the screen, when the command 'more' is used to display the log file it interprets the 'script' text in the log file differently and shows this colour-highlighted progress text:

Using the command 'view' to examine the log file shows all the text and all the control characters so consequently may not be the best way to view the log file:

For this particular example the summary of the '--interactive' commands that is also included in README.isorespin:

is similar to how this '--interactive' option is documented in the default log file without an additional '--debug' option:

The final new option is '--dist-upgrade'. This is similar to the '--upgrade' option and is best described by the 'man' entry for the commands used by the two options:

upgrade is used to install the newest versions of all packages currently installed on the system from the sources enumerated in /etc/apt/sources.list. Packages currently installed with new versions available are retrieved and upgraded; under no circumstances are currently installed packages removed, or packages not already installed retrieved and installed. New versions of currently installed packages that cannot be upgraded without changing the install status of another package will be left at their current version. ...

dist-upgrade in addition to performing the function of upgrade, also intelligently handles changing dependencies with new versions of packages; apt-get has a "smart" conflict resolution system, and it will attempt to upgrade the most important packages at the expense of less important ones if necessary. The dist-upgrade command may therefore remove some packages. The /etc/apt/sources.list file contains a list of locations from which to retrieve desired package files. ...
To illustrate the difference we can look at respinning an ISO (Ubuntu 18.04.3) first with the '--upgrade' option together with the '--debug' option which shows that the kernel meta packages are held back:

However using the '--dist-upgrade' option with the '--debug' options shows that new kernel packages will be installed as a result of upgrading the kernel meta packages:

This example again highlights the usefulness of the '--debug' option in understanding what happens as part of respinning an ISO.

Please donate if you find the script useful using the following link http://goo.gl/nXWSGf.

Saturday 28 December 2019

Mini PC Reviews

For some time now I've been reviewing mini PCs and in particular comparing their performance in both Windows and Ubuntu against similarly available devices.

My earliest reviews were posted here on my blog, later ones were published on CNX SOFTWARE and my most recent ones are published on Liliputing where they can be found by clicking on the URL https://liliputing.com/author/linuxium/.

In order to simplify searching for specific mini PC reviews or performance comparisons I've created a chronological list of all the most relevant posts below:

17 June 2024: ACEMAGIC F2A Review: Intel Meteor Lake Mini PC

10 June 2024: Pironman 5 Review: This case turns the Raspberry Pi into a mini-tower PC with enhanced cooling, RGB lighting, and NVMe support

3 May 2024: AYANEO Retro Mini PC AM02 Review: A powerful, versatile mini PC (that also looks like a vintage game console

6 April 2024: MeLE Quieter 4C Review (a pocket-sized fanless PC with Intel N100)

23 March 2024: GEEKOM A7 Review: This AMD Ryzen 7040HS series mini PC hits the sweet spot

22 February 2024: GEEKOM Mini Air12 Review: An affordable Intel N100 mini PC with DDR5 memory and PCIe Gen 3 storage

15 January 2024: AOOSTAR R7 Review: An affordable 2-bay DIY NAS with Ryzen 7 5700U and PCIe NVMe support

17 December 2023: ACEMAGIC TANK03 Review: Tiny gaming PC with up to Core i9-12900H and NVIDIA RTX 3080M

6 December 2023: iKOOLCORE R2 Review: A 3 inch mini PC with four 2.5 GbE Ethernet ports and up to Intel Core i3-N300

29 November 2023: Simply NUC Onyx NUC13OXv9 Review: 4×4 Mini PC with Intel Core i9-13900H

28 October 2023: GEEKOM Mini IT13 Review: 4×4 mini PC with an Intel Core i9-13900H processor

29 August 2023: MeLE Overclock 3C review: Pocket-sized mini PC with an Intel Celeron N5095 Jasper Lake processor

16 June 2023: Morefine M600 6900HX review – A Ryzen 9 6900HX mini PC tested with Windows 11 and Ubuntu 23.04

8 May 2023: Beelink SER6 Pro 7735HS Review – Windows 11 benchmarks, USB4 port tested with NVIDIA RTX 3050 eGPU’s

29 Mar 2023: iKOOLCORE R1 review – A quad 2.5GbE mini PC tested with Windows 11, Ubuntu 22.04, Proxmox

18 Mar 2023: Weibu N10 Core i3-N305 mini PC review with Windows 11 and Ubuntu 22.04

5 Mar 2023: Beelink SER6 Pro mini PC review – Windows 11, Ubuntu 22.04, and USB4

20 Feb 2023: ODROID-H3+ SBC review with “Unlimited Performance” mode and 2.5GbE Net Card

6 Dec 2022: MeLE PCG02 Pro Review – A Fanless Intel Celeron J4125 / N5105 mini PC with an ultra-compact form factor

10 Nov 2022: Weibu N10 Review – An OEM Mini PC tested with Ubuntu 22.04, Windows 11

6 Nov 2022: Beelink SEi12 Alder Lake mini PC review with Windows 11, Ubuntu 22.04

15 Sep 2022: MeLE Quieter HD3Q Review – A fanless mini PC with dual-channel memory, 2.5-inch SATA bay

7 Sep 2022: Beelink SEi11 Pro Review – An Intel Core i5-11320H mini PC tested with Windows 11, Ubuntu 22.04

30 Aug 2022: MeLE Quieter3C fanless mini PC review with Ubuntu 22.04, Windows 11

22 Aug 2022: BMAX B3 Plus Review – An Intel Celeron N5095 mini PC with two Gigabit Ethernet ports

13 Aug 2022: Beelink U59 Pro review – A Jasper Lake mini PC with faster GPU performance

10 Aug 2022: Beelink SER5 Review – An AMD Ryzen 5 5600H mini PC tested with Windows 11, Ubuntu 22.04

9 Jul 2022: GEEKOM MiniAir 11 Review – A Jasper Lake Mini PC with plenty of ports

30 Jun 2022: Beelink MINI S Review – A Low-cost mini PC tested with Ubuntu 22.04 and Windows 11

17 Jun 2022: Beelink SER3 & SEi8 mini PCs review – Part 2: Ubuntu 22.04

3 Jun 2022: MeLE Quieter3Q Review – Ultra-thin fanless mini PC tested with Windows 11, Ubuntu 22.04

24 May 2022: Beelink SEi8/SER3 review – Intel Core i3-8109U and AMD Ryzen 3 3200U mini PCs face off in Windows 11 (part 1)

26 Apr 2022: Morefine S500+ Review – An AMD Ryzen 7 5700U mini PC tested with Windows 11, Ubuntu 20.04

23 Mar 2022: Higole F7G Plus Review – A affordable rugged tablet tested with Ubuntu 20.04 & Windows 11

17 Feb 2022: Beelink GTR5 Review – An AMD Ryzen 9 mini PC tested with Windows 11, Ubuntu 20.04

4 Feb 2022: Beelink GTi11 modding – PCIe Gen 4.0 M.2 slot, tweaking power limits, and eGPU

26 Dec 2021: Beelink GTi11 review – Part 2: Ubuntu 20.04 on an Intel Core i5-1135G7 mini PC

22 Dec 2021: Beelink GTi11 Review – Part 1: Tiger Lake mini PC with Windows 11

23 Aug 2021: LIVA Q1L Review – pfSense, Ubuntu 20.04, Windows 10 tested on a dual Ethernet “Ultra Tiny PC”

16 Jun 2021: GMK NucBox Review – A palm-sized Windows 10 mini PC

1 Jun 2021: MeLE Quieter2 Review – Windows 10, Ubuntu 20.04, and eGPU

19 May 2021: Beelink GKmini Review – An Intel Celeron J4125 mini PC reviewed with Windows 10 Pro, Ubuntu 20.04

10 Apr 2021: Virtualization Performance on an Intel NUC 11 Enthusiast Phantom Canyon NUC11PHKi7C

2 Apr 2021: Linux and Memory Performance on an Intel NUC 11 Enthusiast Phantom Canyon NUC11PHKi7C

22 Mar 2021: Windows Performance on an Intel NUC 11 Enthusiast Phantom Canyon NUC11PHKi7C

14 Mar 2021: Using an eGPU with a mini PC

9 Feb 2021: Beelink SEI Review – A Core i3-10110U Mini PC Tested with Windows and Ubuntu

27 Oct 2020: MINISFORUM EliteMini H31G Coffee Lake Mini PC Review with Windows & Linux

14 Oct 2020: MINISFORUM X35G review – An Intel Core i3-1005G1 Mini PC tested with Windows & Ubuntu

30 Jan 2020: Beelink Gemini T45 Pentium N4200 Mini PC Review

15 Jan 2020: Introducing the Intel NUC 9 Compute Elements, Mini PC Kits, and 3rd-Party Ecosystem

3 Jan 2020: Beelink BT4 Mini PC Review – Slow, Buggy, Fan-cooled, and Overheating

21 Dec 2019: Beelink T45 Review with Windows and Linux, and Tweaking BIOS Power Limits

14 Dec 2019: Ubuntu 18.04 on Beelink Gemini J45 Mini PC (Fix and Review)

12 Dec 2019: A Look at Ubuntu on MINIX NEO G41V-4 and J50C-4 Mini PCs

28 Sep 2019: Beelink J45 Mini PC Review – Windows 10 Works as Expected, but Linux is Unstable

13 Sep 2019: CHUWI GBOX Pro Review – Intel Atom x7-E3950 mini PC Tested with Windows 10 & Ubuntu 18.04

26 Jul 2019: Intel Mini PCs Linux Performance Comparison (original posted here)

12 Jul 2019: Beelink L55 Review – An Intel Core i3-5005U Mini PC Tested with Windows 10 & Ubuntu 18.04

5 Feb 2019: LIVA Q2 Review – ECS Micro PC Tested with Windows 10 and Ubuntu 18.10

28 Jan 2019: Pepper Jobs GLK-UC2X Mini PC Review with Windows 10 and Ubuntu 18.10

15 Oct 2018: TopJoy Falcon Review – A Windows 10 Mini Laptop (Prototype)

11 Oct 2018: Beelink X55 Review – Part 2, Take 2: New Drivers and BIOS

5 Oct 2018: Beelink X55 Review – An Intel Gemini Lake mini PC Tested with Windows 10 and Linux

15 Sep 2018: Beelink X45 Mini PC Review with Windows 10 and Ubuntu 16.04/18.04

16 May 2018: Intel NUC Kit NUC7PJYH Review – An Intel Gemini Lake Pentium Silver J5005 Barebone Mini PC

9 May 2018: Vorke V5 Plus Kaby Lake Mini PC Review with Windows 10 and Ubuntu 18.04

14 Mar 2018: Intel NUC7CJYSAL “June Canyon” Gemini Lake NUC Mini PC Review with Windows 10 and Ubuntu

6 Feb 2018: Vorke V1 Plus Celeron J3455 Mini PC Review with Windows and Ubuntu

28 Jan 2018: Intel Compute Cards Review – Windows 10 and Ubuntu 17.04 on CD1C64GK, CD1P64GK and CD1M3128MK

11 Jan 2018: MINIX NEO N42C-4 Pro Review – Part 3: Ubuntu / Linux

31 Dec 2017: A brief look at the MINIX NEO N42C-4 running Windows 10 Pro

17 Dec 2017: Zotac ZBOX PI225 Review – SSD-Like Mini PC Tested with Windows 10 & Ubuntu

8 Dec 2017: Azulle Byte3 Mini PC Review – Windows 10, Linux Support, Benchmarks, and Video Playback

20 Nov 2017: BBen MN10 TV Stick Review – Windows 10, Ubuntu 17.04, Benchmarks, and Kodi

29 Sep 2017: First look at an Intel Compute Card and Dock

25 Aug 2017: Beelink AP34 Ultimate Fanless mini PC Review with Windows 10 and Ubuntu

15 Aug 2017: ECDREAM A9 Apollo Lake HDMI “TV Stick” Review with Windows 10 and Ubuntu 17.04

24 Apr 2017: Beelink AP42 Apollo Lake mini PC Linux Review with Ubuntu, KDE Neon, Elementary OS….

30 Mar 2016: Review of Intel Compute Stick (STK2M3W64CC): Intel Core m3 M3-6Y30 CPU with Pre-Installed Windows 10 (original posted here)

25 Mar 2016: Performance on Intel Compute Sticks running Ubuntu

15 Mar 2016: First look at the STK2M3W64CC

8 Mar 2016: MINIX NGC-1

6 Mar 2016: Introducing the MK802V

6 Mar 2016: A perfect mini PC? (PQ Labs iStick A350-SSD)

29 Feb 2016: ASUS Chromebit CS10 (Rockchip RK3288C CPU with Chrome OS)

11 Feb 2016: Intel Compute Stick (STK1AW32SC)

2 Jan 2015: Linux Benchmarks – Rockchip RK3288 vs Exynos 5422 vs AllWinner A80 vs Intel Atom Z3735F

15 Jun 2013: Ubuntu 12.04 Now Boots on Rockchip RK3188 mini PCs (T428, MK908, Rikomagic MK802 IV…)

27 Mar 2013: Mini PCs (MK802+, UG802, GK802 & iStick A200) Linux Performance Comparison

And as something related although now dated there was also:

17 Feb 2016: LPX Episode 2: Is that a desktop computer in your pocket?