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
sideasier in the next step. - Once booted into the new install, remove everything from
/etc/apt/sources.listand 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, theURIsfield 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
fprintdand thefprintdPAM module:sudo apt install fprintd libpam-fprintd. - Enroll your fingerprint:
sudo fprintd-enroll $USERand 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-updateand 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 thesudoauthentication 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/gruband addmem_sleep_default=deepat the end of theGRUB_CMDLINE_LINUX_DEFAULTparameter (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-grub2to 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 --removableto 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.EFIfile 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
efidirectory 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-installto 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.
