Adakah yang tahu tutorial pemrograman kernel / driver?

12

Saya tertarik menggunakan RPi untuk belajar pemrograman tingkat hardware sendiri. Saya telah mencari di internet untuk beberapa tutorial untuk RPi, tetapi yang saya temukan adalah tutorial umum "bagaimana cara mengkompilasi kernel". Saya lebih tertarik pada aktual "cara menulis kode kernel / driver perangkat" -tipe tutorial. Apakah ada tutorial khusus untuk RPi, atau apakah tutorial * nix untuk pemrograman level hardware sudah cukup?

Jakub
sumber
Kemungkinan rangkap dari Apakah ada koleksi bahan ajar?
Jivings
2
@Jivings: Duplikat yang disarankan tidak menjawab salah satu bagian dari pertanyaan saya. Elinux dan CAS tampaknya tidak memiliki apa-apa tentang pemrograman kernel RPi sementara pemrograman GPIO nyaris tidak menggores permukaan driver menulis. Selain itu, tidak disebutkan dalam duplikat yang disarankan dari tutorial RPi vs. umum * nix.
Jakub

Jawaban:

5

Saya tidak berpikir Anda akan menemukan sumber yang lebih baik dari ini kecuali Anda mengenal seseorang secara pribadi.

Nikmati

PS Jika tautannya mati, buku itu disebut Linux Device Drivers.

NickHalden
sumber
Ini memang terlihat sangat bagus, saya selalu menjadi penggemar seri O'Reilly.
Jakub
Jadi saya menganggap bahwa pemrograman driver di kernel Linux akan mentransfer dengan mudah ke Raspbian?
Jakub
Raspbian pada dasarnya hanyalah distribusi Debian yang lebih kecil yang dikompilasi dengan parameter khusus khusus untuk perangkat keras pada Raspberry Pi. Jadi ya itu harus, meskipun saya bukan ahli pemrograman driver atau Raspberry Pi jadi mari kita tunggu seseorang yang lebih berpengetahuan untuk berpadu.
NickHalden
Tampak sangat ketinggalan jaman (Kernel 2.6 dan dari 2009). Adakah yang lebih baru?
Lukas Knuth
3

Saya baru saja menemukan sesuatu dari Universitas Cambridge.

Sangat mudah untuk mengikuti dan membuat pengenalan yang sangat baik bagaimana menyatukan OS pertama Anda: http://www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/os/

serigala
sumber
WOW! :) Ini brilian!
gideon
2

Selain buku LDD, Anda juga dapat melihat dokumen kursus pelatihan di free-electrons.com . Di sana semua materi pelajaran bersumber terbuka. Cukup cocok untuk yang sudah mulai sedikit ke dalam pemrograman kernel linux, atau yang mencari pemahaman yang lebih dalam dan lebih luas tentang topik / area tertentu.

Untuk mulai dengan, Anda mungkin melihat setidaknya dua kursus pertama:

Dan jangan lupa situs referensi silang kode sumber lxr di free-electrons.com , di mana Anda dapat memeriksa kode sumber untuk berbagai versi kernel.

Jika Anda menyukai IDE terutama NetBeans atau Eclipse, dan tahu cara menjalankan skrip perl dan Makefile, Anda dapat melihat alat Nbk proyek saya di github.com . Skrip memungkinkan Anda untuk mengindeks sepenuhnya proyek kernel dengan NetBeans C ++ kit. Ini sangat membantu meningkatkan pengalaman untuk lebih memahami struktur internal kode sumber dan hubungan. Saya biasanya membuat konfigurasi minimal kernel plus perangkat spesifik yang saya lihat, dan membuat build dan melakukan indeks di NetBeans hanya untuk menganalisis kode kernel. Sementara melakukan pengembangan aktual di proyek lain. Skrip ini diuji secara langsung di NetBeans, tetapi dengan Eclipse idenya akan sama (Anda perlu memodifikasi skrip yang sesuai dengan Eclipse).

Jinghua
sumber