[问题] 关于 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