MSI Optix MAG245R 23.8" 모니터가 있습니다. USB 연결이 있습니다.
Debian 기반 컴퓨터(BunsenLabs)를 시작하면 다음 경고가 표시됩니다.
May 4 19:41:51 localname kernel: [ 240.573980] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=4060, sector_sz=512)
May 4 19:41:51 localname kernel: [ 240.573986] sd 9:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
May 4 19:41:51 localname kernel: [ 240.573988] sd 9:0:0:0: [sdc] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
May 4 19:41:51 localname kernel: [ 240.573990] print_req_error: I/O error, dev sdc, sector 0
May 4 19:41:51 localname kernel: [ 240.673838] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=2012, sector_sz=512)
May 4 19:41:51 localname kernel: [ 240.673846] sd 9:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
May 4 19:41:51 localname kernel: [ 240.673850] sd 9:0:0:0: [sdc] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 04 00
May 4 19:41:51 localname kernel: [ 240.673852] print_req_error: I/O error, dev sdc, sector 0
May 4 19:41:51 localname kernel: [ 240.673859] Buffer I/O error on dev sdc, logical block 0, async page read
May 4 19:41:51 localname kernel: [ 240.860367] Buffer I/O error on dev sdc, logical block 1, async page read
May 4 19:41:52 localname kernel: [ 241.500663] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=4060, sector_sz=512)
May 4 19:41:52 localname kernel: [ 241.612517] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=4060, sector_sz=512)
May 4 19:41:52 localname kernel: [ 241.697840] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=2012, sector_sz=512)
May 4 19:41:52 localname kernel: [ 241.785872] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=2012, sector_sz=512)
May 4 19:41:52 localname kernel: [ 241.818899] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=16348, sector_sz=512)
May 4 19:41:52 localname kernel: [ 241.909838] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=2012, sector_sz=512)
May 4 19:41:52 localname kernel: [ 241.993839] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=2012, sector_sz=512)
May 4 19:41:55 localname kernel: [ 244.842973] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=16348, sector_sz=512)
May 4 19:41:55 localname kernel: [ 244.942219] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=2012, sector_sz=512)
May 4 19:41:55 localname kernel: [ 245.034140] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=2012, sector_sz=512)
May 4 19:41:56 localname kernel: [ 245.473992] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=2012, sector_sz=512)
May 4 19:41:56 localname kernel: [ 245.557874] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=2012, sector_sz=512)
May 4 19:41:57 localname kernel: [ 246.425872] sd 9:0:0:0: [sdc] Unaligned partial completion (resid=2012, sector_sz=512)
May 4 19:41:57 localname kernel: [ 246.425881] sd 9:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
May 4 19:41:57 localname kernel: [ 246.425884] sd 9:0:0:0: [sdc] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 04 00
그런 다음 GParted를 시작하여 스토리지 볼륨을 확인합니다. 나는 무엇이고 /dev/sda
무엇 /dev/sdb
인지 알고 있습니다. 이것이 제가 기대하는 것입니다. 그러므로 왜 a가 /dev/sdc
감지되는지 놀랐습니다 .
거기에서 장치 정보는 MSI Optix 드라이버임을 보여줍니다. 모니터의 USB 연결(키보드 연결, 동글 등 없음)만 분리해 보았더니 /dev/sdc
.
이러한 오류를 없애려면 어떻게 해야 합니까? 전문가가 아닌 내 생각은 UUID0123456789가 포함된 이 장치가 저장 장치가 아니라는 것을 내 컴퓨터에 알리는 방법을 찾아서 하나로 테스트하지 않는 것입니다. 어떻게 해야 하나요?
아니면 다른 방법이 있나요?
답변1
모니터는 듀얼 모드 장치인 것으로 보이며 기본 모드는 장치용 Windows 및/또는 Mac 드라이버가 포함된 저장 장치입니다. 요즘에는 드라이버가 필요한 USB 장치가 점점 더 많아지고 있습니다.
실행하면 ls -l /sys/block/sdc
다음과 같은 경로를 가리키는 심볼릭 링크가 표시됩니다.
../devices/<PCI device path for the USB controller>/usb#/<USB device path>/host#/target#:#:#/#:#:#:#/block/sdc
...여기서 #은 정확한 하드웨어 구성에 따라 여기서는 중요하지 않은 숫자입니다.
host#
이 섹션 앞의 디렉터리 로 이동해야 합니다 .
cd /sys/devices/<PCI device path for the USB controller>/usb#/<USB device path>/
...디렉토리에 bNumConfigurations
및 이라는 파일이 포함되어 있는지 확인하세요 bConfigurationValue
. 그렇지 않은 경우 한 단계 위로 이동( cd ..
)하여 다시 확인하세요.
올바른 디렉토리를 찾으면 cat bNumConfigurations
USB 장치에 가능한 구성(모드)이 몇 개 있는지 알려줍니다. 자체 드라이버를 제공하는 USB 장치에는 최소한 두 가지 모드가 있을 가능성이 높으므로 이 명령은 2
.
cat bConfigurationValue
현재 구성의 번호를 알려줍니다. 저장 장치 구성이 첫 번째 구성일 가능성이 높습니다 1
.
USB 장치를 두 번째 구성으로 전환하려면 다음을 실행합니다.
echo 2 | sudo tee bConfigurationValue
(또는 루트로 실행 중인 경우에는 . echo 2 > bConfigurationValue
과 사이의 공백은 많은 쉘에 특별한 의미가 있으므로 주의하십시오.)2
>
2>
이렇게 하면 "USB 저장 장치"가 사라지고 문제의 USB 장치의 실제 기능으로 대체됩니다.
이 프로세스를 자동화하기 위해 대부분의 최신 배포판에는 usb-modeswitch
구성 요소/유틸리티가 있습니다. 아직 장치를 전환하지 않았다는 것은 장치에 대한 정보를 구성에 추가해야 함을 의미합니다. 필요한 구성 번호를 알고 나면 /etc/usb_modeswitch.d/XXXX:YYYY
XXXX:YYYY가 전환되어야 하는 USB 장치의 공급업체:제품 ID인 텍스트 파일을 생성할 수 있습니다. 파일 내용은 원하는 구성을 식별하는 줄이어야 합니다. 예를 들어 구성 2가 장치의 실제 기능을 제공하는 경우 다음과 같은 줄을 작성할 수 있습니다.
Configuration=2
그게 다야. (실제로 USB 모드 스위치 개발자에게 파일 복사본을 보내서 향후 버전의 유틸리티에 정보를 추가할 수 있습니다.)
일부 장치는 파악하기 어려운 다른 전환 방법을 사용할 수 있습니다. sysfs 파일에 bNumConfigurations
문제의 USB 장치에 구성이 하나만 있다고 표시되면 Windows VM을 빌드하고 USB 장치를 제공하고 장치에서 제공하는 드라이버를 설치한 다음 VM이 부팅되는 동안 캡처해야 합니다. Windows 드라이버가 장치에 보내는 USB 메시지입니다. 이러한 메시지를 자동으로 보내도록 유틸리티 usb-modeswitch
를 구성할 수 있으며 해당 데이터 파일에는 그러한 상황에 대한 기존의 많은 예가 포함됩니다.
일반적으로 Windows 모니터 "드라이버"에는 *.icc
Linux에서도 사용할 수 있는 색상 보정 프로필만 포함될 수 있습니다. 모니터가 높은 새로 고침 빈도(= 게임 모니터)에 최적화되어 있거나 다른 이유로 이상한 색 재현 특성이 있는 경우 Windows 드라이버 패키지에서 색 보정 프로필을 찾아 데스크탑 환경에서 사용하는 정보를 알려 모니터의 색 재현을 향상시킬 수 있습니다. 모니터로 해보세요.
답변2
힌트를 주신 @telcoM에게 감사드립니다. 이 문제를 해결했습니다.
너무 길어요.
규칙을 사용하여 문제의 USB 장치를 승인 취소합니다 udev
.
그것을하는 방법
- 팔로우 모드에서 실행
dmesg
:
$ dmesg -w
- 모니터의 USB 케이블을 분리했다가 다시 연결합니다.
- 의 출력에서
dmesg
비활성화하려는 장치의 버스 번호를 기록해 둡니다(노란색으로 겹쳐져 있음).
dmesg
종료하려면 Ctrl+C를 사용하세요.- 이제 다음 명령을 실행하여 장치 속성을 가져옵니다.
xxxusbxxx
받은 버스 번호로 교체하세요dmesg
$ udevadm info -a -p /sys/bus/usb/devices/xxxusbxxx
- 이것은 출력의 첫 번째 부분이자 관심 있는 부분입니다. 다음 속성과 빨간색 상자에 표시된 경로를 참고하세요.
DRIVER=="usb-storage"
ATTR{bInterfaceClass}=="aa"
ATTR{bInterfaceNumber}=="bb"
ATTR{bInterfaceProtocol}=="cc"
ATTR{bInterfaceSubClass}=="dd"
- 이제 새 파일을 만듭니다
/etc/udev/rules.d/10-disable-MSI-optix-storage.rules
. 이 숫자는10
해당 규칙이 더 높은 숫자를 가진 다른 규칙보다 먼저 실행된다는 의미입니다..rules
확장자를 유지하세요 . 파일 이름의 나머지 부분은 중요하지 않습니다. 이는 파일의 내용이어야 합니다. 이에 따라 문자열을 교체하십시오.
- 컴퓨터를 다시 시작하면 읽기 오류 메시지가 더 이상 나타나지 않는 것을 볼 수 있습니다.
이게 실제로 무슨 일을 하는 걸까
udev
규칙 파일에 지정된 속성과 일치하는 USB 장치가 감지되면 해당 authorized
플래그가 즉시 설정되고 0
더 이상 사용할 수 없습니다.