web-dev-qa-db-ja.com

ラップトップがサスペンドまたは休止状態に失敗する(ユーザーの操作なしで2〜5秒後に起動する)

これはすべて、13.10にアップグレードした後に発生し始めました。今では14.04を実行していますが、同じ問題が残っています。

ふたを閉じるかSudo pm-suspendを実行すると、ラップトップは2〜5秒間サスペンド状態になり、自動的に起動します。

休止状態にしようとすると同じことが起こります。

CPUをサスペンドモードから覚醒させたり外したりしているような気がしますが、何がわかるのかわかりません。

この厄介な問題のトラブルシューティングの助けはありますか?

編集:

@Fabianのおかげで、イーサネットカードが誤動作しているように見え、LANでウェイクアップしないようにカードを設定した後でも(acpitool -W 3またはecho disabled > /sys/bus/pci/devices/0000:00:19.0/power/wakeupまたはecho IGBE > /proc/acpi/wakeup、ラップトップは目を覚まし続け、acpitool -wを実行するとこれを表示します

Device  S-state   Status   Sysfs node
---------------------------------------
1. LID    S3    *enabled 
2. SLPB   S3    *disabled
3. IGBE   S4    *enabled   pci:0000:00:19.0
4. EXP1   S4    *disabled  pci:0000:00:1c.0
5. EXP2   S4    *disabled  pci:0000:00:1c.1
6. EXP3   S4    *disabled
7. EXP4   S4    *disabled
8. EXP5   S4    *disabled  pci:0000:00:1c.4
9. EHC1   S3    *disabled  pci:0000:00:1d.0
10. EHC2      S3    *disabled  pci:0000:00:1a.0
11. HDEF      S4    *disabled  pci:0000:00:1b.0

そこから進む方法はありますか?

IGBEが使用するネットワークドライバーはe1000eです

22
feniix

カーネル13.13およびIntel Z77Xベースのマザーボードがあり、次のコマンドが機能します。

Sudo sh -c "echo EHC1 > /proc/acpi/wakeup;echo EHC2 > /proc/acpi/wakeup;echo XHC > /proc/acpi/wakeup"
10
guest

次は私のために働いた:

cat /proc/acpi/wakeup

ステータスが有効になっていて、そこに属していないように見えるアイテムを探します(私にとっては、LID0以外のもの)。次に、次のように言って無効にします:

Sudo sh -c "echo XHC0 > /proc/acpi/wakeup"

対応するエントリが実際に無効になっていることを確認し、ラップトップをサスペンド状態にして、最高の結果を期待してください:)

11
Fabian

まったく同じ問題が発生しています(ThinkPad T530、Ubuntu 14.04、さらに13.10と13.04、数回のサスペンドの後、サスペンドの直後にコンピューターが再開します)。

ウェイクアップからIBGEを無効にしてもまったく役に立ちませんでした。

Romanoが提案したように、e1000eモジュールを削除しようとしましたが、期待どおりに一時停止します。

そう:

Sudo rmmod e1000e

中断する前に問題を解決します。

興味深いことに、モジュールをインストールし直して(Sudo modprobe e1000e)、削除せずに中断した直後に、問題が再発します。したがって、ハードウェアに関連するものであったに違いありません。

それを自動化するために、2つの単純なサスペンド/ウェイクアップスクリプトを作成しました(上記のハードウェアUbuntu Trusty 14.04でテスト済み):Sudo gedit /etc/pm/sleep.d/99_e1000e_remove

#!/bin/sh

# Remove e1000e kernel module prior to suspend
rmmod e1000e

およびSudo gedit /etc/pm/power.d/99_e1000e_probe

#!/bin/sh

# Modprobe e1000e kernel module after resume
modprobe e1000e

スクリプトは実行可能でなければなりません(Sudo chmod +x /etc/pm/sleep.d/99_e1000e_remove /etc/pm/power.d/99_e1000e_probe)。

ノート:

  • 問題に対処していない場合でも、スクリプトはかなり安全に使用できると思います。
  • LANウェイクアップを使用していないため、修正後の動作はわかりません。
7
sopvkore

これは私のために働いた(askubuntuの別のスレッドから取られた):

buntu 14.04はサスペンド直後にウェイクアップします

スタートアップごとに pstart スクリプトで自動的に無効にできます:

ファイルを作成するetc/init/disable-XHC.conf

コンテンツ:

start on started dbus
stop on stopping dbus

script
   Sudo -u root sh -c "echo 'XHC' > /proc/acpi/wakeup"
end script
1
Ilian

Systemdの解決策は、systemd-tmpfilesが呼び出されたときにファイルに何かを書き込むための命令を作成することです。

/etc/tmpfiles.dにファイルを作成します。例: /etc/tmpfiles.d/disable-network-wake.conf。次のコンテンツがあり、ウェイクアップを無効にするデバイスに応じて異なります。

w /proc/acpi/wakeup - - - - XHC

Systemd-tmpfiles(8)およびtmpfiles.d(5)も参照してください。

参照: https://wiki.archlinux.org/index.php/Systemd#Temporary_files

0
FichteFoll