技术标签: Linux 正点原子 Linux学习笔记 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脚本。
输入以下内容
#!/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的完整的。
由于shell脚本中第一行命令时清除编译生成的文件,如果自己修改过内核后,再次执行shell脚本,就会将自己的设置内容也清理掉。所以如果修改过内核后,就不能使用清理命令,要重新编译就只能执行后面两句命令。可以在shell脚本中屏蔽掉第一句命令,也可以直接输入make命令来编译,但是在输入make命令的时候,还需要指定系统架构ARCH和使用的编译器CROSS_COMPILE的值。为了方便操作,可以直接在Makefile文件中将这两个值写死。
打开Makefile文件
在250行添加
ARCH = arm
CROSS_COMPILE = arm-linux-gnueabihf-
保存退出,下来就可以使用make命令来编译了。
编译成功后,下来就可以将官方的配置文件相关名字改成自己的名字了。
首先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文件也需要重命名
下来要修改Makefile文件中的内容
要修改生产的.o文件名。
将.o文件名修改为 mx6ull_myuboot_emmc.o
接着修改imximage.cfg 文件中的内容
要将文件夹路径修改为自己的。
接下来修改Kconfig 文件
将里面的字符串内容修改为自己的内容
第一行TARGET文件名就是刚开始在配置文件里面设置的文件名。
接下来修改MAINTAINERS 文件
修改里面的文件夹路径和头文件路径。
修改头文件
这里设置的这个文件夹和配置文件已经存在了,但是这个.h头文件还不存在。需要去添加这个头文件。
进入到 include --- configs 文件夹中,复制头文件并重命名
然后打开头文件
修改头文件中的条件编译
接下来还需要修改图形界面配置
进入到/arch/arm/cpu/armv7/mx6 文件夹中
修改Kconfig 文件。
在207行添加自己板子的信息
在最后一行添加配置文件路径
需要修改的文件已经修改好了。
下来就可以使用shell命令编译自己的uboot了。
编译结果如下
为了验证自己的配置是否成功,可以使用字符串查找命令检查自己的头文件
grep -nR "mx6ull_myuboot_emmc.h"
检查自己的这个头文件是否被其他文件引用了。
可以看到自己的头文件被很多文件引用了,说明自己移植的uboot是成功的。
下面将uboot.bin文件烧写到SD卡中。
给SD卡烧写前,现将SD卡格式化一次。
将imxdownload 烧写软件复制到当前文件夹中。
接下来向SD卡烧写u-boot.bin
将SD卡插入到开发板中,打开串口终端,重启开发板。
可以看到系统的编译时间就是刚才编译的时间,说明自己的uboot系统已经移植成功了,不过由于还未设置LCD显示和网络,所以这里显示屏和网络报错了。
文章浏览阅读3.8k次,点赞33次,收藏70次。接受平凡,努力出众,承认普通,但拒绝沉沦于平庸。大家好,我是你们的老朋友,小KK。存储系统基本概念存储器的层次结构_dram的地址线复用技术
文章浏览阅读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
文章浏览阅读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.黄赤交角意义_行测常识地理常识
文章浏览阅读7.3k次,点赞3次,收藏8次。问题:ubuntu开机后就一直停留在这个界面: 之前很少用Linux,网上找了不少资料,对于我的情况只有这篇文章VMware Ubuntu进不入系统解决了我的问题,但我并没有用startx。由于经常出现这个问题,在这里记录一下。解决办法:重启系统,按shift键进入GRUB界面,选择recovery mode,在recovery menu中选择resume,之后就可以登录ubu..._virtualbox 7.0安装ubuntu重启之后卡在开始界面
文章浏览阅读943次。打开hosts文件:185.199.109.153 youzan.github.io185.199.111.153 mint-ui.github.io185.199.111.153 elemefe.github.io_mint 软件管理器打不开
文章浏览阅读2k次。右击项目名|选择属性properties|在左边列表内选择“Java Build Path”|在右边选项卡用选择“source”|点开项目名前的“+”号,选择“Native library location”,“Edit”选择上面dll路径。(当然如果将dll拷贝到workspace下也可以用相对路径。也可右击“src”设定其properties内Native Library项。)..._system.loadlibrary 路径
文章浏览阅读729次。1 粗看STL程序=数据结构+算法数据结构:容器Containers算法:Algorithms容器和算法在C++标准库中给了定义,要看懂,要会用,要常用。2 C++11有助于使用的三个主题2.1 variadic templates,数量不定的模板参数语法:typename…,这三个点已经成为了语言的一部分。void print(){}template<typena..._侯捷的算法与数据结构
文章浏览阅读333次。通过命令创建的项目不能直接导入到myEclipse中需要转换为myEclipse项目 如下:cd hellomavenmvn clean compile 进入项目目录,重新编译 然后转换为Eclipse项目Eclipse 为:mvn eclipse:eclipse Myeclipse 为:mvn eclipse:myeclipse这样就可以导入到eclipse_maven导入myeclipse
文章浏览阅读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
文章浏览阅读3.3w次,点赞19次,收藏57次。最近正在使用vscode进行编程,为了更便利的对项目实施管理,同时利于后期维护,为一个版块添加注释是非常有必要的。实践出真知,以下是对于插件koroFileHeader的简单使用说明。打开vscode,选择Extensions搜索koroFileheader进行安装在vue文件中,使用快捷键ctrl + Alt + i/t,可以看到当前默认设置内容根据需要修改默认设置1.选择File-..._vscode 显示汉字注释
文章浏览阅读467次。将脚本放在底部。\还是放在head中,用以保证在js加载前,能加载出正常显示的页面。\<script>标签放在\前成组脚本:由于每个\<script>标签下载时阻塞页面解析过程,所以限制页面的\<script>总数也可以改善性能。适用于内联脚本和外部脚本。非阻塞脚本:等页面完成加载后,再加载js代码。也就是,在window.onload事件发出..._引用外部scripts 无阻塞请求