查看完整版本: [-- 如何使用dtb方式启动内核 --]

QTCN开发网 -> 其它技术开发讨论区 -> 如何使用dtb方式启动内核 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

fly0418 2015-04-22 14:02

如何使用dtb方式启动内核

    本期TQ335X技术教程,由技术博主girlkoo编写,主要使用dtb方式启动LINUX内核的过程。采用DTB方式启动LINUX内核,主要在于使用dtb可以减少linux内核版本的数量。同一份linux 内核代码可以在多个板卡上运行,每个板卡可以使用自己的dtb文件。
  老式的u-boot使用ATAGS的方式启动linux内核,本文使用新式的dtb方式启动内核。
  我使用的内核是linux-3.17.2版本,下面开始编译内核。

  (1) 解压内核
  1. tar jxf linux-3.17.2.tar.bz2

   (2)配置linux内核,由于am335x在内核中都归为omap2系列,故可以使用如下命令:

  1. make ARCH=arm omap2plus_defconfig
   (3)编译内核:

  1. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8


我的linux工具链前缀是arm-linux-gnueabi-,这个需要根据自己的实际的工具链情况进行替换。

  (4)编译dtb:
  1. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- am335x-evm.dtb


    (5)制作启动盘:
  将SD格式化为FAT系统,将MLO、u-boot.img拷贝到根目录下。
  在根目录下创建boot目录,将编译好的zImage和am335x-evm.dtb拷贝到该目录下。

  (6)u-boot命令行启动Linux内核
  1. load mmc 0 0x88000000 /boot/am335x-evm.dtb  
    load mmc 0 0x82000000 /boot/zImage  
    bootz 0x82000000 - 0x88000000


至此,Linux内核就能启动了。

  (7)小结

  从启动Log上分析,现在内核无法挂在根文件系统,在下一篇文章中,我会制作根文件系统。









查看完整版本: [-- 如何使用dtb方式启动内核 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled