QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 887|回复: 11

谁告诉我怎么编译内核?

[复制链接]
发表于 2003-8-20 21:35:33 | 显示全部楼层 |阅读模式
我是个linux的小菜鸟,想编译内核都不会,下了个2.6b2测试版不知道怎么编译 ,在这里找了半天也没有找到答案,只好再来问问了。还有能不能把编译内核的步骤都解释一下我想知道每一步都是什么作用。另外我装过MANDRAKE9.2用KDE明显感觉比Redhad9快,是不是因为MANDRAKE9.2用的是2.4.21内核的原因,如果是我想给Redhad换成2.4.21内核可是我的电脑不能上网,下不了内核源码不知道MANDRAKE9.2里有没有,装过MANDRAKE9.2之后没有在MANDRAKE9.2里找到源码,如果MANDRAKE9.2里有源码我能不能把MANDRAKE9.2里的内核编译到Redhad里,那个2.6版的内核不知道好不好用,我担心就算是编译成功了也不稳定,我主要是因为想学学LINUX里的编程,因为我照着书上的例子编了个简单的模块不能安装,有人让我升级内核,可我有源码却不会编译真是上火,希望明白的人能帮我解决这些烦人的问题,还有那个版主不要老用英文好不好,我看不懂跟我说了也是白说呀谢谢了
发表于 2003-8-20 23:07:59 | 显示全部楼层
i can only input english. so anybody else can answer this question?
  
回复

使用道具 举报

 楼主| 发表于 2003-8-20 23:22:02 | 显示全部楼层
你为什么只能输入英文?奇怪?你肯定是中国人吧,你的电脑怎么会不能用中文?可不可以解释?算了就算是解释我也看不懂
回复

使用道具 举报

发表于 2003-8-20 23:25:56 | 显示全部楼层
i am in usa. my system only has english environment.
回复

使用道具 举报

 楼主| 发表于 2003-8-21 21:01:46 | 显示全部楼层
gxl117大哥谢谢你啦这么有耐心跟我这样的菜鸟解释,我的机器不能上网每次到网上来查东西挺麻烦的,我在其它的贴子上看到编译内核的简单方法,回去就试着编译2.6test2版内核,研究了一晚上也没个结果,我把遇到的问题贴上来帮我看看吧。
首先是免强编译成功了,但起动时出错在下面提示处停止
Uncompressing linux... ok,booting the kernel

之所以说是免强编译成功是因为在make bzImage 这一过程可以顺利通过,但make modules过程中出现多处错误,错误停止后我便修改.config 文件把出错的选项关掉(通过Makefile文件找到对应的选项),然后重新make modules。这一过程出现多处错误,我想应该不是源码的问题吧,因为后来我又试着编译2.5.x也在同样的文件处编译出错,是不是我的编译环境的原因?(比如gcc)还是我操作步骤不对?可是如果是操作步骤不对但大部分都可以正常编译只有少数几个文件编译错误(大约有10来个出错的文件)。

楼上大哥说用make menuconfig选择编译选项我是用make xconfig来配置的(是在其它一些贴子上看的),运行命后打开一个配制窗口界面不错,只是我不知道到底哪些选项需要选上,哪些不用选?这个其它贴子倒没说不过楼上大哥说导入原来的配制文件,我倒是自己找到那个文件也导入了,可感觉还是有很多选项对我没什么用,不知道关了会不会出问题,还有就上面说了有些选项打开了偏偏编译时出现错误很让我头疼,就不知道为什么不能让我顺利点。还有就是我编译成功后其它贴子上说可以用make install 代替
mkinitrd /boot/initrd-2.4.21.img 2.4.21 这一步,我是这样用的还好直接在grup菜单上出现2。6内核菜单了就是不能起动,不知道是不是make install的原因不过感觉应该不会与这个有关。实际上我还想过直接把grup.conf需要的那个两文件从Mandrake拷过来,然后再编辑grup.conf文件,想试试能不能在RedHat上使用(这样我就不用编译源码了哈!)不知道这样行不行,我觉得应该有些可行性只是不知道Mandrake的会不会和RedHat的不兼容,因为以前从DOS下面就可以用这两个文件引导我的RedHat7.2(现在我用9.2),而grup或lilo只不过是从硬盘上引导的吧,只是这样想的不知道对不对。

还有了,我前面有贴子请教了一个简单的模块编程问题,没看过的可以去看看。现在我把2.4.20-8/include/linux目录下的所有文件拷到/usr/include/linux下(就是替换原来把有文件,当然替换以前把原来的文件做了备份),然后重新编译安装我的模块程序,编译通过后安装出现以下错误:
./hello.o:couldn't find the kernel version the modules was compiled for

无奈又把原来/usr/include/linux目录恢复,这次仅把linux目录下的version.h文件换成2.4.20-8源码的version.h文件这样版本号就是2.4.20-8了(我打开看过了)重新编译安装,这次倒是可以安装上了而且也可以通过rmmod hello卸载但还是提示以下错误:

#insmod ./hello.o

warning:loading ./hello.o will taint the kernel: no licence

see http://……

module hello loaded,with warnings


另外我下载的2.6 test2 内核跟了一个patch-2.6.0-test2有什么作用?
回复

使用道具 举报

 楼主| 发表于 2003-8-21 21:10:02 | 显示全部楼层
对了那个版主,即然你不能用中文为什么又能看中文的东西呢?
回复

使用道具 举报

 楼主| 发表于 2003-8-21 21:18:14 | 显示全部楼层
想问问哪里还有人气旺点的linux论坛?这里回复挺慢的
回复

使用道具 举报

 楼主| 发表于 2003-8-21 22:46:51 | 显示全部楼层
谢谢希望今晚我就可以搞定他:)
回复

使用道具 举报

发表于 2003-8-21 23:05:33 | 显示全部楼层
[quote:2810ccbede="bierdaci"]对了那个版主,即然你不能用中文为什么又能看中文的东西呢?[/quote]

i can not input , but can see
回复

使用道具 举报

发表于 2003-8-21 23:09:04 | 显示全部楼层
if u see warning:loading ./hello.o will taint the kernel: no licence
then u module is loaded. u can ignore it now.
回复

使用道具 举报

 楼主| 发表于 2003-8-22 22:25:50 | 显示全部楼层
但是为什么不能打印printk输出的字符串呢?
回复

使用道具 举报

发表于 2003-8-23 12:11:22 | 显示全部楼层
dmesg
u ms should be there

man demsg see how to adjust the level.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 06:28 , Processed in 0.059563 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表