我正在尝试在 Xeon-phi 上启动自定义内核,而不是默认的 Linux 内核。在此链接上,我找到了一种交叉编译内核的方法,该内核使用 k1om-mpss-linux-gcc 交叉编译器成功编译。交叉编译是否足够?我得到错误
mykernel.img 不是 k1om Linux bzImage
编辑:所以,我使用 /usr/linux-k1om-4.7/bin/x86_64-k1om-linux-gcc 编译器来编译一个简单的 helloworld.c 程序和内核源代码。我在可执行文件上得到了 objdump -f 的两种不同类型的结果。
对于 helloworld.c:
hello: file format elf64-k1om
architecture: k1om, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x0000000000400400
对于我的内核:
mykernel: file format elf32-i386
architecture: i386, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x0010000c
我使用相同的编译器编译,但它们显示不同的架构。这是什么原因?