第3篇 天嵌E9开发板烧写现有Qt系统
版权声明
前言
拿到了天嵌的E9开发板,简直爱不释手。比名片略大的体积,丰富的接口,强悍的性能,电容触摸屏。这些都让我非常满意。基于它强大的功能,不但可以用它来学习Linux + Qt,还可以学习Android。虽然它的价格稍微贵了一些,性价比却更高了。天嵌为它准备了四套系统。分别是:Android、Ubuntu、Linux + Qt和UCos,这大大增加了它的实用性,比如运行Android,你可以把它当成是各种盒子,连接上电视或者是显示器,再装上一个网络电视软件,完全可以用来看电影电视剧了。运行Ubuntu系统,哪它就是一台ARM核心的电脑,甚至你可以在上面做程序开发。做为一个工程师,就是在各种折腾中才能找到乐趣。生命不息,折腾不止。 当然,我不会忘记我的初衷。我的目的是在它上面运行Qt 5,由于它支持OpenGL所以完全可以跑QML,理论上效果应该会很不错。天嵌提供了一套Linux + Qt的系统,使用的Qt 4.5。虽然不是我需要的Qt 5,但是以这些为基础,我相信Qt 5移植起来会容易很多。这篇教程的目的就是先把天嵌提供的这套系统烧写到开发板上,让它正常运行。这样做的目的一是为Qt 5的移植准备一个基础的Linux系统,再者就是如果后边Qt 5的移植出现了问题,这系统也可以做为一个参考。 在开始本节之前,我们先来测试下开发板是否可以启动。E9开发板默认安装的是Android系统,下面连接好显示屏和电源线,按下电源开关,会自动启动Android系统,效果如下图所示。 有兴趣的同学可以测试下这个自带的系统。对于本节内容,因为涉及到了具体的开发板,如果大家手头没有E9开发板,可以跳过本节,不过这里还是建议快速浏览一遍本节内容,这样可以对开发板烧录过程有个简单的了解。
一、烧写方式选择
E9开发板提供了两种烧写方式: 1、在windows系统上使用freescal提供的MFG-tools工具进行烧写; 2、通过TF卡进行烧写。 由于做Qt 5的移植需要在Linux系统上进行。如果使用第一种方法的话,就比较麻烦了,要么不停的切换操作系统,要么使用虚拟机,要么就需要把编译好的文件拷贝到别的电脑上去进行烧写。这样做不仅麻烦,而且极大的影响工作效率。所以这里我们采用的是第二种方法。
二、准备工作
1、需要使用的工具
要完成整个的烧写过程需要做如下准备: 1、安装好的Linux系统(比如第一篇文章中讲得Ubuntu系统); 2、minicom软件,这是一个串口通信软件,在做嵌入式开发过程是会经常用到; 3、TF卡和读卡器; 4、如果你的电脑没有串口,还需要准备一个USB转串口工具; 5、downloader_V2.0.tar.gz工具包。(天嵌光盘中有,或者到 这里下载) 6、EmbedSky.ini、u-boot_E9_for_linux_v3.0.bin、uImage_E9_for_linux_v3.0和rootfs_E9_for_linux_v3.0.tgz (天嵌光盘中有,或者到 这里下载)
以上这些都准备好了,就可以开始往下进行了。这里默认大家都装好了Ubuntu系统。下面我们先来看一下minicom的安装和配置。
2、安装并配置minicom
首先使用Ctrl+Alt+T快捷键打开终端,然后输入如下命令来安装minicom:
sudo apt-get install minicom
如下图所示。
安装完成以后,输入:sudo minicom -s 命令对minicom进行配置。如下图所示。
首先选择Serial port setup选项并按回车键进行串口端口配置。如下图所示。
因为后面要使用USB转串口,而USB设备的默认名称为ttyUSB0。我们按下A键来修改Serial Device为/dev/ttyUSB0 ,完成后按下回车,然后按E修改速率为1152008N1,最后按F设置硬件流控制为No,如下图所示。
设置完成后按下回车退出,然后在主菜单选择Modem anddialing选项,将其中的A、B、K三项设置为空。如下图所示。
最后,在主菜单选择Save setup as dfl 将现在的配置设置为默认。然后选择Exit退出minicom。
三、制作TF卡
1、解压缩工具包 为了方便的制作可以用来烧定的TF卡,天嵌提供了一个名为downloader_V2.0.tar.bz2的工具包,我们把它拷贝到Ubuntu系统的任一目录下,然后在终端通过命令跳转到该目录下,执行以下命令来解压这个文件:
sudo tar xvjf downloader_V2.0.tar.bz2 -C /
这个命令完成后,会把文件解压到/opt目录下,用ls命令可以看到如下信息:
ls /opt/Embedsky/TQIMX6/E9/downloader/ create_sdcard.sh download.img u-boot_for_download.bin
可以看到,共解压出来三个文件,其中create_sdcard.sh就是我们用来制作TF卡的脚本文件。
2、制作TF卡 这里我们先用ls命令查看可用的设备文件:
$ ls/dev/sd*
结果如下图所示:
这里的sda是电脑的硬盘。现在把准备好的TF卡插入电脑,然后再次运行如下命令: $ ls /dev/sd*
结果如下图所示:
可以看到,现在多了一个sdb,它就是我们插入的TF卡。
确定了TF卡的设备文件,下边就可以制作用来烧写的TF卡了。要正确执行create_sdcard.sh脚本,需要到存放这个脚本的目录下去执行。因为这个脚本执行过程中需要用到刚解压出来的download.img和u-boot_for_download.bin这两个文件,如果不在正确的目录执行,脚本就不能正确的找到这两个文件了,会造成TF卡制作失败。另外需要注意的一点是,这个脚本的执行需要使用root权限。首先跳转到执行目录:
$ cd /opt/Embedsky/TQIMX6/E9/downloader
然后使用如下命令来制作TF卡:
$ sudo ./create_sdcard.sh -f /dev/sdb
如下图所示。
下图是这个脚本正确执行后输出完整信息:
命令执行完成后用ls /dev/sd*命令查看到的设备文件如下(如果没有变化,则需要重新拔插TF卡):
可以发现,create_sdcard.sh脚本把TF卡分为两个区。接下来要作的工作就是把需要烧写到开发板的镜像文件拷贝到sdb1分区。
3、拷贝文件
需要用到前面准备好的四个文件:
1、EmbedSky.ini 2、u-boot_E9_for_linux_v3.0.bin 3、uImage_E9_for_linux_v3.0 4、rootfs_E9_for_linux_v3.0.tgz
在sdb1分区的根目录新建images目录,然后:
1、EmbedSky.ini拷贝到images目录下 2、u-boot_E9_for_linux_v3.0.bin文件拷贝到images/bootloader目录下(bootloader目录需要新建),并重命名为:u-boot.bin 3、uImage_E9_for_linux_v3.0文件拷贝到images/linux目录下(linux目录需要新建),并重命名为:uImage 4、rootfs_E9_for_linux_v3.0.tgz文件拷贝到images/linux目录下,并重命名为:rootfs.tgz
如下图所示。
4、烧写开发板
将TF卡插入到开发板上,接好开发板的串口,然后连接好显示屏。如下图所示:
在命令行使用sudo minicom命令打开minicom软件,然后连接开发板的电源,可以看到minicom收到开发板传来的信息如下:
##### EmbedSky BIOS for E9 ##### Hit any key to stop autoboot: 3
这里开发板进入倒计时,如果3S内,用户没有按下键盘按键,则正常进入设置好的系统,如果用户按下任意键,则停在uboot程序里,等待用户输出命令。这里按回车键,可以看到如下选项:
##### Boot for IMX6 Main Menu ##### [1]boot from emmc [2]boot from sdcard [3]boot from tftp [5]download fromsdcard [0]setting boot args [q]exit to commandmode Enter your selection: 如下图所示:
这里输入5,就可选择从TF卡来烧写系统。输入5后,可以看到如下信息:
kernel @ 10808000 (5062660) ramdisk @ 11800000 (2829241) kernel cmdline: use uboot command line: console=ttySAC0,115200 init=/initvideo=mxcfb0:dev=lcd,CLAA-WVGA,if=RGB24,bpp=32 video=mxcfb1:off video=mxcfb2:offfbmem=48M vmalloc=400M androidboot.console=ttySAC0androidboot.hardware=freescale Starting kernel ... UncompressingLinux... done, booting the kernel.
然后就是等待了,到这里后,开发板不再给出任何信息,为了保证烧写完成,我等待了约5分钟,然后重新给开发板上电。就可以正常进入到Linux + Qt系统了,这里默认启动了tqpda程序,如下图所示,有兴趣的朋友可以仔细研究一下。
结语
到这里就完成了开发板烧写Linux + Qt系统的整个过程,如果操作熟练,整个过程还是非常简单的。在后面的教程会介绍Qt 5的移植,并它Qt 5布置到开发板,然后用一个简单的例程来验证Qt 5移植的正确性。
|