第6篇 下载文件到开发板
版权声明
导语
上一篇我们编译出了适用于天嵌的E9开发板的Qt程序,但是应该用什么办法把编译好的库放到开发板上呢?具体应该怎么操作呢?本章就重点介绍一下这方面的知识,在讲解的同时,我们会把上一节编译好的库文件和可执行程序拷贝到开发板上。(这里默认读者已经使用终端打开了minicom,并且连接好并启动了开发板) 一、常用方法简介 把文件下载到开发板常用的方法有三种: 1、 通过U盘拷贝 2、 通过TFTP服务网络传输 3、 通过串口传输 下面先把这三种方法的优缺点介绍一下,以便于读者可以在不同的情况下选择不同的方法来操作。 第一种方法:通过U盘拷贝,优点是速度快,可以拷贝较大的文件,缺点是操作繁琐。 第二种方法:通过TFTP服务网络传输,优点是速度较快,可以传输较大的文件,配置好以后,操作起来比较简单。缺点是需要网络支持,特别是E9开发板上没有WiFi功能,需要使用网线,而且PC上需要开启TFTP服务器。 第三种方法:通过串口传输,优点是操作方便,只要连接了调试串口就可以进行下载,缺点是速度太慢,只有10K左右。一般用来传输小文件,当文件比较大的时候,需要的时间会很长。 介绍完优缺点,读者可以跟据实际情况选择不同的方法,而笔者经常使用的第二和第三种方法。下面就详细的介绍一下每种方法的操作过程。因为我们使用了方法一和方法二来拷贝上一节生成的文件,所以这两种方法读者一定要按照教程做一遍,这样才能继续后面的教程。 二、通过U盘拷贝(方法一) 要将Qt部署到开发板,就是要把编译生成的库和opengl的库放到开发板上为Qt应用程序的运行提供支持。需要把/usr/local/qte-arm/目录下的lib、plugins、qml这三个目录的内容放到开发板的对应目录,把/opt/tqexlib/usr/lib/目录下的文件放到开发板的/usr/lib目录下。因为这些库文件较大,所以使用U盘拷贝的方式来实现。 需要准备一个U盘,首先把需要拷贝到开发板上的文件拷贝到U盘上,这一点相信大家都会,如果熟悉命令行操作可以使用命令完成,因为这个不是重点,这里拷贝压缩等工作直接在图形界面来完成。 1、创建压缩文件 首先在桌面上新建一个文件夹qte-arm,然后把/usr/local/qte-arm/目录下的lib、plugins、qml这三个目录复制到该文件夹中,如下图所示。 然后在该文件上右击,选择“压缩”菜单,将该文件夹压缩为qte-arm.tar.gz。同理,新建一个lib文件夹,然后将/opt/tqexlib/usr/lib/目录下的所有文件复制到该文件夹里面,并创建lib.tar.gz压缩包,完成后如下图所示。 2、使用U盘拷贝文件 下面需要将这两个压缩包放到U盘上,插入并打开U盘,然后在里面创建一个qt文件夹,将lib.tar.gz和qte-arm.tar.gz两个压缩包复制到qt文件夹中。如下图所示。 接下来,把U盘从电脑上卸载,然后插到E9开发板的USB口上,这时minicom会输出如下信息: 可以看到,系统为它分配了sda这个设备。接下来要使用mount命令对U盘进行挂载: 用ls命令就可以看到我们需要的qte-arm.tar.gz文件了。接下来就简单了,无论你想对它做什么,使用相应的命令去操作就可以了。这里我们把它解压到/usr/local/目录下,这是前面移植Qt的时候指定的它的存放目录。使用命令进行解压缩: 然后使用ls命令查看是否解压缩成功。这里可以看到在local目录中已经有qte-arm文件夹了,表明已经解压缩成功。如下图所示。 同样的,下面使用命令将lib.tar.gz中的文件解压缩到/usr/lib目录中: 然后使用ls命令查看结果: 然后使用命令: umount /mnt 卸载U盘。 然后再使用命令: ls /mnt 查看/mnt目录下已经没有内容了,说明U盘卸载成功了。如下图所示。 这时候就可以把U盘从开发板上拔下来了。整个拷贝过程就完成了。 三、使用TFTP通过网络传输(方法二) 1、设置网络环境 这里需要使用网线连接E9开发板,插入网线后在minicom中使用ifconfig命令查看一下开发板的网络状态,如下图所示。 可以看到开发板的IP地址为192.168.1.6。使用Ctrl+Alt+T快捷键重启一个终端,在PC端同样使用ifconfig命令查看一下PC机的IP地址,如下图所示。 现在没有可用的IP地址,我们使用ifconfig命令设置IP地址为192.168.1.100,注意,要和开发板的IP地址在一个网段内。如下图所示。 现在再次查看IP地址: 然后从开发板ping一下192.168.1.100: 可以看到网络是通的,按下Ctrl+C键结束ping命令。 2、安装TFTP服务器 接下来需要给PC机安装和配置TFTP服务器,使用命令: sudo atp-getinstall tftpd-hpa 安装好tftpd-hpa后,需要使用编辑器(例如vi等)修改它的配置文件/etc/default/tftpd-hpa,以指定需要下载到开发板的文件应该放到哪个目录下。如下图所示。 笔者这里指定的是/tmp目录,也就是说,需要下载到开发板的文件要先拷贝到PC机的/tmp目录下。接下来重新启动TFTP服务器,如下图所示。 还可以使用sudo service tftpd-hpa stop命令来停止TFTP服务器,使用sudo service tftpd-hpa start命令可以启动TFTP服务器。需要注意的是这些命令都需要使用root权限操作。以后每次重启电脑后要使用tftp服务都需要执行restart命令。 3、使用TFTP传输文件 接下来就可以在开发板上使用tftp命令来下载文件了,这里以第4篇中生成的myarmtest可执行文件为例, 先将这个文件移动到/tmp目录中,如下图所示。 在minicom中使用cd命令跳转到开发板的home目录,然后执行tftp命令,这样可以将文件下载到home目录中。如下图所示。 可以看到myarmtest这个文件已下载完成了,但这里还有一个问题,使用tftp命令下载的文件会默认把文件的权限设置为不可运行的,如果下载的是个可执行程序,那么需要使用chmod命令修改文件权限。如下图所示。 这样修改以后,文件就可以执行了。到这里我们成功使用TFTP服务,通过网络把文件下载到了开发板上。 四、通过串口下载程序到开发板(方法三) 这里使用my.txt文件为例进行讲解,大家可以提前创建该文件。先在开发板上执行命令: lrz –y (这里默认读者的开发板上已经有lrz命令,如果没有,可以到qter网站上下载,然后通过前面讲到的方式下载的开发板的/bin目录下就可以使用lrz命令了),如下图所示。 这时候,开发板已经准备好接收文件了。然后按下CTRL+A组合键再按下S键。会有一个小窗口,如下图所示。 一般使用zmodem方式进行文件传输,按上下键可以进行选择,然后按下回车键。这时候会让你选择要发送的文件。 可以看到,当前目录为我的home目录,而我需要发送的文件存放在/tmp目录下,这时可以在[..]处双击空格键跳转到上一目录,然后通过上下方向键定位到/tmp目录,也可以通过左右键选择到[Goto]选项,然后输入目标路径。比如我们使用第二种方法,然后输入需要打开的目录,如下图所示。 然后回车,就会打开输入的目录,这时可以通过上下键来移动光标,通过空格键可取消选择文件。也可以选择多个文件,可以把多个文件依次下载到开发板。 这里选择my.txt文件,按下回车键就开始下载了。 等下载完成后,按任意键就可以回到开发板的shell了。可以使用ls命令查看文件已经成功下载了。 结 语
到这里已经把三种方式介绍完了,读者可以根据实际情况和个人喜好来选择一种或多种方式使用。我们使用U盘的方式将编译好的Qt库文件拷贝到了开发板上,使用网络的方式将编译好的Qt程序的可执行文件下载到了开发板上,但是现在该文件还不能直接运行,这个我们放到下一篇中来实现。
|