GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana dukungan perangkat keras baru ditambahkan ke kernel linux?

Dukungan driver bekerja dengan cara yang sama seperti semua sumber terbuka:seseorang memutuskan untuk menggaruk gatalnya 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 demi kepentingan terbaik mereka menyediakan driver:"gatal" mereka adalah menjual produk ke pengguna Linux, dan itu berarti memastikan bahwa ada driver.

Dalam kasus terbaik, perusahaan bekerja keras untuk memasukkan driver mereka ke basis sumber yang sesuai yang disertakan dengan distro Linux. Untuk sebagian besar driver, itu berarti kernel Linux. Untuk driver grafis, artinya X.org. Ada juga CUPS untuk driver printer, NUT untuk driver UPS, SANE untuk driver scanner, dll. Manfaat yang jelas dari melakukan ini adalah bahwa distro Linux yang dibuat setelah driver diterima akan mendukung perangkat keras secara langsung. Kelemahan terbesarnya adalah lebih banyak pekerjaan bagi perusahaan untuk berkoordinasi dengan proyek sumber terbuka untuk memasukkan driver mereka, karena alasan dasar yang sama, sulit bagi dua grup terpisah untuk mengoordinasikan apa pun.

Lalu ada perusahaan yang memilih untuk menawarkan kode sumber driver mereka secara langsung saja. Anda biasanya harus mengunduh kode sumber driver dari situs web mereka, membangunnya di sistem Anda, dan menginstalnya secara manual. Perusahaan semacam itu biasanya lebih kecil atau pabrikan khusus tanpa cukup karyawan sehingga mereka dapat menyisihkan upaya untuk berkoordinasi dengan proyek sumber terbuka yang sesuai untuk memasukkan driver mereka ke basis sumber proyek tersebut.

Beberapa perusahaan langka menyediakan driver hanya-biner alih-alih kode sumber. Contohnya adalah driver 3D yang lebih canggih dari perusahaan seperti NVIDIA. Biasanya alasannya adalah karena perusahaan tidak ingin memberikan informasi yang mereka rasa hak milik. Driver seperti itu sering tidak berfungsi dengan banyak distro Linux seperti pada kasus sebelumnya, karena perusahaan yang menyediakan perangkat keras tidak repot-repot membangun kembali driver mereka untuk melacak perubahan API dan ABI. Pengguna akhir atau penyedia distro Linux dapat 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 memutuskan untuk melakukannya. Ada beberapa kelas besar perangkat keras yang umum digunakan, seperti UPS dan printer. Dibutuhkan pengguna langka yang a) memiliki perangkat keras; b) punya waktu; c) memiliki keterampilan; dan d) cenderung menghabiskan waktu untuk mengembangkan penggerak. Untuk perangkat keras populer, ini biasanya tidak menjadi masalah karena dengan jutaan pengguna Linux, beberapa orang ini memang ada. Anda mendapat masalah dengan perangkat keras yang tidak biasa.


Linux
  1. Linux:Bagaimana Menemukan Driver Perangkat yang Digunakan Untuk Perangkat?

  2. Linux – Kernel:Dukungan Namespaces?

  3. Linux – Bagaimana Kernel Linux Mengetahui Nomor Mayor dan Minor Perangkat?

  1. Linux – Bagaimana Cara Menentukan Modul Yang Menodai Kernel?

  2. Bagaimana cara kerja makro yang mungkin/tidak mungkin dalam kernel Linux dan apa manfaatnya?

  3. Cara membersihkan cache yang digunakan oleh kernel Linux

  1. Bagaimana kernel Linux menentukan urutan panggilan __init?

  2. Bagaimana saya bisa memesan satu blok memori dari kernel Linux?

  3. Bagaimana saya bisa menemukan model perangkat keras di Linux?