LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: goldeagle

kernel 2.6.0 编译方法(给新手)

[复制链接]
发表于 2004-2-3 12:57:10 | 显示全部楼层
最初由 wolfmei 发表
问题:我编译之后启动,屏幕什么显示都没有是什么问题?是否显示卡驱动没选择好?


这个是桢缓冲的问题吧?
发表于 2004-2-5 10:25:42 | 显示全部楼层
刚才编译2.6.2内核,重启进入新内核引导,出现警告并且死机:
Warning: unable to open an initial console.
Kernel panic: No init found. Try passing init=option to kernel.

home_king的意见已经被采纳,但还是有这个问题。
请问要怎么修啊?HELP!!!
发表于 2004-2-9 12:55:39 | 显示全部楼层
www.linuxaid.com.cn上找到一个偷懒的编译内核的办法,希望能给像我这样急切想使用新内核但又编译始终失败的兄弟们带来好运.
原文地址http://www.linuxaid.com.cn/articles/9/4/94134994.shtml

可行性的理由是原来已经安装到机器上的linux的内核的配置文件.config是一定可以使用的,并且新内核的配置文件格式可能和老内核的配置文件格式相同,于是我们只要把老内核的.config文件cp过来,再略加修改就可以使用了.具体步骤如下:
#现把老内核的配置文件考到新的内核原代码目录下

#cp /usr/src/linux-2.4/.config /usr/src/linux-2.6.2/
#cd /usr/src/linux-2.6.2

#然后读取配置老内核的配置文件

#make oldconfig

#会出来很多新的选项要你原则,一般选默认的,如果吃不准的话就选M,要看清自给到底要什么,比如帧缓冲.
#接下来就和普通的编译方法一样

#make
#make modules_install
#make install

我是在fedora上做的,引导程序用grub,所以不用改什么直接reboot,就可以使用2.6.2的内核了,最明显的感受是在X下快了很多!
发表于 2004-2-9 16:57:26 | 显示全部楼层
最初由 7dehao 发表
www.linuxaid.com.cn上找到一个偷懒的编译内核的办法,希望能给像我这样急切想使用新内核但又编译始终失败的兄弟们带来好运.
原文地址http://www.linuxaid.com.cn/articles/9/4/94134994.shtml

可行性的理由是原来已经安装到机器上的linux的内核的配置文件.config是一定可以使用的,并且新内核的配置文件格式可能和老内核的配置文件格式相同,于是我们只要把老内核的.config文件cp过来,再略加修改就可以使用了.具体步骤如下:
#现把老内核的配置文件考到新的内核原代码目录下

#cp /usr/src/linux-2.4/.config /usr/src/linux-2.6.2/
#cd /usr/src/linux-2.6.2

#然后读取配置老内核的配置文件

#make oldconfig

#会出来很多新的选项要你原则,一般选默认的,如果吃不准的话就选M,要看清自给到底要什么,比如帧缓冲.
#接下来就和普通的编译方法一样

#make
#make modules_install
#make install

我是在fedora上做的,引导程序用grub,所以不用改什么直接reboot,就可以使用2.6.2的内核了,最明显的感受是在X下快了很多!


对于内核2.6.x而言,版本更新速度很快,内核选项也多变化。
最好还是在第一次配置完make menuconfig后在里面保存配置到一个文件上,下次make menuconfig再导入,这样做可以避免make oldconfig用字符提示形式来确认更新或变化的内核选项的麻烦(如果变化项太多,make oldconfig很烦,而且这个过程不能回退)。
同时要注意fedora core 1上procps的更新以匹配新内核(see README)。
另外,make后,make modules_install install一句就行了。
发表于 2004-2-9 20:09:41 | 显示全部楼层
谢谢home_king的提醒,不过在RHEL3上没有成功,还是老问题,并且提示/bin/insmod存在错误,查看后发现/bin目录下并没有insmod程序,不知道是怎么回事?
发表于 2004-2-9 20:28:22 | 显示全部楼层
最初由 7dehao 发表
谢谢home_king的提醒,不过在RHEL3上没有成功,还是老问题,并且提示/bin/insmod存在错误,查看后发现/bin目录下并没有insmod程序,不知道是怎么回事?

老问题,什么问题呢?kernel panic?
这个和insmod应该没有关系吧。如果兄弟有在升级新内核前更新了modutils到module-init-tools(在make前要make moveold哦),并且在编译后按文档说的generate-modprobe以及depmod 2.6.x的话,应该不会出现模块工具的问题。再说内核加载initrd出错的话,更勿论initrd本身对模块的加载啦。
另外,兄弟可以运行whereis insmod看看这个程序在哪,再file一下看看其文件信息,或者insmod -V看看是否已升级到module-init-tools?可能有帮助。
发表于 2004-2-14 09:41:28 | 显示全部楼层
编译成功了,可是出现以下问题
[root@dragonman module-init-tools-3.0-pre9]# ./generate-modprobe.conf /etc/modprobe.conf
modprobe: QM_MODULES: Function not implemented

Warning: not translating path[toplevel]=/lib/modules/2.6
Warning: not translating path[updates]=/lib/modules/updates
Warning: not translating path[unsupported]=/lib/modules/unsupported
[root@dragonman module-init-tools-3.0-pre9]#
发表于 2004-2-28 01:16:39 | 显示全部楼层
请教几个问题,System.map是要来做什么的?为什么在grub里好像没有关于System.map的设置,它是如何起作用的?
如果在/boot里同时存在几种版本的vmlinuz和System.map,那么启动的时候如何分别加载而不冲突?
 楼主| 发表于 2004-3-2 14:38:01 | 显示全部楼层
map就是映象,不需要什么设置的
如果有几个版本的vmlinuz,只需要在 grub kernel 指令中制定具体的文件名就可以了,完全不冲突。
这个也是支持不同内核启动的实现方法。
发表于 2004-3-2 22:32:28 | 显示全部楼层
我的问题如下:
make install时 出现make mkinitrd 错误 提示说 /lib/modules/2.6.2 is not a directory。不生成mkinitrd这个img文件,然后我自已运行了make module_install,  运行mkinitrd生成一个。按grub.con里已有的2.4.20的选项添加选项如下

kernel 2.6.2
hda(0,6)
kernel /vmlinuz-2.6.2 ro root=label=/
.....
基本都与原来的一样,就把版本号改了。可是启动不了。。

我的系统是redhat 9.0 kernel-2.4.20-8, kernel-2.4.20-20.9
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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