LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 896|回复: 9

第一次编译内核成功,但是有几个小问题

[复制链接]
发表于 2008-12-16 15:00:46 | 显示全部楼层 |阅读模式
昨天下午到昨天中午,终于成功编译内核了.汗.....时间挺长,因为编译了十几次呢...

2.6以后的内核编译真的很简单 执行:make mrproper && make menuconfig && make && make modules_install
把后把/usr/src/linux/arch/x86/boot/bzImage文件复制到/boot目录里,设置一下LILO就可以了.
编译后启动时间提高了十秒,文件体积也减小了一半,占用内存少了5M左右,的确很爽

编译后又有了新的问题要请教大家

1.)编译完成后,在源码boot目录里生成了vmlinux.bin和vmlinux.bin是干啥用的?
2.)make modules_install的过程是把内核的挂接的模块放到/usr/lib/modules里面,那么,如果编译内核之前生成的东西是不是就没有必要,生成了垃圾文件?这些垃圾文件该如何处理?
3.)我最终生成的内核文件,可不可以直接复制到其它的linux下运行?省去编译的时间?
发表于 2008-12-16 15:06:42 | 显示全部楼层
你要看slackware怎么打包的。去看源码吧。
我记得是放到/lib/modules下面的。

感叹你的耐心,编译源码是个苦差事。你记得要备份好自己的config文件。以后就省事了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-16 15:39:05 | 显示全部楼层
呵呵,我已经把.config备份到邮箱的硬盘上了
回复 支持 反对

使用道具 举报

发表于 2008-12-16 16:15:46 | 显示全部楼层
对啊,听ginkgo的话,配置好config后,用SlackBuild来打内核
回复 支持 反对

使用道具 举报

发表于 2008-12-16 20:37:02 | 显示全部楼层
Post by 心之语;1924712


编译后又有了新的问题要请教大家

1.)编译完成后,在源码boot目录里生成了vmlinux.bin和vmlinux.bin是干啥用的?
2.)make modules_install的过程是把内核的挂接的模块放到/usr/lib/modules里面,那么,如果编译内核之前生成的东西是不是就没有必要,生成了垃圾文件?这些垃圾文件该如何处理?
3.)我最终生成的内核文件,可不可以直接复制到其它的linux下运行?省去编译的时间?


对于问题1:我自己编译的时候没出现过这两个文件……倒是有 vmlinuz-$KERNEL-VERSION,那个是编译出来的内核镜像的压缩文件。$KERNEL-VERSION 是自己内核的版本~~
对于问题2:模块是安装到 /lib/modules/$KERNEL-VERSION/ 下面。(注意前面没有/usr)编译的时候会有中间文件生成,但是他们都会在源码目录下面,不会安装到系统里。可以用 make clean 清理~ 具体的可以 make help 试试~ ;)
对于问题3:没试过…… 可能可以吧……呵呵~
回复 支持 反对

使用道具 举报

发表于 2008-12-16 22:17:02 | 显示全部楼层
Post by 心之语;1924712
昨天下午到昨天中午,终于成功编译内核了.汗.....时间挺长,因为编译了十几次呢...

2.6以后的内核编译真的很简单 执行:make mrproper && make menuconfig && make && make modules_install
把后把/usr/src/linux/arch/x86/boot/bzImage文件复制到/boot目录里,设置一下LILO就可以了.

别忘了复制 System.map,lilo.conf 也有需要更新
编译后启动时间提高了十秒,文件体积也减小了一半,占用内存少了5M左右,的确很爽
这要视乎 gcc 版本及编译參数而定
编译后又有了新的问题要请教大家

1.)编译完成后,在源码boot目录里生成了vmlinux.bin和vmlinux.bin是干啥用的?
2.)make modules_install的过程是把内核的挂接的模块放到/usr/lib/modules里面,那么,如果编译内核之前生成的东西是不是就没有必要,生成了垃圾文件?这些垃圾文件该如何处理?
第一条问题,只知道这是用来生成 bzImage 用的,具体是如何做,现在不详,研究中。。。
第二条问题,指中途生成的 object files 吗?其实安装好新内核以後,这些东西包括源码树都可以不要了
Post by 心之语
3.)我最终生成的内核文件,可不可以直接复制到其它的linux下运行?省去编译的时间?
是可以的,当然,应该把 System.map 及相关的模组一起拷贝,再对 lilo.conf 或 menu.lst 作适当配置
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-16 23:01:03 | 显示全部楼层
谢谢楼上三位的解答!
to:d00m3d
System.map我在网上看说这个文件是过时的了,已经不再需要,我就没有保存

第二条问题,指中途生成的 object files 吗?其实安装好新内核以後,这些东西包括源码树都可以不要了

是指make modules_install之前/usr/lib/modules里已经存在的老的模块,会不会有一些垃圾文件永远也用不到?

再者,如果我只把bzImage复制走的话,/usr/lib/modules里的配套的东西是不是也得一起带走?/usr/lib/modules的东西再一个个整出来估计很麻烦...
回复 支持 反对

使用道具 举报

发表于 2008-12-17 04:55:18 | 显示全部楼层
Post by 心之语;1924947
谢谢楼上三位的解答!
to:d00m3d
System.map我在网上看说这个文件是过时的了,已经不再需要,我就没有保存
有此说法麽,可有连结否?
是指make modules_install之前/usr/lib/modules里已经存在的老的模块,会不会有一些垃圾文件永远也用不到?
不同的内核版本,其模块是装在各自的目录下,各不相扰的,我自己习惯将旧内核保留,待新内核运作一段时间确实无误才把旧版去掉,因为新不如旧并不稀奇。
再者,如果我只把bzImage复制走的话,/usr/lib/modules里的配套的东西是不是也得一起带走?/usr/lib/modules的东西再一个个整出来估计很麻烦...
覆制文件时可自带後叙来区分版本,可參考 LFS 手册的做法

http://www.linuxfromscratch.org/ ... apter08/kernel.html

关於模块,就把整个对应内核版本的目录打包好了

Btw,模块应该是装在 /lib/modules 里的吧!

卖卖广告,日後如果经常调试内核的话,可用这招:
http://www.linuxsir.cn/bbs/thread335331.html
回复 支持 反对

使用道具 举报

发表于 2008-12-17 09:06:26 | 显示全部楼层
Post by d00m3d;1925015
有此说法麽,可有连结否?


System.map不需要了?我也想确定一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-17 10:52:31 | 显示全部楼层
非常感谢,刚才上网找了一下System.map那篇文章找不到了,为了安全起见,我还是两个一起备份了

谢谢版主大人,过两天我再重装一次试试
回复 支持 反对

使用道具 举报

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

本版积分规则

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