主题 : 4.3.2交叉编译器的arm-linux-objcopy命令生成的内核bin文件非常大 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 5168
精华: 0
发帖: 81
金钱: 555 两
威望: 321 点
综合积分: 162 分
注册时间: 2009-04-12
最后登录: 2014-10-29
楼主  发表于: 2010-07-29 23:58

 4.3.2交叉编译器的arm-linux-objcopy命令生成的内核bin文件非常大

我用友善之臂的4.3.2交叉编译器的arm-linux-objcopy -O binary -S vmlinux  zImage来生成内核的bin文件时,生成的bin文件zImage却有3228296352(3228M多)个字节,而vmlinux本身只有8293829(8M多)。不知道这是怎么回事。我在MIPS的平台下测试objcopy生成的bin文件发现bin文件比vmlinux的elf格式文件小,证明友善之臂的4.3.2的交叉编译器中objcopy生成的bin文件不对,不知道是不是交叉编译器的问题。还请各位帮忙分析一下,有没有碰到这种问题。谢谢!
root@ubuntu:/samba_share/kernel/linux-2.6.29.1-20100702-ramfs# ls -l vmlinux
-rwxr-xr-x 1 root root 8293829 2010-07-24 19:55 vmlinux
root@ubuntu:/samba_share/kernel/linux-2.6.29.1-20100702-ramfs# arm-linux-objcopy -O binary -S vmlinux  zImage
root@ubuntu:/samba_share/kernel/linux-2.6.29.1-20100702-ramfs# ls -l zImage
-rw-r--r-- 1 root root 3228296352 2010-07-29 08:57 zImage
root@ubuntu:/samba_share/kernel/linux-2.6.29.1-20100702-ramfs# file vmlinux
vmlinux: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
root@ubuntu:/samba_share/kernel/linux-2.6.29.1-20100702-ramfs# file zImage
zImage: X11 SNF font data, LSB first
root@ubuntu:/samba_share/kernel/linux-2.6.29.1-20100702-ramfs#
非学无以广才,非志无以成学。--诸葛亮《诫子书》
级别: 侠客
UID: 5168
精华: 0
发帖: 81
金钱: 555 两
威望: 321 点
综合积分: 162 分
注册时间: 2009-04-12
最后登录: 2014-10-29
1楼  发表于: 2010-07-30 12:00
objcopy命令没使用对,参考了内核源码下Makefile中的生成zImage等脚本发现,arm-linux-objcopy -O binary -R .note -R .note.gnu.build-id -R .comment -S vmlinux  zImage命令能够去掉内核中的一些.note 等信息。
非学无以广才,非志无以成学。--诸葛亮《诫子书》