Following my previous post in this serie, New laptop part 0: Discovering the FrameWork laptop, the goal of this post is to explain the steps I had to go through after installing EndeavourOS (a gnu/linux distribution based on Archlinux) on the FrameWork laptop and all the small things I had to tweak. It isn’t 100% perfect and finished, but I’ll try to update this page (or link a new entry) if I improve the following information.
Before going into all the details, I wanted to thank the EndeavourOS community, Archlinux wiki and FrameWork communities where I found all those informations in a way or another.
As said in my previous post, I just went through the GUI installer to install EndeavourOS, selected full encryption for the hard drive and let it ran. See the official documentation for help.
Let’s start by installing vim to edit all the configuration with a real editor :).
sudo pacman -S vim
If you look for a complete out of the box vim config, I suggest spf13 vim config.
The brightness keys (via fn+F7/8) did not work out of the box (while others do work fine). To fix this, I edited the file
/etc/modprobe.d/framework-als-deactivate.conf and added:
I had to change the default HiDPI setting as the screen resolution is so high (2256x1504). To do so, edit the
~/.Xresources file, and add:
Fixing Old OpenGL driver (i965)
I had issue with software running with openGL driver. Namely chromium and lagrange (a gemini browser).
TLDR; from archlinux wiki:
In Mesa 20.0, a new OpenGL driver, Iris, is promoted to be the default for Gen8+. Certain applications run faster with it. You may disable it and revert to use the old i965 driver by setting the MESA_LOADER_DRIVER_OVERRIDE=i965 environment variable before starting any OpenGL application. This setting does not affect Vulkan applications. – https://wiki.archlinux.org/title/Intel_graphics#Old_OpenGL_driver_(i965)
I’m going the per application road, so I need to create a
<application>.desktop file in
~/.local/share/applications/ (and create the directory if doesn’t exist).
For Chromium, there is already an existing
/usr/share/applications/chromium.desktop file, so copy it in the
~/.local/share/applications/ directory and then edit it. Change all
exec lines (3 times in my case) from
Exec=env MESA_LOADER_DRIVER_OVERRIDE=i965 /usr/bin/chromium %U
For Lagrange, copy
~/.local/share/applications/fi.skyjake.Lagrange.desktop and edit the
Exec line to be:
Exec=env MESA_LOADER_DRIVER_OVERRIDE=i965 /usr/bin/lagrange %U
The complete file for lagrange:
[Desktop Entry] Name=Lagrange Comment=A Beautiful Gemini Client Categories=Network; Exec=env MESA_LOADER_DRIVER_OVERRIDE=i965 /usr/bin/lagrange %U Terminal=false Type=Application StartupWMClass=lagrange Icon=fi.skyjake.Lagrange MimeType=x-scheme-handler/gemini;x-scheme-handler/gopher;x-scheme-handler/spartan;
To add support for the fingerprint reader, first install fprintd:
pacman -S fprintd
Then, to enable sudo via fingerprint, edit
/etc/pam.d/sudo, and add:
auth sufficient pam_fprintd.so
auth include system-login
If you don’t want to use the fingerprint for a sudo command, use
ctrl+c and then enter your password.
For lightdm, edit
/etc/pam.d/lightdm and add at the top:
auth sufficient pam_unix.so try_first_pass likeauth nullok auth sufficient pam_fprintd.so
This allow to use either password or the fingerprint. To activate the fingerprint, enter a empty password, and then use the fingerprint :). Using only the second line will require the fingerprint and won’t allow password alternative (which I wanted).
So far, I have only followed the archlinux wiki installation steps. I haven’t pushed much the CPU yet and the few times the fan went on it was loud but ok. I need more testing on this when I’ll daily drive completely this laptop.
pacman -S thermald yay -S dptfxtract-bin
And then configure thermald and start the service.
sudo dptfxtract-bin sudo cp /etc/thermald/thermal-conf.xml.auto /etc/thermald/thermal.conf.xml sudo systemctl enable themarld.service sudo systemctl start themarld.service
Install the necessary software:
sudo pacman -S bluez bluez-utils blueman
Add yourself to the
lp group in case you need bluetooth tethering.
Connect the external bluetooth device using the GUI
Sounds from laptop to bluetooth (and inverse) works without any additional configuration.
sudo systemctl enable bluetooth.service # start if now if you want: sudo systemctl start bluetooth.service
Autostart blueman applet in the i3 config (or use your own autostart process):
exec --no-startup-id blueman-applet
Bluetooth is disabled by default though and I only activate it on demand via the blueman-applet.
Sound speaker works out of the box, switching from speaker to jack port works also. Pipewire is really awesome :). Microphone works also out of the box and the kill switch is a nice touch on the framework laptop :).
Switching sound between bluetooth and “local” works also very smoothly and quickly.
I didn’t even try to use the ambient light sensor. I prefer changing it myself when needed. Could be used with
Conclusion and next steps
That’s it for this post, I still need to manage the hibernation, but hopefully there will be a new post later that fix the missing things :). Next post will be about additional software installation needed to make this laptop a full working workstation :).