https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate_(簡(jiǎn)體中文)
https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate
https://wiki.archlinux.org/index.php/Power_management
https://wiki.archlinux.org/index.php/HP_Compaq_6510b
三種掛起方式
名稱 掛起方式 電源狀態(tài)
1. suspend 掛起,待機(jī),暫停 (str: suspend to RAM)保存到內(nèi)存 通電 低功耗
2. hibernate 休眠,冬眠 (std: suspend to disk)保存至硬盤swap 斷電 關(guān)機(jī)
3. HybridSleep 混合睡眠 (strd:suspend to both)保存到內(nèi)存和硬盤 通電 低功耗
睡眠模式耳高,比如筆記本電腦:若電池還有電泳秀,就等同于掛起涂滴;若電池電量耗盡蛤奢,則等同于休眠模式。
========================
ArchLiux的休眠功能需要用戶設(shè)置后才能使用锣吼。
這里介紹使用systemd休眠洼冻。
需要swap分區(qū)或者swap文件骤宣,大小要求大于等于系統(tǒng)內(nèi)存。
==== 1. 在bootloader 中增加resume內(nèi)核參數(shù)
需要添加resume=/dev/sdxY (sdxY 是swap分區(qū)的名字) 寄症,讓系統(tǒng)在啟動(dòng)時(shí)讀取swap分區(qū)中的內(nèi)容宙彪。
$?lsblk
├─sdb6 ... /
└─sdb9 ... [SWAP]
當(dāng)前使用了grub2作為bootloader,swap的分區(qū)是/dev/sda9有巧。
== 1.1 編輯/etc/default/grub文件您访,在GRUB_CMDLINE_LINUX_DEFAULT中添加resume=/dev/sda9
若原本是: GRUB_CMDLINE_LINUX_DEFAULT=”quiet intel_pstate=enable”
則添加后: GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=enable?resume=/dev/sda9"
注:這里的 intel_pstate=enable 只針對(duì)intel處理器中SandyBridge(含IvyBridge)及更新的構(gòu)架的CPU。
當(dāng)前系統(tǒng):
原本是: GRUB_CMDLINE_LINUX_DEFAULT="quiet"
添加后: GRUB_CMDLINE_LINUX_DEFAULT="quiet?resume=/dev/sda9"
== 1.2 更新 grub 配置:
備份 grub.cfg 這里有手動(dòng)添加的啟動(dòng)項(xiàng)目剪决,
menuentry 'windows2008r2' {
set root=(hd0,1)
chainloader +1
}
$?sudo grub-mkconfig -o /boot/grub/grub.cfg
====?2. 配置 initramfs的resume鉤子
== 2.1 添加resume鉤子 編輯?/etc/mkinitcpio.conf?灵汪,在HOOKS行中添加resume鉤子:
若原本是: HOOKS="base udev autodetect modconf block filesystems keyboard fsck"
則添加后: HOOKS="base udev?resume?autodetect modconf block filesystems keyboard fsck"
注意: 如果使用lvm分區(qū),需要將resume放在lvm后面
lvm分區(qū): HOOKS="base udev autodetect modconf block lvm2?resume?filesystems keyboard fsck"
當(dāng)前系統(tǒng):
原本是: HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)
添加后: HOOKS=(base udev?resume?autodetect modconf block filesystems keyboard fsck)
== 2.2 重新生成 initramfs 鏡像:mkinitcpio -p linux
$?sudo mkinitcpio -p linux
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 5.0.4-arch1-1-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [resume]
-> Running build hook: [autodetect]
-> Running build hook: [modconf]
-> Running build hook: [block]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 5.0.4-arch1-1-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [resume]
-> Running build hook: [modconf]
-> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: aic94xx
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
$
參照:https://wiki.archlinux.org/index.php/Mkinitcpio
==>?aic94xx-firmware:適用于AIC94xx驅(qū)動(dòng)程序的Adaptec SAS 44300,48300,58300定序器固件
==>?wd719x-firmware:Western Digital WD7193柑潦,WD7197和WD7296 SCSI卡的驅(qū)動(dòng)程序
大多數(shù)人都沒有SAS / SCSI磁盤控制器享言,因此請(qǐng)忽略這些警告,不要安裝這些驅(qū)動(dòng)程序渗鬼。
這些對(duì)任何Arch Linux用戶都是有用的览露,特別是那些沒有安裝這些固件模塊的用戶。如果您不使用使用這些固件的硬件譬胎,則可以忽略此警告消息差牛。
安裝: https://gist.github.com/imrvelj/c65cd5ca7f5505a65e59204f5a3f7a6d
git clone https://aur.archlinux.org/aic94xx-firmware.git
cd aic94xx-firmware
makepkg -sri
git clone https://aur.archlinux.org/wd719x-firmware.git
cd wd719x-firmware
makepkg -sri
再mkinitcpio -p linux一次。
=========================
==== 設(shè)置低電量自動(dòng)休眠, 用于帶有內(nèi)置電池的設(shè)備堰乔。
修改/etc/UPower/UPower.conf相關(guān)配置.示例偏化,在電量低至%5時(shí)自動(dòng)休眠:
PercentageLow=15? ? ? ? ? #<=15%低電量
PercentageCritical=10? ? ? #<=10%警告電量
PercentageAction=5? ? ? ? ?#<=5%執(zhí)行動(dòng)作(即CriticalPowerAction)的電量
CriticalPowerAction=Hibernate? ? ? ?#(在本示例中是電量<=5%)設(shè)備會(huì)自動(dòng)休眠。
##CriticalPowerAction的取值有Poweroff镐侯、Hibernate和HybidSleep侦讨。
===================
==== 3. 設(shè)置蓋上筆記本蓋子或按下電源鍵休眠
== 3.1 編輯?/etc/systemd/logind.conf
蓋上蓋子休眠,添加:HandleLidSwitch=hibernate
按下電源鍵休眠添加:HandlePowerKey=hibernate
== 3.2 執(zhí)行以下命令使其立即生效:
$?sudo systemctl restart systemd-logind
===================
https://github.com/levinit/itnotes/blob/master/linux/laptop筆記本相關(guān).md
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#HandlePowerKey=poweroff #按下電源鍵
#HandleSuspendKey=suspend #按下掛起鍵HandleSleepKey
#HandleHibernateKey=hibernate #按下休眠鍵
#HandleLidSwitch=suspend #合上筆記本蓋
#HandleLidSwitchExternalPower=suspend
#HandleLidSwitchDocked=ignore #插上擴(kuò)展塢或者連接外部顯示器情況下合上筆記本蓋子
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#HoldoffTimeoutSec=30s
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
#RemoveIPC=yes
#InhibitorsMax=8192
#SessionsMax=8192
poweroff和halt均是關(guān)機(jī)(具體實(shí)現(xiàn)有區(qū)別)
supspend是掛起(暫停),設(shè)備通電韵卤,內(nèi)容保存在內(nèi)存中
hybernate是休眠骗污,設(shè)備斷電(同關(guān)機(jī)狀態(tài)),內(nèi)容保存在硬盤中
hybridSleep是混合睡眠沈条,設(shè)備通電需忿,內(nèi)容保存在硬盤和內(nèi)存中
lock是鎖屏
kexec是從當(dāng)前正在運(yùn)行的內(nèi)核直接引導(dǎo)到一個(gè)新內(nèi)核(多用于升級(jí)了內(nèi)核的情況下)
ignore是忽略該動(dòng)作,即不進(jìn)行任何電源事件響應(yīng)