1:进入内核根目录,Makefile中,修改体系结构ARCH和交叉编译器前缀CROSS_COMPILE
ARCH ?=arm
CROSS_COMPILE ?=交叉编译器的目录 /arm-none-linux-gnueabi-
2:生成.config文件
make smdkv210_android_defconfig (用的SMDKV210板)
3:配置内核,修改串口:make menuconfig
system type--->
(0) SSC UART to use for low-level message
kernel hacking--->
(0) SSC UART to use for low-level debug
4:确定机器码:
打开 arch/arm/tools/mach-types,大概在433行左右,查看下机器码,确定。
(SMDKV210板是2456)
5:确定内核的加载地址和参数地址:
打开 arch/arm/mach-s5pv210/Makefile.boot 文件(SMDKV210板)
查看,确定。
6:编译内核:
make zImage -j 4
-j 4确定了内核编译时的线程数,线程数越多,内核编译越快。
映像zImage生成在/arch/arm/boot下
7:make menuconfig——>kernel hacking——>show timing information on printks
即加上时间戳,重新编译下载启动内核。
8:设置U-boot的机器码:
在U-boot下 setenv machid 刚才的机器码
saveenv
9:通过tftp把zImage cp到板子的tftpboot下
在U-boot下 tftp 刚才查看的起始地址 zImage
10:引导内核
bootzImage
(有时会出现machid正确,但内核的引导信息出错。可能是我们在设置U-boot时把内核的电源管理启动去掉了。同样,我们也应该在内核中把电源管理驱动去掉。(去掉方法不再这里描述))。
重新编译启动内核——————>即内核配置的基本过程。