[問題] 關於 ldd3 學習

作者: shiningboy   2017-12-30 17:32:10
最近想學怎麼開發 Linux modules,
下載了 ldd3 跟 kernel 2.4.10 之後,就不知道該怎麼辦了。
我之前沒有編譯過 kernel,
只有在 linux 的環境下寫一些簡單的 c
目前我的系統是 ubuntu , kernel 是 4.10
這樣應該是不能編譯 ldd3 的 code 吧
那請問一下如果我想要學 ldd3 的東西,去編譯執行 example code 的話
應該用哪個方法呢?
1.我是應該去找到 kernel 是 2.6.10 版本的發佈版來安裝
2.把目前的 ubuntu 發佈版的 kernel downgrade 到 2.6.10,
但是有點擔心會影響到其他功能。
這邊想另外問一下,如果我用第二個方法
把 kernel down grade 到 2.6.10 之後,確實發生了有些 module 無法運作,
那我再把 kernel version restore 回到原來的 4.10 這樣會恢復正常嗎?
照我讀到的資料是寫說 LKM 都是可以動態的載入跟卸除,甚至不用 reboot,
但是不確定是否包含 kernel core 的部份.....
因為 insmod 好像就是 kernel 在處理的,實在是不太懂,也不知道該怎弄比較好
還是有什麼別的方式可以來建構這個開發環境呢?
還請大家多幫忙指點,解惑了,
謝謝
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.222.112
※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1514626333.A.30F.html
※ 編輯: shiningboy (114.137.222.112), 12/30/2017 18:21:17
作者: galic (嘎利)   2017-12-30 22:21:00
我的建議是裝virutal machine 跑一個原生就是2.6.x Kernel的Distro. 或是你要跑4.x也沒關係 但是2.6跟後面版本差異很大 不要去downgrade kernel 這會影響你系統的運作github上有一堆賢(閒)者 有把ldd3的example porting到其他kernel版本 google搜尋一下就有 很多...然後像Ubuntu這種Distro. 其實改了很多東西 所以編譯kernel上會比較複雜 建議你可以用Arch之類的然後照你的描述 跟很多直接拿LDD來看的人很像 這本的前提是你非常了解OS的運作 所以他只注重在Kernel Module的撰寫上所以我建議你搭配Linux Kernel Development一起看 這本可以幫你補充概念上的不足(大概啦)喔對 kernel source裡面有Documentation 記得去裡面逛逛像是你現在就應該要去看kbuild底下的東西
作者: askacis (ASKA)   2016-01-06 14:47:00
我覺得初學者看LDD3有點太深了推薦這個作者-- 平田豐寫的書https://www.tenlong.com.tw/products/9789862011867
作者: carylorrk (carylorrk)   2016-01-07 12:26:00
其實 github 上蠻多把 LDD3 port 到新 kernel 的
作者: Goodwater (好水)   2016-01-25 00:16:00
初學看LDD3應該會跟看天書差不多
作者: poem5566 (幹你蜆仔)   2016-07-25 11:17:00
推一本殘體字的書 Linux 設備驅動開發詳解。裡面的Code

Links booklink

Contact Us: admin [ a t ] ucptt.com