Solución definitiva al teclado del Surface Pro 10 que no responde al instalar GParted o Kali Linux

El teclado Type Cover y el touchpad del Surface Pro 10 for Business dejan de responder justo cuando más se necesitan: al intentar redimensionar particiones con GParted Live o instalar Kali Linux para un arranque dual. A continuación encontrarás una guía exhaustiva para comprender el origen del problema, prevenir sustos con los datos y lograr que el teclado integrado funcione de forma permanente bajo Linux.

Índice

Resumen del escenario

Al arrancar desde un medio USB (GParted Live o Kali Linux) el teclado y el touchpad funcionan en la primera pantalla del cargador de arranque. Sin embargo, tan pronto como el instalador pasa al apartado “selección de distribución de teclado”, ambos dispositivos dejan de responder; el icono del teclado que ofrecía la distribución de teclas desaparece y la interfaz queda inaccesible salvo que se conecte un teclado USB externo.

Causa técnica en detalle

La 10.ª generación de Surface Pro utiliza un dispositivo HID‑over‑SPI y un subsistema Intel IPTS (Integrated Precision Touch) para digitalizar las entradas del Type Cover. En los kernels que traen por defecto GParted Live y la ISO oficial de Kali no se incluyen los módulos surfacehid, surfaceaggregator ni los archivos de firmware necesarios. El sistema cae entonces en un estado “huérfano”: detecta el bus SPI pero carece del controlador para exponer el teclado y el panel táctil a user‑space. El Surface Pro 5 o generaciones anteriores, en cambio, utilizan un controlador HID genérico ya presente en el kernel principal, por eso allí el problema no se reproduce.

Verificaciones previas

  • Firmware/UEFI al día: inicia en Windows y ejecuta la utilidad oficial de actualización de firmware de Surface (requiere privilegios de administrador). Aporta correcciones de estabilidad para SPI/I2C.
  • Secure Boot: puedes dejarlo activo, pero los módulos que compiles o instales deberán firmarse o se bloquearán. En fase de pruebas conviene desactivarlo.
  • Copia de seguridad: usa Historias de archivos o la imagen completa de Windows antes de redimensionar particiones.

Solución paso a paso con teclado USB

  1. Arranca GParted Live con un teclado USB y reduce la partición de Windows (NTFS) dejando espacio sin asignar.
  2. Reinicia con la ISO de la distribución deseada (Kali, Debian, Fedora, etc.) y realiza la instalación en el espacio libre.
  3. Después del primer arranque de la nueva distro, añade el repositorio del proyecto linux‑surface. Ejemplo sobre Debian/Ubuntu/Kali:
    sudo apt install curl gnupg lsb-release curl -sL &lt;script‑setup‑linux‑surface&gt; | sudo bash # script proporcionado por el proyecto sudo apt install linux-surface libwacom-surface El placeholder <script‑setup‑linux‑surface> representa el script de instalación oficial; cópialo directamente del repositorio sin añadir enlaces externos.
  4. Actualiza el initramfs y reinicia. El teclado y el touchpad deberían aparecer como hid-surface y ipts al listar lsmod.
  5. Si Secure Boot está habilitado, firma los módulos con mokutil o tu gestor de claves favorito, de lo contrario no se cargarán.

Crear un medio Live personalizado con soporte Surface

Si prefieres prescindir de un teclado USB, puedes generar una ISO personalizada que incluya el kernel linux‑surface y su firmware. Sigue esta arquitectura:

  • Base: usa la receta oficial de live-build de tu distribución (por ejemplo Debian live).
  • Kernel y módulos: introduce el paquete linux-surface y los blobs de firmware en la lista packages.chroot.
  • Initramfs: añade surfacehid ipts surfaceaggregator a los módulos forzados en /etc/initramfs-tools/modules.
  • Hook: crea un script en config/hooks que firme los módulos si prevés usar Secure Boot.
  • Construye: ejecuta lb config && lb build y graba la nueva ISO en un USB (dd if=imagen.iso of=/dev/sdX bs=4M).

Acceso remoto como plan B: consola SSH en initramfs

En entornos donde no haya teclados externos, el módulo dropbear-initramfs permite entrar por SSH al sistema Live:

apt install dropbear-initramfs
echo 'IP=dhcp' &gt;&gt; /etc/initramfs-tools/conf.d/network 
echo 'DROPBEAR_OPTIONS="-p 22 -s -j -k"' &gt;&gt; /etc/dropbear/initramfs/dropbear.conf
update-initramfs -u

Al arrancar, se levanta el servidor SSH y puedes continuar la instalación desde otro ordenador.

Consideraciones sobre Secure Boot

AcciónComando o utilidadComentario
Comprobar estadomokutil --sb-stateDevuelve “SecureBoot enabled” o “disabled”.
Exportar clave MOKopenssl req -new -x509 -nodes -newkey rsa:2048 -keyout MOK.key -out MOK.crtUsa tu CA local.
Firmar módulokmodsign sha256 MOK.key MOK.crt $(modinfo -n surface_hid)Repite con cada módulo fuera del árbol.
Registrar MOKmokutil --import MOK.crtAl reiniciar aparecerá el gestor MOK para inscribir la firma.

Preguntas frecuentes

  • ¿Puedo instalar los controladores INF de Windows en Linux? No; Windows usa un modelo de controladores completamente distinto.
  • ¿El problema se resuelve cambiando GPT por MBR? No, la tabla de particiones no influye en la enumeración HID.
  • ¿Debo actualizar la UEFI aunque no use Windows? Sí. El firmware gobierna el bus SPI y corrige fallos de alimentación.
  • ¿linux‑surface es estable para uso diario? Al momento de publicar este artículo, la rama estable está probada en producción. Revisa los cambios tras cada actualización mayor del kernel.

Tabla de causa y solución rápida

Punto claveDetalle
Causa principalAusencia de controladores HID‑over‑SPI y firmware específicos en los kernels estándar de GParted Live y Kali.
Por qué funciona en Surface Pro 5Esa generación emplea HID genérico ya incluido en el kernel principal; el Surface Pro 10 necesita módulos extra.
Soluciones prácticasConectar un teclado USB para instalación/particionado. Instalar el kernel linux‑surface y su firmware. Generar un medio Live personalizado con soporte Surface. Actualizar UEFI desde Windows cuando sea posible. Firmar módulos o desactivar Secure Boot durante pruebas.
Lo que no funcionaCambiar GPT ↔ MBR. Usar ISOs antiguas esperando encontrar soporte. Copiar controladores .inf de Windows a Linux. Utilizar pnputil sin permisos de administrador.

Procedimiento de recuperación si el teclado sigue sin aparecer

En casos excepcionales el módulo surface_hid carga pero el dispositivo no responde. Ejecuta:

dmesg | grep -i surface
sudo modprobe -r surface_hid ipts
sudo modprobe ipts surface_hid

Si tras recargar los módulos el teclado revive, añade la línea siguiente en /etc/rc.local o un servicio systemd para automatizar el proceso:

/sbin/modprobe -r surfacehid ipts &amp;&amp; /sbin/modprobe ipts surfacehid

Optimización del consumo y suspensión

Con el kernel adecuado, el Surface Pro 10 puede aprovechar la suspensión S0ix y reducir el consumo en reposo a 0,3 W‑0,6 W. Añade los siguientes parámetros del kernel en el gestor GRUB:

memsleepdefault=deep pcieaspm=force i915.enablepsr=1

Después ejecuta grub-update y reinicia. Verifica con cat /sys/power/mem_sleep que la opción [deep] esté seleccionada.

Conclusiones

El mal funcionamiento del teclado del Surface Pro 10 durante la instalación de Linux no es un fallo de hardware ni de firmware corrupto, sino la ausencia de los controladores HID‑over‑SPI y del firmware IPTS en los kernels estándar de las distribuciones. Con un teclado USB y el kernel linux‑surface –o bien una ISO personalizada– el problema se resuelve de forma definitiva. Para entornos restringidos donde no se permite desactivar Secure Boot, basta con firmar los módulos añadidos. El resultado es un sistema dual completamente funcional, con un teclado Type Cover operativo desde el arranque hasta la sesión gráfica.

Índice