Arch Linux/XFCE를 사용할 때 USB 드라이브가 올바르게 마운트되지 않는 문제가 종종 발생합니다. 때로는 Thunar에 자동으로 표시되며 한 번의 클릭으로 설치할 수 있습니다. 그러나 다른 경우(약 50/50)에는 드라이브가 인식되지 않습니다. USB 외장 하드 드라이브, USB 스틱 및 카메라에서 이 문제가 발생했습니다. 외장 드라이브가 인식되지 않으면 다음과 같은 일이 발생합니다.
- 드라이브가 전혀 표시되지 않습니다
fdisk -l
(내 하드 드라이브만 표시됨). - 드라이브가 표시되지 않습니다.
/dev/disk
- 운전사하다달리면 나타남
lsusb
그래서 일종의 인식은 있지만 왜 이런 일이 발생하면 드라이브를 마운트하는 방법도 이해하지 못합니다. 그냥 재부팅하고 다음번에는 잘 작동하길 바라는데, 확실히 불편하네요...
고쳐 쓰다
모니터링할 때 /var/log/everything.log
(syslog에 정보 없음) USB가 연결되면 다음과 같은 일이 발생하는 것을 볼 수 있습니다.
Dec 14 15:36:32 localhost kernel: [ 6591.042911] usb 1-3: new high speed USB device number 9 using ehci_hcd
Dec 14 15:36:32 localhost mtp-probe: checking bus 1, device 9: "/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-3"
Dec 14 15:36:32 localhost mtp-probe: bus: 1, device: 9 was not an MTP device
다른 요청의 출력은 다음과 같습니다.
$udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
KERNEL[6809.192268] add /devices/pci0000:00/0000:00:1d.7/usb1/1-3 (usb)
KERNEL[6809.193421] add /devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0 (usb)
UDEV [6809.299246] add /devices/pci0000:00/0000:00:1d.7/usb1/1-3 (usb)
UDEV [6809.306074] add /devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0 (usb)
답변1
이 질문은 포괄적인 규칙인 것 같습니다 /lib/udev/rules.d/69-libmtp.rules
.
# Autoprobe vendor-specific, communication and PTP devices
ENV{ID_MTP_DEVICE}!="1", ENV{MTP_NO_PROBE}!="1", ENV{COLOR_MEASUREMENT_DEVICE}!="1", ENV{libsane_matched}!="yes", ATTR{bDeviceClass}=="00|02|06|ef|ff", PROGRAM="/usr/lib/udev/mtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}", RESULT=="1", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
아래와 같이 해당 줄을 주석 처리하면 문제가 해결됩니다.
# Autoprobe vendor-specific, communication and PTP devices
ENV{ID_MTP_DEVICE}!="1", ENV{MTP_NO_PROBE}!="1", ENV{COLOR_MEASUREMENT_DEVICE}!="1", ENV{libsane_matched}!="yes", ATTR{bDeviceClass}=="00|02|06|ef|ff", PROGRAM="/usr/lib/udev/mtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}", RESULT=="1", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
제 경우에는 다시 시작해야 했는데, 다시 시작할 수 있는 서비스가 있을 수도 있습니다.
답변2
한 번 ENV{MTP_NO_PROBE}="1"
MTP Probe를 중지했습니다. 이런 식으로 나는 Arch 를 수정하지 않았습니다 /lib/udev/rules.d/69-libmtp.rules
.
export MTP_NO_PROBE="1"
답변3
로깅에 MTP 장치 감지 문제가 표시됩니다.
libmtp
가능하다면 제거해 보거나 관련 파일의 udev 규칙을 주석 처리하세요.