Linux Mint 20 Cinnamon(Ubuntu 20)에서 최대 절전 모드를 활성화하고 예기치 않은 깨우기를 방지하는 방법은 무엇입니까?
답변1
다음은 원래 질문의 일부로 게시되었으므로 (테든) 여기에 복사하고 있습니다.
업데이트: 깨울 때마다 실행되도록 되어 있는 스크립트의 섹션 4에서 일부 불일치가 발생했습니다. /proc/acpi/wakeup
설정은 재설정만 가능하다는 것이 밝혀졌습니다때때로. 종료/재시작/최대 절전 모드/일시 중지할 때마다 그런 것은 아닙니다. 따라서 내 스크립트는 때때로 깨우기를 활성화합니다. 스크립트를 업데이트했습니다. 이제 활성화된 것으로 표시되는지 확인합니다.어딘가에그런 다음 /proc/acpi/wakeup
출력하면 됩니다.
어떤 의미에서 이것은 미래를 위한 나 자신을 위한 메모이기도 하다. Linux에서 최대 절전 모드가 작동하는 간단한 기능이 아닌 이유와 이를 활성화하는 것이 왜 그렇게 복잡한지 이해가 되지 않습니다. 절전 모드에 대해 궁금한 분들에게도 도움이 되었으면 좋겠습니다.
- 먼저, 당신이 가지고 있는지 확인해야합니다충분히 큰 스왑 파일. 스왑 영역은 최대 절전 모드 중에 RAM이 디스크에 저장되는 곳입니다.
- 스왑 크기를 확인하십시오.시스템 모니터->리소스또는 실행하면
sudo swapon --show
충분하지 않을 수 있습니다. 스왑 크기는 RAM 크기보다 약간 커야 합니다. 온라인에는 몇 가지 가이드가 있습니다. 4GB RAM 시스템에서 5GB 스왑 공간을 선택했습니다. - 스왑 공간을 늘리는 방법은 설정 방법에 따라 다릅니다. 어쩌면 더 큰 스왑 파일을 만들어야 할 수도 있고, 열어야 할 수도 있습니다.고팟간단히 파티션 크기를 조정하면 됩니다.
/dev/vgmint/root
볼륨이 있는 암호화된 LVM이 있습니다/dev/vgmint/swap
. LVM은 마운트 후에 크기를 조정할 수 없으므로 Linux Mint를 사용하여 USB 스틱에서 부팅할 수 있습니다. 거기에서 사용할 수 있습니다디스크암호화된 LVM을 잠금 해제하고 사용하는 애플리케이션이 아름다운 가이드/dev/vgmint/root
볼륨 크기를 안전하게 줄이려면 :- 파일 시스템 강제 검사
sudo e2fsck -f /dev/vgmint/root
- 파일 시스템을 축소합니다
sudo resize2fs /dev/vgmint/root 180G
. 180G를 원하는 최종 볼륨 크기의 약 90%로 교체하세요. - 볼륨을 최종 크기로 줄입니다
sudo lvreduce -L 200G /dev/vgmint/root
. 여기서 200G는 볼륨의 최종 크기입니다. - 볼륨의 남은 여유 공간을 차지하도록 파일 시스템을 확장합니다.
sudo resize2fs /dev/vgmint/root
- 파일 시스템 강제 검사
sudo lvextend -l 100%FREE /dev/vgmint/swap_1
그런 다음 방금 생성한 여유 공간을 사용하여 스왑 볼륨을 확장하도록 실행할 수 있습니다 .- 이제 교환을 업데이트해야 합니다. 우리는 귀하의 일반 시스템으로 부팅되는 USB 스틱을 통해 라이브 시스템을 완성했습니다. 스왑의 크기를 다시 확인하면 공간을 더 주었음에도 불구하고 크기가 변경되지 않은 것을 볼 수 있습니다. 새로운 거래소를 만들어야 합니다.
sudo swapoff -a
모든 스왑을 비활성화하려면 실행 하고sudo mkswap /dev/vgmint/swap_1
새 스왑을 생성하려면 실행하세요.
- 이제 하드웨어를 테스트해 보세요.최대 절전 모드 지원그리고수면 버튼을 다시 추가하세요독서로이 사랑스러운 기사:
- 터미널을 열고 실행하면
sudo pm-hibernate
컴퓨터가 최대 절전 모드로 전환됩니다. 다시 부팅하고 모든 것이 복원되는지 확인하십시오. 그렇다면 하드웨어가 최대 절전 모드를 지원하는 것입니다. - 이제 최대 절전 모드 아이콘을 활성화하겠습니다. 파일을 생성합니다:
sudo -i cd /var/lib/polkit-1/localauthority/50-local.d/ nano com.ubuntu.enable-hibernate.pkla
- 다음을 파일에 붙여넣습니다.
[Re-enable hibernate by default in upower] Identity=unix-user:* Action=org.freedesktop.upower.hibernate ResultActive=yes [Re-enable hibernate by default in logind] Identity=unix-user:* Action=org.freedesktop.login1.hibernate ResultActive=yes
- 저장하고 다시 시작하세요. 이제 전원 버튼을 누르면 "최대 절전 모드" 옵션이 나타납니다.
- 터미널을 열고 실행하면
- 에너지 관리. 이는 Cinnamon이 포함된 Linux Mint에만 해당될 수 있습니다. 일정 기간 동안 사용하지 않으면 노트북을 최대 절전 모드로 전환하고 싶지만 다음 명령을 사용하여 설정할 수 없습니다.에너지 관리앱. 내부 Cinnamon 설정을 편집하려면 dconf 편집기(
sudo apt install dconf-editor
)를 사용합니다. 그것을 열고 다음으로 가십시오./org/cinnamon/settings-daemon/plugins/power/아니면 그냥 검색해 보세요힘.sleep-inactive-battery-type
이것이 내가 추구하는 것입니다 - "최대 절전 모드"로 설정합니다. 여기서는use-time-for-policy
"배터리 부족", "배터리 위험" 및 "배터리 작동" 상태를 확인하기 위해 남은 시간 대신 전원을 끄고 배터리 비율을 사용하는 것을 선호합니다. 배터리 비율은 실제 값이며 남은 시간은 추정치이며 크게 다를 수 있습니다.percentage-low
,percentage-critical
및 를 사용하여 백분율 임계값을 설정할 수도 있습니다percentage-action
. 둘러보면 이 탭에 몇 가지 흥미로운 설정이 있습니다. 그래도 조심하세요. - 이제 마지막 퍼즐 조각일시 중지/최대 절전 모드에서 불필요한 절전 모드 해제 방지. 쓰다
sudo cat /proc/acpi/wakeup
. 어떤 장치가 활성화되어 있고 최대 절전 모드에서 예상치 못한 깨우기를 일으킬 수 있는지 확인할 수 있습니다. 문제를 일으키는 장치는 시작할 때와 일시 중지/최대 절전 모드에서 돌아올 때 비활성화해야 합니다.
- 장치를 비활성화하는 방법은 다음과 같습니다
echo DEVICE_NAME | sudo tee /proc/acpi/wakeup
. (감사해요이 스레드.) - 어떤 장치가 문제를 일으키는지 알아내고(저는 모두 비활성화했습니다) 해당 장치를 비활성화하는 bash 스크립트를 작성합니다. (루트가 파일을 실행하므로 파일을 루트가 소유해야 할 수도 있습니다.) 다음과 같습니다.
#!/bin/bash
filename='/proc/acpi/wakeup'
n=0
fix=false
while read line; do
if [[ "$line" == *"enabled"* ]]; then
fix=true
#break
fi
n=$((n))
done < $filename
if [[ "$fix" == "true" ]]; then
echo RP01 | tee /proc/acpi/wakeup
echo RP02 | tee /proc/acpi/wakeup
echo RP03 | tee /proc/acpi/wakeup
echo RP05 | tee /proc/acpi/wakeup
echo RP06 | tee /proc/acpi/wakeup
echo XHC1 | tee /proc/acpi/wakeup
echo LID0 | tee /proc/acpi/wakeup
fi
스크립트를 루트에서 실행 가능하게 만드는 것을 잊지 마십시오. sudo su
그런 다음chmod +x /your-script.sh
- 이제 스크립트를 호출할 systemctl 서비스를 생성해야 합니다. (감사해요이 기사영감을 얻기 위해 이 사이트에 있는 다른 많은 게시물도 있습니다.) 서비스 직원에게 전화했더니일어나 다. 파일 생성을 사용하십시오
sudo nano /etc/systemd/system/wakeups.service
. 문서 내용:
[Unit]
Description=Fix unwanted wakeups from suspend
[Service]
Type=oneshot
TimeoutSec=0
StandardOutput=syslog
User=root
ExecStart=/path-to-your-script/script.sh
[Install]
WantedBy=multi-user.target suspend.target hibernate.target
- 다음을 실행하여 서비스를 활성화합니다.
systemctl enable wakeups.service
- 글쎄, 이것이 최대 절전 모드 기능을 작동시키는 데 필요한 전부입니다! 정기적으로 시작하고 최대 절전/일시 중지에서 돌아올 때 모든 것이 제대로 작동하는지 테스트하고 확인하십시오.