
내 컴퓨터는 일반적으로 정상적으로 일시 중지되고 깨어납니다. 하지만 USB3.0 하드 디스크를 연결하면 마운트 해제 및 연결 해제 후에도 일시 중지하려고 할 때마다 컴퓨터가 즉시 깨어납니다.
(아래) 에서는 모든 USB 장치가 비활성화되어 있으며 USB 디스크나 대기 또는 깨우기 프로세스와 관련된 /proc/acpi/wakeup
오류를 볼 수 없습니다 ./var/log/syslog
USB 2.0 포트에 연결된 동일한 디스크는 동일한 문제를 일으키지 않으며 USB 3.0 포트에 연결된 USB 2.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의 출력을 여기에 다시 보고합니다.