当前位置:文档之家› imx6q BSP移植详细学习笔记

imx6q BSP移植详细学习笔记

Imx6q 详细学习笔记
开发环境:ubuntu 12.04.5 32位系统
开发板:天嵌TQIMX6Q开发板
需要的软件包:
gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.bz2(由天嵌提供)uboot-imx.tar.bz2
linux-2.6-imx.tar.bz2
busybox-1.21.0.tar.bz2
虚拟机 VMware 12
这些工具的下载地址为百度网盘,连接如下:
/s/1dETeap7
一、安装必备的工具
二、移植uboot
先将u-boot解压到工作目录,然后在终端下切换到uboot根目录。

由于这个版本的bsp是使用
令:
"mx6qsabresd"(如果没有改动的话,在277行),复制该行配置并添加在下面,然后修改为如下
是比较容易。

注意该部的所有操作均在mx6q_myimx6q.c中。

(1) 修改串口端子。

具体修改内容如下:
其中,CROSS_COMPILE是交叉编译工具链的前缀,根据自己的实际情况修改。

如果前面的步骤操作正确,uboot就可以顺利编译通过了
烧写启动
经过前面的移植工作,uboot已经可以正常运行在myimx6q开发板上了。

这个版本的uboot与之前版本的uboot编译出的目标文件不同,将sd卡插入到电脑,回到uboot根目录,具体的烧写指令如下:
三、移植内核系统。

准备工作
每次移植kernel的时候都会做的工作就是找到与当前开发板接近的config,其实uboot移植
的时候也是一样的。

由于myimx6q的芯片是imx6q的,所以,还是以mx6q_sabresd为例。

另外,自己动手移植BSP时应该充分使用官方文档,本人以为,以下文档是非常有用的:
(1) i.MX 6 BSP Porting Guide:该文档详细的记载了BSP移植的流程。

(2) i.MX 6 SABRE-SD Linux User's Guide:该文档详细的记载了各种启动介质的制作方法。

在第二份文章中搜索defconfig,就可以找到imx6q使用的config文件是:imx_v7_defconfig,如果直接在arch/arm/configs目录下grep搜索MX6Q的话,可以搜到三个文件,其实也是可以确认使用哪个配置文件比较合适的。

确定好了配置文件,接下看就开始内核移植。

本文的目前不是移植好所有的驱动,而是先让内
核能够在myimx6q开发板上跑起来,接下来再去慢慢各个击破驱动。

Step1.定制DTS
使用了新的DTB方式传递内核参数。

为此,需要配置内核,关闭老式ATAGS方式内核参数传递
修改并保存内核配置项之后就可以尝试编译内核了:
烧写镜像
内核编译完成后可以得到内核镜像zImage和DTB文件myimx6q.dtb,接下来我们将这两个文件烧写到SD卡并尝试启动开发板。

(1) 烧写内核镜像
10M的位置上。

启动内核
将SD卡插到开发板后给开发板上电,按任意键打断uboot启动,并按如下内容配置uboot环境
出现上述东西后,说明文件系统没有,下面可以移植文件系统了。

四、构建文件系统
其实构建文件系统还是比较简单的,注意几个地方,然后按部就班的来就可以了。

(1)创建根文件系统目录结构,
首先切换到imx6q目录,建立如下mkrootfs.sh:
到Busybox下载最新版的Busybox源码,放在imx6q目录下,我是用的是1.21.0版本,下载完后解压并进入busybox目录,首先是配置busybox
Compiler prefix (NEW),设置为编译器的前缀,我的是arm-linux-。

另外选择Busybox Settings -> Build Options ->Build BusyBox as a static binary (no shared libs),这样
了,执行
在进入rootfs/etc目录下创建inittab文件,内容如下
在etc/sysconfig目录下创建HOSTNAME文件,在文件中写入主机名,我这里写的是MyImx6q。

到此根文件系统已经建立完成
五、制作启动SD卡
上面我们已经成功建立的根文件系统,下面我们需要把跟文件系统烧写到SD卡里面。

下面开始制作启动SD卡:
Step1.使用fdisk命令对SD卡进行分区
(1) 启动分区指令
其中sdb请根据自己的实际情况制定,执行之前一定要再三确认好,以免误操作导致文件丢失。

插入SD卡到电脑,执行指令。

按u然后回车,重复操作直至切换到sector模式。

按d然后回车,重复操作直至删除所有分区。

按n创建新分区。

按p选择为主分区。

(6) 输入起始偏移
输入"+20M",指定该分区的起始位置是20M的位置上。

(7) 输入结束偏移
本文仅使用了一个分区,故直接按回车,表示该分区的结束位置是磁盘的末尾。

(8) 保存分区信息
按w然后回车,即可保存分区信息。

使用mkfs命令格式化新创建的分区,对于移动设备,可以考虑使用ext3或者ext4文件系统,指令如下:
重新插拔SD卡,这个时候ubuntu系统应该可以识别到U盘了。

相关主题