Linux 드라이버는 어떻게 작동하며 어디서 찾을 수 있습니까? (예 : NIC 드라이버)


11

Linux에서 드라이버가 어떻게 작동하는지 궁금합니다. 드라이버는 편집 할 수있는 단일 파일입니까? 현재 사용중인 드라이버 목록이 있거나 각 장치마다 다른 드라이버를 찾을 수 있습니까?

특히 네트워크 어댑터 드라이버에 대해 배우고 싶습니다.

좋은 문서가 어디에 있는지 알고 있다면 그것을 읽고 싶습니다.

답변:


6

드라이버는 다른 프로그램과 매우 유사하며 여러 소스 파일로 구성 될 수 있습니다. Linux 장치 드라이버는 커널 또는 커널 모듈로 직접 컴파일 할 수 있습니다. 커널 모듈은 동적으로로드 할 수 있다는 이점이 있습니다 (즉, 새 커널을 컴파일 할 필요가 없습니다).

분명히 Linux 소스 코드를 항상 볼 수 있지만 처음에는 어려운 작업이 될 수 있습니다. 그러나 Linux 드라이버에서와 마찬가지로 파일이 있습니다. 이는 다른 프로그램이 VFS 인터페이스를 통해 액세스하는 것을 의미합니다. 예를 들어, ioctl()장치 파일을 사용하여 호출을 통해 CDROM을 제어 할 수 있습니다 .

리눅스 장치 드라이버를 확인하는 것이 좋습니다 . 무료로 제공되며 질문에 답변 해드립니다. 특히, 간단한 "Hello, Kernel"모듈을 만드는 방법을 보여주는 2 장을 읽을 수 있습니다. 그것은 당신이 요구하는 것보다 훨씬 많을 수도 있지만, 관심있는 비트와 조각을 읽을 수 있습니다. ;피


3

Linux 드라이버는 커널로 빌드되고 모듈로 또는 모듈로 컴파일됩니다. 또는 소스 트리의 커널 헤더에 대해 드라이버를 빌드 할 수 있습니다. 입력하여 현재 설치된 커널 모듈 목록을 볼 수 있으며, 설치된 경우을 lsmod사용하여 버스를 통해 연결된 대부분의 장치를 살펴보십시오 lspci.

현재 커널 버전에서 NIC에 대한 드라이버를 지원하지 않는 경우 공급 업체에서 드라이버를 찾아야하며 소스에서 커널 모듈을 컴파일해야합니다 (커널 헤더에 대해).


1

NIC와 같은 것이 자동으로 나타나지 않으면 하드웨어 제조업체의 사이트로 이동하여 Linux 버전이 있는지 확인해야합니다.

좀 더 일반적인 용어로 리눅스 드라이버는 라이브러리 나 모듈 형태를 취하는 경향이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.