Debian Bullseye RC1 et Lenovo X1 Carbon Gen9 installation et prise en main

Après trop d’années au quotidien sur Mac, exception faite de mon desktop, un petit mediacenter sur Debian et d’une ParrotSec sur un autre Laptop pour le pentest, j’avais jusque là quelques réticences à travailler au quotidien sur un laptop sous Linux.
Mes expériences passées (sur des modèles assez cheap il faut l’avouer), m’avaient plutôt refroidit… Des Asus pour ne pas les nommer : claviers et pads horribles, une ergonomie à rendre fou, châssis en carton, une compatibilité plus que limite (recompiler un noyau pour avoir les 4h d’autonomie très théoriques par exemple), j’ai été plutôt déçu par ces expériences sur laptop, jamais sur Desktop… le problème était strictement matériel.

Macbook ou Lenovo X1 ?

J’aime beaucoup avoir de l’autonomie et je confesse m’être habitué à l’ergonomie Apple ces 15 dernières années… et je parle du hardware car l’OS lui même m’a rendu fou plus d’une fois.
Bien que les nouveaux mac équipés du M1 puissent en coller une demie molle à tout geek, les derniers CVE de Big Sur m’ont pas mal refroidi. C’est le marketing d’Apple qui a terminé de me convaincre notamment avec le chip d’IA qui apprend plus vite qu’un enfant de 5 ans. Un nouveau truc propriétaire, une nouvelle boite noire, qui traite mes données alors que ne lui demande rien et dont je n’ai pas besoin, vendu comme une révolution, je trouve ça suspect…. donc non merci.

Me voici comme mes collègues ours de Bearstech passé chez Lenovo avec ce X1 Carbon de 9e génération

Unboxing et choix (évident) de distro

C’est beau, très qualitatif, le nez rouge au milieu du clavier rappelle évidemment la nostalgie des Thinkpad IBM du 20e siècle. C’est léger, avec une bonne connectique mais pas folle (un slot SD ça aurait été cool), le clavier est agréable et il a même un slot pour une puce 4G. Le revêtement est super agréable au touché (c’est important quand on passe la journée dessus), mais on notera qu’il a une tendance à marquer un peu, pensez donc à vous laver les mains après la pizza. Pour le reste de la review design, vous trouverez ça sur d’autres sites, ce n’est pas ce qui nous intéresse ici.

Le bouzin m’a été livré avec Windows 10 (pas taper, sinon c’est plus de 6 semaines de délai actuellement pour en obtenir un préinstallé avec un Linux). Ce Windows servira donc à télécharger un iso tout chaud Debian (le full ou une netinstall, peu importe), strictement à rien d’autre, éventuellement flasher une clé USB avec notre iso mais même ça, j’avoue avoir transpiré devant l’écran.

Show me your kungfu

Je vous évite tout de suite la bêtise à ne pas faire, ne téléchargez pas la Buster, soyez joueur, allez directement sur une Bullseye RC1 (il y a une raison à cette recommandation d’opter pour une Debian testing au lieu de la stable… on va y revenir). Et comme vous le savez, une RC, ce n’est plus une alpha ni une beta mais comme son nom l’indique, une Release Candidate, première du nom à l’heure où ces lignes sont écrites… on en est pas encore au freeze mais ça commence à sentir bon pour Debian 11.

Premier truc un peu moyen, quand on est habitué aux bios du 20e siècle, l’accès à l’UEFI est un peu “pain in the ass” pour arriver au bootmenu, par ailleurs très bien fourni… ce Lenovo doit même pouvoir booter à partir d’un allume cigare. Notez au passage que la documentation en ligne chez Lenovo est bien fichue, on trouve ce qu’on cherche très rapidement, et il y a quelques fabricants qui devraient s’en inspirer.

Seconde déconvenue, celle ci bien plus gênante si vous ne m’avez pas écouté et que vous avez quand même téléchargé une Buster, le wifi ne va pas fonctionner… il faut le kernel qui va bien, et le “kivabien”, c’est un 5.1 ou supérieur. Et oui ce X1 Carbon embarque un chipset Wifi 6 (ax pour les intimes), il s’agit d’une carte Intel avec un driver propriétaire… évidemment. Il s’agit de iwlwifi, non proposé sur Bullseye mais disponible sur Debian Sid. Il vous suffira de le télécharger et le donner à manger à l’installation sur un support amovible ou même à la racine de votre média d’installation.

# dmesg |grep wifi
[ 17.922988] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002)
[ 17.927652] iwlwifi 0000:00:14.3: firmware: direct-loading firmware iwlwifi-QuZ-a0-hr-b0-59.ucode
[ 17.927660] iwlwifi 0000:00:14.3: api flags index 2 larger than supported by driver
[ 17.927669] iwlwifi 0000:00:14.3: TLV_FW_FSEQ_VERSION: FSEQ Version: 65.3.35.22
[ 17.927885] iwlwifi 0000:00:14.3: loaded firmware version 59.601f3a66.0 QuZ-a0-hr-b0-59.ucode op_mode iwlmvm
[ 17.927898] iwlwifi 0000:00:14.3: firmware: failed to load iwl-debug-yoyo.bin (-2)
[ 18.322009] iwlwifi 0000:00:14.3: Detected Intel(R) Wi-Fi 6 AX201 160MHz, REV=0x354
[ 18.517297] iwlwifi 0000:00:14.3: base HW address: 28:d0:ea:cc:1e:4c
[ 18.710678] iwlwifi 0000:00:14.3 wlp0s20f3: renamed from wlan0

Une fois le firmware en place, l’installer vous demandera aussi iwl-debug-yoyo.bin que je n’ai pas pris soin d’installer, il n’est pas vital à ce stade, vous pourrez aisément poursuivre l’installation sans.

Oops c’est pété


J’avais déjà vécu ça avec la testing de Sarge, l’installeur graphique était cassé au moment où j’ai fait cette installation (c’est assez commun sur une pré-version). Ici le symptôme c’est que la copie des fichiers du système de base échoue alors que le média est parfaitement correct. Il faut donc choisir l’installation en mode expert, mais pas de panique, avec l’installeur Debian, tout le monde est expert, vous vous en sortirez aisément… et si vous avez un doute, validez le choix par défaut.

Lors du choix des miroirs, attention http://ftp.fr.debian.org/debian/ est cassé : la récupération des packages casse vers la fin et pourtant, pas d’extravagance dans le choix de base des packages, j’ai laissé Gnome pour voir comment il a pu aussi mal tourner, mais j’ai choisis Mate (un fork de Gnome 2), et sshd… rien d’autre à ce stade, on bidouillera des trucs par la suite. Choisissez un autre miroir, celui de Proxad est passé crème chez moi.

Allo Houston ? On ne vous entend pas

Post installation, on se sent à la maison… sauf pour le son. Il y a plus de sons qui arrivent de Mars qu’il n’en sort de ce laptop. Le coupable, c’est encore un driver propriétaire Intel, mais ça ne nous empêchera pas dans un premier temps de pointer du doigt pulseaudio que l’on aime toujours détester, un peu comme systemd. Mais pas de panique.

# dmesg | grep -i audio
[ 0.296422] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[ 18.065371] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380
[ 18.065390] sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[ 18.065645] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040380
[ 18.065772] sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[ 18.095371] sof-audio-pci 0000:00:1f.3: use msi interrupt mode
[ 18.181107] sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
[ 18.181109] sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[ 18.181112] sof-audio-pci 0000:00:1f.3: DMICs detected in NHLT tables: 4
[ 18.181130] sof-audio-pci 0000:00:1f.3: firmware: failed to load intel/sof/sof-tgl.ri (-2)
[ 18.181166] sof-audio-pci 0000:00:1f.3: Direct firmware load for intel/sof/sof-tgl.ri failed with error -2
[ 18.181168] sof-audio-pci 0000:00:1f.3: error: request firmware intel/sof/sof-tgl.ri failed err: -2
[ 18.181197] sof-audio-pci 0000:00:1f.3: error: failed to load DSP firmware -2
[ 18.181511] sof-audio-pci 0000:00:1f.3: error: sof_probe_work failed err: -2

Maintenant que nous avons le noms du coupable, on sait quoi installer pour que ça tombe en marche :

# apt-get install firmware-sof-signed

Et voilà, le temps de découvrir un peu ce que propose cette machine et si je trouve des trucs sympas ou un peu moins sympas et que le partage de cette petite expérience peut vous être profitable, il y aura une suite.

Happy hacking…
/b/