1

WHen I close the lid, it suspends, but when I open it again, the screen stays full black. If I hit the power button, occasionally it will come back to life but sometimes i have to force a reboot unfortunately.

Jonathan
  • 3,984

1 Answers1

1

All thanks to linvinus on reddit: How to make hibernate working in ubuntu 14.04 on Acer c720

How to make hibernate working in ubuntu 14.04 on Acer c720, tested in HP Chromebook 14 on Ubuntu 14.10 kernel 3.17 as well, works. He has Lubuntu 14.04 kernel 3.13.0-24-generic c720 2G. For Debian, Arch, or Xubuntu, there are more instructions in the source link.

Takes about 5 mins to do, but works like a charm for me,

  1. create file

    sudo nano /etc/initramfs-tools/scripts/init-top/unbind_ehci
    

    with following content

    #####################
    #!/bin/sh
    PREREQ=""
    
    prereqs()
    {
            echo "${PREREQ}"
    }
    
    case ${1} in
            prereqs)
                    prereqs
                    exit 0
                    ;;
    esac
    
    log_success_msg "Unbind ehci for preventing error"
    echo -n "0000:00:1d.0" > /sys/bus/pci/drivers/ehci-pci/unbind
    exit 0
    #################
    

    change mode

    sudo chmod a+x /etc/initramfs-tools/scripts/init-top/unbind_ehci
    
  2. create udev rule

    sudo nano /etc/udev/rules.d/10_disable-ehci.rules
    
    ACTION=="add", SUBSYSTEM=="pci", DRIVER=="ehci_hcd", \
        RUN+="/bin/sh -c 'echo -n %k > %S%p/driver/unbind'"
    
  3. update initramfs

    sudo update-initramfs -k all -u
    
  4. this script will fix touchpad after resume

    sudo nano /etc/pm/sleep.d/99zcyapa
    

    with following content

    #####################
    #!/bin/bash -x
    # File: "/etc/pm/sleep.d/99_cyapa".
    case "${1}" in
            hibernate)
          /sbin/rmmod cyapa
                    ;;
      resume|thaw)
              COUNTER=0
              while [  $COUNTER -lt 10 ]; do
                            date >>/tmp/99_cyapa
                            /sbin/modprobe cyapa
              sleep 1
              dmesg | grep cyapa | tail -1 | grep error >/dev/null
              RES=$?
              echo "res=$RES"
              if [ ${RES} -ne 1 ] ; then
                  /sbin/rmmod cyapa
                  sleep 1
              else
                  #done
                  COUNTER=11
              fi
    
                      COUNTER=`expr $COUNTER + 1`
              done
          ;;
    esac
    exit 0
    #################
    

    Change mode!

    sudo chmod a+x /etc/pm/sleep.d/99zcyapa
    
  5. ensure that in you have tpm_tis.interrupts=0

    sudo nano /etc/default/grub
    

    there is my settings

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash  boot=local  i915.modeset=1 tpm_tis.interrupts=0 "
    

    update grub

    sudo update-grub2
    

    Reboot

Again thanks to linvinus on reddit

LiveWireBT
  • 29,597
Jonathan
  • 3,984