LinuxSir.cn,穿越时空的Linuxsir!

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

如何由 vmlinuz 得到 vmlinux 文件?

[复制链接]
发表于 2007-9-24 17:52:30 | 显示全部楼层 |阅读模式
由于要使用 oprofile 对程序进行内核级 profile,需要指定 vmlinux 文件
但是 boot 文件夹下只有 vmlinuz 文件
我知道 vmlinuz 是用 gzip 压缩的,但是直接用 gzip 解压 vmlinuz 得不到 vmlinux
因为 vmlinuz 本身已经内嵌了 gzip 代码

那么应该如何由 vmlinuz 得到非压缩的 vmlinux 呢?
本机是一个生产机型,不能采取重编译内核的解决方案......
发表于 2009-2-26 12:13:11 | 显示全部楼层

这个问题解决了吗?共享一下经验啊!

这个问题解决了吗?共享一下经验啊!
回复 支持 反对

使用道具 举报

发表于 2009-2-26 19:01:47 | 显示全部楼层
从 vmlinuz 得到 vmlinux 基本不太可能.

从生成过程来说, vmlinuz 一般就是 bzImage, 它是通过 setup.bin, vmlinux.bin 等文件组装得到的, 具体过程在 x86 平台请参考 arch/x86/boot/tools/build.c 文件, 大体上就是把两个文件拼在一起, 虽然略有修改. vmlinux.bin 则是通过对 vmlinux 进行 objcopy 操作得到的, 这一步是不可逆的.

所以从 vmlinuz 得到 vmlinux.bin 是办得到的, 但是进一步得到 vmlinux 就不太现实了
回复 支持 反对

使用道具 举报

发表于 2009-2-27 17:12:23 | 显示全部楼层

我今天重编译生成了vmlinux.bin,也有一个vmlinux,不过这个vmlinux后面没有带版本号,

我今天重编译生成了vmlinux.bin,也有一个vmlinux,不过这个vmlinux后面没有带版本号,不知道一样不啊!


我用vtune的时候需要在/boot下面搜索vmlinux+版本号,但是该目录下只有"vmlinuz+版本后"
而这样重编译之后所得到的,是所要求的吗?
回复 支持 反对

使用道具 举报

发表于 2009-2-27 18:55:19 | 显示全部楼层
make install 的时候会自动重命名的
回复 支持 反对

使用道具 举报

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

本版积分规则

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