최대 절전 모드 후 터치패드가 작동하지 않음

최대 절전 모드 후 터치패드가 작동하지 않음

저는 최신 Arch/Antergos Linux를 사용하고 있습니다.

최대 절전 모드에서 다시 시작한 후 터치패드가 작동을 멈췄습니다. 영향을 받은 것 같아요이것sudo rmmod i2c_hid; modprobe i2c_hid버그가 있어서 터치패드를 다시 작동 상태로 되돌리려면 복원할 때마다 입력 해야 합니다 .

최대 절전 모드에서 다시 시작할 때 실행되도록 스크립트를 추가하여 fix-touchpad.sh프로세스를 자동화 해 보았습니다 ./usr/lib/systemd/system-sleep

#!/bin/sh
if [ $1 = post ]
then
    rmmod i2c_hid
    modprobe i2c_hid
fi

스크립트는 시작 시 실행되며 전후 echo "something" > log.log와 전후를 테스트했습니다 . 그러나 터치패드가 정상으로 돌아오지 않았습니다.iffi

또한 복원 후 스크립트를 성공적으로 테스트했는데 sh fix-touchpad.sh post놀랍게도 터치패드가 다시 깨어났습니다.

복구 프로세스의 일부로 터치패드가 실행될 때 스크립트가 터치패드를 수정하지 않는 이유는 무엇입니까?

터치패드를 고칠 수 있는 다른 방법이 있나요?

답변1

이유는 모르겠지만,문제는 최대 절전 모드에서 돌아올 때 모듈을 제거하고 추가하려고 하는 것입니다..

솔루션 1

나는 당신과 같은 문제가 있었고 fix-touchpad.sh최대 절전 모드 전에 모듈을 제거하고 최대 절전 모드 후에 다시 추가하기 전까지는 스크립트가 작동하지 않았습니다.

본사 소재지이 답변Fedora 포럼에서는 다음과 같이 보일 수 있습니다:

$ cat /usr/lib/systemd/system-sleep/fix-touchpad.sh
#!/bin/bash
[ "$1" = "pre" ] && modprobe -r i2c_hid
[ "$1" = "post" ] && modprobe i2c_hid
exit 0

솔루션 2

또한 최대 절전 모드/재개에서 코드를 실행하는 다른 방법을 찾았습니다.또한 최대 절전 모드 전에 모듈을 제거한 경우에만 작동합니다.. Arch Wikipedia에 명시된 바와 같이전원 관리 #SleepHook, 수면 서비스에 의해 트리거되는 시스템 서비스를 생성할 수 있습니다.

Wiki 설명에 따르면 다음과 같은 결론에 도달했습니다.

$ cat /etc/systemd/system/root-resume.service
[Unit]
Description=(un)load module i2c_hid when going to/from sleep
Before=sleep.target
StopWhenUnneeded=yes

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=modprobe -r i2c_hid
ExecStop=modprobe i2c_hid

[Install]
WantedBy=sleep.target

를 통해 서비스를 활성화해야 합니다 systemd enable root-resume. ExecStart는 이전에 실행되고 sleep.targetExecStop은 재개할 때 실행됩니다.

해결 방법 3

systemd-suspend-modules패키지 보기우레아 소변 비율. 기본적으로 실행되는 서비스를 정의합니다.솔루션 1사용자 프로필에 나열된 각 모듈에 대해. "주어진 모듈과 이에 의존하는 모든 모듈을 재귀적으로 언로드"하므로 다른 모듈에 더 적합할 수 있습니다(https://github.com/parkouss/systemd-suspens-modules/blob/master/suspens-modules#L19).

관련 정보