linuxium
Member
Since commit ca876c7483b6 ("gpiolib-acpi: make sure we trigger edge events at least once on boot") in the Linux mainline v4.18 kernel (and also in stable v4.14.68 as commit fbb37b72489d) the Linux kernel now calls _AEI edge handlers at boot.
Unfortunately the MINIX Neo Z83-4 mini PC has a DSDT bug where some copy and pasted code for dealing with Micro USB-B connector host/device role switching messes with the DDC data pin from the HDMI connector (switching it to GPIO mode) breaking HDMI support.
For Ubuntu Bionic the mainline kernel change "gpiolib-acpi: make sure we trigger edge events at least once on boot" is included in the Ubuntu-4.15.0-56.61 tag as commit 4ea03f3e93f8 and released in the 4.15.0-58.64 linux package.
Starting with the 4.15.0-58.64 linux package and subsequent linux packages including linux-hwe (4.18 and now 5.0 based) and linux-hwe-edge (5.0 and now 5.2 based) packages Ubuntu fails to boot with working HDMI.
However the kernel does fully boot and it is possible to remotely "ssh" to the device.
An alternative work around on the MINIX Neo Z83-4U device is to interrupt the GRUB boot process by pressing ESC when it comes up with the purple screen. From the menu that appears select the "Advanced options for Ubuntu" and then the "recovery" option of the kernel you want to boot e.g. Ubuntu, with Linux 4.15.0-60-generic (recovery mode). After a few moments, it will display a Recovery Menu with a number of options. Select the first option "resume" for "Resume normal boot" followed by "OK". Your device will then complete booting and HDMI will now work.
To fix this a proposed patch has already been submitted to the mainline kernel that disables the running of _AEI edge event handlers at boot using a DMI based blacklist with the initial version of this blacklist contains the MINIX Neo Z83-4. This patch is currently under review.
As another alternative you can compile own kernels or install pre-compiled patched kernels. I have backported the proposed patch to Ubuntu Bionic and the source is available from my github repository ubuntu-bionic (https://github.com/linuxium/ubuntu-bionic). I've then compiled the source to create linux "linuxium-flavoured" linux packages which can be downloaded from http://bit.ly/linux-4_15_0-58-linuxium or http://bit.ly/linux-4_15_0-60-linuxium and unzipped then installed to provide the latest patched Ubuntu Bionic kernel e.g. "unzip linux-4.15.0-60-linuxium.zip" followed by "sudo apt install ./linux-headers-4.15.0-60_4.15.0-60.67+Linuxium_all.deb ./linux-headers-4.15.0-60-linuxium_4.15.0-60.67+Linuxium_amd64.deb ./linux-modules-4.15.0-60-linuxium_4.15.0-60.67+Linuxium_amd64.deb ./linux-modules-extra-4.15.0-60-linuxium_4.15.0-60.67+Linuxium_amd64.deb ./linux-image-unsigned-4.15.0-60-linuxium_4.15.0-60.67+Linuxium_amd64.deb".
I will update this post as the proposed patch progresses.
Unfortunately the MINIX Neo Z83-4 mini PC has a DSDT bug where some copy and pasted code for dealing with Micro USB-B connector host/device role switching messes with the DDC data pin from the HDMI connector (switching it to GPIO mode) breaking HDMI support.
For Ubuntu Bionic the mainline kernel change "gpiolib-acpi: make sure we trigger edge events at least once on boot" is included in the Ubuntu-4.15.0-56.61 tag as commit 4ea03f3e93f8 and released in the 4.15.0-58.64 linux package.
Starting with the 4.15.0-58.64 linux package and subsequent linux packages including linux-hwe (4.18 and now 5.0 based) and linux-hwe-edge (5.0 and now 5.2 based) packages Ubuntu fails to boot with working HDMI.
However the kernel does fully boot and it is possible to remotely "ssh" to the device.
An alternative work around on the MINIX Neo Z83-4U device is to interrupt the GRUB boot process by pressing ESC when it comes up with the purple screen. From the menu that appears select the "Advanced options for Ubuntu" and then the "recovery" option of the kernel you want to boot e.g. Ubuntu, with Linux 4.15.0-60-generic (recovery mode). After a few moments, it will display a Recovery Menu with a number of options. Select the first option "resume" for "Resume normal boot" followed by "OK". Your device will then complete booting and HDMI will now work.
To fix this a proposed patch has already been submitted to the mainline kernel that disables the running of _AEI edge event handlers at boot using a DMI based blacklist with the initial version of this blacklist contains the MINIX Neo Z83-4. This patch is currently under review.
As another alternative you can compile own kernels or install pre-compiled patched kernels. I have backported the proposed patch to Ubuntu Bionic and the source is available from my github repository ubuntu-bionic (https://github.com/linuxium/ubuntu-bionic). I've then compiled the source to create linux "linuxium-flavoured" linux packages which can be downloaded from http://bit.ly/linux-4_15_0-58-linuxium or http://bit.ly/linux-4_15_0-60-linuxium and unzipped then installed to provide the latest patched Ubuntu Bionic kernel e.g. "unzip linux-4.15.0-60-linuxium.zip" followed by "sudo apt install ./linux-headers-4.15.0-60_4.15.0-60.67+Linuxium_all.deb ./linux-headers-4.15.0-60-linuxium_4.15.0-60.67+Linuxium_amd64.deb ./linux-modules-4.15.0-60-linuxium_4.15.0-60.67+Linuxium_amd64.deb ./linux-modules-extra-4.15.0-60-linuxium_4.15.0-60.67+Linuxium_amd64.deb ./linux-image-unsigned-4.15.0-60-linuxium_4.15.0-60.67+Linuxium_amd64.deb".
I will update this post as the proposed patch progresses.