web-dev-qa-db-ja.com

「サスペンド」を押した後、システム全体がフリーズする

だから、Ubuntuをインストールしたばかりで、気に入っています。私にとってはWindows 7に取って代わるとは思わず、WINEの使用方法を見つけたときにおそらく修正しなければならないいくつかの問題がありますが、それでも素晴らしいです。

私の主な問題は、Ubuntuを中断するたびに全体がフリーズすることです。モニターはまだオンになっていますが、黒のみで、ボタンには反応しません。

UbuntuはWindows 7と比較してかなり高速にロードされるため、シャットダウンを押すことは気にしませんが、面倒で不便になる可能性があります。

助けてくれてありがとう!

4
landon

少し作業した後、上記のスクリプトを他の提案から修正しました。ありがとう@wangdw!これは次の悪いassスクリプトです(Sudo gedit /etc/pm/sleep.d/20_custom-ehci_hcdを使用してファイルを作成し、Sudo chmod 755/etc/pm/sleepを使用して読み取り権限を設定することも忘れないでください。 .d/20_custom-ehci_hcd):

#!/ bin/sh 
 #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 
#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 
 
 
 
 $ DRIVERSのドライバー。 do 
 DDIR = $ DRIVERS_DIR/$ {driver} _hcd 
「ls $ DDIR 2>/dev/null | egrep "^ $ HEX +:$ HEX +:$ HEX" `; do 
 echo -n "$ dev"> $ DDIR/unbind 
 echo "$ driver $ dev" >> $ DEV_LIST 
 done 
 
 #$ EHCI_BUSESのバス。 do 
 echo -n $ bus> /sys/bus/pci/drivers/ehci_hcd/unbind
#done 
 
 done 
 
} 
 
 bindDev(){
 if [-s $ DEV_LIST];次に、
ドライバー開発者を読み取ります。 do 
 DDIR = $ DRIVERS_DIR/$ {driver} _hcd 
#$ 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" 
ケース "$ 1" in 
 hibernate | suspend) 
 unbindDev ;; 
 
 resume | thaw)
 bindDev ;; 
 
 esac 
3
Dragon

私は同じ問題を抱えています。これを試してください: http://thecodecentral.com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-not-working-bug 私にとって魅力的な仕事...

1
stalker67

私は同じ問題を経験しています。 Ubuntuは自分自身をサスペンドしようとしますが、一部のハードウェアは準拠したくないようです。動作する可能性のあるいくつかの修復を次に示します。

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. 

この小さなスクリプトはインターネット上のどこかから来ていますが、ソースが見つかりません...

EHCI_BUSES="0000:00:1a.0 0000:00:1d.0"
case "${1}" 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

これを試してみて、結果を教えてください!

そのスクリプトが機能しない場合は、別のスクリプトを試してください。

#!/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 "$1" in
  hibernate|suspend) unbindDev;;
  resume|thaw)       bindDev;;
esac
1
Dawei

「Dell firmware addon」パッケージをインストールすると、開発サイクル中に問題が修正されることがわかりました。

0
Aimless_E