Recently, I’ve replaced my five year old 13″ MacBook Air with a new budget Linux laptop. Since I’ve been using Linux desktops more and more there was just no point in buying another Apple product. The time was ripe to go fully Linux on my to-go laptop.
When I started evaluating laptops I quickly realized that even in 2016 it’s still nearly impossible to buy a new laptop with full Linux driver support. Linux and mobile hardware support is somewhat like a good red wine, it gets better over time. One notable exception is the Dell XPS 13 Developer Edition which comes with a preloaded Ubuntu Desktop operating system. I’m not sure if Dell still sells an updated version of the Developer Edition model but it was not available in my country and I didn’t want to shell out more than $800 for my new laptop anyway.
Best budget Linux laptop
When it comes to portable computers, I’m probably kinda old-school. I don’t need a touch screen (fingerprints everywhere, eeek!) or some funky 2-in-1 tablet/laptop convertible like the Dell Yoga. Just a slim, lightweight 13″ laptop with a nice display (preferably matte), a battery-friendly processor, flash-based storage and a couple of full-size USB 3.0 ports for a decent price. After looking at a half dozen or so potential candidates I’ve set my eyes on the ASUS Zenbook UX305CA with the 6th gen. Intel Skylake mobile processor.
(I’m sorry but there are simply no professional images with a Linux desktop available ;-)
Depending on the configuration, the UX305CA laptop comes with the following features:
- CPU: Intel M3-6Y30 (in the basic configuration, faster CPU options are available)
- Display: 13.3″ anti-glare matte full HD (1920×1080) 16:9
- RAM: 8 GB
- Storage: 128, 256 or 512 GB M.2 SSD
- 3 x USB 3.0, 1 x SDXC card reader, 1 x micro HDMI
- WiFi: 802.11 ac/b/g/n
- Aluminum body
- Weight: 2.6 pounds (1.2 kg)
- Prices start from $699 in the US and from around €800 in Europe
I went for the entry model since I don’t need that much storage on my to-go computer anyway and I prefer low battery usage over processor power. The build quality of the UX305CA is awesome. It feels great, the black “obsidian stone” aluminum body looks great too. I saw some reviewers disliking the keyboard – I love it. The power supply isn’t oversized – which is good for traveling – and ASUS even included a USB to 1 GigE network adapter. If I’d have to come up with something negative about the UX305CA it’s probably the missing keyboard backlight. But overall, very good value for the money if you don’t need a lot of processor power.
As of January 2016, not all hardware components for the ASUS UX305CA are supported under Linux. However, at least for Fedora, the solution is to simply install a newer Linux kernel. See below for instructions.
Instructions for Fedora
(I didn’t care about the pre-installed version of Windows 10)
- Install Fedora from a Fedora Workstation 23 live image. I used
dd
on the Mac to copy the Fedora .iso to a USB flash drive. - The trackpad probably won’t work, so an external mouse is required for the first few steps
- Set up WiFi in Fedora 23
- Open a shell and:
sudo dnf config-manager --add-repo=http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug/fedora-rawhide-kernel-nodebug.repo
sudo dnf -y update
sudo dnf list kernel
- Look at the list of available kernels and install the 4.4 kernel using:
sudo dnf install kernel-<kernelversion>
- Reboot and make sure to select the new 4.4 kernel in grub. Now you should get the native display resolution and a working trackpad. Since the Rawhide kernels are unsigned, you may have to disable the secure boot option in the BIOS.
Once Fedora 24 is out (May 2016) these steps are not required anymore.
With the 4.4. kernel installed, everything in Fedora 23 seems to work, including:
- Standby/Resume
- WiFi
- Camera
- Trackpad
- Native display resolution
- Screen dimming
- Sound
- CPU frequency scaling
- Bluetooth
Nerd data area
Kernel version
$ uname -a Linux gargamel 4.4.0-0.rc6.git1.2.fc24.x86_64 #1 SMP Wed Dec 23 20:09:25 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
CPU Info
$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 78 model name : Intel(R) Core(TM) m3-6Y30 CPU @ 0.90GHz stepping : 3 microcode : 0x33 cpu MHz : 500.039 cache size : 4096 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception: yes cpuid level : 22 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 bugs : bogomips : 3023.88 clflush size : 64 cache_alignment : 64 address sizes : 39 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 78 model name : Intel(R) Core(TM) m3-6Y30 CPU @ 0.90GHz stepping : 3 microcode : 0x33 cpu MHz : 499.980 cache size : 4096 KB physical id : 0 siblings : 4 core id : 1 cpu cores : 2 apicid : 2 initial apicid : 2 fpu : yes fpu_exception: yes cpuid level : 22 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 bugs : bogomips : 3023.88 clflush size : 64 cache_alignment : 64 address sizes : 39 bits physical, 48 bits virtual power management: processor : 2 vendor_id : GenuineIntel cpu family : 6 model : 78 model name : Intel(R) Core(TM) m3-6Y30 CPU @ 0.90GHz stepping : 3 microcode : 0x33 cpu MHz : 499.980 cache size : 4096 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 2 apicid : 1 initial apicid : 1 fpu : yes fpu_exception: yes cpuid level : 22 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 bugs : bogomips : 3023.88 clflush size : 64 cache_alignment : 64 address sizes : 39 bits physical, 48 bits virtual power management: processor : 3 vendor_id : GenuineIntel cpu family : 6 model : 78 model name : Intel(R) Core(TM) m3-6Y30 CPU @ 0.90GHz stepping : 3 microcode : 0x33 cpu MHz : 499.980 cache size : 4096 KB physical id : 0 siblings : 4 core id : 1 cpu cores : 2 apicid : 3 initial apicid : 3 fpu : yes fpu_exception: yes cpuid level : 22 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 bugs : bogomips : 3023.88 clflush size : 64 cache_alignment : 64 address sizes : 39 bits physical, 48 bits virtual power management:
List Hardware (lshw) Output
$ sudo lshw [sudo] password for drfalken: localhost.localdomain description: Notebook product: UX305CA (ASUS-NotebookSKU) vendor: ASUSTeK COMPUTER INC. version: 1.0 serial: FAN0CJ11111111X width: 64 bits capabilities: smbios-3.0 dmi-3.0 vsyscall32 configuration: boot=normal chassis=notebook family=UX sku=ASUS-NotebookSKU uuid=C115161F-4118-1918-1151-21F1251D1A11 *-core description: Motherboard product: UX305CA vendor: ASUSTeK COMPUTER INC. physical id: 0 version: 1.0 serial: BSN1234561811221111 slot: MIDDLE *-firmware description: BIOS vendor: American Megatrends Inc. physical id: 0 version: UX305CA.201 date: 09/11/2015 size: 64KiB capacity: 5952KiB capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer acpi usb smartbattery biosbootspecification uefi *-cache:0 description: L1 cache physical id: d slot: L1 Cache size: 64KiB capacity: 64KiB capabilities: synchronous internal write-back data *-cache:1 description: L1 cache physical id: e slot: L1 Cache size: 64KiB capacity: 64KiB capabilities: synchronous internal write-back instruction *-cache:2 description: L2 cache physical id: f slot: L2 Cache size: 512KiB capacity: 512KiB capabilities: synchronous internal write-back unified *-cache:3 description: L3 cache physical id: 10 slot: L3 Cache size: 4MiB capacity: 4MiB capabilities: synchronous internal write-back unified *-cpu description: CPU product: (To Be Filled By O.E.M.) vendor: Intel Corp. physical id: 11 bus info: cpu@0 version: Intel(R) Core(TM) m3-6Y30 CPU @ 0.90GHz serial: To Be Filled By O.E.M. slot: U3E1 size: 2GHz capacity: 2200MHz width: 64 bits clock: 100MHz capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch ida arat epb pln pts dtherm hwp hwp_notify hwp_act_window hwp_epp intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 cpufreq configuration: cores=2 enabledcores=2 threads=4 *-memory description: System Memory physical id: 12 slot: System board or motherboard size: 8GiB *-bank:0 description: SODIMM Synchronous 1867 MHz (0.5 ns) vendor: Elpida physical id: 0 serial: 00000000 slot: ChannelA-DIMM0 size: 4GiB width: 64 bits clock: 1867MHz (0.5ns) *-bank:1 description: SODIMM Synchronous 1867 MHz (0.5 ns) vendor: Elpida physical id: 1 serial: 00000000 slot: ChannelB-DIMM0 size: 4GiB width: 64 bits clock: 1867MHz (0.5ns) *-pci description: Host bridge product: Sky Lake Host Bridge/DRAM Registers vendor: Intel Corporation physical id: 100 bus info: pci@0000:00:00.0 version: 08 width: 32 bits clock: 33MHz *-display description: VGA compatible controller product: Sky Lake Integrated Graphics vendor: Intel Corporation physical id: 2 bus info: pci@0000:00:02.0 version: 07 width: 64 bits clock: 33MHz capabilities: pciexpress msi pm vga_controller bus_master cap_list rom configuration: driver=i915 latency=0 resources: irq:125 memory:de000000-deffffff memory:c0000000-cfffffff ioport:f000(size=64) *-generic:0 description: Signal processing controller product: Intel Corporation vendor: Intel Corporation physical id: 4 bus info: pci@0000:00:04.0 version: 08 width: 64 bits clock: 33MHz capabilities: msi pm cap_list configuration: driver=proc_thermal latency=0 resources: irq:16 memory:df120000-df127fff *-usb description: USB controller product: Intel Corporation vendor: Intel Corporation physical id: 14 bus info: pci@0000:00:14.0 version: 21 width: 64 bits clock: 33MHz capabilities: pm msi xhci bus_master cap_list configuration: driver=xhci_hcd latency=0 resources: irq:124 memory:df110000-df11ffff *-usbhost:0 product: xHCI Host Controller vendor: Linux 4.4.0-0.rc6.git1.2.fc24.x86_64 xhci-hcd physical id: 0 bus info: usb@2 logical name: usb2 version: 4.04 capabilities: usb-3.00 configuration: driver=hub slots=6 speed=5000Mbit/s *-usbhost:1 product: xHCI Host Controller vendor: Linux 4.4.0-0.rc6.git1.2.fc24.x86_64 xhci-hcd physical id: 1 bus info: usb@1 logical name: usb1 version: 4.04 capabilities: usb-2.00 configuration: driver=hub slots=12 speed=480Mbit/s *-usb:0 description: Video product: USB2.0 UVC HD Webcam vendor: SuYin physical id: 5 bus info: usb@1:5 version: 1.01 serial: XF0000-T000-SN00-Rev0101 capabilities: usb-2.00 configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s *-usb:1 description: Bluetooth wireless interface vendor: Intel Corp. physical id: 9 bus info: usb@1:9 version: 0.01 capabilities: bluetooth usb-2.01 configuration: driver=btusb maxpower=100mA speed=12Mbit/s *-generic:1 UNCLAIMED description: Signal processing controller product: Intel Corporation vendor: Intel Corporation physical id: 14.2 bus info: pci@0000:00:14.2 version: 21 width: 64 bits clock: 33MHz capabilities: pm msi bus_master cap_list configuration: latency=0 resources: memory:df138000-df138fff *-generic:2 description: Signal processing controller product: Intel Corporation vendor: Intel Corporation physical id: 15 bus info: pci@0000:00:15.0 version: 21 width: 64 bits clock: 33MHz capabilities: pm bus_master cap_list configuration: driver=intel-lpss latency=0 resources: irq:16 memory:df137000-df137fff *-generic:3 description: Signal processing controller product: Intel Corporation vendor: Intel Corporation physical id: 15.1 bus info: pci@0000:00:15.1 version: 21 width: 64 bits clock: 33MHz capabilities: pm bus_master cap_list configuration: driver=intel-lpss latency=0 resources: irq:17 memory:df136000-df136fff *-communication description: Communication controller product: Intel Corporation vendor: Intel Corporation physical id: 16 bus info: pci@0000:00:16.0 version: 21 width: 64 bits clock: 33MHz capabilities: pm msi bus_master cap_list configuration: driver=mei_me latency=0 resources: irq:126 memory:df135000-df135fff *-storage description: SATA controller product: Intel Corporation vendor: Intel Corporation physical id: 17 bus info: pci@0000:00:17.0 version: 21 width: 32 bits clock: 66MHz capabilities: storage msi pm ahci_1.0 bus_master cap_list configuration: driver=ahci latency=0 resources: irq:123 memory:df130000-df131fff memory:df134000-df1340ff ioport:f090(size=8) ioport:f080(size=4) ioport:f060(size=32) memory:df133000-df1337ff *-pci description: PCI bridge product: Intel Corporation vendor: Intel Corporation physical id: 1c bus info: pci@0000:00:1c.0 version: f1 width: 32 bits clock: 33MHz capabilities: pci pciexpress msi pm normal_decode bus_master cap_list configuration: driver=pcieport resources: irq:122 memory:df000000-df0fffff *-network description: Wireless interface product: Wireless 7265 vendor: Intel Corporation physical id: 0 bus info: pci@0000:01:00.0 logical name: wlp1s0 version: 59 serial: 00:00:00:00:00:00 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=iwlwifi driverversion=4.4.0-0.rc6.git1.2.fc24.x86_64 firmware=16.242414.0 ip=192.168.178.46 latency=0 link=yes multicast=yes wireless=IEEE 802.11abgn resources: irq:127 memory:df000000-df001fff *-isa description: ISA bridge product: Intel Corporation vendor: Intel Corporation physical id: 1f bus info: pci@0000:00:1f.0 version: 21 width: 32 bits clock: 33MHz capabilities: isa bus_master configuration: latency=0 *-memory UNCLAIMED description: Memory controller product: Intel Corporation vendor: Intel Corporation physical id: 1f.2 bus info: pci@0000:00:1f.2 version: 21 width: 32 bits clock: 33MHz (30.3ns) capabilities: bus_master configuration: latency=0 resources: memory:df12c000-df12ffff *-multimedia description: Audio device product: Intel Corporation vendor: Intel Corporation physical id: 1f.3 bus info: pci@0000:00:1f.3 version: 21 width: 64 bits clock: 33MHz capabilities: pm msi bus_master cap_list configuration: driver=snd_hda_intel latency=32 resources: irq:128 memory:df128000-df12bfff memory:df100000-df10ffff *-serial UNCLAIMED description: SMBus product: Intel Corporation vendor: Intel Corporation physical id: 1f.4 bus info: pci@0000:00:1f.4 version: 21 width: 64 bits clock: 33MHz configuration: latency=0 resources: memory:df132000-df1320ff ioport:f040(size=32) *-scsi physical id: 1 logical name: scsi0 capabilities: emulated *-disk description: ATA Disk product: Micron_M600_MTFD physical id: 0.0.0 bus info: scsi@0:0.0.0 logical name: /dev/sda version: MA01 serial: 11271111BE19 size: 119GiB (128GB) capabilities: gpt-1.00 partitioned partitioned:gpt configuration: ansiversion=5 guid=dd910765-ef17-41c8-251c-2ae66e1c1231 logicalsectorsize=512 sectorsize=4096 *-volume:0 UNCLAIMED description: Windows FAT volume vendor: mkfs.fat physical id: 1 bus info: scsi@0:0.0.0,1 version: FAT16 serial: fa7b-bda3 size: 198MiB capacity: 199MiB capabilities: boot fat initialized configuration: FATs=2 filesystem=fat name=EFI System Partition *-volume:1 description: Linux swap volume vendor: Linux physical id: 2 bus info: scsi@0:0.0.0,2 logical name: /dev/sda2 version: 1 serial: 3139e41e-19cb-1ef8-82a6-ca54ff51cd47 size: 2047MiB capacity: 2047MiB capabilities: nofs swap initialized configuration: filesystem=swap pagesize=4095 *-volume:2 description: EXT4 volume vendor: Linux physical id: 3 bus info: scsi@0:0.0.0,3 logical name: /dev/sda3 logical name: / version: 1.0 serial: 1a231d9a-0cd7-419c-a081-220901dd74b9 size: 117GiB capabilities: journaled extended_attributes large_files huge_files dir_nlink recover extents ext4 ext2 initialized configuration: created=2016-01-02 15:33:12 filesystem=ext4 lastmountpoint=/ modified=2016-01-02 16:02:07 mount.fstype=ext4 mount.options=rw,seclabel,relatime,data=ordered mounted=2016-01-02 16:02:08 state=mounted *-network DISABLED description: Ethernet interface physical id: 1 logical name: virbr0-nic serial: 52:54:00:1b:10:bb size: 10Mbit/s capabilities: ethernet physical configuration: autonegotiation=off broadcast=yes driver=tun driverversion=1.6 duplex=full link=no multicast=yes port=twisted pair speed=10Mbit/s
Hello Jan,
I’m considering buying this laptop, though I see no mention of the trackpad. Have you found the trackpad useable or does it cause problems when coding or during extended bouts of typing. Many reviews of this laptop indicate the trackpad is mediocre at best.
Robert, you get what you pay for. It’s certainly okay for the price. I’d aim for a better spec’d laptop for coding though.
Cheers,
Jan
Liked your post very much, thank you for your time to upload it!
I’m in the same position just like you were, that is to buy a decent, value for money, Linux/win10 laptop with the only exception a bigger screen, 15 inches and a european guarantee extension for possible problems it may come up with. Can you help?
Unfortunately, the driver changes for the trackpad were pulled from the 4.4 kernel before the final version was released. They will be included in the 4.5 kernel.