Sistema inteiro congelando depois de pressionar "Suspender" [fechado]

4

Então eu instalei o Ubuntu e adorei. Eu não acho que isso vai substituir o Windows 7 para mim, e tem alguns problemas que eu provavelmente vou acabar consertando quando descobrir como usar o WINE, mas ainda assim é incrível.

Meu principal problema agora é que sempre que eu coloco o Ubuntu para suspender, a coisa toda congela. O monitor ainda está ligado, mas é apenas preto, e não há reação a nenhum botão.

Embora eu não me importe de pressionar Desligar já que o Ubuntu carrega bastante rápido em comparação com o Windows 7, ele pode ficar chato e inconveniente.

Obrigado por qualquer ajuda!

    
por landon 30.04.2012 / 05:08

4 respostas

3

OK depois de um pouco de trabalho eu modifiquei os scripts acima das outras sugestões. Obrigado @wangdw! Aqui está o seguinte script bad ass (não esqueça como antes de criar um arquivo usando o sudo gedit /etc/pm/sleep.d/20_custom-ehci_hcd e também para definir as permissões de leitura usando o sudo chmod 755 / etc / pm / sleep .d / 20_custom-ehci_hcd):

  #!/bin/sh
  #inspired by http://art.ubuntuforums.org/showpost.php?p=9744970&postcount=19
  #...and http://thecodecentral.com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-not-working-bug    
  # tidied by tqzzaa :)

  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/null

  chvt 1
  chvt 7
}



  EHCI_BUSES="0000:00:1a.0 0000:00:1d.0"
  case "" in
    hibernate|suspend)
    unbindDev;;

    resume|thaw)
    bindDev;;

    esac
    
por Dragon 11.05.2012 / 17:44
1

eu tenho o mesmo problema. tente isto: link funciona como um charme para mim ...

    
por stalker67 01.05.2012 / 11:52
1

Eu tenho tido o mesmo problema. Parece que o Ubuntu tenta se suspender, mas alguns hardwares não querem obedecer. Aqui estão alguns reparos que podem funcionar:

1. open a terminal by holding ctrl+alt+t;
2. type: sudo gedit /etc/pm/sleep.d/20_custom-suspend;
3. press Enter and authenticate;
4. put the following text into the created file; save it and exit. 
5. reboot and see if it works. 

Esse pequeno script vem de algum lugar da Internet, mas não consigo encontrar a fonte ...

EHCI_BUSES="0000:00:1a.0 0000:00:1d.0"
case "" in
    hibernate|suspend)
        # Switch USB buses off
        for bus in $EHCI_BUSES; do
            echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/unbind
        done
        ;;
    resume|thaw)
        # Switch USB buses back on
        for bus in $EHCI_BUSES; do
            echo -n $bus > /sys/bus/pci/drivers/ehci_hcd/bind
        done
        ;;
esac

Por favor, tente isso e me conte suas descobertas!

Se esse script não funcionar, talvez você queira tentar outro:

#!/bin/sh
#inspired by http://art.ubuntuforums.org/showpost.php?p=9744970&postcount=19
#...and http://thecodecentral.com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-  not-working-bug
# tidied by tqzzaa :)

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
  done
}

bindDev() {
  if [ -s $DEV_LIST ]; then
    while read driver dev; do
      DDIR=$DRIVERS_DIR/${driver}_hcd
      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
}

case "" in
  hibernate|suspend) unbindDev;;
  resume|thaw)       bindDev;;
esac
    
por Dawei 30.04.2012 / 12:28
0

Descobri que a instalação do pacote "dell firmware addon" corrigiu o problema durante o ciclo de desenvolvimento.

    
por Aimless_E 11.05.2012 / 15:08