【TQ335X技术教程】如何使用dtb方式启动内核
2015-04-23 09:21
323 查看
本期TQ335X技术教程,由技术博主girlkoo编写,主要使用dtb方式启动LINUX内核的过程。采用DTB方式启动LINUX内核,主要在于使用dtb可以减少linux内核版本的数量。同一份linux 内核代码可以在多个板卡上运行,每个板卡可以使用自己的dtb文件。
老式的u-boot使用ATAGS的方式启动linux内核,本文使用新式的dtb方式启动内核。
我使用的内核是linux-3.17.2版本,下面开始编译内核。
(1) 解压内核
tar jxf linux-3.17.2.tar.bz2
(2)配置linux内核,由于am335x在内核中都归为omap2系列,故可以使用如下命令:
make ARCH=arm omap2plus_defconfig
(3)编译内核:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8
我的linux工具链前缀是arm-linux-gnueabi-,这个需要根据自己的实际的工具链情况进行替换。
(4)编译dtb:
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内核
load mmc 0 0x88000000 /boot/am335x-evm.dtb
load mmc 0 0x82000000 /boot/zImage
bootz 0x82000000 - 0x88000000
至此,Linux内核就能启动了。
(7)小结
从启动Log上分析,现在内核无法挂在根文件系统,在下一篇文章中,我会制作根文件系统。
老式的u-boot使用ATAGS的方式启动linux内核,本文使用新式的dtb方式启动内核。
我使用的内核是linux-3.17.2版本,下面开始编译内核。
(1) 解压内核
tar jxf linux-3.17.2.tar.bz2
(2)配置linux内核,由于am335x在内核中都归为omap2系列,故可以使用如下命令:
make ARCH=arm omap2plus_defconfig
(3)编译内核:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8
我的linux工具链前缀是arm-linux-gnueabi-,这个需要根据自己的实际的工具链情况进行替换。
(4)编译dtb:
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内核
load mmc 0 0x88000000 /boot/am335x-evm.dtb
load mmc 0 0x82000000 /boot/zImage
bootz 0x82000000 - 0x88000000
至此,Linux内核就能启动了。
(7)小结
从启动Log上分析,现在内核无法挂在根文件系统,在下一篇文章中,我会制作根文件系统。
相关文章推荐
- 【TQ335X技术教程】如何使用dtb方式启动内核
- AM335x(TQ335x)学习笔记——使用dtb方式启动内核
- AM335x(TQ335x)学习笔记——使用dtb方式启动内核
- 3.10内核中使用dtb的ramdisk启动方法
- [Mugeda HTML5技术教程之18]如何在Android应用中使用Mugeda动画内容
- [Mugeda HTML5技术教程之18]如何在Android应用中使用Mugeda动画内容
- wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的
- wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的
- Oracle技术之如何使用Leading提示改变表连接方式
- ImportNew 首页所有文章资讯Web架构基础技术书籍教程我要投稿更多频道 » 如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例
- 如何使用没有initrd的内核来启动U盘系统的几种方法
- wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的
- activity中如何获取service的运行状态? 使用startservice方式启动
- wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的
- wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的
- MyBatis学习教程(二)―如何使用MyBatis对users表执行CRUD操作
- 如何使用xmind绘制概念图——零起步教程
- 简要分析Uboot是如何启动内核
- 如何使用hugo搭建个人博客(三):添加follow与修改share的方式
- 如何使用线程池创建执行器对象(有3中常用方式)