Linux Driver 入門問題 ...

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

Linux Driver 入門問題 ...

文章rollboy » 週二 1月 23, 2007 11:45 pm

hi all...

請問一下幾個問題 ...
最近剛買了Linux Device Drivers 3e這本書, 不過一開始在"Hello World Module"
就碰釘子了, 無法編譯成功, 想請問一下在編譯前必須先在Linux環境上做什麼準備嗎?
(例如準備kernel source 等等 ... )


還有一個問題就是, 我買到的是3e版本, 書中主要以linux 2.6做說明示範, 但這樣會不會
對剛開始入門的新手不太好, 是不是從2.2或是2.4來開始比較適當?

不好意思, 如果問了蠢問題還請見諒
謝謝
just for fun ...
rollboy
懵懂的國中生
懵懂的國中生
 
文章: 210
註冊時間: 週六 10月 11, 2003 4:47 pm
來自: chiayi

文章darkranger » 週三 1月 24, 2007 1:46 am

無法編譯總有訊息吧?
darkranger
懵懂的國中生
懵懂的國中生
 
文章: 180
註冊時間: 週一 11月 13, 2006 7:14 pm

Re: Linux Driver 入門問題 ...

文章jserv » 週三 1月 24, 2007 1:07 pm

rollboy 寫:還有一個問題就是, 我買到的是3e版本, 書中主要以linux 2.6做說明示範, 但這樣會不會
對剛開始入門的新手不太好, 是不是從2.2或是2.4來開始比較適當?


除非你很在意 footprint (類似的組態,2.6 kernel image 可能會比 2.2 者大出幾百 kb),否則請用 2.6 kernel,對開發者來說也較為友善。

透過 UML (User-Mode Linux) 也是學習核心開發的好方式,請參考拙作:
http://blog.linux.org.tw/~jserv/archives/001871.html
http://blog.linux.org.tw/~jserv/archives/001872.html

Good Luck!
-jserv
jserv
懵懂的國中生
懵懂的國中生
 
文章: 116
註冊時間: 週六 5月 08, 2004 7:36 pm

Re: Linux Driver 入門問題 ...

文章訪客 » 週三 1月 24, 2007 9:22 pm

Here it goes a how to document for kernel 2.6 module programming - http://www.tldp.org/LDP/lkmpg/2.6/html/index.html

have fun

rollboy 寫:hi all...

請問一下幾個問題 ...
最近剛買了Linux Device Drivers 3e這本書, 不過一開始在"Hello World Module"
就碰釘子了, 無法編譯成功, 想請問一下在編譯前必須先在Linux環境上做什麼準備嗎?
(例如準備kernel source 等等 ... )


還有一個問題就是, 我買到的是3e版本, 書中主要以linux 2.6做說明示範, 但這樣會不會
對剛開始入門的新手不太好, 是不是從2.2或是2.4來開始比較適當?

不好意思, 如果問了蠢問題還請見諒
謝謝
訪客
 

文章rollboy » 週五 1月 26, 2007 1:22 am

嗯 ... 謝謝幾位
已經發現關鍵點, 主要就是必須有make過的kernel source對吧?

已經可以編出.ko了, 謝謝大家 :mrgreen:
just for fun ...
rollboy
懵懂的國中生
懵懂的國中生
 
文章: 210
註冊時間: 週六 10月 11, 2003 4:47 pm
來自: chiayi

文章rollboy » 週五 1月 26, 2007 1:39 am

再請教一個小問題, 我把hello.ko用insmod指令載入之後,
到/var/log/messages 看並沒有顯示訊息 ...

用lsmod可看到hello模組已經載入...

syslogd跟klogd也已經啟動
但為什麼看不到printk產生的結果, 是不是還有哪裡做錯?

謝謝
just for fun ...
rollboy
懵懂的國中生
懵懂的國中生
 
文章: 210
註冊時間: 週六 10月 11, 2003 4:47 pm
來自: chiayi

文章阿信 » 週五 1月 26, 2007 11:57 am

請用dmesg或是cat /proc/kmsg
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

文章rollboy » 週五 1月 26, 2007 1:56 pm

嗯 ... 可以了
再次謝謝幾位和阿信兄 :mrgreen:
just for fun ...
rollboy
懵懂的國中生
懵懂的國中生
 
文章: 210
註冊時間: 週六 10月 11, 2003 4:47 pm
來自: chiayi

原來如此

文章okehank » 週六 1月 27, 2007 11:14 am

發現在做oreilly的linux device drivers中的範例hello world時
他的範例居然有錯誤..他寫的hello world中沒有引入<linux/kernel.h>居然還引用KERN_INFO和KERN_INFO
這兩個變數..造成無法順利的編譯!
當然對一些初學者造成莫名奇妙的困擾啦!!
真是的莫非這是作者對初學者的試煉!!
okehank
可愛的小學生
可愛的小學生
 
文章: 12
註冊時間: 週三 1月 24, 2007 9:16 am

文章訪客 » 週六 1月 27, 2007 1:07 pm

ldd 3/e 的範例,均是以2.6的核心為主的。

跟你另外一個問題
相比較一下,發現你是不是使用2.4的kernel headers
來編譯2.6的範例。

所以你可能要先確定一下自己的開發環境是否跟範例程式要求的相符。

另外,kernel 不同次版本之間的互換,沒太大的問題,
但若2.4 <-> 2.6之間互換,可能就要小心一點囉!
訪客
 


回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron