USB 키보드를 연결하고 다음 명령을 실행하는 더러운 솔루션이 있습니다.
setxkbmap -rules evdev -layout us -model evdev
그 후 내 키보드가 작동했습니다.
이 해결 방법은 USB 키보드가 있는 경우에만 작동하지만 그런 일은 거의 발생하지 않으며 랩톱을 다시 시작해야 합니다. 다음을 추가하여 시스템이 깨어날 때 자동으로 명령을 실행하려고했습니다.
set -e
if [ "${1}" = "resume" ] && [ "${2}" != "standby" ]; then
setxkbmap -rules evdev -layout us -model evdev
fi
exit 0
to: /etc/apm/event.d/enable_xkb 그러나 이것은 작동하지 않습니다. 내 생각 엔 적절한 사용자가 실행하지 않기 때문입니다.
따라서 이 질문에 대한 대답은 두 가지입니다. 1) 시스템이 깨어난 후 위 스크립트를 실행하려면 어떻게 해야 합니까? 작동하게 할 수 있다면 간단히 컴퓨터를 절전 모드로 전환하고 깨워서 키보드가 다시 작동하도록 할 수 있습니다. 2) (선호) 실제로 이 문제를 어떻게 해결할 수 있나요?
답변이 필요한 상황에 대한 자세한 내용 2) 이 질문의 무작위 특성으로 인해 이 질문이 언제 시작되었는지 알 수 없습니다. 나는 그것이 Debian Unstable에 존재하고 테스트 중이지만 안정적이지 않다는 것을 알고 있습니다. 현재 Arch Linux에도 존재하지만 2012년 11월 이전에는 존재하지 않습니다. 내 시스템은 Lenovo w520입니다.
또한 참고 사항: 이것은 약간의 heisenbug이므로 며칠 동안 작동할 때까지 답변을 받을 수 없습니다.
추가 설명: 이런 일이 발생하면 tty#로 전환할 수 없으므로 콘솔이 작동하지 않습니다. 또한 "마른 코끼리 키우는 것은 지루하다" 콤보도 시도했지만 그것도 작동하지 않았습니다. 키보드 기능이 작동할 때 이것이 작동하는지 확인하겠습니다. 매우 무작위적이며 때로는 며칠이 지나도 키보드가 작동하지 않습니다.
답변1
스크립트가 복구 후크를 통해 작동하지 않는 이유는 어떤 X 서버와 통신해야 할지 모르기 때문입니다. 환경 변수를 설정해야 DISPLAY
할 수도 있습니다 . XAUTHORITY
바라보다다른 사용자의 데스크탑에서 루트로 그래픽 프로그램을 시작할 수 있습니까?더 많은 설명을 원하시면.
다음은 모든 활성 모니터에서 필수 명령을 실행하는 셸 조각입니다.
if [ "${1}" = "resume" ] && [ "${2}" != "standby" ]; then
for p in $(ps -C Xorg -o pid=); do
</proc/$p/cmdline awk -v RS='\0' '/^:[0-9]$/ {print} $0=="-auth" {getline; print}' | {
read DISPLAY; export DISPLAY
read XAUTHORITY && export XAUTHORITY || unset XAUTHORITY
setxkbmap -rules evdev -layout us -model evdev
}
done
fi