최근에 이더넷-USB 어댑터를 구입했습니다.
Linux(내 경우에는 Ubuntu)를 실행하는 컴퓨터에 연결하면 자동으로 작동하며 아무것도 하지 않고도 이 인터페이스를 통해 인터넷 연결을 볼 수 있습니다.
제가 궁금한 점은 특정 드라이버를 설치하지 않고도 이것이 어떻게 작동하는지입니다.
udev가 이 장치가 연결되면 설정한다고 추측합니다. 하지만 이 USB 장치가 실제로 이더넷에 대한 인터페이스로 사용되어 이를 통해 트래픽을 라우팅할 수 있다는 것을 어떻게 알 수 있습니까?
이 문제를 감지하고 관리하는 코드는 어디에 있습니까? 미리 감사드립니다
답변1
특정 드라이버를 설치하지 않고 어떻게 작동합니까?
대부분의 배포판과 함께 기본적으로 제공되는 Linux 커널에는 이미 많은 수의 드라이버가 포함되어 있습니다. 대부분의 이더넷-USB 어댑터는 USB 설명자에 다음과 같이 표시되어 있습니다.CDC 장치이므로 표준 드라이버 중 하나(여러 변형 포함)가 대부분의 장치에서 작동합니다.
udev가 이 장치가 연결되면 설정한다고 추측합니다. 하지만 이 USB 장치가 실제로 이더넷에 대한 인터페이스로 사용되어 이를 통해 트래픽을 라우팅할 수 있다는 것을 어떻게 알 수 있습니까?
모든 커널 모듈에는 사용할 수 있는 장치를 설명하는 모드가 포함될 수 있습니다. alias
예를 들어, 이렇게 하면 으로 시작하는 별칭 modinfo cdc_ether
이 꽤 많이 표시됩니다 usb
. 나머지 별칭은 USB 설명자의 값과 일치합니다.
modules_alias
모든 별칭은 파일( ) 에 수집되며 /lib/modules/<kernel_version>/
, 이 파일은 새 장치(USB 등)가 발견될 때 활성화할 드라이버를 결정하기 위해 커널에서 사용됩니다.
드라이버 자체는 자신이 나타내는 장치가 다른 커널 계층(예: 네트워크 인터페이스)에 표현되어 있음을 커널에 알리는 역할을 합니다. 그런 다음 이러한 상위 계층은 다른 단계를 처리하며 때로는 사용자 공간과의 상호 작용을 사용하여 네트워크 인터페이스 초기화, 라우팅 설정 등을 수행합니다.
답변2
당신은가지다드라이버가 설치되었습니다. USB-net 드라이버를 사용하는 어댑터일 가능성이 높습니다. 시스템은 ID로 장치를 인식합니다 lsusb
.