LinuxSir.cn,穿越时空的Linuxsir!

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

怎么又是这个错误?内核镜像怎么不见了?

[复制链接]
发表于 2006-9-29 23:37:19 | 显示全部楼层
这个。。确实要研究一下,我也不知道在哪,源代码里面应该包含了的。

/usr/src/linux/docmentation里面有很多说明文档,好像比HELP还要全,先看看这个吧
回复 支持 反对

使用道具 举报

发表于 2006-9-29 23:43:45 | 显示全部楼层
documentation里的文档对于编译内核帮助不大,都是讲内核里每一个部分的工作原理

我的建议是先
make defconfig
这是帮你自动生成一个内核的配置文件
据说这个配置文件是Linus用的
然后你需要改的基本只有硬件部分

然后每次升级时只需要将上次的config拷贝回来,然后
make oldconfig

每次的config也不必刻意保存
编译完毕make install就会把vmlinuz, System.map, config自动拷贝到/boot里
并自动更新/boot里的符号连接,且把之前的符号连接改名为.old
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-30 00:09:19 | 显示全部楼层
Post by zhllg
documentation里的文档对于编译内核帮助不大,都是讲内核里每一个部分的工作原理

我的建议是先
make defconfig
这是帮你自动生成一个内核的配置文件
据说这个配置文件是Linus用的
然后你需要改的基本只有硬件部分

然后每次升级时只需要将上次的config拷贝回来,然后
make oldconfig

每次的config也不必刻意保存
编译完毕make install就会把vmlinuz, System.map, config自动拷贝到/boot里
并自动更新/boot里的符号连接,且把之前的符号连接改名为.old

请教版主,我这样理解对不对?
#cd /usr/src/linux
#make defconfig
#make menuconfig (这个时候只需改硬件部分以匹配自己的硬件,其他选项不改)
#make && make modules_install (除生成镜象等必要文件外,还生成 /boot/config 保存这次的内核设定值)
假如说,一段时间后,需要重新编译内核了,
#cd /usr/src/linux
#make oldconfig (读取了 /boot/config 的设定值)
#make menuconfig (这个时候就只需要改想改的地方)
##make && make modules_install (结束后上一次的 config 重命名为 config.old ,新生成一个 config 保存这次的设置)
不知道我这样理解对不对,还望版主指正,谢谢。:)
回复 支持 反对

使用道具 举报

发表于 2006-9-30 00:39:13 | 显示全部楼层
很聪明
提醒一点,make modules_install之后,直接make install来安装内核
还有硬件之外,文件系统也要看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-30 12:43:14 | 显示全部楼层
Post by zhllg
提醒一点,make modules_install之后,直接make install来安装内核

是不是将#make && make modules_install 拆分成
#make modules_install
#make install
两个命令来运行?
Post by zhllg
还有硬件之外,文件系统也要看看

呵呵,谢版主提醒。^_^
回复 支持 反对

使用道具 举报

发表于 2006-9-30 12:48:26 | 显示全部楼层
Post by ljx980645
是不是将#make && make modules_install 拆分成
#make modules_install
#make install
两个命令来运行?

呵呵,谢版主提醒。^_^


是三个命令:
#make && make modules_install && make install
回复 支持 反对

使用道具 举报

发表于 2006-9-30 13:09:34 | 显示全部楼层
Post by ljx980645
是不是将#make && make modules_install 拆分成
#make modules_install
#make install
两个命令来运行?

不是
是三个命令
make && make modules_install && make install
作用分别是
编译内核和模块
安装模块
安装内核
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-1 00:40:12 | 显示全部楼层
全明白了,谢谢大家热心支持,,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-2 14:01:22 | 显示全部楼层
今天重装了一遍
首先要赞一个,make defconfig 很好用,只是根据自己的硬件和使用的文件系统作了一点点改动,编出来的内核感觉很轻快.....编译时间也少了很多。
但这次安装仍然有这个问题,就是emerge grub后还是把/boot下的文件全弄没了,
本来make && make modules_install && make install 已经装了好些文件在/boot下的,结果还是丢了,没办法,只好重编了一次内核,不清楚到底为什么会这样。

另外,用make defconfig 编译内核的话,编译完用手册的那个find命令查可用模块(*.o  *.ko),竟然只有一个模块(s2io.ko),以前显示很多的,而且这个模块好象在livecd用lsmod查看的结果里面都没有它的,这样一来,我就无法在 /etc/modules.autoload.d/<kernel-version> 里设置开机自动加载哪些模块了,
请问下,这个设置开机自动加载哪些模块是不是非必需的?设了有什么好坏处?不设又有什么好坏处呢?这个设置是不是针对可卸载模块(ko)而言,而对内核模块(o)没意义呢?例如我想加载的那些模块在编译内核的时候都编进去了,这个就不用设了吧?

重新编译内核我没有使用 make install 命令,只用了前两者,然后cp bzImage 到 /boot 下,reboot 似乎也没有不妥,那么 make install 不就没有必要了吗?这个命令是不是只生成了一些文件到 /boot 并将内核影象与引导程序关联起来?使用这个命令比不使用有什么好处吗?
回复 支持 反对

使用道具 举报

发表于 2006-10-2 14:14:38 | 显示全部楼层
请问下,这个设置开机自动加载哪些模块是不是非必需的?设了有什么好坏处?不设又有什么好坏处呢?这个设置是不是针对可卸载模块(ko)而言,而对内核模块(o)没意义呢?例如我想加载的那些模块在编译内核的时候都编进去了,这个就不用设了吧?

我的理解是:autoload.d等同于开机自动modprobe xx,编译进内核的,就已经不是模块了,因此不需要加载,编译成模块的,不用到的话是不会加载的,想用的时候再加载。如果每次都用,又想开机自动加载,就把这个模块写进autoload.d就行的。

我觉得一些以后可能会用到的模块,最好也编译成模块,这样想用的话就modprobe或者加进autoload.d,不然每次都要编译一次内核,很麻烦。

至于是否有必要在autoload.d里面设置模块,看你编译的时候怎么编的了,我是习惯把用到的都编译进内核,所以我几乎不用这个。唯一一个用到的就是我之前把ipv6编译成模块了,现在XGL竟然要ipv6模块来监听端口,不加载的话就会出错,所以我的autoload.d里面有了个ipv6。

希望有帮助。
回复 支持 反对

使用道具 举报

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

本版积分规则

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