Arch Linux on the Framework Laptop

Perhaps, Arch kernel package might fix the bluetooth issue for Arch 5.13.7 kernel package by applying a patch? The 5.13.7-N (<upstream major version>.<upstream minor version>.<upstream maintenance version>-<package release version>) and 5.13.7-M should have a different behavior.

For example, in my case on Fedora 34, I see the following result by some command. I guess Arch Linux has equivalent commands to check the package released version.

$ uname -r
5.12.12-300.fc34.x86_64

$ rpm -q kernel
kernel-5.11.7-200.fc33.x86_64
kernel-5.12.12-200.fc33.x86_64
kernel-5.12.12-300.fc34.x86_64

In Arch 5.13.7.arch1-1 the last digit would be the package relative version, which is where you’d be apply patches between stable releases.

However nothing has been patched in the Arch kernel.

There is some bluetooth patch for USB devices applied in 5.13.8 though, but not sure if relevant.

I have started on the Arch wiki page for the framework laptop. I currently have a pre-production unit so I’m not super sure what issues I encounter is present on the actual releases. Feel free to edit and I’ll move it to the laptop pages within a few days.

https://wiki.archlinux.org/title/User:Foxboron/Framework

My current issue is that I seemingly can’t enable the TPM from the BIOS settings and it doesn’t produce a /sys/kernel/security/tpm0/binary_bios_measurements file on boot. If anyone has one available please upload :slight_smile:

Arch has libinput 1.18.1 which has this issue fixed.

4 Likes

I’ve added identifiers for the non-vPro AX210 card to your page - marking bluetooth as untested for now, since I can’t get it to work with kernel 5.13.8 but in theory the fix has landed.

$ uname -r 
5.13.8-arch1-1
$ sudo dmesg | grep Bluetooth
[    2.551576] Bluetooth: Core ver 2.22
[    2.551596] Bluetooth: HCI device and connection manager initialized
[    2.551600] Bluetooth: HCI socket layer initialized
[    2.551601] Bluetooth: L2CAP socket layer initialized
[    2.551605] Bluetooth: SCO socket layer initialized
[    2.630915] Bluetooth: hci0: Firmware timestamp 2021.19 buildtype 1 build 25171
[    2.632906] Bluetooth: hci0: No device address configured
[    2.633766] Bluetooth: hci0: Found device firmware: intel/ibt-0041-0041.sfi
[    2.633802] Bluetooth: hci0: Boot Address: 0x100800
[    2.633804] Bluetooth: hci0: Firmware Version: 83-19.21
[    2.633805] Bluetooth: hci0: Firmware already loaded
[    2.666291] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    2.666294] Bluetooth: BNEP filters: protocol multicast
[    2.666297] Bluetooth: BNEP socket layer initialized
$ bluetoothctl list
$ rfkill list
0: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
1: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no

Let me know if there are logs or other system information I can provide to help determine why bluetooth works fine on latest kernel for me

Just thought I’d share that I installed arch Friday night and have been really enjoying my time with the framework laptop since then!

Some snags I ran into:

  • I forgot to disable secure boot at first and couldn’t get the usb stick to boot. F2 into bios to disable secure boot fixed this.
  • This was my first UEFI install so I had to slow down and figure out how to partition my drive and get that set up. I ended up using 3 partitions:
/dev/nvme0n1p1 *       2048    2099199    2097152     1G ef EFI (FAT-12/16/32)
/dev/nvme0n1p2      2099200    4196351    2097152     1G 82 Linux swap / Solaris
/dev/nvme0n1p3 *    4196352 1953525167 1949328816 929.5G 83 Linux
nvme0n1     259:0    0 931.5G  0 disk 
├─nvme0n1p1 259:1    0     1G  0 part /efi
├─nvme0n1p2 259:2    0     1G  0 part [SWAP]
└─nvme0n1p3 259:3    0 929.5G  0 part /
  • After installing the microcode updates I forgot to rebuild the grub config… when I realized what I did it was easy to chroot back into my ssd from the live usb and run grub-mkconfig… oops :slight_smile:

Stuff I did (mostly yesterday so I haven’t kicked the tires on these settings much yet fwiw) after installing:

I haven’t used bluetooth for anything in like a decade so I haven’t tested that, but wifi works great so far with default netctl and wifi-menu installs – although I did get some warnings from wifi-menu as it launched, they seem to have gone away today. :slight_smile:

The only issue I’m noticing so far that I didn’t have on my x250 is a weird one. I was hoping that disabling self-refresh would make it go away but I’m still experiencing it today:

Once in a while firefox will seemingly freeze up and I won’t be able to scroll the page – watching htop when this happens doesn’t show any special load (my load average stays well below 1 in htop, and I have 32GB of ram installed with plenty free…) but also happens sometimes when trying to switch between tabs. I’ll click the tab title and nothing will happen for what seems like several seconds, then the tab will switch…

I’m using DWM for my window manager and I’ve noticed the same behavior switching to and from the desktop where firefox is displayed, or switching to and from a tab where vlc is playing a video.

Generally though I’m having a wonderful time with this machine and I’m hopeful it’ll catch on as planned!

4 Likes

Got everything working on Arch except Bluetooth here. I just upgraded to 5.13.9 so its a bit odd since others are saying it worked as of 5.13.8. Going to try and do a downgrade to 5.12 and upgrade and see how it goes, if a reboot does not clear it up first.

On another note, I tested some games for fun in steam and the 1185 is a powerhouse for an integrated chip! Everything else is super snappy so far and I got fingerprints working fine with fprintd too.


Edit:
I got bluetooth working well under 5.12.5 now. One Question I have though, has anyone had success setting up fancontrol? I tried running pwmconfig but it couldn’t find anything. Was running a test and the cpu hit 100C and I realized it was not pushing the fan very hard.

2 Likes

@SparkX120 just a note that we would expect temperatures to hit 100C for a few seconds at the start of heavy load when the CPU is operating at PL2 limits (>30W). The fan should then start to ramp up as the load continues and then the CPU will drop to the PL1 limit of 28W and temperatures should drop.

2 Likes

Hello everyone,

On my side im using Manjaro with my Framework Laptop, so far so good except on one thing. At the beginning i installed Manjaro with Gnome 40, everything worked, yet i wanted to try Xfce to check how it has progressed since the last time i used it (and to check if it’ll have improved the autonomy).

Since the test has been inconclusive about the autonomy (i had worse result than Gnome 40, and also the fingerprint isn’t usable yet), i reinstalled Manjaro w/ Gnome 40. Yet i ran into an issue and i don’t find an answer which would explain why it happened.

On the first install with Gnome 40, i enrolled my right finger with the fingerprint sensor, no problem. But on the second install with Gnome 40 distribution, Manjaro doesn’t want to enroll the same finger and return me this error (in the journal of fprintd):

août 10 19:36:32 NuxWorld fprintd[3363]: Authorization denied to :1.108 to call method 'Claim' for device 'Goodix MOC Fingerprint Sensor': Device was already claimed
août 10 19:36:40 NuxWorld fprintd[3363]: Device reported an error during enroll: Finger is too similar to another, try use a different finger

And the thing is that it work without problem with another finger (and i tried multiple times, it doesn’t work only with the right finger that i enrolled on the previous install), it’s like the sensor kept my right finger in its memory. Do you know how can i fixed that ?

Thanks a lot!

It does actually, the sensor stores the fingerprint data and just gives a pass/fail to the OS. Try this:

I tried, i have disabled fingerprint login in gdm and disabled the fingerprint reader in the bios, re-enable it again after a reboot, but my right index fingerprint looks still in the memory of the fingerprint reader :confused:

Maybe try unplugging the battery from the mainboard once you disable it in bios again. let it sit for 15 mins or more before trying again.

The fingerprint reader is “match on chip”, meaning it actually is encrypted and stored in flash in the fingerprint module. As @jeshikat notes, there is some method to reset the state. I’m not entirely sure how it is supposed to work, but there is a note here about fprintd-delete fprint - ArchWiki

1 Like

If anyone has /sys/kernel/security/tpm0/binary_bios_measurements on their Framework it would be great with a copy. Either upload it publicy, privmessage me or email me on foxboron@archlinux.org.

Seems like it’s missing on the one I have which is the case on some fault drivers but I’m not sure why.

It doesn’t contain any sensitive information and the goal is to figure out if self-enrolling secure boot keys would brick the laptop because of Option ROM during boot.

@Foxboron I also do not have the file. I tried mucking with the TPM settings in the firmware interface and still nothing. I’m going to keep poking at it.

Of note, I have TPM-based disk decryption working using systemd-cryptenroll. So the TPM is there and talking, just apparently not to the OS?

tpm2_pcrread from tpm2-tools also works.

So the TPM2 eventlog is not fetched from the /dev/tpm0 device, it’s fetched from the ACPI table, the EFI configuration table or another subsystem I’m not familiar with. So the fact that tpm2_* tools work and the tpm eventlog isn’t exposed in sysfs is orthogonal i believe.

Kernel bug or a ACPI issue on the system?

Still no luck.

It works only before a reinstallation (because it checks the /var/lib/fprintd folder).

I have the impression there is no way to purge the memory of the sensor if we forget to remove the fingerprints before a reinstall :confused:

There is actually a way to do this on Windows, but I’m not sure what the equivalent would be for Goodix’s Linux driver:

  1. Click on the search button in the Taskbar and type “Services”
  2. Scroll down and right click on Windows Biometric Service, and click Stop
  3. Open File Explorer and navigate to “C:\Windows\System32\WinBioDatabase”
  4. Delete the .DAT file that starts with “74B”
  5. Go back to Services, right click on Windows Biometric Service, and click Start
2 Likes

@Foxboron I have secure boot working with systemd-boot, sbupdate-generated unified .efi image. Thanks to systemd-cryptenroll, my disk is only decrypted if the secure boot process executes successfully (LUKS2 key stashed in TPM).