
私のコンピュータは通常、正常にサスペンドおよび起動します。しかし、USB3.0 ハードディスクを接続すると、アンマウントして切断した後でも、サスペンドしようとするたびにマシンがすぐに起動します。
(下記)ではすべての USB デバイスが無効になっており、 USB ディスク、スタンバイ プロセス、またはウェイクアップ プロセスに関連する/proc/acpi/wakeup
エラーは確認できません。/var/log/syslog
同じディスクを USB 2.0 ポートに接続しても、同じ問題は発生しません。USB 2.0 ディスクを USB 3.0 ポートに接続しても、同じ問題は発生しません。USB デバイスがまったく接続されていない場合でも、起動後に USB 3.0 ディスクが接続されていれば、コンピューターはすぐにスタンバイ状態から復帰します。
システムは Dell Precision M6700 であり、問題は 14.04 で発生し、14.10 でも継続します。
この原因は何でしょうか? また、さらにデバッグするにはどうすればよいでしょうか?
> cat /proc/acpi/wakeup
Device S-state Status Sysfs node
P0P1 S4 *disabled
USB1 S3 *disabled
USB2 S3 *disabled
USB3 S3 *disabled
USB5 S3 *disabled
USB6 S3 *disabled
USB7 S3 *disabled
RP01 S4 *disabled pci:0000:00:1c.0
PXSX S4 *disabled
RP02 S4 *disabled pci:0000:00:1c.1
PXSX S4 *disabled pci:0000:03:00.0
RP05 S4 *disabled
PXSX S4 *disabled
RP06 S4 *disabled
PXSX S4 *disabled
RP07 S4 *disabled
PXSX S4 *disabled
RP08 S4 *disabled pci:0000:00:1c.7
PXSX S4 *disabled pci:0000:0c:00.0
PEG0 S4 *disabled pci:0000:00:01.0
PEGP S4 *disabled
PEG1 S4 *disabled
PEG2 S4 *disabled
PEG3 S4 *disabled
USB4 S3 *disabled
RP03 S4 *disabled pci:0000:00:1c.2
RP04 S4 *disabled pci:0000:00:1c.3
PXSX S4 *disabled
GLAN S4 *enabled pci:0000:00:19.0
EHC1 S0 *enabled pci:0000:00:1d.0
EHC2 S0 *enabled pci:0000:00:1a.0
XHC S0 *enabled pci:0000:00:14.0
HDEF S4 *disabled pci:0000:00:1b.0
LID0 S3 *enabled
PBTN S3 *enabled
編集 - デバイスを明示的に無効にしても問題は解決しません
電源ボタンを除くすべてのデバイスのウェイクアップを無効にしてみました。
まずデバイスを無効にし/proc/acpi/wakeup
、念のため/sys/devices/
すべてのwakeup
ファイルを検索しました。
find /sys/devices/ -name "wakeup" -print -exec grep enabled {} \;
次に、それらすべてを明示的に に設定しますdisabled
。例:
sudo bash -c "echo disabled > /sys/devices/pci0000:00/0000:00:19.0/power/wakeup"
電源ボタンのみを有効にします。
cat /sys/devices/LNXSYSTM:00/LNXPWRBN:00/power/wakeup
# enabled
その後も、コンピューターは (USB 3.0 ディスクが接続されたときはいつでも) すぐにサスペンドから復帰します。
また、起動後、以下のデバイスが にリセットされましたenabled
:
/sys/devices/pci0000:00/0000:00:19.0/power/wakeup
/sys/devices/LNXSYSTM:00/device:00/PNP0C0A:00/power_supply/BAT0/power/wakeup
PCI デバイスは、次の場所でもリセットされるため、私の LAN であると思われます/proc/acpi/wakeup
:
Device S-state Status Sysfs node
...
GLAN S4 *enabled pci:0000:00:19.0
...
デバイスに記載されていない、ウェイクアップの原因となる他の要因がある可能性はありますか?
編集 - 詳細な lsusb 情報を追加しました
リクエストされた情報を追加しましたファビー:
> Bus 004 Device 002: ID 357d:7788
> Device Descriptor:
> bLength 18
> bDescriptorType 1
> bcdUSB 3.00
> bDeviceClass 0 (Defined at Interface level)
> bDeviceSubClass 0
> bDeviceProtocol 0
> bMaxPacketSize0 9
> idVendor 0x357d
> idProduct 0x7788
> bcdDevice 0.00
> iManufacturer 10
> iProduct 11
> iSerial 3
> bNumConfigurations 1
> Configuration Descriptor:
> bLength 9
> bDescriptorType 2
> wTotalLength 121
> bNumInterfaces 1
> bConfigurationValue 1
> iConfiguration 0
> bmAttributes 0xc0
> Self Powered
> MaxPower 2mA
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 2
> bInterfaceClass 8 Mass Storage
> bInterfaceSubClass 6 SCSI
> bInterfaceProtocol 80 Bulk-Only
> iInterface 0
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x81 EP 1 IN
> bmAttributes 2
> Transfer Type Bulk
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0400 1x 1024 bytes
> bInterval 0
> bMaxBurst 15
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x02 EP 2 OUT
> Couldn't open device, some information will be missing
> bmAttributes 2
> Transfer Type Bulk
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0400 1x 1024 bytes
> bInterval 0
> bMaxBurst 15
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 1
> bNumEndpoints 4
> bInterfaceClass 8 Mass Storage
> bInterfaceSubClass 6 SCSI
> bInterfaceProtocol 98
> iInterface 0
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x01 EP 1 OUT
> bmAttributes 2
> Transfer Type Bulk
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0400 1x 1024 bytes
> bInterval 0
> bMaxBurst 0
> Command pipe (0x01)
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x82 EP 2 IN
> bmAttributes 2
> Transfer Type Bulk
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0400 1x 1024 bytes
> bInterval 0
> bMaxBurst 0
> MaxStreams 32
> Status pipe (0x02)
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x83 EP 3 IN
> bmAttributes 2
> Transfer Type Bulk
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0400 1x 1024 bytes
> bInterval 0
> bMaxBurst 15
> MaxStreams 32
> Data-in pipe (0x03)
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x04 EP 4 OUT
> bmAttributes 2
> Transfer Type Bulk
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0400 1x 1024 bytes
> bInterval 0
> bMaxBurst 15
> MaxStreams 32
> Data-out pipe (0x04)
>
答え1
XHC
まず、出力にリストされているのがwakeup
USB 3.0 デバイスであることは私には分かりませんでした。
XHC S0 *enabled pci:0000:00:14.0
ただし、このデバイスのウェイクアップ ステータスを無効にしても問題は解決されません。
sudo bash -c "echo disabled > \
/sys/devices/pci0000:00/0000:00:14.0/power/wakeup" # Problem persists.
私が見つけた唯一の有効な解決策は、次のコマンドを使用してデバイス ドライバーを実行することunbind
ですbind
。
sudo bash -c ' \
echo -n "0000:00:14.0" > /sys/bus/pci/drivers/xhci_hcd/unbind && \
echo -n "0000:00:14.0" > /sys/bus/pci/drivers/xhci_hcd/bind;'
USB 3.0 ストレージ デバイスを接続してからコンピューターをサスペンドするまでの間、毎回これを実行する必要がありますが、一貫して機能します。
xhci_hcd
パスのコンポーネントは USB 3.0 デバイスにのみ有効であることに注意してください。パスのこの部分は、リセットする必要があるバスの種類に応じて変更する必要があり、他の種類のストレージ デバイスの場合はuhci_hcd
、sdhci-pci
またはのいずれかehci-pci
になる可能性があります。
答え2
回答を追加して申し訳ありませんが、コメントを追加するには評判が足りません...
(これは私があなたの問題に注目している理由! ;-) :P
サスペンドする前に、ディスクが切断された USB バスをリセットしてみましたか?
方法が分からない場合は、次のことを行ってください。
- マシンをシャットダウンする
- すべてのUSBデバイスを取り外します
- すべての電源ケーブル、UPS、バッテリーなどを取り外します。
- マシンの電源を入れます (はい、電源ケーブルは不要です)。
- 手順3で取り外した電源をすべて元に戻します
- マシンを起動する
- 以下を実行します:
lsusb --verbose > /tmp/good-bus.txt 2>&1
- ディスクを挿入する
- 以下を実行します:
lsusb --verbose > /tmp/bad-bus.txt 2>&1
- ディスクをアンマウントする
- ディスクを取り出す
- ディスクを取り出す
- 以下を実行します:
lsusb --verbose > /tmp/worse-bus.txt 2>&1
- 以下を実行します:
diff --text /tmp/good-bus.txt /tmp/bad-bus.txt > /tmp/test-g-b.txt
- 以下を実行します:
diff --text /tmp/good-bus.txt /tmp/worse-bus.txt > /tmp/test-g-w.txt
そして、/tmp/test-gb.txtと/tmp/test-gw.txtの出力をここに報告します。