Como posso direcionar a entrada de dois teclados para dois terminais respectivos em um computador?

2

Eu quero conectar dois teclados usb ao mesmo computador (Linux). Então eu quero abrir 2 consoles # 1 e # 2 e executar um processo em cada um deles. Então eu quero receber a entrada do teclado # 1 no console # 1 e a entrada do teclado # 2 no console # 2, ou seja, cada keypad envia a entrada para um processo específico. Como isso pode ser alcançado? Suponha que o código esteja escrito em C. Obrigado!

    
por martincho 04.11.2011 / 23:53

1 resposta

0

Para ter uma entrada de leitura de programa de um teclado específico, você pode fazer com que ela leia os eventos brutos do dispositivo de entrada direito. Os dispositivos de entrada são (com uma configuração típica do udev) /dev/event[0-9]* , e você pode descobrir qual deles está passando por /dev/input/by-id/*-kbd e /dev/input/by-path/*-kbd . Procure em by-id para corresponder ao dispositivo por sua identificação (fornecedor e número de série) ou em by-path para corresponder à porta USB em que ele está conectado.

Você pode querer ajustar as regras do udev que geram os nomes em /dev/*/by-*/ . Você pode encontrar as informações que o udev tem à sua disposição executando udevadm info -a -n /dev/input/event42 (você também pode dizer ao udev para usar a saída de algum outro programa, se você tiver um programa que relate mais informações sobre um dispositivo). Se você está tendo problemas para distinguir entre os dois teclados, observe a saída udevadm info para características diferenciadas. Você também pode executar udevadm test /class/input/event42 para ver quais regras o udev está aplicando atualmente.

    
por 05.11.2011 / 19:04

Tags