The Asus Zenbook Prime UX31A/UX21A/UX32VD works quite well with Ubuntu 12.04 LTS, but does need a little of post installation configuration. Please install all the updates available to Ubuntu on your first run!.

NOTE: Ubuntu 12.04 or higher 64-bit is necessary in order to get UEFI dual booting with the stock Windows 7 image.

NOTE: See below the current problem with Ubuntu 13.04 and presinstalled Windows 8 and help out to fix this.

For the previous Asus Zenbook models, see the UX31E/UX21E page. Use # hwinfo |grep UX31|grep Version to determine which model you have. (Please vote for bug https://bugs.launchpad.net/ubuntu/+source/hwinfo/+bug/775542 if you get the same errors.)

For further discusion and to seek help, see Asus Zenbook Prime UX21A/UX31A issues thread in the Ubuntu Forums.

Asus Zenbook Prime and Ubuntu

This page aims to describe the steps needed to fully enable all features of the Asus Zenbook Prime. It seems, most features of this modern notebook rely on a higher Linux kernel version than delivered by default with Ubuntu 12.04 or 12.10. Starting with Ubuntu 13.04, nearly all features work out of the box, though.

12.04 LTS (Precise Pangolin)

12.04.3 (Kernel version 3.8.0) works without major issues.

12.10 (Quantal Quetzal)

(removed as not longer relevant)

13.04 (Raring Ringtail)

Nearly everything works out of the box with Ubuntu 13.04. Correct behavior of the display brightness keys (Fn-F5, Fn-F6) could be enabled as described below.

You may still have to adjust power saving features (including using Bumblebee with the UX32VD) though.

If screen brightness is stuck on maximum every startup: Install xbacklight (sudo apt-get install xbacklight) and add "xbacklight -set x" (where 'x' = 0 to 100 desired brightness) to the startup applications via dashboard. For example, "xbacklight -set 50".

13.10 (Saucy Salamander)

Kernel versions higher than 3.10.x can lead to a failing of the x-server. If this should occur try activating "Launch CSM" within the EFI settings (under "BOOT") in order to avoid this problem. If this option appears grayed-out, make sure that, before booting into bios, your live-usb is already connected. It needs to be recognized for the BIOS to allow CSM to be changed. You might also need to dissable Fast Startup

[UPDATE] The above-mentioned issue has been resolved in kernel version 3.12.x This doesn't resolve the issue of the installer disk / livecd not having the updated kernel. You will need to install with the fix above, and then revert the setting after you've upgraded your Linux kernel manually. Alternatively, you may connect the device to an external screen during the installation. The bug does only affect the backlight of the integrated display. This solution is preferable to the one mentioned above, because it allows for the installation of Ubuntu in UEFI mode without the need to convert it later on.

Overview

Anything not mentioned here should work out of the box.

IconsPage/ok.png (works out-of-the-box) IconsPage/ok.png IconsPage/info.png (works, with remarks) IconsPage/warning.png (needs manual work) IconsPage/dont.png (won't currently work (completely)) IconsPage/question.png (not yet documented)

BIOS Update

You must download the newest BIOS here:

UX21A: http://support.asus.com/download/download_item_mkt.aspx?model=UX21A

UX31A: http://support.asus.com/download/download_item_mkt.aspx?model=UX31A

UX32VD: http://support.asus.com/download/download_item_mkt.aspx?model=UX32VD

You can update the BIOS from the BIOS menu itself, without any additional utilities.

You can check what is your model with the command:

sudo dmidecode -s system-product-name

Copy the BIOS file onto a memory-stick. Reboot and press the esc button to enter the BIOS menu. Then select "Enter Setup". From the Advanced tab, choose the Easy Flash option and then select the BIOS file to update.

Basic Installation Instructions

Installing from a Live CD

To access the boot order settings, press the DELETE, ESC, or F2 when the Asus splash screen comes up. Be sure to select the UEFI boot option, installing from the non-UEFI enabled version can have unexpected results.

If you cannot enter the Boot Menu or the Live CD is not a Boot Option, then try the following. some ASUS models use Aptio firmware from American Megatrends. It appears the BIOS is case sensitive. It looks for the filename EFI/BOOT/bootx64.efi, but Ubuntu provides EFI/BOOT/BOOTX64.EFI. See https://bugs.launchpad.net/linux/+bug/1261465.

Installing from a Live USB

With Windows 8 preinstalled, version 13.04 will not go past grub, see https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1195483 for details and background information.

In order to work around this issue, disable Secure Boot in the BIOS settings. Press and hold F2 during boot to enter BIOS settings, disable the Secure Boot option. You might also have to change to boot order to boot from the Live USB. Press F10 to save and exit.

Upgrading Linux kernel manually

This step is recommended for Ubuntu 12.10 only in order to get most hardware features working.

Just a note that can't be explains logically, after installing the 3.8.x kernel I had issues wirh bumblebee so I removed it, but somehow the fn+f5 f6 still work for controlling the brightness! it could be also that the patch is included in the latest kernel from 12.10 if one enables proposed updates in the sources, I recommend enabling the proposed updates, upgrade, reboot and see if it works before upgrading manually

Install (latest stable) mainline kernel for next Ubuntu version (13.04 aka. Raring Ringtail) from here: Grab all .deb-packages for your cpu architecture (most likely amd64) but don't forget linux-headers-3.8.*_all.deb! Assuming you downloaded all these files to ~/Downloads/, execute the following two commands:

sudo dpkg -i ~/Downloads/linux-*-3.8.*.deb
sudo sed -i s/quiet/quiet\ acpi_osi=\'\!Windows\ 2012\'/g /etc/default/grub
sudo update-grub

This enables function keys and proper brightness control and fixes several bugs regarding WiFi, Bluetooth and external displays.

Warning: This will disable all kernel updates of Ubuntu 12.10 (well, you now have a Ubuntu 13.04 mainline kernel, so this may be acceptable)! Mainline kernels could be incompatible with proprietary Nvidia graphics card drivers, which are needed to save power with Nvidia Optimus.

LCD Panel

The main change needed with the latest Ubuntu (updated 13.10 feb. 2014) is scaling, using native resolution 1920x1080 everything is too small using x scaling one can modify the screen to match their preferences. try :

xrandr --output eDP1 --scale 0.75x0.75

if playing with XxY values make thing look weird try 1x1 and then play around to find what fits your eyes. the command can be put into startup applications to become permanent.

If you're experiencing color banding (16 bit colors) instead of true (24 bit) colors: Just upgrade Linux kernel, as described in Upgrading Linux kernel manually.

Some have reported that if you boot with an external screen plugged in, the LCD panel stays off; if that happenes, boot first, and then plug the external screen in. Related bug

Does this workaround for XU31E also apply here? https://help.ubuntu.com/community/AsusZenbook#LCD

UX32VD only

The LCD panel is not turned on at boot, suspending the system and then resuming the system turns the panel on. Related bug. -- Please do tests with mainline kernels like explained in Upgrading Linux kernel manually!

Optimizing for SSD

You should follow the directions at http://www.howtogeek.com/62761/how-to-tweak-your-ssd-in-ubuntu-for-better-performance/ and change your /etc/fstab parameters by adding "discard,noatime" to the mount options for your SSD. In addition, it recommends changing your scheduler to "deadline". Further minimize SSD writes by mounting /tmp in RAM by adding the line "tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0" to the bottom of /etc/fstab. Finally you can enable TRIM by adding "rootfstype=ext4" to the 'GRUB_CMDLINE_LINUX_DEFAULT=' parameters line in /etc/default/grub and then running:

sudo update-grub

Only enable TRIM this way if /root is on your SSD drive.

Suspend, Hibernate, Shut-down and Reboot

Should work perfectly out of the box, provided you have installed all the 12.04 LTS updates.

If using Quantal, enable proposed sources and do a dist-upgrade in order to get the latest kernel, fixing suspend hanging on resume.

If you find that your USB ports only work immediately after coming out of suspend go into your BIOS and in the USB section change the “XHCI Pre-Boot Mode” from 'auto' to 'disabled'.

During suspend the power led on the side (and the one in the power button on the keyboard) blink in a long off and short on pattern. Question: Is it possible to have it blink at a different rate and to have it turn on and off with smooth transition between on and off?

Keyboard functions (Brightness,volume,...)

Ubuntu 12.04

Not all function keys work out of the box.

Update to kernel 3.2.0-30-generic. It contains support for the trackpad and all of the function keys except f5-f6 (screen brightness). Workarounds to control screen brightness are detailed below.

Ubuntu 12.10 - (Not so) Experimental Fn keys workaround

Not all function keys work out of the box.

Just upgrade Linux kernel, as described in Upgrading Linux kernel manually.

Ubuntu 13.04

All function keys work out of the box now. For a better handling of the brightness keys, you need to add acpi_osi='!Windows 2012' to your bootloader configuration file /etc/default/grub :

GRUB_CMDLINE_LINUX_DEFAULT="splash quiet acpi_osi='!Windows 2012'"

And now update Grub using this command:

sudo update-grub

(Xubuntu/Lubuntu only) Manually setting keyboard backlight brightness

This fix is not for Ubuntu but useful for Xubuntu/Lubuntu as they are using Xfce4-power-daemon.

You can also just use gnome-settings-daemon as a replacement, keyboard brightness keys will work out of the box then.

The keyboard backlight brightness can be adjusted from 0 (off) to 3 (brightest). By writing a bash shell script and starting it with an customize shortkey like Fn+F3 or Fn+F4 you could decrease and increase your keyboard backlight. The first example ist for decreasing your keyboard backlight.

################################
# keyboard brightness decrease
################################
#!/bin/bash
brightness_val=$(cat /sys/class/leds/asus::kbd_backlight/brightness)
if [ 0 -lt $brightness_val ]
  then 
    brightness_val=$(($brightness_val - 1))
    echo $brightness_val | tee /sys/class/leds/asus::kbd_backlight/brightness
fi

The second one ist for increasing the keyboard backlight.

################################
# keyboard brightness increase
################################
#!/bin/bash
brightness_val=$(cat /sys/class/leds/asus::kbd_backlight/brightness)
if [ 3 -gt $brightness_val ]
  then
    brightness_val=$(($brightness_val + 1))
    echo $brightness_val | tee /sys/class/leds/asus::kbd_backlight/brightness
fi

To make use of these scripts, you'll need to make /sys/class/leds/asus::kbd_backlight/brightness writable at every boot. Just execute this command ONCE and reboot:

sudo sed -i '$ichmod a+w /sys/class/leds/asus\\:\\:kbd_backlight/brightness' /etc/rc.local

Switch keyboard backlight back on after suspend

If the keyboard backlight does not work after suspend, create and edit the file "20_zenbook" in /etc/pm/sleep.d/ (e.g. "nano /etc/pm/sleep.d/20_zenbook").

case "${1}" in
    hibernate|suspend)
        ;;
    resume|thaw)
        #To switch on keyboard backlight
        echo 3 | sudo tee /sys/class/leds/asus::kbd_backlight/brightness
        ;;
esac

Make the file executable (e.g. "chmod 0755 /etc/pm/sleep.d/20_zenbook").

Touchpad

Pointer motion works fine out of the box.

All Zenbook Prime models have the Elantech made touchpad.

Several button features do not work out of the box. Right-click is not recognized, but a two-finger tap on the touchpad emulates a right-click. Left-click+drag does not work. A double tap + drag allows dragging features in some situations, such as windows or text selection.

EDIT: Everything seem to work on 13.04, even double scroll. You just need to enable it in Mouse settings.

Alternative 1

This enables left-click+drag, middle-click, right-click, right-click via two finger tapping and also disables touchpad tapping while typing.

Due to a bug, you must disable default syndaemon start.

Copy this to ~/bin/clickpad.sh:

##############################################################
# This script disables tapping/scrolling while typing and
# enables touchpads clicking area (left, middle, right click) 
##############################################################
#!/bin/bash 
gsettings set org.gnome.settings-daemon.peripherals.touchpad disable-while-typing false  
xinput set-prop "ETPS/2 Elantech Touchpad" "Synaptics ClickPad" 1 
xinput set-prop "ETPS/2 Elantech Touchpad" "Synaptics Soft Button Areas" 1956 0 1737 0 1304 1955 1737 0 
syndaemon -i 1.7 -d -t -K 

Make it executable:

chmod +x ~/bin/clickpad.sh  

Then run "System Settings > Startup Applications > Add" and add this entry:

~/bin/clickpad.sh

See also https://bugzilla.gnome.org/show_bug.cgi?id=707857 for support in GNOME Control Panel of middle button.

You may want to change the value of syndaemon -i 1.7 by editing the file ~/bin/clickpad.sh, as it defines how long tapping/scrolling (NOT clicking!) would be disabled after typing (in seconds). It seems, 1.7 seconds is a good compromise to the default 2.0 value.

The above script disables tapping/scrolling only. For a better understanding, this is from the syndaemon manpage:

  • -t Only disable tapping and scrolling, not mouse movements, in response to keyboard activity.

If you want to disable clicking also, all you need to do is to remove this switch -t.

You can tune the touchpad to make it feel more like a Macbook Air/Pro trackpad by changing all xinput-lines in ~/bin/clickpad.sh like this:

xinput set-prop "ETPS/2 Elantech Touchpad" "Synaptics Scrolling Distance" 35, 35 # scroll more responsive
xinput set-prop "ETPS/2 Elantech Touchpad" "Synaptics Finger" 1, 15, 50 # ups click sensitivity, values '1, 15, 255' disable trackstick emulation
xinput set-prop "ETPS/2 Elantech Touchpad" "Synaptics Tap FastTap" 1 # faster taps
xinput set-button-map 12 1 2 3 5 4 7 6 # inverse scrolling

Alternative 2

For proper palm detection, have a look here. You will probably want to comment out the circular scrolling lines here as it interferes with lateral selection within input boxes.

Highly experimental alternative

This is not recommended, as xorg-edgers may break your complete environment (really, this is pre-alpha-stage!).

In order to have a fully functional touchpad, add the xorg-edgers repository, reload the package information and upgrade the packages (including xserver-xorg-input-synaptics).

The touchpad should now be fully working: left click, right click, left-click-drag, edge scrolling, two finger scrolling (vertical and horizontal), tap to click (one finger left click, two fingers right click).

Wireless

The Zenbook Prime's Intel WLAN seems to works fine out of the box for Ubuntu 12.10.

You might encounter some issues with Ubuntu 12.04 when connecting to higher bitrate 802.11n access points, like very high packet loss and very high latency.

Alternative 1

Disabling 802.11n might help then, this temporarily fixes this issue:

sudo rmmod iwlwifi && sudo modprobe iwlwifi 11n_disable=1

For a permanent workaround, upgrade Linux kernel as described above in Upgrading Linux kernel manually.

This also addresses several interference's between WiFi and Bluetooth.

Alternative 2

The method above may not work to solve the high packet loss and high latency when your computer is not plugged into a power source for Ubuntu 13.04. Disabling the power management for your wireless module can solve this problem with the following temporarily fix:

sudo iwconfig wlan0 power off 

If this solves your problem, a permanent workaround is achieved by adding the following lines in /etc/pm/power.d/wireless (create the file if it does not exist yet):

##
#!/bin/sh
/sbin/iwconfig wlan0 power off

Your WiFi connection speed should now be stable when your computer is not plugged into a power source. If you are not experiencing the full connection speed, you can change the "hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4" in /etc/nsswitch.conf to the following:

hosts: files dns

USB Ethernet

The Zenbook Prime's USB Ethernet appears to work fine out of the box.

Bluetooth

Works fine. If it appears not to, try pressing Fn+F2 the requisite number of times to switch it on.

Sound

Works fine.

Microphone

Internal mic

Works fine.

External mic

Combo jack (headphones output + mic input). Type the following code in a terminal window and hit 'Enter':

echo options snd-hda-intel model=laptop-dmic | sudo tee -a /etc/modprobe.d/alsa-base.conf

Then restart alsa:

sudo alsa force-reload

Webcam

Ubuntu recognizes the camera out of the box. If you find video too dark when using video-conferencing apps (eg. Skype, Google Hangouts) install and run guvcview and adjust your brightness, contrast and gamma settings.

sudo apt-get install guvcview

If this option doesn't work you can also try entering

uvcdynctrl -s "Exposure, Auto Priority" 1

in the shell while Skype is running, to boost your gamma settings.

Another webcam application which can be installed is cheese.

sudo apt-get install cheese

The "fn"+"V" key results in the keycode 220. This can be configured to start a webcam application. Go (in GNOME and friends) to System Settings -> Keyboard -> Shortcuts and add to Custom Shortcuts one called "Webcam" with the command /usr/bin/cheese and use "fn"+"V" as the shortcut. The name of this keycode will appear as "Web Cam" to the left of "Webcam". (This means that the system knows about this key but by default does not assign it. Could someone report this as a bug at GNOME? This shortcut should be listed by default under "Sound and Media". Via /etc/alternatives/ an executable should exist and point to /usr/bin/cheese preferably.)

External Monitor

In order to have a fully functional external/internal display behavior, you need to install a mainline kernel greater or equal to 3.8.0 like described above in Upgrading Linux kernel manually.

HDMI

Works mostly fine, but see note above.

VGA

Works mostly fine, but see note above.

Using the built-in Mirror Displays checkbox in the Displays control panel to mirror the displays does not work correctly in Ubuntu 13.04: the external display remains blank. This is only true of VGA output: the HDMI output appears to behave correctly.

Display mirroring to the VGA output can be achieved with the following command:

$ sudo xrandr --output eDP1 --mode 1024x768 --output VGA1 --auto --same-as eDP1

For best results, replace "1024x768" with the native resolution of the device connected to the VGA output.

SD card slot

(UX31A and UX32VD only)

SD card was recognized and mounted without any issues.

Fan Control

Built in control works fine. No manual override possible due to missing sensor support.

Sensors (temps & fans)

The CPU temperature sensor works

Fan sensor: Not detected/doesn't work

Ambient light sensor: They keycode to use is 248, that is "fn"+"A", the icon on the "A" is a sensor with lightrays and the text auto. Doesn't work by default, because a driver exists but it's not included in kernel source. Need testing. Bug is reported. You can, however, use an external application to make it work: https://github.com/danieleds/Asus-Zenbook-Ambient-Light-Sensor-Controller.

Power Saving Optimizations

Power saving on Asus Zenbook Prime is pretty good out-of-the-box on Ubuntu 12.04 LTS, although not as perfect as it could be if Asus was shipping/certifying Ubuntu itself. This section gives a couple of hints to perfect it.

The biggest improvement - the Intel graphics RC6 power saving - is enabled by default in Ubuntu 12.04 LTS and is not needed to be specified separately anymore like in earlier Ubuntus. Likewise, Frame Buffer Compression is enabled by default in 12.04 LTS.

Disabling keyboard backlight, dimming display backlight and using other window managers like Openbox or Xfce saves energy, too!

On an UX21A you will be able to consume less than 6 watts.

Kernel parameters to use

Enabling ASPM saves a meaningful amount of power when idle according to powerstat. It's recommended. The pcie_aspm=force parameter is however required on Zenbook Prime because the Zenbook Prime BIOS gives Ubuntu wrong information. Therefore, add the following to the file /etc/default/grub, after the text quiet splash but within the same quotes:

pcie_aspm=force

There are a couple of optional kernel parameters which save some power and have not shown any problems with Zenbook, but are not enabled by default. Instead of the above, you may also use the following:

pcie_aspm=force drm.vblankoffdelay=1 i915.semaphores=1

You may also disable NMI Watchdog (this is for kernel hackers), it's a suggestion of powertop. Just apply this to kernel parameters:

nmi_watchdog=0

After editing /etc/default/grub, don't forget to run the command

sudo update-grub

Enable power management

IconsPage/warning.png This paragraph doesn't seem to be working in Ubuntu 13.04.

As powertop is also suggesting to enable power management on all PCI devices, this script will do so:

Create /etc/udev/rules.d/10-runtime-pm.rules:

SUBSYSTEM!="pci", GOTO="power_runtime_rules_end"
ACTION!="add", GOTO="power_runtime_rules_end"

KERNEL=="????:??:??.?"
PROGRAM="/bin/sleep 0.1"

ATTR{power/control}=="*", ATTR{power/control}="auto"

LABEL="power_runtime_rules_end"

Since a kernel bug, this disables USB controller completely (related to faulty power management in USB 3.0 -- xHCI code). So we need to disable auto power management on this xHCI chip only, just execute this ONCE and reboot:

sudo sed -i '$iecho on | tee /sys/bus/pci/devices/0000\\:00\\:14.0/power/control > /dev/null' /etc/rc.local

ALPM

Enabling ALPM may save a meaningful amount of power when idle according to powerstat.

Read more and also the warnings on page ALPM.

Nvidia Optimus (UX32VD only)

By default, the graphic card is turned on in the background, ending up with lots of unnecessary consumed power (the card is not used, it's just powered on). Nvidia doesn't support optimus drivers for Ubuntu/Linux yet, however there is an alternative to solve this problem: bumblebee. With bumblebee, you can chose whenever to use the nvidia graphics by starting your application like this:

optirun yourapplicationtostart

So for example:

optirun firefox

should start firefox with the nvidia graphics. Without "optirun" firefox should run on the intel graphics. Bumblebee reduced my power consumption from 12 to 7W (with nothing running on the nvidia card). Check out how to install it here (12.04/12.10) or here (13.04).

Bugs and issues

Issues when connecting to higher bitrate 802.11n access points, like very high packet loss and very high latency. Disabling 802.11n might help then. Solved since kernel 3.6

Fn+F5 & Fn+F6 (change backlight) didn't work. Works with kernel 3.7 only if acpi_osi= boot parameter used


CategoryHardware

AsusZenbookPrime (last edited 2014-03-29 13:31:15 by danieleds0)