【发布时间】:2012-01-12 10:17:06
【问题描述】:
我的 x86 Linux 上有一个用于嵌入式系统 (mipsel) 的交叉编译工具链。我知道如何为它构建一个自定义内核(我们称之为“vmlinux”)以及如何通过
objcopy -S -O binary vmlinux vmlinux.bin
为了进一步处理,我还需要图像的加载地址和入口点。 在剥离之前,通过scripts/mksysmap 或更明确地说,通过
nm -n vmlinux | grep -v '\( [aNUw] \)\|\(__crc_\)\|\( \$[adt]\)' > System.map
然后我可以通过
确定加载地址和入口点awk '/A _text/ { print "0x"$1; }' < _System.map
awk '/T kernel_entry/ { print "0x"$1; }' < System.map
现在的挑战是,有时我不自己构建内核,而是在 已经通过 objcopy 剥离其符号后获得一个预构建的内核.谁能告诉我该怎么做?我对内核构建和工具链的使用不是很精通。 nm 和 objdump 都不喜欢剥离的图像,说
vmlinux.bin: File format not recognized
【问题讨论】:
标签: linux-kernel embedded-linux entry-point symbol-tables nm