/asus_g14_2024_linux

Linux installation guide for the 2024 Asus G14.

Asus G14 2024 Linux Setup

Based on the Asus Linux guide.

This was accomplished on the 2024 G14 with the NVIDIA 4070 and 32 GB of memory.

You will need a compatible laptop, high degree of familiarity with technology, linux, bash, and nano. I am not a Linux guru by any means, but years of macOS/unix familiarity weren't hurting, either.

I tried vanilla Fedora — everything broke badly the moment I installed the NVIDIA drivers in Fedora. This guide is for installing Nobara. Nobara is basically Fedora, but with a bunch of patches for gaming — it also makes it easy to install the Asus-specific stuff!

Installation

  • Make sure the computer is powered.

  • Do not plug any external displays or devices into the computer during setup, as it can mess it up (per the Asus Linux site).

  • To access the BIOS, mash ESC when the red ROG logo appears and select Enter Setup.

  • In the BIOS, enter the advanced mode and disable anything regarding Secure Boot and Fast Boot. While you're there, you can also disable the post-boot audio (if it annoys you).

  • In Windows, disable Fast Startup.

  • Use Disk Management in Windows to shrink the Windows partition. If you need to move partitions to make all the free space adjacent, you will need to use NIUBI Partition Editor.

  • Backup the Windows C:\eSupport directory. It contains drivers for the 2024 G14 that cannot be obtained online. If you have lost this folder, you may download one posted here via this.

  • Make a Nobara install flash drive with Rufus. Use the Nvidia Gnome variant. Nobara is essentially Fedora with a bunch of patches for gaming laptops.

  • Follow the install guide.

  • For partitions: either let it do it automatically or create partitions as follows (the order of partitions doesn't matter — simply their existence):

    • 1024 MB
      • File system: FAT32
      • Mount point: /boot/efi
      • Label: boot
      • Flags: boot
    • 1024 MB
      • File system: Ext4
      • Mount point: /boot
      • Flags: none
    • Remaining space
      • File system: Ext4 or BTRFS
      • Mount point: /
      • Flags: root

Important

You may experience long shutdown/reboot times. When pressing ESC to view the shutdown log, it was hanging on Job fwupd.service/stop running until it timed out at 6 minutes. This can be fixed by simply disabling fwupd very thoroughly. fwupd is responsible for updating firmware on your computer, but you can always invoke it manually when you need to update firmware.

sudo systemctl mask fwupd fwupd-refresh fwupd-refresh.timer

After running that command and rebooting one or two times, your computer should begin shutting down/rebooting in a timely manner.

  • After installation, return to the BIOS by pressing ESC when the red ROG logo appears and selecting Enter Setup. Then, rearrange the boot order so that Fedora is up at the top. F10 to save and reboot. Afterwards, you should be presented with the GRUB (Linux bootloader) menu. You have 5 seconds to change the selection, otherwise it will boot into Nobara.

  • Follow the First Steps of the Nobara welcome app, rebooting as needed for each step.

  • Make sure all 3 options are installed from the Nobara Driver Manager app are installed (nvidia-driver, rocm-meta, and asusctl). You'll have to reboot after each one is installed.

  • Since rebooting is kinda broken, you'll have to hold down power to kill after shutting down (or wait 6 minutes for the shutdown to timeout).

GPU Switching

  • Install supergfxctl to switch between the integrated and dedicated GPUs. Do not use other switchers like EnvyControl. It's important to use supergfxctl because it originated in the Asus Linux community and is designed just for this hardware.

    sudo dnf copr enable lukenukem/asus-linux
    sudo dnf install supergfxctl
    sudo dnf update --refresh # update system
    
    sudo systemctl enable supergfxd.service
  • Go to the "Software" app and install "Extensions" and "Extension Manager". Use "Extension Manager" to install GPU-Supergfxctl-Switch available on the Gnome Extensions website here.

  • Reboot so you can see the options available to you. Note that you'll always have to do a full reboot when you switch to dedicated graphics only (AsusMuxDgpu), but switching to Hybrid only requires a logout. Switching to integrated is instant.

    • Switching to/from Hybrid mode requires a logout only. (no reboot)
    • Switching between integrated/vfio is instant. (no logout or reboot)

Power Management

  • Let's install auto-cpufreq for power management to get the most out of your battery life on Linux.

    git clone https://github.com/AdnanHodzic/auto-cpufreq.git
    cd auto-cpufreq && sudo ./auto-cpufreq-installer
    
    # You do not need the git clone once installed
    cd ..
    rm -rf auto-cpufreq 
  • Start the auto-cpufreq daemon:

    sudo auto-cpufreq --install

    The command above also starts the system service so that auto-cpufreq starts on boot.

  • Let's edit the config file:

    sudo nano /etc/auto-cpufreq.conf
  • Paste in this person's config file:

    # settings for when connected to a power source
    [charger]
    # see available governors by running: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
    # preferred governor.
    governor = performance
    
    # minimum cpu frequency (in kHz)
    # example: for 800 MHz = 800000 kHz —> scaling_min_freq = 800000
    # see conversion info: https://www.rapidtables.com/convert/frequency/mhz-to-hz.html
    # to use this feature, uncomment the following line and set the value accordingly
    # scaling_min_freq = 400000
    
    # maximum cpu frequency (in kHz)
    # example: for 1GHz = 1000 MHz = 1000000 kHz -> scaling_max_freq = 1000000
    # see conversion info: https://www.rapidtables.com/convert/frequency/mhz-to-hz.html
    # to use this feature, uncomment the following line and set the value accordingly
    scaling_max_freq = 3300000
    
    # turbo boost setting. possible values: always, auto, never
    turbo = never
    
    # settings for when using battery power
    [battery]
    # see available governors by running: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
    # preferred governor
    governor = ondemand
    
    # minimum cpu frequency (in kHz)
    # example: for 800 MHz = 800000 kHz —> scaling_min_freq = 800000
    # see conversion info: https://www.rapidtables.com/convert/frequency/mhz-to-hz.html
    # to use this feature, uncomment the following line and set the value accordingly
    scaling_min_freq = 400000
    
    # maximum cpu frequency (in kHz)
    # see conversion info: https://www.rapidtables.com/convert/frequency/mhz-to-hz.html
    # example: for 1GHz = 1000 MHz = 1000000 kHz -> scaling_max_freq = 1000000
    # to use this feature, uncomment the following line and set the value accordingly
    scaling_max_freq = 2800000
    
    # turbo boost setting. possible values: always, auto, never
    turbo = never
    
  • Reboot, as always.

  • Enjoy your computer!