두 개의 USB 키보드를 동일한 컴퓨터(Linux)에 연결하고 싶습니다. 그런 다음 2개의 콘솔 #1과 #2를 열고 각 콘솔에서 프로세스를 실행하려고 합니다. 그런 다음 콘솔 #1의 키보드 #1에서 입력을 받고 콘솔 #2의 키보드 #2에서 입력을 받고 싶습니다. 즉, 각 키보드는 특정 프로세스에 입력을 제출합니다. 이것이 어떻게 달성될 수 있습니까? 코드가 C로 작성되었다고 가정합니다. 감사해요!
답변1
프로그램이 특정 키보드의 입력을 읽도록 하려면 올바른 입력 장치에서 원시 이벤트를 읽도록 할 수 있습니다. 입력 장치는 (일반적인 udev 설정 사용)이며 /dev/event[0-9]*
어떤 장치를 찾고 있는지 알아볼 수 있습니다. 장치 식별(공급업체 및 일련 번호) 또는 장치가 연결된 USB 포트를 기준으로 장치를 일치시키는 조회입니다./dev/input/by-id/*-kbd
/dev/input/by-path/*-kbd
by-id
by-path
를 /dev/*/by-*/
실행하여 udev에 어떤 정보가 있는지 알아낼 수 있습니다 udevadm info -a -n /dev/input/event42
(장치에 대한 추가 정보를 보고하는 프로그램이 있는 경우 udev에 다른 프로그램의 출력을 사용하도록 지시할 수도 있습니다). 두 키보드를 구별할 수 없는 경우 출력에서 udevadm info
구별되는 특성을 확인하세요. udevadm test /class/input/event42
udev가 현재 적용하고 있는 규칙을 확인하기 위해 실행할 수도 있습니다 .