Bagaimana cara kerja driver Linux dan di mana saya menemukannya? (khususnya driver NIC)

11

Saya bertanya-tanya bagaimana fungsi driver di Linux. Apakah driver satu file yang dapat diedit? Apakah ada daftar driver saat ini sedang digunakan atau ada tempat yang berbeda untuk menemukan mereka untuk setiap perangkat?

Saya terutama tertarik mempelajari driver adaptor jaringan saya.

Jika Anda tahu di mana beberapa dokumentasi yang bagus, saya ingin membacanya juga.

Usagi
sumber

Jawaban:

6

Driver sangat mirip dengan program lain, mereka dapat terdiri dari beberapa file sumber. Driver perangkat Linux dapat langsung dikompilasi ke dalam kernel atau modul kernel. Modul kernel memiliki manfaat untuk dapat dimuat secara dinamis (yaitu Anda tidak perlu mengkompilasi kernel baru untuk menggunakannya).

Anda jelas dapat selalu melihat kode sumber Linux, tetapi itu bisa menjadi tugas yang menakutkan pada awalnya. Namun, seperti apa pun di driver Linux adalah file. Itu berarti program lain mengaksesnya melalui antarmuka VFS. Misalnya, Anda dapat mengontrol CDROM melalui ioctl()panggilan menggunakan file perangkatnya.

Saya akan sangat menyarankan memeriksa Driver Perangkat Linux . Ini tersedia secara bebas dan akan menjawab pertanyaan Anda. Khususnya, Anda dapat membaca bab 2 yang memperlihatkan kepada Anda cara membuat modul "Hello, Kernel" sederhana. Mungkin jauh lebih banyak daripada yang Anda minta, tetapi Anda dapat membaca sedikit demi sedikit yang Anda minati. Dan ini gratis. ; P

Tuan Shickadance
sumber
3

Driver Linux dibangun dengan kernel, dikompilasi dalam atau sebagai modul. Atau, driver dapat dibangun terhadap header kernel di pohon sumber. Anda dapat melihat daftar modul kernel yang saat ini diinstal dengan mengetik lsmoddan, jika diinstal, lihat sebagian besar perangkat yang terhubung melalui bus dengan menggunakan lspci.

Jika versi kernel saat ini tidak memiliki dukungan driver untuk NIC Anda, Anda harus mencari driver di vendor dan Anda harus mengkompilasi modul kernel dari sumber (terhadap header kernel Anda).

Sean C.
sumber
1

Sebagian besar waktu jika sesuatu seperti NIC Anda tidak muncul secara otomatis, Anda perlu pergi ke situs pembuat perangkat keras, dan melihat apakah mereka memiliki versi linux.

Dalam istilah yang lebih umum, driver linux cenderung berbentuk perpustakaan atau modul.

rfelsburg
sumber