Linux sur Thinkpad T440

Normalement tout devrait fonctionner out of the box avec ce modèle

Mais j'ai rencontré cependant un gros soucis avec la puce WIFI

03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8192EE PCIe Wireless Network Adapter (rev ff)

Étonnamment ce n'est pas une puce Intel mais le PC est reconditionné donc…

Dans un premier temps et après documentation, cette puce devrait fonctionner : - kernel 4 : avec le paquet firmware-realtek - kernel 5 : prise en charge par le noyau

Mais bon quelque soit le kernel utilisé, impossible de la faire fonctionner que ce soit sous Debian stable, testing, sid, xubuntu ou mint… Le wifi décroche au bout de quelques secondes.

Le plus bizarre c'est que lors de l'install en stable, le wifi fonctionne durant toutes les mises à jour de la phase d'installation et plante lors du boot.

lsmod Module Size Used by rtl8192ee 110592 0 rtl_pci 32768 1 rtl8192ee rtlwifi 77824 3 rtl8192ee,rtl_pci,btcoexist mac80211 778240 3 rtl8192ee,rtl_pci,rtlwifi cfg80211 622592 2 mac80211,rtlwifi video 40960 2 thinkpad_acpi,i915

Hé oui j'ai installé firmware-ralink car je pensais qu'ils allaient fonctionner…

Et un extrait du dmesg avec les erreurs

[ 4.744083] Bluetooth: hci0: RTL: rtl: examining hci_ver=06 hci_rev=000a lmp_ver=06 lmp_subver=8761 [ 4.745574] Bluetooth: hci0: RTL: rom_version status=0 version=2 [ 4.745577] Bluetooth: hci0: RTL: rtl: loading rtl_bt/rtl8761a_fw.bin [ 4.746542] bluetooth hci0: firmware: direct-loading firmware rtl_bt/rtl8761a_fw.bin [ 4.746561] Bluetooth: hci0: RTL: rtl: loading rtl_bt/rtl8761a_config.bin [ 4.746573] bluetooth hci0: firmware: failed to load rtl_bt/rtl8761a_config.bin (-2) [ 4.746605] firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware [ 4.746641] bluetooth hci0: Direct firmware load for rtl_bt/rtl8761a_config.bin failed with error -2 [ 4.746646] Bluetooth: hci0: RTL: cfg_sz -2, total sz 22176 [ 4.755810] systemd[1]: Received SIGRTMIN+20 from PID 178 (plymouthd). [ 4.756229] systemd[1]: plymouth-read-write.service: Succeeded. [ 4.756729] systemd[1]: Started Tell Plymouth To Write Out Runtime Data. [ 4.763454] systemd[1]: plymouth-start.service: Succeeded. [ 4.763938] systemd[1]: Started Show Plymouth Boot Screen. [ 4.764161] systemd[1]: Condition check resulted in Dispatch Password Requests to Console Directory Watch being skipped. [ 4.797523] systemd[1]: Started Journal Service. [ 4.807015] systemd-journald[244]: Received client request to flush runtime journal. [ 4.957516] psmouse serio2: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3 [ 5.012742] input: TPPS/2 IBM TrackPoint as /devices/rmi4-00/rmi4-00.fn03/serio2/input/input10 [ 5.040716] intel_rapl_common: Found RAPL domain package [ 5.040719] intel_rapl_common: Found RAPL domain core [ 5.040720] intel_rapl_common: Found RAPL domain uncore [ 5.040721] intel_rapl_common: Found RAPL domain dram [ 5.339873] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 5.339875] Bluetooth: BNEP filters: protocol multicast [ 5.339882] Bluetooth: BNEP socket layer initialized [ 8.716175] broken atomic modeset userspace detected, disabling atomic [ 11.064445] rtl8192ee: Init MAC failed [ 11.124044] rtl8192ee: Init MAC failed [ 11.183611] rtl8192ee: Init MAC failed [ 11.243235] rtl8192ee: Init MAC failed [ 11.302872] rtl8192ee: Init MAC failed [ 11.362468] rtl8192ee: Init MAC failed [ 11.422049] rtl8192ee: Init MAC failed [ 11.481624] rtl8192ee: Init MAC failed [ 11.541210] rtl8192ee: Init MAC failed [ 11.600785] rtl8192ee: Init MAC failed [ 34.065425] rtl8192ee: Init MAC failed [ 34.125517] rtl8192ee: Init MAC failed

Finalement, pour ce Thinkpad, voilà ce que j'ai installé en toile d'arrière fond :

aptitude install firmware-ralink intel-microcode amd64-microcode acpi acpi-support acpid acpitool openrc rfkill

Normalement avec ces paquets, il n'a plus d'erreur au boot, tout est pris en charge sauf le wifi.

Voilà donc le dmesg avec les autres erreurs corrigées malgré tous les switchs sur ON

root@Tinuviel-debianStable:~# rfkill list 0: tpacpi_bluetooth_sw: Bluetooth Soft blocked: no Hard blocked: no 1: hci0: Bluetooth Soft blocked: no Hard blocked: no 2: phy0: Wireless LAN Soft blocked: no Hard blocked: no
[ 83.462375] rtlwifi: rtlwifi: rtl_hal_pwrseqcmdparsing Polling count exceeded, value = 0xff, expected = 0x0, mask = 0x [ 83.462380] rtl8192ee: Init MAC failed [ 83.523487] rtlwifi: rtlwifi: rtl_hal_pwrseqcmdparsing Polling count exceeded, value = 0xff, expected = 0x0, mask = 0x\xff [ 83.583361] rtlwifi: rtlwifi: rtl_hal_pwrseqcmdparsing Polling count exceeded, value = 0xff, expected = 0x0, mask = 0x [ 83.643856] rtlwifi: rtlwifi: rtl_hal_pwrseqcmdparsing Polling count exceeded, value = 0xff, expected = 0x0, mask = 0x [ 83.643862] rtl8192ee: Init MAC failed

Après plusieurs lectures, je découvre qu'il existe un git proposant une alternative à firmware-realtek : lwfinger/rtlwifi_new

Avant de travailler sur les paquets de ce git, les paquets suivants seront nécessaires à la compilation.

aptitude install bc linux-headers-4.19.0-6-amd64 linux-headers-generic build-essential git linux-headers-4.19.0-6

(pensez à adapter le linux-headers à votre kernel (uname -a))

Puis on clone et compile le nouveau driver $ git clone https://github.com/lwfinger/rtlwifi_new.git -b extended $ cd rtlwifi_new/ $ make # make install

Et c'est là que ça se complique, ça ne va pas mieux… Après plusieurs recherches, je vois que la compilation à créer un dossier : rtl8192ee_revised.tar.bz2. Je tente ma chance :

$ bunzip2 rtl8192ee_revised.tar.bz2 $ tar xvf rtl8192ee_revised.tar rtl8192ee_revised/ $ cd rtl8192ee_revised/ $ make # make install

Un nouveau driver est créé : 8192ee au lieu de rt8192ee

Je le tente, on ne sait jamais. Donc avant de rebooter, je blackliste l'ancien module instable # cd /etc/modprobe.d/ # nano blacklist.conf

Avec ce contenu