Pertama:
Untuk tahap bayi, menulis berbagai variasi pada modul "hello world", dan driver perangkat keras virtual, adalah cara terbaik untuk memulai (perangkat keras nyata memperkenalkan masalah dunia nyata yang paling dihadapi ketika Anda memiliki lebih banyak ide tentang apa yang Anda lakukan).
"Linux Device Drivers" adalah buku yang sangat bagus dan layak dimulai dengan: http://lwn.net/Kernel/LDD3/
LDD (dulu, setidaknya) melakukan latihan di mana Anda menulis driver virtual, misalnya disk RAM, dan perangkat jaringan virtual.
Kedua:
berlangganan https://lkml.org/ atau ke milis sub-sistem tempat Anda akan meretas. Bersembunyi sebentar, memindai thread, membaca ulasan kode (membalas tambalan) untuk melihat hal-hal seperti apa yang dilakukan orang tersandung atau mengambil.
Lihat apakah Anda dapat memperoleh perangkat keras (murah) untuk perangkat yang belum didukung, atau belum didukung dengan baik. Kandidat yang baik adalah NIC USB murah atau sejenisnya, periferal USB murah. Sesuatu dengan driver yang ketinggalan zaman, atau out-of-tree, mungkin ditulis vendor, mungkin untuk 2.4.x, sangat ideal, karena Anda dapat mulai dengan sesuatu yang berfungsi (sort-of), dan secara bertahap menyesuaikan / menulis ulang itu, menguji saat Anda pergi. Upaya driver pertama saya adalah untuk NIC USB Davicom DM9601. Ada driver kernel 2.4-series vendor-tertulis yang saya perlahan beradaptasi dengan 2.6. (Catatan: driver di jalur utama bukan driver saya, pada akhirnya orang lain menulis satu dari awal).
Cara lain yang baik adalah dengan melihat situs Kernel Newbies, khususnya "pembersih kernel" todo: http://kernelnewbies.org/KernelJanitors/Todo Ini adalah daftar tugas yang harus dapat ditangani oleh seorang pemula.