Asus Zephyrus G14 Linux – 6 Months in

I've been using the Zephyrus G14 (2020) since July 2020 almost exclusively on Linux, and here's my experience.

I'll start the list with the things that don't work, mainly because that list is so short.

  • Fingerprint reader
  • Several small issues with nvidia hybrid graphics mode

That's it. The fingerprint reader is a Goodix 521d, which uses encrypted protocols from what I've heard and Goodix aren't willing to do anything Linux related.

For the rest of the issues, it's Nvidia related, as usual. When in hybrid mode (Vega GPU as primary, Nvidia as secondary), the USB-c display output doesn't work, and the GPU doesn't turn off fully, so it perpetually draws 3-5w. Considering that the rest of the laptop only uses 7w at idle, that's quite a hit.

The biggest help in getting this laptop to work is asusctl and the related DKMS modules. This allows for custom fan curves and performance profiles (asus-rog-nb-wmi and acpi_call modules), keyboard backlighting (hid-asus-rog module), and switching GPU modes. The GPU switcher is especially useful, and I tend to switch between integrated (Vega only; 10-11hr battery) and nvidia (Nvidia as primary GPU, for gaming and multiple external displays).

Update 2021: The 5.11+ kernels include the necessary patches, so DKMS modules are no longer needed. I am also using Wayland now, because the latest 470 drivers have XWayland support, and since Wayland supports GPU hotplug, I can now turn the GPU on and off for good battery & high performance without restart my session. This is done by switching between asusctl graphics modes integrated (full battery life) and compute (GPU attaches to Wayland automatically).

Ok, to the things that are working in general:

  • Keyboard backlight
  • Good battery (without the nvidia GPU randomly turning on)
  • Fn keys, and the 4 extra media keys (except mic mute, currently wayland only)
  • High performance gaming with Nvidia, both native games and with proton
  • 120hz screen w/ freesync functionality
  • Custom fan curves, including completely silent operation
  • Sleep mode, hibernate, etc all working
  • Up to 3 external displays (1 HDMI, 2 USB-c)
  • Battery charge limit (works in sleep mode, it's a feature of the charge controller)
  • And, the most interesting thing, GPU Passthrough to a Windows 10 VM.

The last point there was a bet I was willing to take when purchasing this laptop. Turns out, it works pretty well. I've been using it for games and high performance applications that don't work well or not at all in proton/wine, including, but not limited to, Cyberpunk 2077, Watch Dogs Legion, Autodesk Inventor 2020, and the Adobe apps.

18 thoughts on “Asus Zephyrus G14 Linux – 6 Months in”

  1. Hey, thank you for the insights. I am quite a heavy Linux user myself. I have it on my desktop machine and I am looking to get Linux working on my Asus Zephyrus. Thank you for this post!

  2. Could I ask what linux distro you are using? The only one that I’ve come across that has a complete setup for the G14 is Arch Linux, but it’s been a pretty steep learning curve for me as I’ve always been a Debian user.

    1. I use arch, but I was on fedora for a while and that was easy to setup. The folks in the asus-linux discord have a few fedora packages you can install, and you’re good to go.

    2. Well, you can go for manjaro or garuda linux. Apart from package management commands, everything is same!
      I personally hop from debian to arch from time to time!

    1. I get 10-11 hours with websites (no video). Like schoolwork and stuff.

      For video playback (HW accelerated) i get around 6-8 hours.

      i am dual booted, but haven’t touched windows native in forever, I use my VM instead.

      sorry for the late reply, normally i get an email, but i didn’t get one this time.

  3. Hallo, i just startend studying computer science so I’m completely new to Linux and never used it before and I have the g14 myself and my tutor told me I need Linux for classes. Is there any tutorial or something you can recommend for me to install Linux on my g14 because if I’m being honest i don’t even Not what kernel is.

    1. I have only tested 1 external display at a time, but in xorg xrandr showed the 4 total screens (eDP, HDMI, and 2 DP for USB-c). I had no issues using 1 external screen on KDE wayland.

      1. Hey, I thought the USB-C port on the right was not capable of video output. I had actually gotten my HDMI port damaged and then started using USB-C on the left one. I currently use Arch and switch to Nvidia in order to get the display from USB-C (left). How can I get the USB-C on the right to send display output?

        1. That is correct, the right USB-C port does not output video. The left USB-C port however can drive 2 displays at once, which is what I was referring to.

          Only other way to get video would be to use displaylink. But that means CPU rendering only, do it only if you absolutely have to.

  4. Hi Cole!
    Thanks for your post!
    Could you please share your kernel config?
    I trying to make vga_switcheroo works, but no luck for now – it seems like I have incorrect kernel config for this machine…
    Thanks!

  5. I have been using manjaro on my g14 for 4 months already.
    no major issues so far – i don’t mind not being able to use the fingerprint reader.
    for the games i’m playing on steam, a few of them are linux native and the other ones (like battlefront 2) work perfectly fine with steamplay via protondb.
    i did try ubuntu for a few days and there were major issues with my graphics, not being able to send signal to an external monitor, not being able to regulate the fans, etc, so i switched back to manjaro.
    as far as i’m concerned, i’m getting ready for steamos 3 to be available, and i’m sure it’s going to work just great.

  6. Hi!
    Thank you for your posts! I bought a G14 a few months back and your posts helped me set it up. I also did some digging about the fingerprint reader, and it turns out there is a solution to make it work. Somebody wrote a firmware for the fingerprint reader which works with libfprint. Here is the link for the blogpost about it:
    https://infinytum.co/fixing-my-fingerprint-reader-on-linux-by-writing-a-driver-for-it/
    I tried it on both Manjaro and Arch, I was able to make it work without any issues.

Leave a Reply to Cole Deck Cancel reply

Your email address will not be published. Required fields are marked *