Debian 13 (trixie) on the Samsung Galaxy Book6 Pro 16

Trixie ships kernel 6.12. The Book6 Pro (Panther Lake, Arc B390 / Xe3) needs kernel 6.18+, Mesa 25.3+ and current firmware. All of it comes from trixie-backports.

Before installing

  1. Update the BIOS from Windows. Samsung ships firmware only through Windows Update.
  2. Have wired network ready (USB-C Ethernet or phone USB tethering). Wi-Fi will not work in the installer.

1. Install trixie

Install from the standard netinst or DVD image. Keep non-free-firmware enabled. The desktop will run on software rendering until step 4.

2. Enable backports

Create /etc/apt/sources.list.d/backports.sources:

Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
sudo apt update

3. Kernel and firmware

sudo apt install -t trixie-backports \
    linux-image-amd64 \
    firmware-linux-nonfree \
    firmware-intel-graphics \
    firmware-iwlwifi \
    firmware-sof-signed

Check the kernel version is 6.18 or newer before rebooting:

apt policy linux-image-amd64

Reboot, then verify:

uname -r
lspci -k | grep -A3 -E "VGA|Display"   # Kernel driver in use: xe

Secure Boot keeps working; backports kernels are signed.

4. Mesa

sudo apt install -t trixie-backports \
    mesa-vulkan-drivers libgl1-mesa-dri libegl-mesa0 \
    libglx-mesa0 libgbm1 mesa-va-drivers
sudo apt install mesa-utils vulkan-tools

Verify:

vulkaninfo --summary | grep -E "deviceName|driverName"

llvmpipe means you are still on software rendering. Check apt policy mesa-vulkan-drivers; if backports is below 25.3, wait for the update or move to Debian testing (forky).

5. Samsung platform driver

Included in the backports kernel (samsung-galaxybook, 6.15+).

lsmod | grep samsung_galaxybook
cat /sys/firmware/acpi/platform_profile_choices
ls /sys/class/power_supply/        # battery name, e.g. BAT1

Other firmware options are under /sys/class/firmware-attributes/samsung-galaxybook/attributes/.

6. Swap Alt and Super

The Fn key cannot be remapped. Swap Alt and Super so Alt sits next to Fn. I do the same on the external keyboard, a Lofree Flow 84 2 in Windows mode, so both keyboards have the same layout.

Do it in udev hwdb, not in xkb. GNOME on Wayland applies altwin:swap_alt_win to every keyboard, so every external keyboard and dock gets swapped too. A hwdb remap changes scancodes for each matched device only. Other keyboards stay untouched.

How it works

When an input device appears, udev looks it up in the hwdb by a match string built from the device: its bus, vendor and product IDs, and for the built-in keyboard the DMI data of the laptop. Every KEYBOARD_KEY_<scancode>=<keycode> line under a matching entry is written into the kernel’s keymap for that device. The kernel then emits the new keycode for that scancode, before libinput, xkb or the desktop see anything. That is why the swap works the same in GNOME, on the console and in the login screen.

Create /etc/udev/hwdb.d/61-keyboard-builtin-altwin.hwdb:

# Built-in keyboard (AT/i8042), this Samsung model only.
# 0x38 = Left Alt, 0xdb = Left Super (e0 5b) in AT scancode set 1.
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSamsung:pnGalaxyBook6Pro-PAMB:*
 KEYBOARD_KEY_38=leftmeta
 KEYBOARD_KEY_db=leftalt

# Lofree Flow 84 2 over USB (388d:0002, shows up as "Flow2@Lofree").
# 0x700e2 = Left Alt, 0x700e3 = Left GUI in the HID keyboard usage page.
evdev:input:b0003v388Dp0002*
 KEYBOARD_KEY_700e2=leftmeta
 KEYBOARD_KEY_700e3=leftalt

Built-in keyboard:

Lofree Flow 84 2:

Apply it without a reboot:

sudo systemd-hwdb update
sudo udevadm trigger --subsystem-match=input --action=change

Check that the entries were applied:

udevadm info /dev/input/by-id/*Lofree*-event-kbd | grep KEYBOARD_KEY

For another laptop, take the vendor and product from /sys/class/dmi/id/sys_vendor and /sys/class/dmi/id/product_name, remove the spaces, and put them in the svn and pn fields. For another USB keyboard, take the IDs from lsusb and write them in uppercase hex with four digits. If the keys do not swap, check the scancodes with sudo evtest: the MSC_SCAN value is what goes after KEYBOARD_KEY_.

Fn + F12 toggles Fn Lock. It resets on reboot.

7. Check the rest

PartCheck
AudioWorks.
Wi-Fi 7Works.
SuspendRun several suspend/resume cycles on battery and on charger.
TouchpadPointing works; haptic click feedback is uneven.
FingerprintNot supported by libfprint. Use a password.
External displayWorks. The LG UltraFine 32U990A runs over a Thunderbolt 5 cable.
USB-C dockingWorks, including the internal USB-C dock.
External keyboardWorks. The Lofree Flow 84 2 runs in Windows mode, with Left Alt and Command swapped in udev (step 6).