Bagaimana dukungan perangkat keras baru ditambahkan ke kernel linux?

19

Bayangkan ada perusahaan A yang merilis adapter grafis baru. Siapa yang mengelola proses yang menghasilkan adaptor grafis baru ini yang didukung oleh kernel Linux di masa depan? Bagaimana prosesnya? Saya ingin tahu bagaimana dukungan kernel untuk setiap perangkat keras baru ditangani; pada Windows perusahaan mengembangkan driver sendiri, tetapi bagaimana Linux mendapatkan dukungan perangkat keras tertentu?

NES
sumber

Jawaban:

26

Dukungan driver bekerja dengan cara yang sama dengan semua sumber terbuka: seseorang memutuskan untuk menggaruk gatal mereka sendiri.

Terkadang driver disediakan oleh perusahaan yang menyediakan perangkat keras, seperti pada Windows. Intel melakukan ini untuk chip jaringan mereka, 3ware melakukan ini untuk pengontrol RAID mereka, dll. Perusahaan-perusahaan ini telah memutuskan bahwa adalah kepentingan terbaik mereka untuk menyediakan driver: "gatal" mereka adalah menjual produk kepada pengguna Linux, dan itu berarti memastikan bahwa ada seorang sopir.

Dalam kasus terbaik, perusahaan bekerja keras untuk mendapatkan driver mereka ke basis sumber yang sesuai yang dikirimkan dengan distro Linux. Untuk sebagian besar driver, itu artinya kernel Linux. Untuk driver grafis, itu berarti X.org . Ada juga CUPS untuk driver printer, NUT untuk driver UPS, SANE untuk driver scanner, dll. Manfaat nyata melakukan ini adalah bahwa distro Linux yang dibuat setelah driver diterima akan memiliki dukungan untuk perangkat keras di luar kotak. Kelemahan terbesar adalah bahwa lebih banyak pekerjaan bagi perusahaan untuk berkoordinasi dengan proyek open source untuk memasukkan driver mereka, karena alasan dasar yang sama sulit bagi dua kelompok yang terpisah untuk mengoordinasikan apa pun.

Lalu ada perusahaan-perusahaan yang memilih untuk menawarkan kode sumber driver mereka secara langsung, hanya. Anda biasanya harus mengunduh kode sumber driver dari situs web mereka, membangunnya di sistem Anda, dan memasangnya dengan tangan. Perusahaan seperti itu biasanya lebih kecil atau produsen khusus tanpa karyawan yang cukup sehingga mereka dapat mengampuni upaya untuk berkoordinasi dengan proyek sumber terbuka yang sesuai untuk memasukkan driver mereka ke dalam basis sumber proyek tersebut.

Beberapa perusahaan jarang menyediakan driver biner saja, bukan kode sumber. Contohnya adalah driver 3D yang lebih canggih dari perusahaan seperti NVIDIA. Biasanya alasan untuk ini adalah bahwa perusahaan tidak ingin memberikan informasi yang mereka rasa memiliki. Driver seperti itu sering tidak bekerja dengan banyak distro Linux seperti pada kasus-kasus sebelumnya, karena perusahaan yang menyediakan perangkat keras tidak repot untuk membangun kembali driver mereka untuk melacak perubahan API dan ABI. Mungkin bagi pengguna akhir atau penyedia distro Linux untuk men-tweak driver yang disediakan sebagai kode sumber untuk melacak perubahan tersebut, sehingga dalam dua kasus sebelumnya, driver biasanya dapat dibuat untuk bekerja dengan lebih banyak sistem daripada driver biner.

Ketika perusahaan tidak menyediakan driver Linux, seseorang di komunitas hanya memutuskan untuk melakukannya. Ada beberapa kelas besar perangkat keras di mana hal ini biasa terjadi, seperti pada UPS dan printer. Dibutuhkan pengguna langka yang a) memiliki perangkat keras; b) punya waktu; c) memiliki keterampilan; dan d) memiliki kecenderungan untuk menghabiskan waktu untuk mengembangkan pengemudi. Untuk perangkat keras populer, ini biasanya bukan masalah karena dengan jutaan pengguna Linux, beberapa orang ini memang ada. Anda mendapat masalah dengan perangkat keras yang tidak biasa.

Warren Young
sumber
0

Untuk memahami hal ini secara rinci, baru-baru ini Raspberry Pi 3 keluar dan menambahkan chip bluetooth. Nah, itu adalah chip Broadcom BLE dan kernel Raspberry Pi tidak memiliki dukungan untuk itu dan bluezperpustakaan untuk Linux tidak berfungsi. Sekarang idealnya, seseorang harus memiliki tambalan firmware untuk chip BLE itu dan perlu mengkompilasi kernel lagi agar tersedia untuk pengguna. Apakah itu benar?

Joana Rigbi
sumber