Adicionando à crescente lista de alterações que devem ser enviadas durante a janela de mesclagem do Linux 6.2 no próximo mês, está o HID-BPF. Este é o esforço liderado pela Red Hat em torno do uso do eBPF no subsistema HID para dispositivos de entrada.

A ideia com o HID-BPF é que ele pode ser usado com mais facilidade e rapidez para implantar peculiaridades/soluções alternativas para dispositivos que não estão de acordo com a especificação HID. Como é agora, minúsculos drivers de kernel do Linux geralmente surgem para lidar com dispositivos HID peculiares/com bugs que não estão em conformidade com o protocolo para apenas contornar o comportamento problemático. Em vez de ter que criar um patch de driver ou um novo driver apenas para casos simples, como corrigir descritores de relatório HID, um programa eBPF pode ser carregado no kernel. Por sua vez, deve ser mais fácil distribuir esses programas eBPF para corrigir problemas de HID, em vez de fazer com que os usuários esperem por uma nova versão do kernel ou por um back-port para uma versão específica do kernel.

HID-BPF tem sido trabalhado por um tempo agora por engenheiros da Red Hat e outros desenvolvedores upstream do kernel. Entre os usos previstos nesta fase para HID-BPF estão lidar com zonas mortas de um joystick, correções simples para descritores HID, novos recursos que requerem uma nova API de kernel como canetas USI, transformando um dispositivo em outra coisa e controlando-o a partir do usuário. espaço, um dispositivo”firewall”interceptando e impedindo que certos comandos HID sejam emitidos e rastreando eventos.

Mais detalhes sobre o HID-BPF podem ser encontrados no documentação.


A partir de hoje, os patches iniciais HID-BPF foram selecionados pela ramificação”for-next”do subsistema HID. Portanto, impedindo que surjam problemas de última hora que levem a que esses patches sejam retirados da árvore ou criticados por Linus Torvalds durante a janela de mesclagem, espera-se que o HID-BPF seja mesclado para o ciclo Linux 6.2 que começa em dezembro.
Juntamente com a integração do eBPF para o subsistema HID, há um exemplo de BPF adicionado onde os eixos X e Y são trocados e invertidos para o dispositivo de destino. Outro exemplo de HID-BPF para demonstrar esse código no Linux 6.2 é um programa HID para o Microsoft Surface Dial. Esse programa BPF transformará o Microsoft Surface Dial em um mouse.

Categories: IT Info