Debian 13 (trixie) on the Samsung Galaxy Book6 Pro 16
Table of Contents
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
- Update the BIOS from Windows. Samsung ships firmware only through Windows Update.
- 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:
atkbdmatches only the internal i8042 keyboard, and thesvn/pnfields limit it to this Samsung model.0x38is Left Alt, which now sends Super.0xdbis Left Super (e0 5b), which now sends Alt.- Right Alt is unchanged.
Lofree Flow 84 2:
- Put the keyboard in Windows mode. Its Command key then sends Left GUI.
b0003is the USB bus,v388Dthe vendor ID andp0002the product ID. Only this keyboard matches.- USB keyboards report HID usages, not AT scancodes.
0x700e2is Left Alt and0x700e3is Left GUI (page0x07, usage0xe2/0xe3). - After the swap, the key next to Fn sends Alt and the Alt key sends Super, the same as on the built-in keyboard.
- Over Bluetooth the bus is
b0005and the IDs may differ. Add a second entry with the values fromudevadm info(see below).
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
| Part | Check |
|---|---|
| Audio | Works. |
| Wi-Fi 7 | Works. |
| Suspend | Run several suspend/resume cycles on battery and on charger. |
| Touchpad | Pointing works; haptic click feedback is uneven. |
| Fingerprint | Not supported by libfprint. Use a password. |
| External display | Works. The LG UltraFine 32U990A runs over a Thunderbolt 5 cable. |
| USB-C docking | Works, including the internal USB-C dock. |
| External keyboard | Works. The Lofree Flow 84 2 runs in Windows mode, with Left Alt and Command swapped in udev (step 6). |