web-dev-qa-db-ja.com

ふたを閉じるとラップトップが適切に停止しない

私はLenovo G50でUbuntu 16.04 LTSを実行していますが、後で再起動する必要なしにラップトップの蓋を閉じることができないことを除いて、すべてがうまくいきます。ふたを閉じると(またはpm-suspendを実行すると)、ラップトップの画面が数秒間暗くなり、再びオンになります。

問題は、それを再開しようとすると、ラップトップが基本的にポテトに変わることです...何らかの理由で、ネットワークマネージャー(wifiとイーサネットの両方)がまったく機能せず、ターミナルが非常に遅くなり、実行できませんSudoを使用するコマンドは、永遠にハングするためです。

logind.confファイルを変更しようとしました。Power System Settingsを変更しようとしました。Intelグラフィックスドライバーを更新しました。pmilaptop-modeなどのツールをインストールしました。私はこの問題を解決するために何でもします。

役立つシステム情報がある場合はお知らせください。投稿に追加します。

2
theGirrafish

読み返してみると、多くのLenovoラップトップ(私の場合はG50-80)で使用されているQualcomm Atheros QCA6164 WiFiカードに問題があることがわかりました。 Ubuntuには、このカードを動作させる適切なファームウェアがないようです。

また、ラップトップを閉じる前にWifiをオフにすることですべてのバグを防ぐことができることもわかったので、これと post からのソリューションをまとめて、/etc/acpi/にファイルを作成し、ふたを閉じるイベント。

Sudo nano /etc/acpi/lid.shを使用して次のコードを追加します。

#!/bin/sh

grep -q closed /proc/acpi/button/lid/LID0/state
if [ $? = 0 ]
then
  nmcli radio wifi off
  pm-suspend
else
  nmcli radio wifi on
fi

次に、Sudo nano /etc/acpi/events/lm_lidを使用して次の行を追加します。

event=button/lid.*
action=/etc/acpi/lid.sh

ここで、Sudo nano /etc/systemd/logind.confを使用してコメントを外し、次の行を設定します。

HandleLidSwitch=ignore

最後に、System Settings > Powerに進み、すべてのふたを閉じるオプションをDo Nothingに設定します。

以下を実行して権限を設定し、変更を確定します。

Sudo chmod 755 /etc/acpi/lid.sh
Sudo /etc/init.d/acpid restart
Sudo service systemd-logind restart

うまくいけばあなたのために働く!

1
theGirrafish

buntuでふたを閉じるアクションを変更するには:

/etc/systemd/logind.confファイルをルートとしてテキストエディターで開きます。たとえば、

Sudo nano /etc/systemd/logind.conf

この行を変更します。

#HandleLidSwitch=ignore

この行へ:

HandleLidSwitch=suspend

コメント化されていることを確認してください。

別の方法として、この行を追加することもできますが、私は最初の行を好みます:

HandleLidSwitchDocked=suspend

次に実行します:

Sudo service systemd-logind restart

またはreboot

休止状態/サスペンドモードのトラブルシューティングを行うには、ターミナルで次のコマンドを入力する必要があります:

dmesg|less

通常、アプリケーションが中断の原因となったエントリがあります。

[32467.560058] Freezing of tasks failed after 20.01 seconds (1 tasks refusing to freeze, wq_busy=0):
[32467.560115] plasma-desktop D 0000000000000000 0 2065 1 0x00800004

ラップトップでサスペンドを修正

Sudo apt-get install uswsusp

次に、サスペンドをテストします。

Sudo s2ram

動作しない場合は、以下を使用します。

Sudo s2ram --force

次に、このファイルを編集します。

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

コードを変更:

#!/bin/sh

/sbin/s2ram --force

編集:別の修正:

スクリプトを「/etc/pm/sleep.d/」に配置すると、そこにあるスクリプトは一時停止および再開時に実行されます。ファイル名は、ユーザースクリプトの場合は00〜49の順序番号で始まる必要があります(詳細については、man pm-suspendを参照してください)。

スクリプトは次のようになります

#!/bin/sh
(killall -9 mount.nfs; exit 0)

問題が発生している場合は、/ var/log/pm-suspend.logを確認して、スクリプトの中断と実行の試行を記録します。

buntuサスペンドが機能しないFIX

ステップ1:ターミナルを開き、次のようにスクリプトファイルを作成します。

Sudo nano /etc/pm/sleep.d/20_custom-ehci_hcd

ステップ2:以下のスクリプト全体を、作成したファイルにコピーして保存します。

#!/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

手順3:次のように入力して、スクリプトに実行許可を与えます。

Sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd
3
An0n