Here are some notes about installing Debian on a Thinkpad, when things come to a fully-blown desktop environment with the following characteristics:
After downloading the net installer, install things with a minimal setting, and do not install any desktop environments. Once the basic installation is done, use the following lines in /etc/apt/sources.list:
deb https://ftp.jp.debian.org/debian/ sid main contrib non-free
deb-src https://ftp.jp.debian.org/debian/ sid main contrib non-free
The mention of “sid” ensures that unstable is used for the repository syncs. “contrib” and “non-free” give access to more packages, including non-free drivers usable for a Thinkpad.
Then run the following commands:
apt-get update
apt-get dist-upgrade
And the environment should be able to run on SID with all the packages wanted.
By default Debian does not include the Wifi and WWAN drivers for the thinkpad, however, those are available in the package iwlwifi. In order to be able to install those, add “contrib” and “non-free” to /etc/apt/sources.list. Note that depending on the evolution of Debian, these may not be supported, requiring to look at git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git with a combination of a copy of these binaries to /usr/lib/firmware/.
For automatic USB mounting, usbmount is not supported anymore since Debian Stretch, so an alternative is to use udiskie.
Gentoo provides a set of scripts that can be used for volume here, and for brightness here.
And those really facilitate your life!
The sound drivers may not be available on the latest Debian, requiring to look at https://github.com/thesofproject/sof-bin/ to install some extra files not available yet (see its README.md). As a whole, dmesg provides also a lot of debug output.
Package network-manager-gnome comes with a nice binary called nm-applet which can be used to have a small menu on the i3 status bar, including tracking for SIM card connection! Just add that to .i3config and you are good to go:
exec --no-startup-id nm-applet --sm-disable
Install a display manager like lightdm. Note that lightdm does not load directly .xinitrc contrary to slim, but you can override that by using .xsession in the following way for example:
# Tweak to enforce settings to be loaded when logging in.
/bin/bash --login -i ~/.xinitrc
Here are some useful packages as well:
xautolock can be used for this purpose.
ttf-bitstream-vera is a nice font package that can be used.
Debian does not create a “wheel” group or “power” group, but those can be controlled using systemctl;
systemctl poweroff
systemctl reboot
If Debian SID gets broken because of a package dependency not correctly handled in the central repositories, it is always possible to enforce the installation of packages manually. First download the .deb file to install, this can be done using apt like that:
apt download $PACKAGE
If this cannot be found, it is also possible to download it from Debian’s FTP servers, by first going into one of the mirrors, like this one, then navigate to pool/main/$FIRST_LETTER_PACKAGE/$PACKAGE (“main” may change depending on the package category). For example for perl the URL would be pool/main/p/perl. Then finally install the package manually:
dpkg -i $PACKAGE.deb
Depending on the different dependencies, it may be necessary to repeat those steps multiple times for multiple packages.
Things go through fwupd, flawlessly and automatically. A package of the same name should be installed to make this utility available. Some useful commands.
Get the list of devices set on the device:
fwupdmgr get-devices
Refresh the latest firmware metadata:
fwupdmgr refresh
If updates are available, display them:
fwupdmgr get-updates
Perform a set of firware updates:
fwupdmgr update
Unless otherwise specified, the contents of this website are (C)Copyright Michael Paquier 2010-2025 and are licensed for use under CC BY-NC-ND 4.0.