2008年12月23日 星期二

Linux Device Driver Note 1

在linux 上開發AP有一段時間了, 但是一直沒有去接觸linux的kernel 或者module,  實在是個缺憾, 最近有機會接觸到Linux kernel module, 對我來說是新的經驗, 有些心得留個紀錄.

Linux Device Driver 是一本寫linux 驅動程式的聖經書, 其中我會用到的部分是sbull的範例, 但是很明顯的, linux 的核心改版總是會讓每件事情看起來都不太一樣, 至少這個範例完全不能在2.6.27上編譯, 到目前為止我還在想辦法, 不過在2.6.24上到是成功的編譯過了, 也嘗試在上頭作了一些操作, 初步看來是還可以.

目前已知,

  1. 2.6.27開始,include/linux/blkdev.h拿掉了request_queue_t,改用struct request_queue

  2. 沒去查, 不確定哪一版開始, #include <linux/config.h> 請改成#include <linux/configfs.h>

  3. rq_for_each_bio(bio, req) 已經被取消,  基本上他的原始目的似乎已經被bio_for_each_segment所包含所以去掉這個部分, 可以參考 http://lkml.indiana.edu/hypermail/linux/kernel/0712.1/0238.html

  4. bio_endio () 參數省略掉size.

沒有留言: