Beware, I’m using a custom install of Ubuntu 16.04.03, isn’t from scratch because it contains several own developed packages and customization, anyway the default kernel and packages of this distro were respected.

I’d installed my custom Ubuntu 16.04.03 LTS on this Asus VivoBook Flip 14 (TP401M), the video and audio drivers were not working properly. Then I received the same notebook with Ubuntu 16.04.6 (which has a new kernel and had many other packages installed) and that one worked without problem.

Updating from Ubuntu 16.04.03 LTS to 16.04.06

I took a look around for an updating process between 16.04.03 and 16.04.06: Upgrading Ubuntu and here next version  anyway that didn’t provide specific information for the task, so I decided to compare the packages between both distros by exporting them using dpkg -l into a text file (filtering the columns with awk) and exporting only the different packages:

Extracting vim differences:

:set diffopt+=context:0

With that list I created a new file «newpackages.list» and made a while loop to install everything new:

while read p; do apt-get -y install $p; done < newpackages.list

I had to stop it when installing grub packages because those require interaction, then keep installing until the end, the difference were about 600 packages.

Fixing brightness

After rebooting the sysmtem started but the brightness of the screen was almost absent making it really hard to see anything so I changed it manually:

vim /sys/class/backlight/intel_backlight/brightness

And changed the value from 6150 to 66150.

You also could modify brightness using xbacklight. The brightness function buttons were not working, that is fixed in the Xorg file with the option «Backlight».

Xorg File

Create the directory if doesn’t exists and the file in /etc/X11/xorg.conf.d/10-monitor.conf

Section "Device"
Identifier "Configured Video Device"
Driver "intel"
Option "Backlight" "/sys/class/backlight/intel_backlight"
EndSection

Device "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Default Depth 24
Subsection "Display"
Depth 24
Modes "800x1280"
EndSubsection
EndSection

Battery 0% black background on LXDE – lxpanel

The battery was displaying 0% with black background (it should be green/yellow), also when you passed the mouse over it a legend showed «0% all the time».

The lxpanel version:

mortiz@ubuntu:~$ lxpanel --version
lxpanel 0.8.2

Since I’m using Lubuntu (so it has LXDE) I tried several options of reinstalling and reconfiguring LXDE without success, anyway, I discovered that two batteries were being detected, one of them caused that behavior:

mortiz@ubuntu:~$ acpi
Battery 0: Not charging, 95%
Battery 1: Unknown, 0%, rate information unavailable

So I listed the devices, found out which one of them was the faulty and disabled it:

lrwxrwxrwx 1 root root 0 May 21 16:55 AC0 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:03/PNP0C09:01/ACPI0003:00/power_supply/AC0
lrwxrwxrwx 1 root root 0 May 21 16:55 hid-0018:04F3:25B2.0002-battery -> ../../devices/pci0000:00/0000:00:16.3/i2c_designware.1/i2c-6/i2c-ELAN25B2:00/0018:04F3:25B2.0002/power_supply/hid-0018:04F3:25B2.0002-battery
lrwxrwxrwx 1 root root 0 May 21 16:55 BAT0 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:03/PNP0C09:01/PNP0C0A:02/power_supply/BAT0Disabling the faulty battery detected:
root@ubuntu:/sys/class/power_supply# echo 1 > /sys/devices/pci0000\:00/0000\:00\:16.3/remove

And then it worked but caused a new issue, the touchscreen stopped working. Somehow the touchscreen is recognized also as a battery, from here you have several options to fix this:

  • Install a different desktop (GNOME, KDE) and try
  • Disable the LXDE battery plugin and go for a third party plugin to display the battery status
  • Create your own battery display using python (I used this one because a friend of mine already developed it, I’m unable to share the code since isn’t mine.)
  • Re-compile the LXDE source code adding a new option for several batteries or changing the code to detect battery 0.

Fixing disks instability at boot process

My partitions were recognized as /dev/mmcblk0{1,2,3}, etc… And that my Asus T102H and T103H using those partition names in /etc/fstab worked without problem.

But with the Asus VivoBook after certain number of restarts it changed to /dev/mmcblk1{1,2,3} so the system couldn’t start until I fixed /etc/fstab over and over again after each change (quite weird).

This error was also present:

systemd-gpt-auto-generator: failed to dissect: Input/output error

Which was occurring because of the incorrect names of partitions.

So I decided to go for UUIDs, after updating the partitions for their respective UUID in /etc/fstab and fixed a couple of things with an encrypted swap I added the changes to both, grub and initramfs:

# change /dev/<partition> to UUID=<number>
# and then
update-initramfs -u
update-grub

After that the system always started correctly.

Missing firmware alerts

After reading the missing firmware when updated initramfs and grub:

missing bxt_guc_ver8_7
missing kbl_guc_ver9_14

I found this bug which had a link at the very end explaining how to add the lacky blobs:

You just have to download the missing blobs from the intel website and move them into /lib/firmware/i915/

$ sudo cp ~/Downloads/*.bin /lib/firmware/i915/

$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.0.1-050001-generic

Fixing the Sound

It worked perfectly without changing anything but after updating the missing firmware it stopped working. After reading some threads I used pavucontrol and discovered somehow it was muted but working. I just deselected the mute option in pavucontrol and gained sound again. This are the links which I looked at for an answer:

Using alsamixer:

alsamixer -c 1

I hope someone find this useful 🙂