Jump to content

# System76 Galago Pro galp3

From ArchWiki

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-gitAUR
- system76-acpi-dkmsAUR
- system76-io-dkmsAUR

Daemons

- system76-driverAUR
- system76-powerAUR (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-managerAUR (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.

Category:

- System76

System76 Galago Pro galp3
Add topic