Linux学习笔记---移植官方uboot步骤(一)_uboot修改默认配置文件-程序员宅基地

技术标签: Linux  正点原子  Linux学习笔记  uboot  官方  移植  

目录

编写shell脚本

修改MakeFile文件

重命名shell脚本

添加默认配置文件

修改默认配置文件

准备需要的板级文件夹

重命名.C文件

修改Makefile

修改imximage.cfg配置文件

修改Kconfig文件

修改MAINTAINERS 文件

修改uboot图形配置界面

编译自己的uboot

      使用的开发板是正点原子IMX6U-MINI  EMMC512M的开发板,这个板子也是移植的NXP官方uboot,所以这里就直接从NXP官方的ubbot移植。

      这里所说的移植,其实不是自己编写驱动文件等,只是简单的将官方uboot中的相关配置文件和文件名修改为自己的名字而已。

     首先在Ubuntu系统中新建一个文件夹存放自己要移植的uboot系统。

     使用ftp工具将NXP官方的uboot压缩包发送到Ubuntu系统中uboot文件夹中。

将uboot压缩包拷贝到uboot文件夹中,这里面的alientek_uboot文件夹是正点原子移植后的uboot。

在boot文件夹中解压uboot压缩包

tar -vxif uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2

解压完成后就会将uboot解压到一个文件夹中

将解压后的这个文件夹重命名。

将文件夹重命名为my_uboot,然后就可以删除ubbot的压缩包了。

使用cd命令进入到uboot文件夹

首先可以编译一下官方的uboot,验证一下自己下载的系统是否正常。

编写shell脚本

新建一个shell脚本。

输入以下内容

#!/bin/bash

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

make      ARCH=arm    CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- V=1 -j4

 

V=1 表示显示编译的过程,如果不想显示编译过程,就可以不要V=1。

这里最后的-j4 指的就是使用4核编译,自己的电脑有几核就设置为几。

电脑是几核可以在任务管理器里面查看

CPU使用记录那里有几个小窗口电脑就是几核的,这里有8个,就代表电脑是8核。创建虚拟机的时候,给虚拟机分配了一半,所以虚拟机就是4核。

给shell脚本设置可执行权限

运行shell脚本

编译完成

说明下载的官方uboot的完整的。

修改MakeFile文件

由于shell脚本中第一行命令时清除编译生成的文件,如果自己修改过内核后,再次执行shell脚本,就会将自己的设置内容也清理掉。所以如果修改过内核后,就不能使用清理命令,要重新编译就只能执行后面两句命令。可以在shell脚本中屏蔽掉第一句命令,也可以直接输入make命令来编译,但是在输入make命令的时候,还需要指定系统架构ARCH和使用的编译器CROSS_COMPILE的值。为了方便操作,可以直接在Makefile文件中将这两个值写死。

打开Makefile文件

在250行添加

ARCH = arm

CROSS_COMPILE = arm-linux-gnueabihf-

保存退出,下来就可以使用make命令来编译了。

编译成功后,下来就可以将官方的配置文件相关名字改成自己的名字了。

重命名shell脚本

首先shell脚本复制一份,改为自己的名字。

将自己的shell脚本名字改为mx6ull_myuboot_emmc.sh

修改shell脚本配置文件

打开自己的shell脚本,修改配置文件。

将第二行命令中的配置文件名修改为

mx6ull_myuboot_emmc_defconfig

修改好之后,保存退出。

添加默认配置文件

由于我们目前还没有这个配置文件,所以要去复制一份官方的配置文件,然后改成自己的名字。这个配置文件在configs目录中。

修改默认配置文件

下面打开这个配置文件

可以看到这个配置文件中有一个文件夹,也需要将官方这个改为自己的文件夹。

将配置文件中的文件夹名字改为 mx6ull_myuboot_emmc,然后保存退出。

准备需要的板级文件夹

接下来就去准备这个文件夹,进入到board --- freescale 文件夹中。

将官方的mx6ulleck文件夹复制一份,重命名为 mx6ull_myuboot_emmc

下面进入到mx6ull_myuboot_emmc文件夹中

重命名.C文件

这个里面的c文件也需要重命名

修改Makefile

下来要修改Makefile文件中的内容

要修改生产的.o文件名。

将.o文件名修改为 mx6ull_myuboot_emmc.o

修改imximage.cfg配置文件

接着修改imximage.cfg 文件中的内容

要将文件夹路径修改为自己的。

修改Kconfig文件

接下来修改Kconfig 文件

将里面的字符串内容修改为自己的内容

第一行TARGET文件名就是刚开始在配置文件里面设置的文件名。

修改MAINTAINERS 文件

接下来修改MAINTAINERS 文件

修改里面的文件夹路径和头文件路径。

修改头文件

这里设置的这个文件夹和配置文件已经存在了,但是这个.h头文件还不存在。需要去添加这个头文件。

进入到 include --- configs 文件夹中,复制头文件并重命名

然后打开头文件

修改头文件中的条件编译

修改uboot图形配置界面

接下来还需要修改图形界面配置

进入到/arch/arm/cpu/armv7/mx6 文件夹中

修改Kconfig 文件。

在207行添加自己板子的信息

在最后一行添加配置文件路径

需要修改的文件已经修改好了。

编译自己的uboot

下来就可以使用shell命令编译自己的uboot了。

编译结果如下

为了验证自己的配置是否成功,可以使用字符串查找命令检查自己的头文件

grep -nR "mx6ull_myuboot_emmc.h"

检查自己的这个头文件是否被其他文件引用了。

可以看到自己的头文件被很多文件引用了,说明自己移植的uboot是成功的。

下面将uboot.bin文件烧写到SD卡中。

给SD卡烧写前,现将SD卡格式化一次。

将imxdownload 烧写软件复制到当前文件夹中。

接下来向SD卡烧写u-boot.bin

将SD卡插入到开发板中,打开串口终端,重启开发板。

可以看到系统的编译时间就是刚才编译的时间,说明自己的uboot系统已经移植成功了,不过由于还未设置LCD显示和网络,所以这里显示屏和网络报错了。

下一篇:Linux学习笔记---移植官方uboot步骤(二)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_20222919/article/details/115971163

智能推荐

计算机组成原理<五>——存储系统_dram的地址线复用技术-程序员宅基地

文章浏览阅读3.8k次,点赞33次,收藏70次。接受平凡,努力出众,承认普通,但拒绝沉沦于平庸。大家好,我是你们的老朋友,小KK。存储系统基本概念存储器的层次结构_dram的地址线复用技术

visual studio 2015 key vs2015密钥_vs2015 license-程序员宅基地

文章浏览阅读1.2k次。VS过了30天试用,一直提示lincense过期。找到两个vs2015的license,亲测可用。Visual Studio Professional 2015简体中文版(专业版)KEY:HMGNV-WCYXV-X7G9W-YCX63-B98R2Visual Studio Enterprise 2015简体中文版(企业版)KEY:HM6NR-QXX7C-DFW2Y-8B82K-WTYJV..._vs2015 license

分页器-DRF-自定义分页器给APIView视图类使用_rdf 自定义分页-程序员宅基地

文章浏览阅读8k次。APIView使用的分页器,给APIView定制的分页器,DRF自定义分页器,给APIView自定义分页器,APIView如何使用分页器,APIView怎么才能使用分页器,APIView使用分页器_rdf 自定义分页

【笔记】行测——常识判断之地理常识总结与归纳(一)_行测常识地理常识-程序员宅基地

文章浏览阅读956次。第一章 自然地理一、太阳系(一)八大行星(二)太阳1.太阳能2.太阳黑子3.太阳风4.极光5.天文单位6.光年(三)太阳内部结构(四)月球(五)日食和月食1.日食成因时间类型过程观测2.月食成因时间类型二、地球(一)经线和纬线1.经线2.东西半球分界线3.纬线4.赤道5.回归线6.北回归线7.极圈(二)自转和昼夜交替1.地球自转2.意义(三)时区和时差1.日更线2.时区3.时差(四)公转与四季更替1.地球公转2.黄赤交角意义_行测常识地理常识

Virtualbox开机ubuntu,一直停留在ubuntu logo界面_virtualbox 7.0安装ubuntu重启之后卡在开始界面-程序员宅基地

文章浏览阅读7.3k次,点赞3次,收藏8次。问题:ubuntu开机后就一直停留在这个界面: 之前很少用Linux,网上找了不少资料,对于我的情况只有这篇文章VMware Ubuntu进不入系统解决了我的问题,但我并没有用startx。由于经常出现这个问题,在这里记录一下。解决办法:重启系统,按shift键进入GRUB界面,选择recovery mode,在recovery menu中选择resume,之后就可以登录ubu..._virtualbox 7.0安装ubuntu重启之后卡在开始界面

mint-ui 打不开解决办法_mint 软件管理器打不开-程序员宅基地

文章浏览阅读943次。打开hosts文件:185.199.109.153 youzan.github.io185.199.111.153 mint-ui.github.io185.199.111.153 elemefe.github.io_mint 软件管理器打不开

随便推点

Eclipse中java项目引用dll库的路径设置(System.loadLibrary()调用Dll路径问题)-程序员宅基地

文章浏览阅读2k次。右击项目名|选择属性properties|在左边列表内选择“Java Build Path”|在右边选项卡用选择“source”|点开项目名前的“+”号,选择“Native library location”,“Edit”选择上面dll路径。(当然如果将dll拷贝到workspace下也可以用相对路径。也可右击“src”设定其properties内Native Library项。)..._system.loadlibrary 路径

C++学习15:侯捷C++标准库和C++11入门_侯捷的算法与数据结构-程序员宅基地

文章浏览阅读729次。1 粗看STL程序=数据结构+算法数据结构:容器Containers算法:Algorithms容器和算法在C++标准库中给了定义,要看懂,要会用,要常用。2 C++11有助于使用的三个主题2.1 variadic templates,数量不定的模板参数语法:typename…,这三个点已经成为了语言的一部分。void print(){}template<typena..._侯捷的算法与数据结构

maven项目导入myeclipse_maven导入myeclipse-程序员宅基地

文章浏览阅读333次。通过命令创建的项目不能直接导入到myEclipse中需要转换为myEclipse项目 如下:cd hellomavenmvn clean compile 进入项目目录,重新编译 然后转换为Eclipse项目Eclipse 为:mvn eclipse:eclipse Myeclipse 为:mvn eclipse:myeclipse这样就可以导入到eclipse_maven导入myeclipse

Cocos2d-JS环境配置教程-程序员宅基地

文章浏览阅读187次。最近感觉还有时间,就在CSDN上再写一篇,顺便把一些错误纠正,下面开始正文,这里的Cocos2d-JS是3.0版本。这里环境配置还是有一些坑的,希望可以帮到看博客的你。一、准备工作1.安装python2.7x,注意必须是2.7x,这里有的可能已经安装了python3.0版本,但是目前的v3.0bate版本有的地方不支持,所以必须是2.7x版本,链接:Python 2.7.62.下载Android..._local/x86/objs/cocos2djs/hellojavascript/main.o

VsCode插件,自动生成注释koroFileHeader_vscode 显示汉字注释-程序员宅基地

文章浏览阅读3.3w次,点赞19次,收藏57次。最近正在使用vscode进行编程,为了更便利的对项目实施管理,同时利于后期维护,为一个版块添加注释是非常有必要的。实践出真知,以下是对于插件koroFileHeader的简单使用说明。打开vscode,选择Extensions搜索koroFileheader进行安装在vue文件中,使用快捷键ctrl + Alt + i/t,可以看到当前默认设置内容根据需要修改默认设置1.选择File-..._vscode 显示汉字注释

JavaScript无阻塞加载具体方式-程序员宅基地

文章浏览阅读467次。将脚本放在底部。\还是放在head中,用以保证在js加载前,能加载出正常显示的页面。\<script>标签放在\前成组脚本:由于每个\<script>标签下载时阻塞页面解析过程,所以限制页面的\<script>总数也可以改善性能。适用于内联脚本和外部脚本。非阻塞脚本:等页面完成加载后,再加载js代码。也就是,在window.onload事件发出..._引用外部scripts 无阻塞请求

推荐文章

热门文章

相关标签