Resumen:
El equipo de desarrollo del kernel de Linux ha fusionado una nueva ronda de actualizaciones del subsistema HID en el kernel de Linux 7.4 que se encuentra en desarrollo. Uno de los aspectos más destacados de esta actualización es la adición de compatibilidad preliminar con controladores para el controlador Nintendo Switch 2. El trabajo relevante lo completó la desarrolladora Vicki Pfau en nombre de Valve. Después de 16 rondas de modificaciones de parches, finalmente ingresó al kernel principal de Linux. Además, la nueva versión también agrega el controlador del mouse para juegos Pulsar y mejora el soporte de hardware para algunos procesadores AMD, Apple Touch Bar y consolas portátiles ASUS ROG Ally.


HID es la abreviatura de Human Interface Device, que es el principal responsable de procesar la información de entrada de hardware como teclados, ratones, controladores de juegos y dispositivos táctiles. El subsistema HID en el kernel de Linux no sólo necesita identificar dispositivos de diferentes fabricantes, sino que también debe manejar los protocolos de comunicación únicos de varios dispositivos. A medida que las consolas de juegos y los controladores inalámbricos se vuelven cada vez más populares, mejorar los controladores HID es de gran importancia para mejorar la experiencia de juego en Linux.
El cambio más preocupante esta vez es que Linux 7.4 introduce por primera vez un controlador dedicado para el controlador de Nintendo Switch 2. El controlador del Switch 2 adopta un diseño de interfaz relativamente especial: las funciones clave de entrada y vibración se procesan principalmente a través de la interfaz principal HID, mientras que otras operaciones de comunicación se completan a través de interfaces de configuración independientes. Ya sea que utilice una conexión USB o una conexión Bluetooth, este diseño separado aumentará la complejidad del desarrollo del controlador.
Para resolver este problema, el nuevo controlador adopta una estructura de controlador separada maestro-esclavo. La interfaz HID sirve como controlador principal, responsable de procesar entradas básicas y funciones relacionadas con la vibración; la interfaz de configuración sirve como controlador auxiliar, compartiendo los recursos necesarios del dispositivo con la interfaz principal. Este diseño puede adaptarse a la estructura de comunicación especial del controlador Switch 2 y también sienta las bases para agregar más funciones en el futuro.
Actualmente, el controlador preliminar admite las funciones de entrada generales de Joy-Con 2, Pro Controller 2 y el controlador GameCube en el servicio Nintendo Switch Online. Sin embargo, esto no significa que todas las funciones del controlador Switch 2 estén completamente disponibles en Linux.
Los desarrolladores señalaron que dado que Switch 2 utiliza una interfaz de emparejamiento no estándar y el mecanismo de comunicación Bluetooth existente del kernel de Linux también tiene ciertas limitaciones, aún es necesario diseñar una interfaz de comunicación dedicada entre el kernel y el espacio del usuario y completar la adaptación correspondiente en la pila de protocolos Bluetooth de BlueZ. Por lo tanto, esta fusión resuelve principalmente el problema de los controladores de interfaz de configuración USB y HID universales. Aún es necesario desarrollar el emparejamiento de Bluetooth y otras funciones avanzadas.
Vale la pena señalar que este trabajo fue realizado por Vicki Pfau en nombre de Valve. Valve ha promovido durante mucho tiempo el desarrollo del ecosistema de juegos de Linux y ha mejorado la compatibilidad de los juegos en la plataforma Linux a través de SteamOS, Steam Deck y contribuciones a los kernels y controladores de gráficos. El desarrollo de controladores para el controlador de consola de juegos de nueva generación de Nintendo también muestra que el trabajo relacionado no se limita a los productos de hardware propios de Valve.
Además de los controladores de Nintendo, Linux 7.4 también agrega un nuevo controlador llamado hid-pulsar para admitir múltiples ratones para juegos de la marca Pulsar. Los modelos probados incluyen los ratones inalámbricos para juegos X2 V2, X2H, X2A y Xlite V3. El nuevo controlador puede leer información como la energía de la batería, el voltaje de la batería y el estado de carga, y admite conexiones por cable, así como modos de conexión con velocidades de sondeo de 1000 Hz y 4000 Hz a través de receptores inalámbricos.
El controlador también es compatible con algunos productos de otras marcas que utilizan el mismo protocolo de comunicación, incluidos Kysona M600, ATK y VXE's R1 SE+, Dragonfly R1 Pro y otros modelos. Esto significa que, al beneficiarse del soporte del protocolo unificado, algunos ratones que no son de la marca Pulsar también pueden obtener la correspondiente compatibilidad con Linux.
Esta actualización de HID también amplía la compatibilidad del controlador AMD Sensor Fusion Hub (SFH) para los nuevos SoC Ryzen que utilizan la arquitectura AMD Zen 6. SFH es responsable de manejar algunas funciones relacionadas con los sensores y puede usarse en dispositivos equipados con hardware relacionado. El nuevo soporte ayudará a los futuros portátiles equipados con procesadores AMD de nueva generación a utilizar mejor las capacidades de los sensores correspondientes, pero las funciones específicas aún dependen de la configuración general del hardware.
Para dispositivos Apple, Linux 7.4 soluciona un problema de administración de energía con la Touch Bar. La consola portátil ASUS ROG Ally también recibió correcciones de administración de energía. Aunque estos cambios no son tan llamativos como el nuevo controlador del controlador de juegos, ayudarán a mejorar la confiabilidad de Linux ejecutándose en diferentes dispositivos.
En general, la actualización del subsistema HID de Linux 7.4 se centra en ampliar el rango de compatibilidad de controladores de juegos y ratones, al tiempo que soluciona los problemas de administración de energía del hardware existente. La fusión del controlador del controlador Nintendo Switch 2 es particularmente notable, ya que brinda soporte básico para los usuarios de Linux que utilizan la nueva generación de controladores de Nintendo. Sin embargo, todavía se encuentra en la etapa preliminar, el emparejamiento de Bluetooth y algunas funciones avanzadas aún no se han completado, y la experiencia final depende de la mejora continua del software posterior del kernel y del espacio de usuario.
Comentarios