公司有个项目要QT交叉编译arm板,摸索了几天,为避免以后走弯路,从这里开始记录从无到实现最终目标时的全过程,亲测有效!!
环境:vm15下的ubuntu16.04 64位
QT:QT5.12.9
交叉编译工具: poky glibc x86_64 meta toolchain qt5 cortexa9hf vfp neon toolchain 1.7.sh(arm板厂家提供)
Arm板型号: M6708-T系列核心板
目标平台:致远电子的M6708U 芯片:imx6
触摸驱动:tslib-1.21-new.tar.gz(厂家提供)
最终目的:win7下编写的QT程序能在开发板上运行,并实现界面旋转功能,控件包括qwt。
官网下载地址:https://releases.ubuntu.com/16.04/
选择64位桌面镜像下载。
下载完毕后搭建虚拟机安装
选择稍后安装系统
下面根据自己电脑配置选择
完成后编辑虚拟机设置,选择ubuntu镜像安装
然后开启虚拟机。根据自己安装引导选择安装。
安装完毕开始进行一些简单配置。
一、开启root及关闭guest用户
1. 开启root用户
首先给root用户设置一个密码:
$ sudo passwd root
2. 使用root用户登陆
$ sudo vi /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
在最后增加greeter-show-manual-login=true
保存退出。注销后可看到登陆框已显示,可输入用户名。
3. 关闭guest用户
$ sudo vi /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
在最后增加allow-guest=false
保存退出。注销后可看到已经没有guest用户登陆的选项。
二、更换最佳源(加速下载)
在右上角找到设置按钮,点击后选择系统设置
2.选择“软件和更新”
3.在“下载自”下拉框选择“其他站点”,在随后弹出的对话框中点击“选择最佳服务器”
点击右下角的“选择服务器”,然后输入登录密码
4.点击右下角的关闭按钮,随后会弹出一个对话框,点击重新载入,耐心等待载入完成即可。
也可以输入下列指令重新载入。
sudo apt-get update 更新源
sudo apt-get upgrade 更新软件
三、安装VM-tools
在虚拟机菜单中选择虚拟机——安装VM-tools
接着打开文件管理窗口,左边找到 VMware Tools, 打开后里面有个gz压缩包
把压缩包复制到桌面解压——打开vmware-tools-distrib文件夹-右键--在终端打开。
在终端我们输入直接sudo ./vmware-install.pl文件,根据提示回车就可以安装完成了。
用root账号登陆时出现以下情况
读取/root/.profile时发现错误:mesg:ttyname failed:对设备不适当的ioctl操作
方法一:
将/root/.profile文件中的mesg n
替换成tty -s && mesg n
重启
方法二:
将非root账户目录中的.profile复制到/root/:
例如:cp /home/username/.profile /root/
重启
四、Ubuntu16.04NFS配置与ARM开发板互传数据
第一步:安装NFS服务
sudo apt-get install nfs-kernel-server portmap
第二步:增加NFS配置文件
sudo vim /etc/exports
在vim终端中添加如下信息:
/opt *(rw,sync,no_root_squash)
上面的路径解释如下图,其中opt文件夹为NFS服务所用的共享文件夹,根据需要自己重设
第三步:重启NFS服务
sudo /etc/init.d/nfs-kernel-server restart
ps:每修改一次NFS的配置信息时,都需要执行命令重启一次NFS服务
第四步验证:arm开发板挂载linux系统里的文件夹
进入arm开发板
在开发板的终端里执行以下命令
mount -t nfs -o nolock 192.168.5.168:/opt /mnt/nfs/
这个/mnt/nfs/里的nfs文件夹是我在开发板上建立的
在开发板的终端里执行命令
ls /mnt/nfs/
看是否有东西
卸载挂载的文件夹命令为
umount /mnt/nfs/
验证卸载成功。
另外说一下:在开发板上这样的挂载方式是不能拷贝Linux系统上的大文件的,会出现nfs: server xxx.xxx.xxx.xxx not responding, still trying错误提示的
至此,虚拟机安装Ubuntu16.04 64位以及安装后的简单配置完毕。