hzzhou 发表于 2015-4-28 21:55:08

第3篇 天嵌E9开发板烧写现有Qt系统

第3篇 天嵌E9开发板烧写现有Qt系统


版权声明该文章原创于Qter开源社区(www.qter.org),作者hzzhou,转载请注明出处!

前言

拿到了天嵌的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系统的任一目录下,然后在终端通过命令跳转到该目录下,执行以下命令来解压这个文件:
sudotarxvjf downloader_V2.0.tar.bz2 -C /
       这个命令完成后,会把文件解压到/opt目录下,用ls命令可以看到如下信息:
ls /opt/Embedsky/TQIMX6/E9/downloader/create_sdcard.shdownload.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.ini2、u-boot_E9_for_linux_v3.0.bin3、uImage_E9_for_linux_v3.04、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.bin3、uImage_E9_for_linux_v3.0文件拷贝到images/linux目录下(linux目录需要新建),并重命名为:uImage4、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      #####boot from emmcboot from sdcardboot from tftpdownload fromsdcardsetting boot argsexit to commandmodeEnter 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移植的正确性。

Joey_Chan 发表于 2015-4-28 22:10:38

这个必须顶 :lol

hzzhou 发表于 2015-4-28 22:26:44

Joey_Chan 发表于 2015-4-28 22:10 static/image/common/back.gif
这个必须顶

后边的教程很快就会发上来,一定要多顶顶。

zac 发表于 2015-4-29 09:58:45

强烈支持楼主 顶起 顶起

kmxtye 发表于 2015-6-9 09:10:12

强烈支持:lol:lol:lol:lol:lol:lol

z55716368 发表于 2015-7-9 12:07:03

妞B的大神:D:D:D:D:D:D:D:D:D

lhxzui 发表于 2015-8-14 09:14:21

必须顶,支持,                     

cloud 发表于 2015-11-12 11:26:51

顶顶顶,必须顶:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol

beiwoj702 发表于 2016-2-10 08:33:03

不太了解这个的,觉得不错

embedsky 发表于 2016-3-1 15:03:18

楼主辛苦了

poyema290 发表于 2016-3-26 07:44:32

谢谢楼主啊,受益匪浅啊!

sniper 发表于 2016-4-10 10:18:02

好久没见楼主 露面了。。。。。。顶起来

hustclearlove 发表于 2017-1-13 18:10:59

良心教程,必须支持啊

skylinux 发表于 2018-6-4 11:57:25

多谢楼主,帮了很多忙

cemperor 发表于 2018-12-17 19:23:41

厉害了,必须支持,顶起来
页: [1]
查看完整版本: 第3篇 天嵌E9开发板烧写现有Qt系统