返回信息流@colyli呀,你有什么简易上手指南没有,有空的时候带带我
这是一条镜像帖。来源:北邮人论坛 / linux / #161279同步于 2025/9/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Linux机器人发帖
现在一般怎么编译内核或者模块呀
redsand
2025/9/9镜像同步69 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
你问这个问题就像问“我想改进原子弹里的反应材料,改进了重新装弹实验,是不是用徐工的叉车比较方便”一样。
【 在 redsand 的大作中提到: 】
: 我是想改其中的某个模块的代码,改完了重新加载调试,是不是用ubuntu比较方便
我个人大概的理解,linux编译大概就两种,有源码树和无源码树。但是各个linux发型版,其实又有对应的软件版本管理工具。比如debian有src-deb包这种,不同kernel版本,会依赖对应版本gcc,libc,这个实际上更工程,但是说起来就麻烦了,楼主看起来还是初学者,这里就不说这种了。
1.如果你想编译整个linux内核,而不是某一个单独的驱动模块,(其实编译单个模块也是可以用这种方法。)那最好的方法就是用git这个管理工具,去下载整个linux源码树。然后使用里面的MakeFile编译。linux的官方网站https://kernel.org/,或者git镜像https://github.com/torvalds/linux。具体细节我已经记不清了,三方依赖其实很少,有gcc,make,要不要autoconf那些东西我不记得了。
然后要选择一个分支,比如选5.x的某个long time support分支。或者mainline,或者stable。
2.还有一种方法是无源码树,只下载linux的头文件包,比如说debian有一些linux head的包。然后编译某个单独的linux驱动模块。通常会用dkms这样的包管理工具。好处就是只用下载头文件。然后额外学习一下dkms是啥,相当于驱动厂商发布的是源代码,然后在不同版本的kernel里都能重新编译。
然后扯句题外话,linux开源社区是倡导黑客精神和互相帮助的。在我刚学习的时候,也受到了很多其他陌生的工程师的帮助。所以我想表达的有两方面:
1.可以不回答问题,但是不要阴阳怪气。
2.时代变了,现在收集信息的效率比以前高多了,我说的这些也不一定是对的。能问AI就该问AI。
你要做的事情就像造核弹一样大,但你问的问题却和用什么叉车一样基础。是不是要先考虑把自己变成一个用户,有一个自己喜欢的发行版,然后成为一个超级用户,知道如何从源代码编译一个普通应用程序(如果勇敢的话编译内核也行),然后再考虑“修改一个内核模块”这么宏大的事?
【 在 redsand 的大作中提到: 】
: 详细解释一下你的比喻?
在任何时代,伸手党都是不受欢迎的。我已经回答得很明确了:“读README”。自由软件社区任何软件都有自己的README文档。有的还有INSTALL、COPYING等用大写字母写得清清楚楚的文件,等着你去打开,甚至GNU项目的INSTALL文件写得非常详细,一步步教你用./configure, make, make install编译安装。而且我也很客气了,如果是20年前,将会有一大群人对他说“Read the f**king manual!”或者不耐烦的直接回复“RTFM”。而且哪怕在20年前,问问题之前不先问搜索引擎,也是相当不礼貌的事情,违反的人会被罚在黑板上写满“I will use Google before asking dumb questions”。
https://www.cyberciti.biz/tips/humor-i-will-use-google-before-asking-dumb-linux-question.html
同时欢迎看看本版顶置贴《提问前必读》 https://bbs.byr.cn/#!article/Linux/44416
以及精华帖《提问的智慧》 https://bbs.byr.cn/#!article/Linux/5681
【 在 xsc 的大作中提到: 】
: 然后扯句题外话,linux开源社区是倡导黑客精神和互相帮助的。在我刚学习的时候,也受到了很多其他陌生的工程师的帮助。所以我想表达的有两方面:
: 1.可以不回答问题,但是不要阴阳怪气。
: 2.时代变了,现在收集信息的效率比以前高多了,我说的这些也不一定是对的。能问AI就该问AI。