udev가 Bluetooth 키보드에 좌석을 할당하는 것을 방지하는 방법

udev가 Bluetooth 키보드에 좌석을 할당하는 것을 방지하는 방법

블루투스 키보드를 콘솔 입력용 실제 키보드가 아닌 리모컨(전기 잠금 장치 열기용 PIN 입력 패드)으로 사용하고 싶습니다. 다음 udev 규칙을 사용하여 블루투스 키보드에 제대로 액세스할 수 있습니다.

ENV{ID_BUS}=="bluetooth", ATTRS{phys}=="00:1a:7d:e3:76:60", ENV{ID_INPUT_KEYBOARD}=="?*", GROUP="uucp", SYMLINK+="btremote"

이렇게 하면 장치 노드가 uucp그룹(키 이벤트에 대한 액세스가 필요한 그룹)에 들어가고 적절한 장치와의 심볼릭 링크도 생성됩니다 /dev/btremote( /dev/input12숫자가 다양하기 때문에). 여태까지는 그런대로 잘됐다.

아쉽게도 키보드와 내장 포인팅 장치는반품내 X 세션에 연결하고 실행할 때 나타납니다 loginctl seat-status seat0. 나는 리모콘을 내 콘솔보다 덜 안전한 위치에 배치할 계획이고 사람들이 내 콘솔에 입력하는 것을 원하지 않기 때문에(또는 해당 키보드에 내장된 포인팅 장치를 사용하는 것) 짜증나고 위험합니다.

나는 여러 가지 변형을 시도했습니다.

ATTRS{phys}=="00:1a:7d:e3:76:60", TAG-="seat", ENV{ID_AUTOSEAT}=""

내 X 세션 연결에서 장치를 제외하려고 시도했지만 udev가 작동하지 않습니다. 해결 방법으로 가짜 좌석과 loginctl attach키보드를 만들 수 있다는 것을 알고 있지만 seat1이는 보안 문제이므로 해당 MAC 주소와 일치하는 모든 블루투스 장치를 완전히 제외하는 간단한 udev 규칙을 사용하는 것이 좋습니다. 신뢰할 수 없고 자동이 아니기 때문입니다. 일어날 수있다.

내 질문은 이 좌석 할당 메커니즘이 작동하는 방식과 장치 그룹을 안전하게 제외하는 방법입니다(키보드가 실제로 4개의 입력 장치로 표시되므로). 관련이 있다면 systemd-242.32와 함께 아치 리눅스를 사용하고 있습니다.

고쳐 쓰다과 사이에서 실행 /etc/udev/rules.d/72-btremote.rules되도록 라는 파일에 규칙을 추가했습니다 . 전자는 라벨이 추가되는 곳인 것 같고 후자는 좌석 번호가 할당되는 곳인 것 같지만 이것이 어떻게 작동하는지 이해하지 못한다는 것을 인정합니다./usr/lib/udev/rules.d/71-seat.rules/usr/lib/udev/rules.d/73-seat-late.rulesseat

업데이트 2몇 번의 노력 끝에 내가 원하는 것을 얻었습니다.

ATTRS{phys}=="00:1a:7d:e3:76:60", ENV{ID_SEAT}="none"

좌석 라벨을 비활성화하는 대신(또는 적어도 다른 장치에 해당 master-of-seat라벨이 있는 경우) "없음"이라는 좌석을 생성한다고 생각하기 때문에 이것은 여전히 ​​추악한 느낌입니다. 나는 여전히 무슨 일이 일어나고 있는지, 왜 TAG-="seat"작동하지 않는지 이해하지 못하기 때문에 아직 질문에 대답하지 않았으며 다른 사람이 설명할 수 있기를 바랍니다.

관련 정보