Ted écrit des trucs

Sur des sujets en lien avec la vie privée, ou parfois pas.

Faire marcher un Lenovo X1 Carbon sous Linux

— modifié le

J'ai récemment acquis un Lenovo X1 Carbon, de quatrième génération. Je suis satisfait du matériel et déçu par son manque de compatibilité générale avec Linux. Globalement, tous les problèmes rencontrés sont résolubles (et ce billet détaille comment, pour ceux que j'ai eus), mais il y plein de choses qui ne fonctionnent pas magiquement du premier coup.

Les bons côtés

Matériel

Les specs sont enthousiasmantes (un SSD, ça change la vie \o/), et le produit fini est d'excellente qualité, comme le reste de la ligne ThinkPad.

  • Il est très léger pour un 14'' — lenovo.com annonce « Vous vous surprendrez […] à vérifier fréquemment si vous ne l'avez pas oublié ! », je confirme ^^
  • Il est solide et ne se pète pas au moindre choc.
  • L'écran mat a une résolution splendide, et reste lisible quel que soit l'angle où l'on se trouve.
  • Le clavier est confortable, le trackpoint aussi. Je ne peux pas commenter sur le pavé tactile, je ne l'utilise jamais.

La connectique est évidemment moindre que sur mon laptop précédent (beaucoup plus épais), mais est meilleure que nombre d'ultraportables : 3 ports USB, un HDMI, un MiniDP, un jack 3.5mm et un truc propriétaire pour mettre un dock. Suffisant pour une grande majorité d'utilisations. Pas de prise Ethernet, je pensais que ça me manquerait mais en pratique ça va, le Wi-Fi marche bien.

Le touchpad et trackpoint fonctionnent

Les deux fonctionnent sous Debian Testing sans que j'aie eu besoin de rien faire, y compris le mouvement "trackpoint + clic milieu" pour émuler la molette de défilement. Désactiver le touchpad se fait très facilement.

Les moins bons côtés

C'était pénible de parvenir à un système qui soit vraiment satisfaisant à utiliser au quotidien avec ma distribution favorite (Debian Testing).

Booter sur une clé USB était compliqué

J'ai essayé de suivre les instructions du wiki Debian mais ma clé USB n'était pas reconnue. Après pas mal de galère (j'ai essayé toutes les combinaisons possibles d'options dans le BIOS…), j'ai compris pourquoi : les 3 ports USB de ma machine sont en USB 3.0, mais son BIOS n'a pas les bons drivers… J'étais à deux doigts de booter sur Windows pour installer la version suivante de mon BIOS, et puis je me suis souvenu qu'on m'a fourni un dock OneLink+ avec ma machine, et que ce truc a (entre autres) une prise USB 2.0. J'ai pu brancher ma clé USB dessus, relier le dock à ma machine, et booter sur la clé \o/

Sans cette astuce, la solution standard semble être de mettre le BIOS à jour.

Bref, mon université m'a fourni le dock OneLink+ avec mon laptop sans me demander mon avis, mais il n'est normalement pas compris dans le prix. Je déconseille fortement son achat. Il fonctionne très mal avec Linux.

Ça ne concerne pas vraiment le laptop lui-même, mais comme ça a l'air d'être le seul dock prévu pour le X1 Carbon et qu'un dock est un truc raisonnable à avoir quand on achète un ultraportable qu'on veut aussi utiliser au travail ou à la maison, je compte ça dans les points négatifs de la machine elle-même. Je me souviens de trois points problématiques, il y en a peut-être d'autres.

La prise jack marche par intermittence

PulseAudio a bien l'air de le reconnaître (pacmd list-sources renvoie bien une section avec "OneLink+" dedans) mais il faut parfois plusieurs essais pour que le son parvienne sur des enceintes branchées sur le dock. Et quand il n'y a pas de son qui sort, on entend un genre de bruit électronique désagréable.

Les prises vidéo ne marchent pas super bien

xrandr est extrêmement perturbé par le dock, et renvoie des sections qui ne correspondent à rien de branché. Trouver comment lui dire d'envoyer de la vidéo sur le vieil écran que l'on m'a filé à l'université était pénible.

La prise Ethernet ne marche juste pas

Les drivers sont pourtant supposés être disponibles… J'ai décompressé le bidule, l'ai installé, ai tout bien suivi les instructions, mais pas moyen que ça fonctionne (ifconfig ne le détecte désespérément pas). Comme on m'a aussi fourni un dongle Ethernet → USB, et que celui-ci fonctionne (même quand on le branche dans le OneLink+), j'ai pas cherché beaucoup plus loin. Note que le dongle en question n'est pas non plus super satisfaisant, cf. la section suivante.

Avalanche de messages d'erreur depuis le kernel

Une fois le système installé, j'ai eu le déplaisir de constater que ma console se faisait inonder sous les messages du noyau comme décrit dans ce bug, probablement causé par le dongle que j'utilise pour me connecter à Internet (pour une raison temporaire et tout aussi stupide). J'ai "résolu" le problème de façon temporaire en ignorant les messages du noyau.

Pas de Wi-Fi par défaut

apt-get install firmware-iwlwifi et redémarrer la machine a suffi à ce que ça fonctionne.

xbacklight ne fonctionne pas

Les instructions trouvées ici (créer un /etc/X11/xorg.conf avec ce qui va bien dedans) ont fonctionné.

Pas de son par défaut

Il a fallu que je passe à PulseAudio, alors que je m'en étais très bien passé jusqu'à maintenant. C'était en fait plus facile que ce à quoi je m'attendais, j'ai suivi le premier tutoriel que j'ai trouvé en ligne et ça a marché. Je crois me souvenir que sudo apt-get install pulseaudio pavucontrol a suffi.

Pas de Bluetooth par défaut

Internet m'a indiqué les bons trucs à installer : sudo apt-get install pulseaudio-module-bluetooth bluez-firmware blueman. Ça a eu l'air de marcher (on peut voir la liste des périphériques, etc.), mais en fait j'ai pas réussi à envoyer du son sur les enceintes Bluetooth que j'utilisais avant de faire pactl load-module module-bluetooth-discover et de re-faire l'étape de pairage.

Le lecteur d'empreintes digitales ne marche pas

Ça a l'air impossible de le faire fonctionner pour l'instant, et ça n'arrivera probablement pas dans un futur proche. Triste =(

Les touches multimédia doivent être configurées

Mais paraît normal, puisque j'utilise i3 comme gestionnaire de fenêtres. On peut trouver les codes des touches avec xev, puis leur faire faire ce qu'on veut dans .i3/config, c'est standard. Celle pour le Wi-Fi fonctionne sans avoir besoin de configurer quoi que ce soit (une fois le driver installé), et a l'air d'avoir le même effet qu'un toggle de rfkill sur l'interface Wi-Fi.

Parfois, les touches multimédia cessent complètement de fonctionner, et n'envoient plus rien de reconnaissable dans xev. Je n'ai pas réussi à trouver comment reproduire le bug de façon déterministe, mais il me semble que c'est encore un problème avec le dock. Tout débrancher, mettre le système en veille et le rallumer suffit généralement à ce que ça revienne.

La résolution de l'écran est vraiment grande

La majorité des logiciels sont inadaptés à l'écran HiDPI du X1 Carbon : LyX, Quod Libet, Firefox, etc., ont leurs textes et menus qui apparaissent minuscules. J'ai réglé ça en trois étapes.

  • J'ai ajouté xrandr --dpi 120 dans mon .xinitrc.
  • J'ai changé mes raccourcis pour ouvrir des terminaux pour afficher de plus gros caractères, et une belle police lisible et compacte.
  • Et j'ai installé l'extension Firefox AutoHiDPI pour avoir le DPI de Firefox qui change automatiquement suivant l'écran sur lequel la fenêtre se trouve (parce que mes écrans auxiliaires n'ont pas une telle résolution). Malheureusement, ça ne marche pas si deux fenêtres se trouvent sur deux écrans différents ; je n'ai pas de solution pour ça.

Conclusion

Si je devais me choisir une autre machine maintenant, il est probable que je regarde si il n'y a pas des laptops avec une meilleure compatibilité (en particulier avec des docks qui marchent mieux sous Linux). Mais il est assez possible que je prenne malgré tout le même modèle. Les problèmes sont pénibles, mais on finit par en venir à bout (et c'est satisfaisant quand ça finit par marcher :D) — je n'ai essentiellement plus de souci gênant avec cette machine. Et je suis carrément fan du matériel.

J'espère quand même que les modèles suivants de la ligne ThinkPad marcheront un peu mieux.

Tout ce que je raconte ici sont mes opinions personnelles, pas celles de mon employeur.
Je suis toujours ravi de recevoir des réactions, critiques, questions, ou autres commentaires sur ce que j'écris. Envoyez-moi ce qui vous chante à se.niatnofsed@neimad.