1)要使用正确的头文件. GCC编译器要使用/usr/include 中的都文件
因此要用软链接把要实际用到的头文件 链接到/usr/include中. like
ln -s /usr/src/linux/include/asm-i386 asm
ln -s /usr/src/linux/include/linux linux
ln -s /usr/src/linux/include/scsi scsi
2) 配置一些编译选项
make config 或
make menuconfig (推荐) 或
make xconfig
3) make dep 主要是用于根据用户的配置来设置源代码的相关性 (.depend 文件)
4) make vmlinux | tee vmlinux.txt (即在屏幕上输出又在vmlinux.txt中保存)
注意以下结果
ar (生成一些库文件)
ld (根据.a 和. o文件最终生成 所需要的二进制vmlinux)
nm vmlinux | grep -v '\(compiled\)\|\(\.o$\)\|\( [aU] \)\|\(\.\.ng$\)\|\(LASH[RL]DI\)' | sort > System.map
在System.map中包含如下的输出
c01000a4 t checkCPUtype
c0100139 t is486
c0100148 t is386
c01001b2 t L6
c01001b4 t ready
c01001b5 t check_x87
c01001de t setup_idt
c01001fb t rp_sidt
c0100208 T stack_start
c0100210 t int_msg
c0100224 t ignore_int
现在的linux内核在编译完成之后,一般会在/boot目录下有以下几个文件(这些文件是cp)
System.map
initrd
vmlinuz
阅读(1663) | 评论(0) | 转发(0) |