Sunday, 22 April 2018

A summary of HDR usages and dependencies on Intel Graphics

When purchasing a mini PC for use as a HTPC it is useful to know whether HDR (High Dynamic Range) is supported by the embedded Intel graphics. A recent document released by Intel provides a useful summary table for platforms running Windows 10:


The full document is published here and also includes some additional references useful when purchasing, configuring or building an HDR-capable PC with Intel graphics.

Please donate if you find my work helpful using the following link http://goo.gl/nXWSGf.



Friday, 6 April 2018

Fourth look at Ubuntu 18.04 LTS (Bionic Beaver) Beta 2


Canonical have now made available the Beta 2 (Final Beta) of the upcoming Ubuntu 18.04 LTS (Bionic Beaver) release.

I've respun the ISO using my 'isorespin.sh' script and created ISOs suitable for Intel Atom and Intel Apollo Lake devices:

  • Atom (-i ubuntu-18.04-beta2-desktop-amd64.iso --atom)
  • Apollo (-i ubuntu-18.04-beta2-desktop-amd64.iso --apollo)

The release announcement provides a link to the release notes together with highlighting that "The beta images are known to be reasonably free of showstopper CDbuild or installer bugs, while representing a very recent snapshot of 18.04 that should be representative of the features intended to ship with the final release expected on April 26th, 2018". Note that two of the documented bugs with the ISO include slow booting and issues with reboot.

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

Sunday, 1 April 2018

An initial look at Plasma Mobile


Plasma Mobile is the mobile version of the desktop Plasma user interface and is focused on mobile devices like phones. Users of Kubuntu and KDE neon will already be familiar with Plasma as they are well established as distros for PCs and laptops. However the simplicity of Plasma Mobile may make it ideal for Mini PCs especially as an alternative to Android as it not only bears a passing resemblance but has the significant advantage that standard desktop applications can be installed:


It is currently in very early development however an amd64-compatible ISO for Intel-based devices based on KDE Neon has already been released. Although it is 'Ubuntu-based' it runs a stripped down 'rootfs' that meant the ISO couldn't be respun for Intel Atom devices. I've modified the scripts behind the '--atom' option to now support the ISO and it can now be respun using my 'isorespin.sh' script using the command:

isorespin.sh -i neon-pm-devedition-gitunstable-20180305-1543-amd64.iso --atom

Update: Since I tested respinning the ISO one of the repositories included in the ISO ('pm.list') points to an unresponsive URL ('http://neon.plasma-mobile.org') which causes 'apt update' to hang. A workaround is available by cloning and modifying a local version of the respin script using the following command:

sudo sed '
2954s@$@ \&\& sudo mv iso-chroot/etc/apt/sources.list.d/pm.list iso-chroot/etc/apt/sources.list.d/pm.list.linuxium@;
2970s@^@# @;
2973s@\([[:space:]]\+\)@\1apt-get install -y /usr/src/\\\${PACKAGE} > .package.log 2>\&1 # @;
3010s@$@ \&\& sudo mv iso-chroot/etc/apt/sources.list.d/pm.list.linuxium iso-chroot/etc/apt/sources.list.d/pm.list@
' /usr/local/bin/isorespin.sh > isorespin.sh && chmod 755 isorespin.sh

and then respin with the command:

./isorespin.sh -i neon-pm-devedition-gitunstable-20180305-1543-amd64.iso --atom

Further Update: As the ISO now respins without issue because the previous problem URL has been resolved I've respun the ISO using my 'isorespin.sh' script and created an ISO suitable for Intel Atom devices:

  • Atom (-i neon-pm-devedition-gitunstable-20180305-1543-amd64.iso --atom)

It is worth having a look at and keeping an eye on as it could become something special.

Please donate if you find my work and ISO helpful using the following link http://goo.gl/nXWSGf.



Latest improvements to 'isorespin.sh'


Ever wondered whether you are running the latest version of 'isorespin.sh'? I've now added a '--check' option that does exactly that. Starting with version 8.1.4 when you check and you are on the latest version you will get a message similar to:

linuxium@LINUXIUMONE:~$ isorespin.sh --check
/usr/local/bin/isorespin.sh: Version: 8.1.4 is the latest version.
linuxium@LINUXIUMONE:~$ 

otherwise you will get a message similar to:

linuxium@LINUXIUMONE:~$ ./isorespin.sh --check
./isorespin.sh: Version: 8.1.3 should be upgraded as 8.1.4 is the latest version.
linuxium@LINUXIUMONE:~$ 

indicating that you should download the latest version from 'isorespin.sh'.

I've also added some additional checks to prevent common issues that have previously been reported.

Firstly you cannot respin an ISO on an OS that doesn't support 'systemd' if you want to use either the '--apollo' or the '-b Linuxium' options. Also you cannot respin an ISO if it doesn't support 'systemd' when using the '--atom', '--apollo' or '-b Linuxium' options:

linuxium@LINUXIUMONE:~$ isorespin.sh -i ubuntu-14.04.5-desktop-amd64.iso --atom
Extracting ISO ...
Parallel unsquashfs: Using 4 processors
166333 inodes (175651 blocks) to write

[===========================================================/] 175651/175651 100%

created 105294 files
created 16104 directories
created 60921 symlinks
created 82 devices
created 0 fifos
/usr/local/bin/isorespin.sh: The '--atom' option is only compatible with an ISO that uses 'systemd'.
linuxium@LINUXIUMONE:~$ 

Secondly you cannot respin an ISO that is EOL (End Of Life):

linuxium@LINUXIUMONE:~$ isorespin.sh -i ubuntu-17.04-desktop-amd64.iso --atom
Extracting ISO ...
/usr/local/bin/isorespin.sh: ISO is EOL.
linuxium@LINUXIUMONE:~$ 

Finally you cannot run the script on a 32-bit OS:

linuxium@LINUXIUMONE:~$ isorespin.sh -i ubuntu-17.10.1-desktop-amd64.iso --apollo
/usr/local/bin/isorespin.sh: This script can only be run on a 64-bit (amd64 or x86_64) OS.
linuxium@LINUXIUMONE:~$

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


Sunday, 18 March 2018

Fixing broken HDMI audio (again)


Back in October I noticed that I had no HDMI audio when running kernels starting from v4.12.0 on an Intel Compute Stick model STK1AW32SC (Cherry Trail) and wrote about how to fix this.

Unfortunately that fix no longer works on Ubuntu's latest ISO: Ubuntu 16.04.4. So I've spent time looking into it and created a script to fix HDMI audio though 'sponsored community work'.

The fix is sponsored by storeanalytics.de and can be downloaded from here.

To use the script to fix a running system first download it and make sure it is executable ('chmod 700 fix-STK1A32SC-and-STK1AW32SC-hdmilpeaudio.sh') then run the script it as root ('sudo ./fix-STK1A32SC-and-STK1AW32SC-hdmilpeaudio.sh'). Finally stop PulseAudio (pulseaudio -k) and restart it (pulseaudio --start) to complete the fix.

Now playing an audio file on the default device with 'aplay /usr/share/sounds/alsa/Front_Left.wav' works together with sound in Chrome and other applications.

The advantage of the fix being a script is that you can use it when respinning an ISO with 'isorespin.sh' (using the '-f' option) and automatically fix HDMI audio in the respun ISO for use on this device.

Please donate if you find my work helpful using the following link http://goo.gl/nXWSGf.

Saturday, 17 March 2018

Third look at Ubuntu 18.04 or Bionic: Beta 1 Pre-Release


As part of preparing for a new release the Ubuntu Release Team issue pre-releases in line with a Release Schedule. For Ubuntu 18.04 codenamed Bionic Beaver the Release Schedule looks like this.

Not all Ubuntu flavours participate in the Alpha and Beta pre-releases however last week those that did issued their Beta 1 pre-releases.

Ubuntu Mate is a participant so I've respun their ISO using my 'isorespin.sh' script and created ISOs suitable for Intel Atom and Intel Apollo Lake devices:

  • Atom (-i ubuntu-mate-18.04-beta1-desktop-amd64.iso --atom)
  • Apollo (-i ubuntu-mate-18.04-beta1-desktop-amd64.iso --apollo)

Don't forget to try out the 'Mutiny' panel layout if you want a similar look and feel to Unity by selecting it using 'MATE Tweak':


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

Saturday, 3 March 2018

Ubuntu 16.04.4 for Intel Atom and Apollo Lake devices


Canonical have released the fourth point release of Ubuntu 16.04 Long-Term Support (LTS) as Ubuntu 16.06.4. This release is built with the hardware enablement stack using the Ubuntu 4.13.0-36.40~16.04.1 kernel and is slated as being suitable for use on newer hardware with additional information in the release announcement and in the release notes.

However as it may not boot on some of the newer Intel based devices I've respun the ISO using my 'isorespin.sh' script and created ISOs suitable for Intel Atom and Intel Apollo Lake:

  • Atom (-i ubuntu-16.04.4-desktop-amd64.iso --atom)
  • Apollo (-i ubuntu-16.04.4-desktop-amd64.iso --apollo)

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

Sunday, 25 February 2018

Second look at Ubuntu 18.04 or Bionic


The latest daily builds of Ubuntu 18.04 or Bionic Beaver now includes the newly Ubuntuised v4.15 kernel (Ubuntu 4.15.0-10.11) which includes config support to keep sound and BT working on Intel Atom devices now that serial device support is enabled through ACPI.

I've respun the 20180223 build using my 'isorespin.sh' script and created ISOs suitable for Intel Atom and Intel Apollo Lake:

  • Atom (-i bionic-desktop-amd64.iso --atom)
  • Apollo (-i bionic-desktop-amd64.iso --apollo)

What is arguably equally interesting is that Canonical asked the Ubuntu community to make it a new GTK theme based on Adwaita (the default GNOME theme) and inspired by Ambiance (the default Ubuntu theme). OMG! Ubuntu first posted about this and has now posted instructions on how to try the new theme.

I thought it would be fun to try this so I've respun the Bionic daily according to the above instructions and I've also included the wallpaper mentioned in the post. Because you need to select the ‘Communitheme’ session from the session selector on the login screen:


I included creating a user 'linuxium' with the password 'p' when respinning the ISO:

isorespin.sh -i bionic-desktop-amd64.iso --apollo \
-r ppa:communitheme/ppa -p ubuntu-communitheme-session \
-f Abstract-Geometric_1_1920x1080_wallpaper_-_1920x1080_Wallpapers.jpg \
-c "sed -i '/\[org.gnome.desktop.background\]/{n;s?/usr/share/backgrounds/warty-final-ubuntu.png?/usr/local/bin/Abstract-Geometric_1_1920x1080_wallpaper_-_1920x1080_Wallpapers.jpg?}' /usr/share/glib-2.0/schemas/10_ubuntu-settings.gschema.override" \
-c "sed -i 's/#  AutomaticLoginEnable = true/   AutomaticLoginEnable = false/' /etc/gdm3/custom.conf" \
-c "useradd -c linuxium -d /home/linuxium -m -g users -s /bin/bash linuxium" \
-c "echo linuxium:p | chpasswd"

Note that I've purposely not made the user an 'administrator' as the ISO is only intended to demonstrate the new theme.

If you are interested in trying out the new theme download the ISO from:


and remember the password is 'p' (without the quotes). The ISO should work on any Intel based device and is sufficient to demo the new theme but is not suitable for proper usage due to wifi, bluetooth and possible installation limitations.

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

Wednesday, 24 January 2018

First look at Ubuntu 18.04 or Bionic


With the date for the first 'Alpha 1' releases of the upcoming Ubuntu 18.04 code named Bionic Beaver having silently slipped by I decided to respin the latest daily build of Ubuntu MATE (20180123) using my 'isorespin.sh' script with the latest Canonical built kernel (v4.15-rc9) and try it out on the MINIX NEO Z83-4.

The command I used was:
isorespin.sh -i bionic-desktop-amd64.iso --atom -u -f 4345r6nvram.txt \
-c
"mv /usr/local/bin/4345r6nvram.txt /lib/firmware/brcm/brcmfmac43455-sdio.txt" \
-f MINIX-Z83-4_usr_share_alsa_ucm_chtrt5645_HiFi.conf \
-f wrapper-linuxium-install-UCM-files.sh
which includes the required files to support wifi and headphone audio (see Linux on MINIX NEO Z83-4 and Z83-4 Pro) on this specific device

The following command should work for other Intel Atom devices:
isorespin.sh -i bionic-desktop-amd64.iso --atom -u 
or this command for Intel Apollo devices:
isorespin.sh -i bionic-desktop-amd64.iso --apollo -u
although do also read Resize EFI partition to prevent any installation issues on Intel Apollo devices.

The reason for trying Ubuntu MATE is due to what might be seen as somewhat provocative 'call to arms' in their blog which highlights their various 'panel' layouts which control the look of the desktop.

The panel layout 'Mutiny' creates a surprisingly similar look and feel to Unity and is certainly worth trying if you are still unsure of the direction Ubuntu is moving to in their current releases.

Simply use 'MATE Tweak' to change the default panel to 'Mutiny' and then 'pin' applications to the panel like with Unity.

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

Saturday, 13 January 2018

Running and installing Fedora on Apollo Lake devices


Because some Intel Apollo Lake devices do not have an option in the BIOS that allows booting Linux based operating systems it make using any Linux on these devices too complicated for some. Previously I've provided a script 'isorespin.sh' that can respin an official Ubuntu based ISO suitable for use and installation on Apollo Lake mini PCs. Now I've created a similar script called 'isofrespin.sh' for Fedora ISOs.

At this stage the script is very simple. It respins a Fedora ISO making it bootable when used to create a LiveUSB and you can also optionally add my bootloader script which when run after installing Fedora enables subsequent booting.

When installing Fedora from a respun ISO (and as mentioned for Ubuntu) it is necessary to make sure the EFI partition is large enough to store the bootable EFI file when dual booting with Windows. Some Windows installations only create a 60MB partition which after installing the Windows EFI files leaves only around 30MB. With the later Linux kernel releases the size and number of modules have increased and the available space may not be enough. If there is insufficient space the resultant installation will not boot so the solution is to increase the size of the EFI partition first by following the instructions posted here.

Invocation

Running the script is simple as there are not a lot of options at this stage:
Usage: isofrespin.sh -i <ISO> [ -b Linuxium | --apollo ] [ -w <directory> ]
If you respin an official Fedora ISO just using the '-b Linuxium' option then it will only add my  'Linuxium' bootscript to make the ISO capable of booting.

If you respin with the '--apollo' option it will add my 'Linuxium' bootscript and another script called 'linuxium-update-bootloader' which can be used to add or update my 'Linuxium' bootscript used for booting. This option also installs the 'binutils' package whch is required by the script.

Limitations

At this stage I've only tested it with the Fedora 27 Workstation ISO and further testing is required for other Fedora releases and ISOs.

Example

In the following example I have downloaded the ISO 'Fedora-Workstation-Live-x86_64-27-1.6.iso' and respun it with the '--apollo' option creating the respun ISO 'linuxium-apollo-Fedora-Workstation-Live-x86_64-27-1.6.iso' which I wrote to a USB using 'dd'.

First I booted my Apollo Lake device into Windows:


and created some free space for the Fedora installation:


Then I rebooted to the LiveUSB:



Before commencing the installation I opened a 'terminal' window to see what file systems were mounted:


I then started the installation:


After the initial question for 'Installation Destination' I selected the device's eMMC as the drive with 'Automatic' storage configuration:


I also set the host name:


and then started the install:


followed by creating a user:


making sure they were an administrator:


and then waited for the installation to finish:



But instead of clicking on 'Quit' I switched back to the terminal window:


Looking at the newly mounted file systems I made a note of where Fedora had been installed ('/mnt/sysimage'):


and what kernel version had been installed ('4.13.9-300.fc27.x86_64'):


The next step is to replace the currently installed GRUB with my bootscript generated bootable EFI file. To do this I run 'linuxium-update-bootloader' with parameters of the kernel version and target destination (as it is different to '/boot') using the values I noted above:


which creates the bootable EFI file ('shimx64.efi'):


As this now completes the installation I restarted:


and having removed the LiveUSB I booted Fedora:


and logged in:


answered the setup questions:


and started using Fedora. 

This is the resultant installed file system:


Anyone wanting to try Fedora can download an ISO and respin using my 'isofrespin.sh' script with the above option.

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













Tuesday, 9 January 2018

Ubuntu or Fedora?

MINIX NEO Z83-4 running Fedora 27 with Rawhide kernel
(showing working WiFi, Bluetooth and audio including headphone jack)

Three recent events have made me question whether to keep using Ubuntu as my preferred Linux distribution:

  1. Six weeks have passed since v4.15-rc1 was released and the Ubuntu config for the 'unstable' kernel still hasn't been updated to reflect the patches around the Serial Device Bus managing serial devices declared as attached to an UART in ACPI table. This prevents Bluetooth working on some mini PCs.
  2. The Ubuntu 17.10 ISO is still not available following the scramble to address the corrupted BIOS due to "Intel SPI bug in kernel" arguably actually caused by incorrectly enabling the Intel SPI drivers in the config.
  3. Canonical's slow response coupled with what appears to be a justification to adhere to previously agreed timescales resulting in their inability to immediately address the 'Meltdown' exploit. This has created a 'Window of Vulnerability' for existing Ubuntu users unaware they could temporarily upgrade to a the most recent Canonical mainline build.

The core of the problem appears to lie in the architectural approach of how kernels are adopted and released as part of the overall Ubuntu release structure. Whilst implementing Ubuntu LTS enablement (known as HWE or Hardware Enablement) stacks which provide newer kernel support for existing Ubuntu LTS releases, there is no equivalent for regular releases which are only guaranteed to receive security updates for the duration of their release life (normally 9 months for desktop and server releases). As a result the Ubuntu kernel support per se is not aligned with the mainline kernel development strategy of supporting the current release together with nominated LTS kernels.

Aside from the above points there is also the somewhat emotive issue of dropping Unity in preference for the GNOME desktop. Through dressing up GNOME to look similar to Unity by including the 'dock-to-dash' extension it inadvertently shows that changing the back-end distribution might not be so visible if GNOME is to be used especially for users reliant on a GUI.

Furthermore as I run Ubuntu 17.04 on a number of devices I have to make a 'release' decision now that Ubuntu 17.04 reaches 'end of life' on 13th January. Canonical will not be providing updated kernel packages for Ubuntu 17.04 as they will not be patching the 4.10 HWE kernel to address the Meltdown and Spectre vulnerabilities resulting in a '4.10 HWE EARLY END OF LIFE'. The consequence is that the rolling HWE kernel for Ubuntu 16.04 will go to 4.13 early.

To continue using Ubuntu on those devices I will need to either:
  • upgrade to Ubuntu 17.10 and use the GNOME desktop or gamble with 'Ubuntu Unity' as the Unity desktop in the long term, or
  • replace existing Ubuntu 17.04 instances with fresh installations of Ubuntu 16.04 and continue using the Unity desktop in the short term
or, and given my initial concerns, look for an alternative to Ubuntu.

Choosing a distributions is somewhat complex and ultimately personal however one candidate does immediately comes to mind: Fedora. Arguably not so user-friendly it is focused on leading-edge software. The principle difference between Ubuntu and Fedora is package management due to the origins of each namely Debian vs Red Hat respectively.

Becuase the ISO for Ubuntu 17.10 is unavailable and installing Ubuntu 16.04 is effectively downgrading I have made the decision to look at transitioning to Fedora. I'll start by using Fedora as a desktop for everyday use and gradually increase usage. There will be challenges ahead as Fedora 'OOTB' doesn't work on a number of mini PCs both old and new. For inspiration I've combined several well know quotes:
If things don’t change
    they’ll stay the way they are,
and if they stay the way they are
    they won't get any better,
but the more things change
    the more they stay the same.
as making things better need not necessarily make everything different. We shall see.

Update:

The target release date for respun Ubuntu 17.10 ISOs for all flavors is Thursday, January 11. These will include a kernel which fixes the "Intel SPI bug in kernel" (point 2 above).

However "Note that these images are being prepared in advance of the release of fixes for Spectre and Meltdown.  As a rule, we do not re-release install media for security bugs, even those as severe as this" [1].

Currently these respun ISOs include the Ubuntu 4.13.0-21.24 kernel rather than the Ubuntu 4.13.0-25.29 kernel which is version that includes the 'Meltdown' fix which was released yesterday Tuesday, January 9 [2].

It is difficult to understand why Canonical would respin ISOs to fix a 'bug' using a kernel that includes a highly publicized and well-known 'vulnerability' when they have released a fixed kernel.

Given the rationale is to make the Ubuntu 17.10 images available again due to the impending 17.04 EOL then maybe extend the life of 17.04 by a day or two as it is not like security matters or so it seems.

If you want an Ubuntu 17.10 ISO I believe you would be safer using respinning the current official Ubuntu 17.10 ISO [3] with:
isorespin.sh -i ubuntu-17.10-desktop-amd64.iso --upgrade \
-e "linux-image-4.13.0-16-generic linux-headers-4.13.0-16" \
-p "linux-generic linux-signed-generic" \
-p "gir1.2-gmenu-3.0 libgnome-menu-3-0"
as you would get Ubuntu 17.10 similar to the proposed respin ISO [4] together with the 'Meltdown' fixed kernel:
$ 7z x linuxium-ubuntu-17.10-desktop-amd64.iso casper/filesystem.manifest -so > \
  linuxium-ubuntu-17.10-desktop-amd64.iso_filesystem.manifest
$ wget -q \
  http://cdimage.ubuntu.com/artful/daily-live/20180105.1/artful-desktop-amd64.manifest -O - | \
  sed 's/:amd64//' | \
  diff -w linuxium-ubuntu-17.10-desktop-amd64.iso_filesystem.manifest -
1064,1065c1064,1065
< libpoppler-glib8 0.57.0-2ubuntu4.2
< libpoppler68 0.57.0-2ubuntu4.2
---
> libpoppler-glib8 0.57.0-2ubuntu4.1
> libpoppler68 0.57.0-2ubuntu4.1
1373,1382c1373,1382
< linux-generic 4.13.0.25.26
< linux-headers-4.13.0-25 4.13.0-25.29
< linux-headers-4.13.0-25-generic 4.13.0-25.29
< linux-headers-generic 4.13.0.25.26
< linux-image-4.13.0-25-generic 4.13.0-25.29
< linux-image-extra-4.13.0-25-generic 4.13.0-25.29
< linux-image-generic 4.13.0.25.26
< linux-signed-generic 4.13.0.25.26
< linux-signed-image-4.13.0-25-generic 4.13.0-25.29
< linux-signed-image-generic 4.13.0.25.26
---
> linux-generic 4.13.0.21.22
> linux-headers-4.13.0-21 4.13.0-21.24
> linux-headers-4.13.0-21-generic 4.13.0-21.24
> linux-headers-generic 4.13.0.21.22
> linux-image-4.13.0-21-generic 4.13.0-21.24
> linux-image-extra-4.13.0-21-generic 4.13.0-21.24
> linux-image-generic 4.13.0.21.22
> linux-signed-generic 4.13.0.21.22
> linux-signed-image-4.13.0-21-generic 4.13.0-21.24
> linux-signed-image-generic 4.13.0.21.22
1471c1471
< poppler-utils 0.57.0-2ubuntu4.2
---
> poppler-utils 0.57.0-2ubuntu4.1
1676c1676
< ubuntu-desktop 1.404
---
> ubuntu-desktop 1.404.1
$
Please donate if you find my work useful using the following link http://goo.gl/nXWSGf.