리눅스 커널에 새로운 하드웨어 지원이 어떻게 추가됩니까?


19

새로운 그래픽 어댑터를 출시하는 회사 A가 있다고 상상해보십시오. 이 새로운 그래픽 어댑터가 향후 Linux 커널에서 지원되는 프로세스를 누가 관리합니까? 어떻게 진행됩니까? 새로운 하드웨어에 대한 커널 지원이 어떻게 처리되는지 궁금합니다. Windows 회사에서는 자체적으로 드라이버를 개발하지만 Linux는 특정 하드웨어 지원을 어떻게 얻습니까?

답변:


26

드라이버 지원은 모든 오픈 소스와 동일한 방식으로 작동합니다. 누군가 자신의 가려움증을 긁기로 결정합니다.

때로는 Windows와 마찬가지로 하드웨어를 제공하는 회사에서 드라이버를 제공합니다. 인텔은 네트워크 칩, 3ware, RAID 컨트롤러 등을 위해이 작업을 수행합니다.이 회사는 드라이버를 제공하는 것이 가장 이익이된다고 결정했습니다. "가려움증"은 Linux 사용자에게 제품을 판매하는 것이므로 운전자가 있다는 것.

가장 좋은 경우, 회사는 Linux 배포판과 함께 제공되는 적절한 소스 기반으로 드라이버를 제공하기 위해 열심히 노력합니다. 대부분의 드라이버에서 이는 Linux 커널을 의미합니다. 그래픽 드라이버의 경우 X.org를 의미 합니다. 도 있습니다 CUPS 프린터 드라이버에 대한 NUT UPS 드라이버, SANE 스캐너 드라이버 등이 일의 분명한 장점은 드라이버가 상자 밖으로 하드웨어에 대한 지원이있을 것이다 접수 도착 후 리눅스 배포판 만든 것입니다가. 가장 큰 단점은 회사가 오픈 소스 프로젝트와 협력하여 드라이버를 얻는 일이 더 많다는 것입니다. 동일한 기본 이유로 두 개의 개별 그룹이 무엇이든 조정하기가 어렵습니다.

그런 다음 드라이버 소스 코드를 직접 제공하기로 선택한 회사가 있습니다. 일반적으로 웹 사이트에서 드라이버 소스 코드를 다운로드하여 시스템에 빌드 한 후 직접 설치해야합니다. 이러한 회사는 일반적으로 충분한 직원이없는 소규모 또는 전문 제조업체로, 적절한 오픈 소스 프로젝트와 조정하여 드라이버를 해당 프로젝트의 소스 기반으로 가져 오는 노력을 아끼지 않아도됩니다.

드문 경우지만 소스 코드 대신 이진 전용 드라이버를 제공하는 회사는 거의 없습니다. 예를 들어 NVIDIA와 같은 회사의 고급 3D 드라이버가 있습니다. 일반적으로 그 이유는 회사가 독점적이라고 생각하는 정보를 제공하고 싶지 않기 때문입니다. 이러한 드라이버는 하드웨어를 제공하는 회사가 API 및 ABI 변경 사항을 추적하기 위해 드라이버를 다시 빌드 할 필요가 없기 때문에 이전의 경우와 같이 많은 Linux 배포판에서 작동하지 않는 경우가 많습니다. 최종 사용자 또는 Linux 배포자 공급자는 이러한 변경 사항을 추적하기 위해 소스 코드로 제공된 드라이버를 조정하여 이전 두 경우에 일반적으로 이진 드라이버보다 더 많은 시스템에서 작동하도록 만들 수 있습니다.

회사에서 Linux 드라이버를 제공하지 않으면 커뮤니티의 누군가가 간단히 결정하기 만합니다. UPS 및 프린터와 같이 일반적으로 사용되는 몇 가지 큰 클래스의 하드웨어가 있습니다. a) 하드웨어를 가진 사람은 거의 없습니다. b) 시간이있다. c) 기술이있다. d) 운전자 개발에 시간을 투자 할 의향이있다. 널리 사용되는 하드웨어의 경우, 수백만 명의 Linux 사용자에게는이 소수의 사람들이 있기 때문에 일반적으로 문제가되지 않습니다. 드문 하드웨어에 문제가 생깁니다.


0

이것을 자세히 이해하기 위해 최근에 Raspberry Pi 3가 나오고 블루투스 칩이 추가되었습니다. 이제 Broadcom BLE 칩이고 Raspberry Pi 커널은이를 지원 bluez하지 않으므로 Linux 용 라이브러리가 작동하지 않습니다. 이상적으로는 해당 BLE 칩에 대한 펌웨어 패치가 있어야하며 사용자가 사용할 수 있도록 커널을 다시 컴파일해야합니다. 맞습니까?

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