[問題] 關於 ldd3 學習

看板LinuxDev作者時間6年前 (2017/12/30 17:32), 6年前編輯推噓2(2019)
留言21則, 6人參與, 4年前最新討論串1/1
最近想學怎麼開發 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

12/30 22:21, 6年前 , 1F
我的建議是裝virutal machine 跑一個原生就是2.6.x Kernel
12/30 22:21, 1F

12/30 22:22, 6年前 , 2F
的Distro. 或是你要跑4.x也沒關係 但是2.6跟後面版本差異很
12/30 22:22, 2F

12/30 22:22, 6年前 , 3F
大 不要去downgrade kernel 這會影響你系統的運作
12/30 22:22, 3F

12/30 22:23, 6年前 , 4F
github上有一堆賢(閒)者 有把ldd3的example porting到其他
12/30 22:23, 4F

12/30 22:23, 6年前 , 5F
kernel版本 google搜尋一下就有 很多...
12/30 22:23, 5F

12/30 22:26, 6年前 , 6F
然後像Ubuntu這種Distro. 其實改了很多東西 所以編譯kernel
12/30 22:26, 6F

12/30 22:26, 6年前 , 7F
上會比較複雜 建議你可以用Arch之類的
12/30 22:26, 7F

12/30 22:28, 6年前 , 8F
然後照你的描述 跟很多直接拿LDD來看的人很像 這本的前提是
12/30 22:28, 8F

12/30 22:28, 6年前 , 9F
你非常了解OS的運作 所以他只注重在Kernel Module的撰寫上
12/30 22:28, 9F

12/30 22:29, 6年前 , 10F
所以我建議你搭配Linux Kernel Development一起看 這本可以
12/30 22:29, 10F

12/30 22:30, 6年前 , 11F
幫你補充概念上的不足(大概啦)
12/30 22:30, 11F

12/30 22:38, 6年前 , 12F
喔對 kernel source裡面有Documentation 記得去裡面逛逛
12/30 22:38, 12F

12/30 22:39, 6年前 , 13F
像是你現在就應該要去看kbuild底下的東西
12/30 22:39, 13F
非常感謝,依照你的講解,我修正了我的學習方向, 我想我首先要先把作業系統讀得很熟, 並且多去了解各種不同 Linux distro 的差異, 然後再看 linux kernel, 最後再看 LDD, 看 Linux 那幾百萬行的程式碼, 學習 Linux 真的是一輩子的事情。 謝謝 ※ 編輯: shiningboy (42.73.223.177), 01/02/2018 18:21:08 另外想問一下,galic 大, 你推文中提到的盡量不要用 Ubuntu distro 來作為開發編譯的環境, 所以我盡量去找 Ubuntu 以外的 distro, 我找了兩天, 可惜目前能找到 2.6.x 的 distro 版本,似乎就只剩 Ubuntu 有提供下載了 Arch distro 我找了好久,都找不到以前發佈的版本, 甚至有看到文章說這是 Arch distro 的特色,只提供最新的版本 請問有人找得到 Arch distro 2.6.x 的 distro 嗎 ?? 謝謝 ※ 編輯: shiningboy (42.73.58.132), 01/05/2018 00:05:35

01/05 10:57, 7年前 , 14F

01/05 10:58, 7年前 , 15F

01/06 14:47, 7年前 , 16F
我覺得初學者看LDD3有點太深了
01/06 14:47, 16F

01/06 14:49, 7年前 , 17F
推薦這個作者-- 平田豐寫的書
01/06 14:49, 17F

01/06 14:49, 7年前 , 18F

01/07 12:26, 7年前 , 19F
其實 github 上蠻多把 LDD3 port 到新 kernel 的
01/07 12:26, 19F

01/25 00:16, 7年前 , 20F
初學看LDD3應該會跟看天書差不多
01/25 00:16, 20F

07/25 11:17, 4年前 , 21F
推一本殘體字的書 Linux 設備驅動開發詳解。裡面的Code
07/25 11:17, 21F
文章代碼(AID): #1QHrqTCF (LinuxDev)
文章代碼(AID): #1QHrqTCF (LinuxDev)