This thread is to manage the content on Debian unstable (sid) branch. For Debian’s 3 kind of branches: unstable (sid), testing and stable, you can see Debian releases and Debian#Branches - Wikipedia.
Installation
As someone who has been daily-driving Debian sid
for years at this point, it was only natural that I go with Debian sid
on the Framework. Here was the process I followed (everything was pretty simple and straight-forward):
- Install Debian using this ISO (it’s the current weekly netinstall ISO build and includes nonfree firmware). Personally, when installing, I select the bare minimum to make the upgrade to
sid
easier in the next step. - Once booted into the new install, remove everything from
/etc/apt/sources.list
and put the following in/etc/apt/sources.list.d/debian.sources
(you can select a different mirror if you wish, and you can find a list of mirrors here; if you do this, theURIs
field will be the hostname + HTTP fields in the table and nothing else should change).
Types: deb deb-src
URIs: https://mirrors.wikimedia.org/debian/
Suites: unstable experimental
Components: main contrib non-free-firmware non-free
- Once you’ve edited the sources, do
sudo apt update && sudo apt dist-upgrade
. If you did the minimal install (like I do), this should be fast and have few/no conflicts. - Now, you can install whatever desktop environments/window managers/etc you want (if you want to replicate the installer experience, you can do e.g.
sudo tasksel install <task>
and you can get a list of tasks by doingtasksel --list-tasks
; for example, if you want to install Gnome the way the installer would, simply runsudo tasksel install gnome-desktop
).
Fingerprint authentication
To enable fingerprint authentication system-wide with a fallback to password authentication, you do the following:
- Install
fprintd
and thefprintd
PAM module:sudo apt install fprintd libpam-fprintd
. - Enroll your fingerprint:
sudo fprintd-enroll $USER
and keep scanning your finger until it comes back with “Enrollment successful” (I think I had to do it 10 times?). - Enable fingerprint authentication:
sudo pam-auth-update
and check the “Fingerprint authentication” box (the spacebar will toggle whether something is enabled). Don’t edit any of the other modules — simply enable fingerprint authentication, hit the tab key to switch to the “OK” button, and hit the enter key to save. - You can test this out by doing
sudo -k && sudo -i
, which clears thesudo
authentication cache and then opens a root shell (so it will prompt for authentication).
If you previously registered your fingerprints (either in Windows or another Linux install) and didn’t clear them before installing Debian, use this to clear the fingerprint reader’s internal memory so that you can register your fingerprints again.
Deep sleep
As with other Linux distros, you should add mem_sleep_default=deep
to switch to deep sleep (different from hibernate) as the default.
- Run
sudoedit /etc/default/grub
and addmem_sleep_default=deep
at the end of theGRUB_CMDLINE_LINUX_DEFAULT
parameter (inside the quotes). So for example, mine used to beGRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
and I changed it toGRUB_CMDLINE_LINUX_DEFAULT="quiet splash mem_sleep_default=deep"
. - Run
sudo update-grub2
to update the bootloader configuration. - Reboot to use the new default.
Hibernate
Out of the box, Framework enables secure boot. This is fine for booting Debian, but it puts the kernel in a restricted mode where hibernate is disabled. If you want to enable hibernation (highly recommended for battery savings), you’ll want to disable Secure Boot in the UEFI settings. Once you do this, hibernate should just work.
Display
I use Wayland with sway
as my compositor. The default scaling is 2, which is a bit too large for my taste, so I set output eDP-1 scale 1.5
in my sway
config. As expected, Wayland-native programs are sharp, but Xwayland windows have slight blurring in the fonts. I’ve setup Firefox and Signal-Desktop to be Wayland-native (passing MOZ_ENABLE_WAYLAND=1
as an environment variable when starting Firefox and passing the options --enable-features=UseOzonePlatform --ozone-platform=wayland
when starting Signal-Desktop), so the only program I use regularly which is running on Xwayland is emacs, which should hopefully soon be fixed.
UEFI Updates
I recently updated my UEFI from version 3.06 (the version my Batch 5 came with) to 3.07 (mainly for the charging limit feature). Until LVFS is setup, the easiest way to do this is to use the UEFI shell update method.
The releases are put up on here, and I’ve linked to the 3.07 release in this post.
- Run
sudo grub-install --removable
to make sure you’ll be able to boot without needing the ‘Debian’ boot entry (EFI boot variables are apparently cleared on upgrade). This will overwrite the/efi/EFI/BOOT/BOOTX64.EFI
file if something else has written to it, so keep that in mind if you e.g. dual-boot. This is only needed once, so if you already have GRUB installed in that location, you can skip this step. - Download the EFI shell updater
- Format a flash drive as VFAT (e.g.
mkfs.vfat /dev/<whatever>
). - Mount the flash drive (e.g.
pmount /dev/<whatever>
orsudo mount -t auto /dev/<whatever> /mnt/<whatever>
). - Copy the zip file to the flash drive.
- Unzip the zip file. This should leave you with an
efi
directory and a few other files at the ‘root’ of the flash drive (H2OFFT-Sx64.efi
,hx20_capsule_dvt2_3.07.bin
, andstartup.nsh
). - Plug in the charger.
- Reboot and boot from the flash drive (make sure Secure Boot is disabled and press F12 while booting to select the flash drive).
- Follow the prompts and just wait for the update to finish.
- After booting in Debian, run
sudo grub-install
to restore the EFI boot entry variables.
Other things
If there are other things you want me to explain about my setup, I can add other posts to this thread (or possibly update this post depending on edit policy?), so just let me know! I’m more than happy to explain my setup and update with anything else I’ve tweaked. As far as I remember, these were the main “general” tweaks I had to do.