System76 Oryx Pro

From ArchWiki
Jump to navigation Jump to search

Installation

The System76 Oryx Pro comes with two NVMe M.2 slots, as well as space for a 2.5" SSD/HDD. Booting from NVMe requires the use of EFI, while booting over SATA/AHCI does not. Typically EFI would be a safe-to-use method for this laptop overall.

Drivers

The System76 Oryx Pro has customized utilities and daemons that assist with running the Oryx Pro nicely under Linux. This includes driver (graphical, io, fan) configuration, firmware updates, and LED control.

System76 produces a distribution called Pop OS! which they install on their machines. This guide is meant to align drivers and graphical configurations with the style that Pop OS! chooses, which seems to be best for these configurations.

The collection of drivers can be found in the AUR.

system76-driverAUR

system76-dkmsAUR

system76-io-dkmsAUR

system76-firmware-daemonAUR

system76-powerAUR

There are also -git versions of many of these packages, if you wish to stay bleeding edge.

Graphical

This system comes complete with an integrated (intel) and discrete (NVIDIA) graphics card. The external ports (DP over Mini-DP, DP over USB-C, HDMI) are tied to the discrete nvidia card. Some users have reported getting this to work right with Bumblebee.

When in doubt, remove bumblebee and install NVIDIA proprietary drivers.

Your mileage may vary if you are using a more complete DE like GNOME; this has only been tested with i3-wm.

Audio

Audio seems to work out of the box with a USB headset, however, it does not relay audio to the onboard speaker. This section needs to be feature complete with workarounds for any issues.

Suspend/Hibernate

Out of the box, Arch Linux does not resume a previously suspended or hibernated session. This section needs to be feature complete with workarounds for any issues.

Common Issues

system76-firmware: EFI mount point not found

If using the new (replacement) EFI mount point /efi, ensure you have the mount present in etc/fstab. You may find the appropriate device to mount by using a combination of lsblk and fdisk -l.

# fdisk -l # List disks (one device will be designated as "EFI System")
# lsblk    # List devices and mount points, you should see the EFI system device, and confirm whether it is mounted/unmounted
# mount device /efi
#
# genfstab -U / # (optional) print fstab configuration for inclusion/merging into /etc/fstab

After mounting the device, system76-firmware-daemonAUR must be built from source (root not required) and modified to include `/efi` as a valid EFI mount point.

Note: There is a pull request to upstream the required change[1]

After building and installing the modified system76-firmware from source, system76-firmware-cli maybe run to schedule a firmware update:

# system76-firmware-cli schedule

With grub

After scheduling a firmware update, ensure that GRUB is set to use the EFI partition like so:

# grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=grub
# cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak
# grub-mkconfig -o /boot/grub/grub.cfg

Restart to trigger the firmware update.

Xorg fails to start with "No devices detected"

If you find (normally after an update & restart) that launching X (via startx or otherwise) does not work, you may confirm that the nvidia device is installed and working by doing the following:

Confirm the error in ~/.local/share/xorg/Xorg.0.log. The nvidia kernel module should successfully load. You may also confirm the error with dmesg or journalctl.

Check whether both integrated and discrete graphics cards are available:

# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)
01:00.0 VGA compatible controller: NVIDIA Corporation TU106M [GeForce RTX 2070 Mobile] (rev a1)

If you do not see the second entry (or some similar NVIDIA card), make sure the card has been turned on by system76-powerAUR (use --help to explore options):

# system76-power graphics 

Check whether the discrete NVIDIA graphics card is powered on using system76-powerAUR:

# system76-power graphics power

To power the discrete NVIDIA graphics card on, supply "on" as an argument (i.e. system76-power graphics power on). After doing so and querying again, you should see:

# system76-power graphics power
on (discrete)

Once the card is powered on, it should show up in the output of lspci, and be detectable by Xorg, given that the appropriate NVIDIA driver is installed.