Asus Zenbook and FreeBSD 11

This is a short description how I got running FreeBSD 11-current on my Asus Zenbook UX32VD laptop. Im very happy with the current setup but of course it is room for improvements in many areas. Having DTrace, ZFS and the other goodies makes FreeBSD a real good candidate for a mobile environment.

Last Updated: 16 March 2015

Zenbook UX32VD Configuration


CPU: Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz
Memory: 6 GB RAM
Storage: SanDisk SSD i100 24GB, Samsung SSD 840 PRO 500GB
Video: Intel HD Graphics 4000, Nvidia GT620M
Display: 13" IPS Full HD anti-glare
Wifi: Intel Centrino Advanced-N 6235
3 x USB 3.0 port(s) 
1 x HDMI 
1 x Mini VGA Port 
1 x SD card reader
Note: The laptop's internal hard drive, has been replaced by a Samsung SSD.

Overview

The general status about FreeBSD support on this laptop, including installation notes.

ItemStatusDescription
InstallationZFSUse MBR instead of GPT
UFSUse MBR instead of GPT
XorgIntel driverSee xorg.conf
NVIDIANot tested
Power SavingKeyboard lightsRequire to load acpi_asus_wmi
Display brightnessDoesn't work
NVIDIA OptimusNot supported at this time
Suspend
Hibernate
ConnectivityWifiWorks in FreeBSD 11. Requires manual changes FreeBSD 10
USB Ethernet
DisplayExternal screenWorks via HDMI, VGA cables
Projector
TouchpadELAN Smart Click-Pad

BIOS Update

Latest version is BIOS 214 (UX32VD). You can check latest release and download the firmware from: UX32VD

Installation Notes

Suppose you plan to install the operating system on SanDisk 24GB SSD disk, the device ada1 and use ZFS for that. Use the bsdinstaller and install ZFS on that disk as a stripe of the entire disk. Make sure you turn GPT to MBR to be able to boot after installation.

10.0 Stable
Media: FreeBSD-10.0-RELEASE-amd64-memstick.img
The WLAN driver, iwn did not detect the wireless card. You have to manually patch the driver and recompile the kernel for that. Sound, Xorg all working fine.

11 Current
Media: FreeBSD-11.0-CURRENT-amd64-VT-20140508-r265628-memstick.img
WLAN functional, the kernel is able to use the WLAN. Sound, Xorg all working fine.

Wifi

The iwn0 in FreeBSD 11 automatically is supporting the Intel Centrino 6235 adapter. No changes are required. For FreeBSD 10 users, you need to manually patch iwn driver to work with 6235 adapter.

See below iwn0 configured and connected to an access point:

iwn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 2290
    ether c4:85:08:a3:4e:09
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
    media: IEEE 802.11 Wireless Ethernet autoselect mode 11ng
    status: associated
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
    options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
    inet 127.0.0.1 netmask 0xff000000
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    ether c4:85:08:a3:4e:09
    inet 10.59.0.33 netmask 0xffffff00 broadcast 10.59.0.255
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    media: IEEE 802.11 Wireless Ethernet MCS mode 11ng
    status: associated
    ssid XXXXX channel 1 (2412 MHz 11g ht/20) bssid cc:5d:4e:ec:d1:04
    country US authmode WPA2/802.11i privacy ON deftxkey UNDEF
    AES-CCM 2:128-bit AES-CCM 3:128-bit txpower 11 bmiss 10 scanvalid 60
    bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 64
    protmode CTS ampdulimit 64k ampdudensity 8 -amsdutx amsdurx shortgi
    wme roaming MANUAL


Xorg

Version: X.Org X Server 1.14.7 
Configuration file: xorg.conf

Power Saving

There are some extra steps needed to run to have a decent power management under Asus Zenbook UX32VD.

Keyboard backlight

Keyboard backlight can be turned off. We need to load the kernel module:

# kldload acpi_asus_wmi
# sysctl dev.acpi_asus_wmi.0.kbd_backlight=0

It does not make a very big change regarding laptop's energy consumption, but it is cool to be able to handle that. (Thanks to Johannes Meixner FreeBSD)

NVIDIA Optimus

Currently NVIDIA does not deliver any Optimus binary package for FreeBSD. However certain things can be improved to increase the battery lifetime by shutting down the discrete GPU. 

We will need the following package, installed from ports/packages:

sysutils/acpi_call

The way to turn it off is to iteratively try every known ACPI call known to
shut off the NVIDIA GPU. There is a script developed by Johannes Meixner,   that will save the successful call, so that on reruns it can skip all the others.
http://xmj.me/freebsd/turn_off_gpu.sh
This script will be needed to be executed during boot time. Running this script highly improves the battery life from 2hrs to over 4hrs.

Credits

Thank you very much to all people contributing to this post:
Johannes Meixner  (FreeBSD)

Comments

  1. Hello,
    Could you give a little more detail on the install? When I select ZFS, it tells me that ZFS on root is not supported under UEFI, and selecting UFS, it tells me that MBR is unbootable on this system.

    Thanks!

    Don

    ReplyDelete
  2. Im using FreeBSD current. Are you using UX32VD ? Have you changed any of the internal storage options, meaning replace the internal disk with a faster SSD ? I have installed a Samsung 840PRO as SSD and that I keep it for my home directory. The default Sandisk I am using for root and OS itself.

    ReplyDelete
  3. Awesome post, thanks for this. My UX31A is now working like a charm with 11.0.
    The trick with the ZFS on UEFI root is to select "MBR" instead of "GPT" on the zfs screen of the installer.

    ReplyDelete
  4. well, thx for the info
    but still cant boot after install os and reboot

    ReplyDelete

Post a Comment

Popular posts from this blog

Raspberry Pi and Redis

Web Performance, tell me the story