如何暂停HP DV4T的工作?

暂停不适用于我的笔记本电脑。 当笔记本电脑试图暂停时,屏幕会短暂关闭,一些系统外观文本显示一点,屏幕再次关闭,然后屏幕重新打开,我处于锁定屏幕提示状态。

我试过了:

  1. 统一菜单上的暂停按钮
  2. sudo pm-suspend
  3. sudo acpitool -s
  4. dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
  5. 删除/etc/pm/sleep.d (如此处所示 )
  6. sudo modprobe -r tpm_tis
  7. 修改/ proc / acpi / wakeup以切换除电源按钮以外的所有内容。
  8. SUSPEND_MODULES="alx"放入/etc/pm/config.d/modules
  9. 编写一个脚本,强制图形卡使用chvt1和chvt7的“踢”重新启动,并将其放入/etc/pm/sleep.d/20_custom-ehci_hcd Sushantp606的答案如下)
  10. 以不同的方式尝试与#9相同的事情(@ Sushantp606下面的答案的第三部分)
  11. sudo s2ram

    该内核没有KMS支持。 机器未知。 该机器可通过以下方式识别:sys_vendor =“Hewlett-Packard”sys_product =“HP Pavilion dv4 Notebook PC”sys_version =“F.24”bios_version =“F.24”

这些都没有解决问题。 #9改变了一点行为(它在尝试入睡和醒来之间循环更快)。

我有什么建议可以看下一步做什么?

此页面可能有所帮助: https : //help.ubuntu.com/community/SwapFaq

hibernate(挂起到磁盘)hibernatefunction(挂起到磁盘)在关闭计算机之前将RAM的内容写出到交换分区。 因此,您的交换分区应至少与RAM大小一样大。 目前在Ubuntu中使用的hibernate实现swsusp需要交换或挂起分区。 它无法在活动文件系统上使用交换文件。

现在你已经尝试了几乎所有东西,它值得一个好的和有效的anser。 那么这个问题是一些与图形卡有关的问题,它不会暂停,这就是为什么没有任何作用。所以我提到的解决方案同意一个接一个地尝试。

在/etc/pm/config.d下创建一个文件模块 –

 sudo gedit /etc/pm/config.d/modules 

并将以下命令粘贴到其中 –

 SUSPEND_MODULES="alx" 

这将强制alx模块被卸载并重新加载暂停,如果不删除该行,则转到下一部分就可以解决问题。

这个肯定会起作用。 因为它迫使图形卡使用来自chvt1和chvt7的良好旧踢重启自己。所以让我们从20_custom-ehci_hcd开始,如下所示 –

 gksudo gedit /etc/pm/sleep.d/20_custom-ehci_hcd 

为您提供密码并将以下内容粘贴到gedit中

 #!/bin/sh VERSION=1.1 DEV_LIST=/tmp/usb-dev-list DRIVERS_DIR=/sys/bus/pci/drivers DRIVERS="ehci xhci" # ehci_hcd, xhci_hcd HEX="[[:xdigit:]]" MAX_BIND_ATTEMPTS=2 BIND_WAIT=0.1 unbindDev() { echo -n > $DEV_LIST 2>/dev/null for driver in $DRIVERS; do DDIR=$DRIVERS_DIR/${driver}_hcd for dev in `ls $DDIR 2>/dev/null | egrep "^$HEX+:$HEX+:$HEX"`; do echo -n "$dev" > $DDIR/unbind echo "$driver $dev" >> $DEV_LIST done #for bus in $EHCI_BUSES; do echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/unbind # done done } bindDev() { if [ -s $DEV_LIST ]; then while read driver dev; do DDIR=$DRIVERS_DIR/${driver}_hcd #for bus in $EHCI_BUSES; do echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/bind #done while [ $((MAX_BIND_ATTEMPTS)) -gt 0 ]; do echo -n "$dev" > $DDIR/bind if [ ! -L "$DDIR/$dev" ]; then sleep $BIND_WAIT else break fi MAX_BIND_ATTEMPTS=$((MAX_BIND_ATTEMPTS-1)) done done < $DEV_LIST fi rm $DEV_LIST 2>/dev/null chvt 1 chvt 7 } EHCI_BUSES="0000:00:1a.0 0000:00:1d.0" case "$1" in hibernate|suspend) unbindDev;; resume|thaw) bindDev;; esac 

保存它然后通过 – 提供权限 –

 sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd 

重启 –

 sudo reboot 

现在检查一下。 它肯定会起作用,但是如果你的内核拒绝使用该脚本,那么用以下内容替换整个代码 –

 #!/bin/sh # File: "/etc/pm/sleep.d/20_custom-ehci_hcd". TMPLIST=/tmp/ehci-dev-list case "${1}" in hibernate|suspend) ;; resume|thaw) chvt 1 chvt 7 ;; esac 

你的暂停现在将工作,这个答案是从UbuntuForum收集的。

Last Work Arround为此你需要安装一个uswsusp的小应用程序,按照以下命令安装它 –

 sudo apt-get install uswsusp 

安装完成后,通过以下方式检查它是否暂停 –

 sudo s2ram 

你的电脑必须暂时停用。

冬眠 –

 sudo s2disk 

现在,如果它工作,然后通过以下删除以前默认的脚本和命令,但在做任何事情之前做备份 –

 sudo cp /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux.bak sudo cp /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux.bak 

现在让我们通过以下方式替换旧文件和命令:

 hal-system-power-suspend-linux hal-system-power-hibernate-linux 

然后

 sudo nano /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux 

并将以下内容粘贴到其中 –

 #!/bin/sh /sbin/s2ram –force 

并为hibernate –

 sudo nano /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux 

并将以下内容粘贴到其中 –

 #!/bin/sh /sbin/s2disk 

希望这次它能帮助你。

Ubuntu社区帮助页面建议使用加密交换分区启用hibernate

制备:

  1. 您的计算机必须已设置为加密。 如果没有,请先按照安装后加密中的说明进行操作。

  2. 考虑交换分区的密码(或密码)。 您可以使用与登录相同的function – 但如果其他人在您的计算机上拥有帐户,则不要这样做!

  3. 找出哪个是加密的交换分区。

      swapon --summary 

    您应该看到类似于的输出:

      Filename Type Size Used Priority /dev/mapper/cryptswap1 partition 1998844 0 -1 

    如果你没有看到cryptswap1,那么该分区要么未加密,要么未加密到Ubuntu的标准,

  4. 现在,

      sudo cryptsetup status cryptswap1 

    输出应该类似于

      /dev/mapper/cryptswap1 is active and is in use. type: PLAIN cipher: aes-cbc-essiv:sha256 keysize: 256 bits device: /dev/sda1 offset: 0 sectors size: 3997696 sectors mode: read/write 

    记下设备 。 示例中的那个说/dev/sda1但你的可能是其他东西 ,例如/dev/sdb3

  5. 备份

如何设置hibernate状态

  1. 关闭交换。

      sudo swapoff /dev/mapper/cryptswap1 
  2. 撤消现有映射。

      sudo cryptsetup luksClose /dev/mapper/cryptswap1 
  3. 再次设置交换,但这次使用您选择的密码。 该命令将提示您两次输入密码。 将/dev/sdXN替换为准备点4中的设备。 (以下命令包含在浏览器屏幕上,但它是您需要键入的单个命令。)

      sudo cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --verify-passphrase --key-size 256 /dev/sdXN 

    输出应该是:

      WARNING! ======== This will overwrite data on /dev/sda1 irrevocably. Are you sure? (Type uppercase yes): Enter LUKS passphrase: Verify passphrase: 

    键入YES并根据提示输入两次密码。

  4. 重新映射交换。 将/dev/sdXN替换为准备点4中的设备。

      sudo cryptsetup luksOpen /dev/sdXN cryptswap1 
  5. 将分区设置为交换。

      sudo mkswap /dev/mapper/cryptswap1 
  6. 打开交换(所以它再次开始工作)。

      sudo swapon --all 
  7. 检查它是否正常工作。

      swapon --summary 

    您应该看到与此类似的输出(数字可能不同)。

      Filename Type Size Used Priority /dev/mapper/cryptswap1 partition 1996796 0 -1 
  8. gksudo与您喜欢的编辑器一起使用(Ubuntu的默认设置是gedit ),编辑文件/etc/crypttab (例如运行gksudo gedit /etc/crypttab )。 通过在前面添加# (或只删除行)注释掉现有行,并添加以下行。 将/dev/sdXN替换为准备点4中的设备。

      cryptswap1 /dev/sdXN none luks 
  9. 编辑文件/usr/share/initramfs-tools/scripts/local-top/cryptroot 。 搜索以下行(应该是第288行,但这可能会随时间而变化):

      message "cryptsetup: unknown error setting up device mapping" 

    跳到下一个空行(应为291,在FSTYPE =”之前),然后插入以下行。 将/dev/sdXN替换为准备点4中的设备。

      /sbin/cryptsetup luksOpen /dev/sdXN cryptswap1 
  10. 编辑文件/etc/acpi/hibernate.sh 。 在第一个空行处,插入以下行。

      DEVICE='/dev/mapper/cryptswap1' 

    编辑文件/etc/initramfs-tools/conf.d/resume 。 用以下行替换现有的RESUME行。

      RESUME=/dev/mapper/cryptswap1 

    注册这些更改。

      sudo update-initramfs -u -k all 

    Ubuntu禁用菜单中的Hibernate选项。 恢复如下。 创建(使用gksudo和你喜欢的编辑器)文件: /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla (例如运行gksudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

    使用以下文本填写文件并保存。

      [Re-enable hibernate by default] Identity=unix-user:* Action=org.freedesktop.upower.hibernate ResultActive=yes 
  11. 重新启动机器。

修改/ proc / acpi / wakeup

将所有内容更改为已禁用,但PWRB(或等效)除外,这样可以唤醒PC的唯一function就是电源按钮。

请享用

检查你的内核是否存在内核中的错误( https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1133835 )之前我认为它是3.11会导致此问题。 您可以更新内核而无需与系统约会如何在没有任何Distro-upgrade的情况下将内核更新到最新的主线版本?