블루투스 키보드를 콘솔 입력용 실제 키보드가 아닌 리모컨(전기 잠금 장치 열기용 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.rules
seat
업데이트 2몇 번의 노력 끝에 내가 원하는 것을 얻었습니다.
ATTRS{phys}=="00:1a:7d:e3:76:60", ENV{ID_SEAT}="none"
좌석 라벨을 비활성화하는 대신(또는 적어도 다른 장치에 해당 master-of-seat
라벨이 있는 경우) "없음"이라는 좌석을 생성한다고 생각하기 때문에 이것은 여전히 추악한 느낌입니다. 나는 여전히 무슨 일이 일어나고 있는지, 왜 TAG-="seat"
작동하지 않는지 이해하지 못하기 때문에 아직 질문에 대답하지 않았으며 다른 사람이 설명할 수 있기를 바랍니다.