Translation(s): none
DebianOn is an effort to document how to install, configure and use Debian on some specific hardware. Therefore potential buyers would know if that hardware is supported and owners would know how get the best out of that hardware. The purpose is not to duplicate the Debian Official Documentation, but to document how to install Debian on some specific hardware. If you need help to get Debian running on your hardware, please have a look at our user support channels where you may find specific channels (mailing list, IRC channel) dedicated to certain types of hardware. |
Models covered
Framework 12th generation
Overall Status
Core Components |
||
Boot Standard Kernel: |
|
|
LAN network card: |
[-] |
|
Detect hard drives: |
|
|
Secure boot: |
|
|
Extra Features |
||
Fingerprint reader |
|
|
CPU Frequency Scaling |
|
|
Hibernation |
(tested only on bookworm with Linux 6.1.0-7; need SecureBoot off) |
|
Sleep / Suspend |
(tested only on bookworm with Linux 6.1.0-7) |
|
Xorg |
|
|
- OpenGL |
|
|
- Resize-and-Rotate(randr) |
(tested only on bookworm) |
|
Switch to External Screen |
(tested with HDMI expansion card, on bookworm) |
|
Mouse |
|
|
- Built-in (Touchpad) |
|
|
Wireless/Wifi |
Works with the Linux 5.19 kernel from bookworm, not with 5.10 from bullseye |
|
Webcam |
|
|
Keyboard's Hotkeys |
[?] |
Legend :
= OK ; Unsupported(No Driver) ; = Error (Couldn't get it working); [?] Unknown, Not Test ; [-] Not-applicable
= Configuration Required; = Only works with a non-free driver and or firmware
Important Note
The kernel of Debian Bullseye, Linux 5.10, is too old for the AX210 wireless card. However, the system can be installed perfectly using the testing netinst image with firmware (firmware-testing-amd64-netinst.iso). Testing has Linux 5.19. Make sure you download the Debian image with firmware, the ?FrameWork (as pretty much all modern laptops) does not work without firmware blobs.
Configuration
Display
The ?FrameWork laptop comes with an Intel Xe Integrated GPU graphics chipset, automatically recognized and configured by the i915 module. The resolution is 2256 x 1504:
ema@pinolo:~$ xrandr | head -2 Screen 0: minimum 320 x 200, current 2256 x 1504, maximum 16384 x 16384 eDP-1 connected primary 2256x1504+0+0 (normal left inverted right x axis y axis) 285mm x 190mm ema@pinolo:~$ glxinfo | head name of display: :0 display: :0 screen: 0 direct rendering: Yes server glx vendor string: SGI server glx version string: 1.4 server glx extensions: GLX_ARB_context_flush_control, GLX_ARB_create_context, GLX_ARB_create_context_no_error, GLX_ARB_create_context_profile, GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, GLX_ARB_multisample, GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, [...]
With such a high screen resolution it is very hard to read the small fonts in console. Edit /etc/default/console-setup and set FONTSIZE=32x16 to get a better font size. Also you may want to try out FONTFACE="Terminus". Grub fonts are also very hard to read, set GRUB_GFXMODE=1024x768 in /etc/default/grub and run update-grub as root to fix that. Reboot to see the changes.
Fonts are similarly hard to read under Xorg. This can be fixed by changing dpi and a few other settings under ~/.Xresources:
Xft.dpi: 140 Xft.autohint: 0 Xft.lcdfilter: lcddefault Xft.hintstyle: hintfull Xft.hinting: 1 Xft.antialias: 1 Xft.rgba: rgb
The following ~/.xinitrc is an example of how to start the i3 window manager with the above settings applied:
xrdb -merge ~/.Xresources exec i3
The kernel complains about missing firmware, namely adlp_dmc_ver2_16.bin and adlp_guc_70.1.1.bin (or the older version adlp_guc_69.0.3.bin):
[ 2.001637] i915 0000:00:02.0: firmware: failed to load i915/adlp_dmc_ver2_16.bin (-2) [ 2.001652] i915 0000:00:02.0: firmware: failed to load i915/adlp_dmc_ver2_16.bin (-2) [ 2.001653] i915 0000:00:02.0: Direct firmware load for i915/adlp_dmc_ver2_16.bin failed with error -2 [ 2.001655] i915 0000:00:02.0: [drm] Failed to load DMC firmware i915/adlp_dmc_ver2_16.bin. Disabling runtime power management. [ 2.001657] i915 0000:00:02.0: [drm] DMC firmware homepage: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915 [ 2.012783] i915 0000:00:02.0: firmware: failed to load i915/adlp_guc_70.1.1.bin (-2) [ 2.012789] i915 0000:00:02.0: firmware: failed to load i915/adlp_guc_70.1.1.bin (-2) [ 2.012795] i915 0000:00:02.0: firmware: failed to load i915/adlp_guc_69.0.3.bin (-2) [ 2.012799] i915 0000:00:02.0: firmware: failed to load i915/adlp_guc_69.0.3.bin (-2) [ 2.012801] i915 0000:00:02.0: GuC firmware i915/adlp_guc_70.1.1.bin: fetch failed with error -2 [ 2.012803] i915 0000:00:02.0: Please file a bug on drm/i915; see https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs for details. [ 2.012803] i915 0000:00:02.0: [drm] GuC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915 [ 2.119813] i915 0000:00:02.0: [drm] GuC firmware i915/adlp_guc_70.1.1.bin version 0.0 [ 2.119827] i915 0000:00:02.0: GuC initialization failed -2 [ 2.119828] i915 0000:00:02.0: Enabling uc failed (-5) [ 2.119829] i915 0000:00:02.0: Failed to initialize GPU, declaring it wedged!
You can fetch the missing firmware files from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915, place them under /lib/firmware/i915/, and update your initramfs images with:
sudo wget -l 1 -np --no-directories --content-disposition --restrict-file-names=nocontrol -e robots=off -A .bin -r https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915 -P /lib/firmware/i915/ sudo update-initramfs -kall -u
The adlp_dmc_ver2_16.bin blob fixes the "Disabling runtime power management" error message:
[ 2.197119] i915 0000:00:02.0: firmware: direct-loading firmware i915/adlp_dmc_ver2_16.bin [ 2.199095] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adlp_dmc_ver2_16.bin (v2.16)
adlp_guc_70.1.1.bin fixes the remaining issues:
[ 2.122822] i915 0000:00:02.0: firmware: direct-loading firmware i915/adlp_guc_70.1.1.bin [ 2.123003] i915 0000:00:02.0: firmware: direct-loading firmware i915/tgl_huc_7.9.3.bin [ 2.235827] i915 0000:00:02.0: [drm] GuC firmware i915/adlp_guc_70.1.1.bin version 70.1 [ 2.235830] i915 0000:00:02.0: [drm] HuC firmware i915/tgl_huc_7.9.3.bin version 7.9 [ 2.251941] i915 0000:00:02.0: [drm] HuC authenticated [ 2.252818] i915 0000:00:02.0: [drm] GuC submission enabled [ 2.252819] i915 0000:00:02.0: [drm] GuC SLPC enabled [ 2.253653] i915 0000:00:02.0: [drm] GuC RC: enabled [ 3.405058] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
Note that if you're using the i3 window manager under X11 you will need to use a compositor for X11. The compton package provides one. You will also need to add the following to your i3 configuration:
exec --no-startup-id compton --backend glx --vsync opengl-swc --daemon
To see if GPU acceleration is working fine, you can try vainfo:
ema@pinolo:~$ vainfo | head libva info: VA-API version 1.15.0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_15 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.15 (libva 2.12.0) vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.4.3 () vainfo: Supported profile and entrypoints VAProfileNone : VAEntrypointVideoProc VAProfileNone : VAEntrypointStats VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD
You should then be able to play videos in Firefox and see the GPU at work with intel_gpu_top (from the package intel-gpu-tools).
Audio
The onboard Intel Corporation Alder Lake PCH-P High Definition Audio Controller is supported by the snd_hda_intel kernel module without any configuration needed.
Mouse
The touchpad works fine out of the box. Use the package xserver-xorg-input-libinput and the following xorg configuration snippet to get tapping with one finger for left-click behavior, tapping with two fingers for middle-click (for copy/paste):
# /etc/X11/xorg.conf.d/40-libinput.conf Section "InputClass" Identifier "libinput touchpad catchall" MatchIsTouchpad "on" MatchDevicePath "/dev/input/event*" Driver "libinput" Option "Tapping" "on" Option "TappingButtonMap" "lmr" EndSection
Fingerprint Reader
The reader is supported out of the box on Debian Bookworm. It is identified as follows by lsusb:
Bus 001 Device 004: ID 27c6:609c Shenzhen Goodix Technology Co.,Ltd. Goodix USB2.0 MISC
And the kernel has this to say:
[ 2.960273] usb 1-9: new full-speed USB device number 4 using xhci_hcd [ 3.111373] usb 1-9: New USB device found, idVendor=27c6, idProduct=609c, bcdDevice= 1.00 [ 3.111384] usb 1-9: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 3.111388] usb 1-9: Product: Goodix USB2.0 MISC [ 3.111390] usb 1-9: Manufacturer: Goodix Technology Co., Ltd. [ 3.111393] usb 1-9: SerialNumber: UID4B491755_XXXX_MOC_B0
To use it:
$ sudo apt install fprintd libpam-fprintd $ sudo fprintd-enroll $username
At this point you'll be asked to swipe the right index finger 5 times till you get a message like:
Enroll result: enroll-completed"
See results under /var/lib/fprint.
In order to get fingerprint-based authentication working in console, add the following line at the beginning of /etc/pam.d/common-auth:
auth sufficient pam_fprintd.so
After rebooting, the authentication prompt will then look like this:
Debian GNU/Linux bookworm/sid pinolo tty3 pinolo login: ema Place your right index finger on the fingerprint reader
Power Management
- (not covered yet)
WiFi
The WiFi chip works out of the box with a recent kernel. Notably, the 5.10 kernel on Bullseye is too old. Linux 5.19 from Bookwork works great. In order for the card to work, you'll need the firmware-iwlwifi package, which the Debian installer should automatically take care of installing for you.
Webcam
The camera is automatically recognized and configured on Debian Bookworm. The device can be switched off and on with the onboard hardware switch. This is the kernel output when turning the switch on:
Sep 27 09:48:06 pinolo kernel: usb 1-7: new high-speed USB device number 6 using xhci_hcd Sep 27 09:48:06 pinolo kernel: usb 1-7: New USB device found, idVendor=0bda, idProduct=5634, bcdDevice= 0.21 Sep 27 09:48:06 pinolo kernel: usb 1-7: New USB device strings: Mfr=3, Product=1, SerialNumber=2 Sep 27 09:48:06 pinolo kernel: usb 1-7: Product: Laptop Camera Sep 27 09:48:06 pinolo kernel: usb 1-7: Manufacturer: Generic Sep 27 09:48:06 pinolo kernel: usb 1-7: SerialNumber: 200901010001 Sep 27 09:48:06 pinolo kernel: usb 1-7: Found UVC 1.00 device Laptop Camera (0bda:5634) Sep 27 09:48:06 pinolo kernel: input: Laptop Camera: Laptop Camera as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/input/input30
System Summary
lspci
$ lspci -nn 00:00.0 Host bridge [0600]: Intel Corporation Device [8086:4621] (rev 02) 00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-P Integrated Graphics Controller [8086:4626] (rev 0c) 00:04.0 Signal processing controller [1180]: Intel Corporation Alder Lake Innovation Platform Framework Processor Participant [8086:461d] (rev 02) 00:06.0 PCI bridge [0604]: Intel Corporation 12th Gen Core Processor PCI Express x4 Controller #0 [8086:464d] (rev 02) 00:07.0 PCI bridge [0604]: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #0 [8086:466e] (rev 02) 00:07.1 PCI bridge [0604]: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #1 [8086:463f] (rev 02) 00:07.2 PCI bridge [0604]: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #2 [8086:462f] (rev 02) 00:07.3 PCI bridge [0604]: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #3 [8086:461f] (rev 02) 00:08.0 System peripheral [0880]: Intel Corporation 12th Gen Core Processor Gaussian & Neural Accelerator [8086:464f] (rev 02) 00:0a.0 Signal processing controller [1180]: Intel Corporation Platform Monitoring Technology [8086:467d] (rev 01) 00:0d.0 USB controller [0c03]: Intel Corporation Alder Lake-P Thunderbolt 4 USB Controller [8086:461e] (rev 02) 00:0d.2 USB controller [0c03]: Intel Corporation Alder Lake-P Thunderbolt 4 NHI #0 [8086:463e] (rev 02) 00:0d.3 USB controller [0c03]: Intel Corporation Alder Lake-P Thunderbolt 4 NHI #1 [8086:466d] (rev 02) 00:14.0 USB controller [0c03]: Intel Corporation Alder Lake PCH USB 3.2 xHCI Host Controller [8086:51ed] (rev 01) 00:14.2 RAM memory [0500]: Intel Corporation Alder Lake PCH Shared SRAM [8086:51ef] (rev 01) 00:15.0 Serial bus controller [0c80]: Intel Corporation Alder Lake PCH Serial IO I2C Controller #0 [8086:51e8] (rev 01) 00:15.1 Serial bus controller [0c80]: Intel Corporation Alder Lake PCH Serial IO I2C Controller #1 [8086:51e9] (rev 01) 00:15.3 Serial bus controller [0c80]: Intel Corporation Alder Lake PCH Serial IO I2C Controller #3 [8086:51eb] (rev 01) 00:16.0 Communication controller [0780]: Intel Corporation Alder Lake PCH HECI Controller [8086:51e0] (rev 01) 00:16.3 Serial controller [0700]: Intel Corporation Device [8086:51e3] (rev 01) 00:1d.0 PCI bridge [0604]: Intel Corporation Device [8086:51b0] (rev 01) 00:1f.0 ISA bridge [0601]: Intel Corporation Alder Lake PCH eSPI Controller [8086:5182] (rev 01) 00:1f.3 Audio device [0403]: Intel Corporation Alder Lake PCH-P High Definition Audio Controller [8086:51c8] (rev 01) 00:1f.4 SMBus [0c05]: Intel Corporation Alder Lake PCH-P SMBus Host Controller [8086:51a3] (rev 01) 00:1f.5 Serial bus controller [0c80]: Intel Corporation Alder Lake-P PCH SPI Controller [8086:51a4] (rev 01) 01:00.0 Non-Volatile memory controller [0108]: Sandisk Corp WD Black SN750 / PC SN730 NVMe SSD [15b7:5006] a6:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz [8086:2725] (rev 1a)
lsusb
$ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 27c6:609c Shenzhen Goodix Technology Co.,Ltd. Goodix USB2.0 MISC Bus 001 Device 006: ID 0bda:5634 Realtek Semiconductor Corp. Laptop Camera Bus 001 Device 002: ID 32ac:0003 Framework DisplayPort Expansion Card Bus 001 Device 004: ID 8087:0032 Intel Corp. AX210 Bluetooth Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ sudo lsusb -v 2>/dev/null | grep -E '\<(^Bus|iProduct|bDeviceClass|bDeviceProtocol)' Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub bDeviceClass 9 Hub bDeviceProtocol 3 iProduct 2 xHCI Host Controller Bus 001 Device 003: ID 27c6:609c Shenzhen Goodix Technology Co.,Ltd. Goodix USB2.0 MISC bDeviceClass 239 Miscellaneous Device bDeviceProtocol 0 iProduct 2 Goodix USB2.0 MISC Bus 001 Device 006: ID 0bda:5634 Realtek Semiconductor Corp. Laptop Camera bDeviceClass 239 Miscellaneous Device bDeviceProtocol 1 Interface Association iProduct 1 Laptop Camera Bus 001 Device 002: ID 32ac:0003 Framework DisplayPort Expansion Card bDeviceClass 0 bDeviceProtocol 0 iProduct 2 DisplayPort Expansion Card Bus 001 Device 004: ID 8087:0032 Intel Corp. AX210 Bluetooth bDeviceClass 224 Wireless bDeviceProtocol 1 Bluetooth iProduct 0 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub bDeviceClass 9 Hub bDeviceProtocol 1 Single TT iProduct 2 xHCI Host Controller Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub bDeviceClass 9 Hub bDeviceProtocol 3 iProduct 2 xHCI Host Controller Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub bDeviceClass 9 Hub bDeviceProtocol 1 Single TT iProduct 2 xHCI Host Controller
USB Host controllers entries (without OHCI, UHCI, EHCI) are removed too.
Resources
Attachments
Some configuration files and sample outputs.
Other reports
This frame.work forum post mentions issues with brightness keys
this other post mentions issues with power management
Useful Links