System76 Galago Pro galp3

Hardware
PCI/USB ID
Working?
GPU (Intel)
Yes
GPU (NVIDIA)
No
Audio
Yes
Microphone
Yes
Speakers
Yes
Webcam
Yes
Bluetooth
Yes
Ethernet
Yes
Wireless
Yes
SD-card reader
Yes
Fingerprint reader
No
OEM software
System76 develops a special distribution (Pop!_OS) for their computers, and it comes with many tweaks and tools to ensure a seamless end-user experience.  Arch does not have these out of the box;  and unfortunately, sometimes their computers do not work right without them.  Thankfully, it is possible to get the same first-class hardware support in Arch Linux that you have in Pop!_OS -- it just takes a little elbow grease.
Packages
All necessary packages can be found in the
AUR
.  It is recommended to install everything in the list below.
Modules
system76-dkms-git
AUR
system76-acpi-dkms
AUR
system76-io-dkms
AUR
Daemons
system76-driver
AUR
system76-power
AUR
(needed for System76 switchable graphics)
Firmware
system76-firmware
(required if you want to update your BIOS and the daemon seems to be needed for things like audio to work right)
firmware-manager
AUR
(required if you want to know when there is a BIOS update available)
(There are also "-git" versions of many of these packages, if you wish to stay bleeding edge.)
Settings
Once you have installed the above, you will need to tell your computer to use them.
Services
Enable
system76.service
,
system76-firmware-daemon.service
and
system76-power.service
: (
source
)
Drivers
To make sure all drivers are being loaded correctly, run
system76-driver-cli
;  this will automatically add necessary rules to
/etc/modprobe.d
, and execute
mkinitcpio
.
Note
However, as of 2021-04-06, this creates a malformed
s76-i915-mkinitcpio.conf
file, and a redundant (if you have
system76-power.conf
)
system76-driver_i2c-nvidia-gpu.conf
file.  As such, this step may be skippable, for the time-being.
BIOS updates
To check your current BIOS version and whether there is a new version available, run
firmware-manager
as root.  Keep in-mind that this is a GTK application, so you need to be running X or Wayland for it to run.  (It has no CLI -- it does not even respond to
--help
.)
To update your system to the latest firmware on the next boot, run
system76-firmware-cli schedule
.
Suspend/hibernate
Out of the box, Arch Linux does not resume a previously suspended or hibernated session. To support hibernation, ensure that you have swap space equal to or greater than your system memory (RAM), and add "resume" to your
/etc/mkinitcpio.conf
file, per
the instructions here
.
Note
Hibernation has yet to be tested on this device but suspension seems to work... sometimes.
Function keys
Only keys with known functions are shown.
Multimedia keys
Key
Visible?
Marked?
Effect
Fn+`
Yes
Yes
XF86AudioPlay
Fn+F3
Yes
Yes
XF86AudioMute
Fn+F5
Yes
Yes
XF86AudioLowerVolume
Fn+F6
Yes
Yes
XF86AudioRaiseVolume
Display keys
Key
Visible?
Marked?
Effect
Fn+F2
No
Yes
Toggles power to the display
Fn+F8
Yes
Yes
XF86MonBrightnessDown
Fn+F9
Yes
Yes
XF86MonBrightnessUp
Number pad keys (NumLock off)
Key
Visible?
Marked?
Effect
Fn+M
Yes
No
KP_Insert
Fn+.
Yes
No
KP_Delete
Fn+?
Yes
Yes
KP_Add
Fn+J
Yes
No
KP_End
Fn+K
Yes
No
KP_Down
Fn+L
Yes
No
KP_Next
Fn+;
Yes
Yes
KP_Subtract
Fn+U
Yes
No
KP_Left
Fn+I
Yes
No
KP_Begin
Fn+O
Yes
No
KP_Right
Fn+P
Yes
Yes
KP_Divide
Fn+7
Yes
No
KP_Home
Fn+8
Yes
No
KP_Up
Fn+9
Yes
No
KP_Prior
Fn+0
Yes
Yes
KP_Multiply
Number pad keys (NumLock on)
Key
Visible?
Marked?
Effect
M
Yes
Yes
KP_0
.
Yes
Yes
KP_Decimal
?
Yes
Yes
KP_Add
J
Yes
Yes
KP_1
K
Yes
Yes
KP_2
L
Yes
Yes
KP_3
;
Yes
Yes
KP_Subtract
U
Yes
Yes
KP_4
I
Yes
Yes
KP_5
O
Yes
Yes
KP_6
P
Yes
Yes
KP_Divide
7
Yes
Yes
KP_7
8
Yes
Yes
KP_8
9
Yes
Yes
KP_9
0
Yes
Yes
KP_Multiply
Misc toggle keys
Key
Visible?
Marked?
Effect
Fn+1
No
No
Toggles max state of fans
Fn+F4
No
Yes
Cycle keyboard backlight brightness
Fn+F1
Yes
Yes
XF86TouchpadToggle
Fn+F10
No
Yes
Toggles power to the webcam
Fn+F11
?
Yes
XF86RFKill
Fn+F12
?
Yes
Suspends the computer
Fn+Insert
Yes
Yes
Num_Lock
Fn+Delete
Yes
Yes
Scroll_Lock
Fn+Return
Yes
Yes
KP_Enter
Broken keys
Key
Visible?
Marked?
Effect
Fn+F7
No
Yes
Label: Toggle displays
Reality: Apparently behaves like Super_L and XK_l ?
Fn+PrintScreen
Yes
Yes
Label:
SysRq
Reality:
PrintScreen
(ignores
Fn
)
Fn+Pause
No
Yes
Label:
SysRq
Reality:
Pause
(ignores
Fn
)
Troubleshooting
system76-firmware: EFI mount point not found
If using
/efi
as the
ESP
mount point, 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
.
List disks (one device will be designated as "EFI System"):
# fdisk -l
List devices and mount points, you should see the EFI system device, and confirm whether it is mounted/unmounted:
# lsblk
If needed, mount it:
# mount
device
/efi
Optionally print the fstab configuration for inclusion/merging into
/etc/fstab
# genfstab -U /
After doing the above, it might be a good idea 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 system 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.