u-boot-2010.12引导内核启动过程记录

来源:互联网 发布:天猫双十一销售数据 编辑:程序博客网 时间:2024/05/29 18:06
 
资源
u-boot: tekkamanninja-u-boot-2010.12-for-MINI6410-9d3c951.tar.gz
Linux内核:友善之臂提供的linux-2.6.38-20110325.tar.gz

步骤一(U-Boot部分)
1. 解压u-boot后,打开,gedit Makefile,ctrl + F ,输入CROSS,找到交叉编译工具所在部分,修改为:CROSS_COMPILE = arm-linux-。然后保存退出。
2. gedit include/configs/mini6410.h,
line 222
  1. #ifdef CONFIG_ENABLE_MMU
  2. #define CONFIG_SYS_MAPPED_RAM_BASE 0xc0000000
  3. #define CONFIG_BOOTCOMMAND "nand read 0xc0018000 0x80000 0x500000;" \
  4. "bootm 0xc0018000"
  5. #else
  6. #define CONFIG_SYS_MAPPED_RAM_BASE CONFIG_SYS_SDRAM_BASE
  7. #define CONFIG_BOOTCOMMAND "nand read 0x50018000 0x80000 0x500000;" \
  8. "bootm 0x50018000"
  9. #endif
line 297
  1. #define CONFIG_BOOTARGS "= root=ubi0:FriendlyARM-root ubi.mtd=2 rootfstype=ubifs init=/linuxrc console=ttySAC0,115200"
保存,退出。
3. make mini6410_config
   make
4. cp tools/mkimage /usr/bin
5. 把生成的u-boot-nand.bin拷贝到友善的SD卡images/Linux目录下,修改.ini文件中bootloader的名字为改名字。

步骤二(Linux内核部分)
1. cp config_mini6410_n43 .config
2. make zImage
3. 在arch/arm/boot目录下输入:
  1. root@jason: # mkimage -A arm -O linux -T kernel -C none -a 0x50018000 -e 0x50018040 -n "Jason Linux" -d zImage uImage
4. 注意与上面图片中的地址做区分,前面都是0x50018000,后面指定入口时略去前面64字节的头,变为0x50018040。另外我觉得这一步可以在内核的源码里配置,只是现在执行时生成的uImage加载地址与入口地址与不对,都是0x50008000, 不满足要求,具体在哪修改,有待进一步研究。现在已知arch/arm/mach-s3c64xx/Makefile.boot中修改加载地址(zreladdr-y:= 0x50018000)
5. 把生成的uImage拷贝到友善的SD卡images/Linux目录下,修改.ini文件中kernel的名字为改名字。如下图:
原创粉丝点击