최근에 노트북용 USB-이더넷 어댑터를 구입했습니다. Windows 10에 연결하면 장치가 플래시 드라이브로 표시됩니다. 이 "플래시 드라이브"에는 실행 가능한 .exe 파일이 있습니다. Windows에서 실행하면 모든 것이 잘 작동합니다. 그러나 Linux(내 경우에는 Manjaro)에서는 장치를 플래시 드라이브로만 인식합니다. 인터넷 연결이 제대로 작동하지 않습니다.
inxi -nxxx
보여주다:
Network:
Device-1 ...
Device-2: ICS Advent USB 2.0 10/100M
Ethernet Adaptor
type: USB driver: usb-storage
bus-ID: 2-4:3 chip-ID 0fe6:9702 class-ID: 0806
올바른 드라이버를 사용하도록 수동으로 강제할 수 있나요?
미리 감사드립니다.
답변1
USB 공급업체 ID는 Kontron/ICS Advent/CoreChips 제품을 나타냅니다.
CoreChips에는 SR9700 네트워크 어댑터 칩이 있지만 제품 ID가 0x9700이 아닌 0x9702로 이는 칩의 다른 버전일 수 있음을 나타냅니다. 또는 장치가 "USB 저장소" 모드에 있음을 나타내는 제품 ID일 수도 있습니다.
이 Chromium OS 버그 보고서는 귀하의 상황과 매우 유사합니다. https://bugs.chromium.org/p/chromium/issues/detail?id=447045
루트로 다음 명령을 실행해 보세요.
usb_modeswitch -v 0fe6 -p 9702 -K
이는 usb_modeswitch
두 개의 SCSI 명령 시퀀스를 "USB 저장 장치"로 보내라는 의미입니다. 첫 번째 명령은 "미디어 제거 허용"이고 두 번째 명령은 "미디어 꺼내기"입니다. 이는 특정 모드 전환 USB 장치의 사용을 나타내며 Windows 드라이버 설치 키트가 더 이상 필요하지 않으며 장치의 실제 기능을 드러낼 수 있음을 나타냅니다.
이 작업이 완료되면 inxi -nxxx
명령을 다시 시도하십시오. 부품 이 다른 것 (예: 이더넷 네트워크 장치) class-ID: 0806
으로 변경되었습니까 ? class-ID: 0206
다른 정보가 변경되었나요?
다음 문제는 sr9700
드라이버 모듈이 제품 ID 9700만 예상하기 때문에 제품 ID 9702를 인식하지 못하는 것일 수 있습니다. 장치가 실제 네트워크 인터페이스 모드로 전환되면 ID가 변경되거나 변경되지 않을 수 있습니다. 제품ID를 9700으로 변경하면 usb_modeswitch 부분만 필요합니다.
하지만 모드를 전환한 후에도 제품 ID가 여전히 9702인 경우 다음을 시도해 볼 수 있습니다.
modprobe sr9700
echo "0fe6 9702" > /sys/bus/usb/drivers/sr9700/new_id
이는 제품 ID 9702의 칩이 제품 ID 9700의 칩과 동일하게 작동하는 경우 작동할 수 있습니다. 그러나 차이점이 있으면 드라이버가 제대로 작동하지 않을 가능성이 높습니다. dmesg
출력에 오류가 나타날 수 있습니다 .
이 토론에서는 이 접근 방식이 작동하지 않을 수 있음을 시사합니다.https://www.phoronix.com/forums/forum/hardware/general-hardware/44256-usb-ethernet-adaptor-0fe6-9702-kontron-ics-advent?103621-USB-gt-Ethernet-adaptor-(0FE6 -9702-Kontron-ICS-Advent)=
그러나 이는 오래된 운전자를 의미합니다 dm9601
. 해당 운전자를 사용하면 더 나은 행운을 누릴 수 있습니다 sr9700
.
이것이 작동하는 경우 이 구성을 지속되게 만들려면 다음 두 가지 작업을 수행해야 합니다.
usb_modeswitch
공급업체 ID가 0fe6이고 제품 ID가 9702인 "USB 저장소"(모드 전환 전) 장치가 있는 경우 적절한 옵션으로 트리거하는 구성이 추가되었습니다. 이는/lib/udev/rules.d/40-usb_modeswitch.rules
udev 규칙(또는 배포판의 유사한 파일)에 포함된 것과 유사한 udev 규칙과/etc/usb_modeswitch.d/0fe6:9702
다음 이름의 구성 파일을 통해 달성할 수 있습니다 .
# ICS Advent/CoreChips SR9700 v2 USB ethernet NIC
StandardEject=1
usb_modeswitch
모드 스위치가 트리거될 때 장치의 USB 식별자에 어떤 일이 발생하는지에 따라 스위치가 성공했는지 확인하기 위해 여기에 몇 가지 옵션을 추가해야 할 수도 있습니다 .구성 파일 매개변수에 대한 자세한 내용은 여기를 참조하십시오 usb_modeswitch
.
- 네트워크 드라이버를 로드
sr9700
하고 시스템 시작 시 선제적으로 또는 모드 전환 후 장치가 나타날 때 새로운 공급업체/제품 ID 쌍을 제공하는 구성을 추가합니다. 이는 다음/etc/modprobe.d/usb-nic-sr9702.conf
을 포함하는 파일을 사용하여 달성할 수 있습니다.
alias usb:v0FE6p9702d*dc*dsc*dp*ic*isc*ip*in* sr9700
install sr9700 /sbin/modprobe --ignore-install sr9700; /bin/echo "0fe6 9702" > /sys/bus/usb/drivers/sr9700/new_id
답변2
이것이 바로 모드 전환 장치라고 불리는 것입니다. (한 유형의 USB 장치에서 다른 유형의 USB 장치로 전환하려면 드라이버가 필요하기 때문입니다).
usb_modeswitch 패키지가 설치되어 있는지 확인하십시오. Bad Luck™️이 있고 여전히 작동하지 않는다면, 아마도 적어도 usb_modeswitch가 지원하지 않는 장치를 가지고 있을 것입니다. 그리고 Linux 드라이버도 없을 가능성이 높습니다.
그러나 동일한 공급업체의 다른 장치에서 지원하는 경우 모드 전환 지원을 추가하는 것은 일반적으로 그리 나쁘지 않습니다. 어쩌면 불가능하지 않을 수도 있습니다!
답변3
다양한 www 페이지에서 여러 가지 작업을 시도한 후 USB 설명자를 살펴보았습니다.
0fe6:9702는 다중 장치입니다. 2개의 하위 장치가 있습니다.
인터페이스 0의 CDROM
그리고
커넥터 1의 USB-이더넷 어댑터
따라서 구성을 전환할 수 없습니다. 드라이버에게 인터페이스 1을 사용하도록 지시해야 합니다.
혹시 어떻게 하는지 아시는 분 알려주세요. 남은 주말 동안 시험해 보겠습니다.