Ubuntu で蓋を閉じるアクションを変更するには:

Ubuntu で蓋を閉じるアクションを変更するには:

私は Lenovo G50 で Ubuntu 16.04 LTS を実行していますが、再起動せずにノートパソコンの蓋を閉じることができないことを除いて、すべて順調です。蓋を閉じると (または を実行するとpm-suspend)、ノートパソコンの画面が数秒間暗くなり、その後再び点灯します。

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

ファイルの変更logind.conf、の変更、Intel Graphics ドライバーの更新、またはPower System Settingsなどのツールのインストールなどを試してみましたが、どれもうまくいきませんでした。しかし、この問題を解決するために何でもするつもりです。pmilaptop-mode

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

答え1

Ubuntu で蓋を閉じるアクションを変更するには:

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

sudo nano /etc/systemd/logind.conf

この行を変更します:

#HandleLidSwitch=ignore

この行まで:

HandleLidSwitch=suspend

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

代わりに、この行を追加することもできますが、私は最初の行の方が好きです:

HandleLidSwitchDocked=suspend

次に以下を実行します:

sudo service systemd-logind restart

またはリブート

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

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 を確認してください。

Ubuntu のサスペンドが機能しない問題の修正

ステップ 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

答え2

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

また、ノートパソコンを閉じる前にWifiをオフにするとバグが起こらないこともわかったので、その解決策をここに掲載しました。役職/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

うまくいくといいですね!

関連情報