Surface Pro 10 : clavier inactif sous GParted ou Kali Linux – causes et correctifs

Le clavier et le pavé tactile de la Surface Pro 10 peuvent se figer dès l’écran d’accueil d’une clé USB Live Linux. Cet article détaille les raisons, les tests déjà conduits, puis les solutions robustes pour rétablir les périphériques d’entrée et mener à bien un partitionnement ou une installation Kali Linux/GParted sans accroc.

Sommaire

Vue d’ensemble du problème

Sur une Surface Pro 10 for Business associée à un Surface Pro Keyboard, tout fonctionne jusqu’à l’apparition du menu de démarrage de GParted ou de Kali Linux Live. Sans crier gare, l’icône clavier disparaît de la barre système ; dès lors, ni frappe ni déplacement de curseur ne sont détectés. Le même support USB s’exécute pourtant sans failles sur une Surface Pro 5 (génération 2017). L’incident se reproduit avec différents claviers Type Cover et quelle que soit l’édition ISO employée.

Symptômes typiques

  • Fonctionnement normal du clavier au logo de démarrage ;
  • Gel complet dès le chargement du noyau Linux ;
  • Non‐réactivité du clavier même dans BusyBox ou dans l’initramfs ;
  • Absence de pointage : touchpad et clics restent muets ;
  • Périphérique non listé par lsusb ni par lspci, ce qui confirme un pilote manquant plutôt qu’une panne matérielle.

Causes identifiées

  1. Absence de pilote HID propriétaire dans l’image ISO : le contrôleur d’entrées de la Surface Pro 10, inédit, ne dispose pas encore de modules inclus par défaut.
  2. Écart matériel entre générations : la génération 5 exploite un firmware HID déjà amont dans le noyau ; le nouveau modèle requiert le sous‑système surface_hid et les couches surface_aggregator.
  3. Portée limitée des pilotes Windows : l’exécutable MSI « Surface Pro 10 Drivers and Firmware » agit uniquement dans l’environnement Windows, sans répercussion sur un boot Linux.

Tests et mesures déjà tentés

ActionRésultat
Réinstallation firmware Surface dans WindowsAucun effet visible côté Linux Live
Extraction des .inf + pnputil /add-driverClavier toujours inactif
Désactivation/activation Secure Boot et Secure CoreAucun changement
Essai d’un autre Type CoverMême gel du périphérique HID
Clavier USB‑C externeFonctionne instantanément (contournement)

Recommandations pratiques

Employer un clavier externe

C’est la parade la plus rapide : brancher un clavier USB‑A/USB‑C ou Bluetooth permet de naviguer dans GParted et de compléter l’installation avant le premier redémarrage sous Linux pleinement configuré. Une fois le noyau mis à jour, vous pourrez revenir au Type Cover officiel.

Migrer vers un noyau Linux prenant en charge la famille Surface

Les correctifs s’agrègent dans la branche linux‑surface maintenue par la communauté ; à défaut, un noyau en version 6.9 ou supérieure intègre déjà une partie des patches. La procédure pas à pas :

  1. Démarrer la machine avec l’USB Live et un clavier externe.
  2. Installer la distribution sur le SSD.
  3. Se connecter à Internet puis ajouter le dépôt « linux‑surface ». Exemple sous Arch Linux :
sudo pacman -Syu
git clone https://aur.archlinux.org/linux-surface.git
cd linux-surface
makepkg -si
  1. Activer les modules :
sudo modprobe surface_hid
sudo modprobe surface_aggregator
  1. Regénérer l’initramfs pour injecter les nouveaux pilotes dans l’image de démarrage :
    sudo mkinitcpio -P
  2. Mettre à jour le chargeur Systemd‑boot, GRUB ou rEFInd selon le cas.
  3. Redémarrer sans clavier externe : le Type Cover doit désormais être reconnu dès l’écran de connexion.

Activer l’option “USB Keyboard Support” dans l’UEFI

Cette bascule, repérée dans l’onglet Devices du firmware, force la carte mère à présenter le Type Cover comme clavier USB générique jusqu’au chargement de l’OS. La détection reste aléatoire, mais certains utilisateurs confirment un succès après réinitialisation du BIOS puis réactivation de l’option.

Surveiller les dépôts de la distribution

Ubuntu, Fedora et Arch diffusent régulièrement des mises à jour du noyau. Une simple commande sudo apt full-upgrade ou sudo dnf upgrade peut suffire quelques semaines plus tard pour récupérer une version intégrant les modules Surface.

Consulter les forums spécialisés

Les sections « Laptop Hardware Compatibility » d’Arch Linux, « Surface Linux » sur Reddit ou encore les groupes Matrix #surface-linux regorgent de retours d’expérience, notamment des scripts automatisés pour Debian et openSUSE. Avant de compiler, jetez un œil aux fils épinglés : ils contiennent souvent un paquet pré‑compilé et signé.

Tutoriel : compilation manuelle des modules Surface

Pour les distributions où linux‑surface n’existe pas encore, la compilation à la main offre un contrôle total.

  1. Récupérer les sources :
    git clone https://github.com/linux-surface/linux-surface.git
  2. Installer les dépendances de build (gcc, make, headers, bc, libncurses-dev, openssl dev…)
  3. Configurer le noyau :
    make oldconfig puis rechercher les entrées SURFACE_ et les passer à built‑in ou module selon préférence.
  4. Compiler :
    make -j$(nproc)
  5. Installer :
    sudo make modules_install install
  6. Mettre à jour l’initramfs :
    sudo dracut -f --kver $(make kernelrelease)

La démarche est longue (20–30 minutes) mais garantit l’inclusion des derniers correctifs non publiés.

Scénarios sans clavier externe

Lorsque l’accès physique à un périphérique USB est impossible (dépannage sur site, port unique endommagé, etc.), trois solutions de substitution existent :

  • Live USB avec SSH auto‑démarré : placer une clé publique dans /root/.ssh/authorized_keys puis activer systemctl enable ssh dans l’image ; on pilote la machine à distance dès la phase Live.
  • Pré‑configuration d’un serveur VNC : le démon démarre dans l’initramfs et diffuse le framebuffer, permettant de cliquer/taper depuis un autre poste.
  • Option kernel “kbd‑mode=off” : désactive le multiplexeur HID de Surface et laisse le contrôleur exposer un pipeline USB standard temporaire.

Comprendre la pile HID Microsoft Surface

Le contrôleur clavier/touchpad est relié via le connecteur latéral et communique sur un bus SPI, non sur le traditionnel USB interne. Microsoft fournit un Surface Embedded Controller (SEC) qui agrège clavier, touchpad, gyroscope, gyroscope, caméra IR et boutons latéraux. Sans le module surface_aggregator, l’OS ne voit aucun périphérique, d’où la disparition de l’icône clavier.

Chronologie de l’intégration dans le noyau

Version noyauFonctions Surface intégrées
5.13Gestion de l’accéléromètre et du gyroscope
5.16Base du contrôleur Surface Aggregator
6.2Support initial Surface Pro 8
6.4Touchpad précision sur Surface Laptop 5
6.9Ajout Surface Pro 10 – clavier et touchpad

Un noyau antérieur à 6.9 ignore donc totalement le Type Cover de la Pro 10 ; c’est pourquoi un Live USB bâti sur Debian 12 (5.10) ou Ubuntu 22.04 (5.15/6.5 HWE) pose problème.

Risque Secure Boot et signature de modules

Sur les Surface Pro 10 for Business, Secure Core est activé par défaut ; il interdit tout module noyau non signé par une autorité approuvée. Si vous compilez linux‑surface vous‑même, deux choix s’offrent à vous :

  1. Générer une paire de clés Machine Owner Key puis signer chaque .ko via kmodsign, avant d’enregistrer le hash de la clé publique dans le BIOS.
  2. Désactiver Secure Boot le temps du premier démarrage, vérifier le fonctionnement, puis réactiver et signer proprement.

Bonnes pratiques de maintenance

  • Surveiller la parution des notes de version Surface UWP (Windows ) : elles indiquent souvent les correctifs équivalents requis côté Linux.
  • Étager les mises à jour : testez d’abord la compilation sur une clé USB test avant de l’appliquer au système de production.
  • Exporter un snapshot Btrfs ou Timeshift avant la mise à niveau du noyau ; un retour en arrière est alors instantané.
  • Reporter les anomalies à la liste de diffusion « surface‑linux » avec dmesg complet : plus le retour est riche, plus vite le correctif sera fusionné.

FAQ

Q : Le clavier fonctionne dans le BIOS ; pourquoi disparaît‑il dans Linux ?
R : Le firmware simule un périphérique HID universel jusqu’au hand‑off vers l’OS. Au chargement du noyau, l’agrégateur Surface prend la relève. Sans pilote compatible, il coupe la liaison USB émulée.

Q : Une fois le noyau mis à jour, dois‑je garder le clavier externe ?
R : Non ; dès que le module surface_hid est présent, le Type Cover redevient 100 % opérationnel, y compris les gestes multipoints.

Q : Peut‑on flasher le firmware Surface Pro 10 pour corriger le souci ?
R : Il n’existe pas de firmware alternatif officiel ; seul le noyau peut résoudre l’incompatibilité, pas une mise à jour BIOS.

Conclusion

Le blocage du clavier sur Surface Pro 10 n’est pas une panne matérielle mais un décalage entre l’évolution du matériel Microsoft et l’intégration progressive des pilotes dans le noyau Linux. Un clavier externe, un noyau ≥ 6.9 ou le projet linux‑surface règlent définitivement le problème. En attendant, un Live USB configuré pour SSH ou VNC reste la roue de secours idéale. Gardez un œil sur les futures mises à jour : chaque version rapproche un peu plus la Surface Pro 10 du « fonctionne out of the box » auquel les utilisateurs Linux aspirent.

Sommaire