Ubuntu的选择
根据QT官网对v6.7.2的描述(Qt for Linux/X11 | Qt 6.7),
至少需要使用ubuntu22.04以上的版本。
注意GCC编译器的版本也需要相应的适配,此处暂时不着急,我们先把ubuntu22.04虚拟机搞定,这些包都可以通过 sudo apt-get install <xxx>去搞定。
虚拟机的创建
- 安装 VMware® Workstation 16 Pro ;
- 去阿里云镜像网站上下载ubuntu-22.04的镜像
ubuntu-releases-22.04.4安装包下载_开源镜像站-阿里云 (aliyun.com)
选择 ubuntu-22.04.4-desktop-amd64.iso 下载即可; - 创建虚拟机,配置建议如下,用户名,密码可以暂时都设置简单点,毕竟只是学习过程:
创建过程参考可以参考该博主,不在赘述:VMware虚拟机的创建和启动,保姆式教学_vmware workstation pro创建新的虚拟机-CSDN博客 - 语言设置务必将文件目录的文件夹名设置为英文,避免各种编译器不兼容的情况出现;
虚拟机的基本环境配置
设置软件更新源的服务器为国内服务器【这里选择阿里云服务器】
依次运行如下指令
sudo apt-get install git #安装git工具
sudo apt-get install net-tools #安装nettools
sudo apt-get install build-essential libgl1-mesa-dev #qt6.7.2需要的底层支持
sudo apt-get install libxcb-cursor0 #linux图形编程库
sudo apt-get install make #安装make构建套件
sudo apt-get install nfs-kernel-server #nfs网络文件系统配置
sudo apt-get install libssl-dev #SSL服务
sudo apt-get install openssh-server #SSH服务,nfs的使用需要基于这个服务
sudo systemctl start ssh #启用SSH
sudo apt-get install python3 #安装python3
sudo ln -s /usr/bin/python3 /usr/bin/python #连接python脚本环境变量(将python与python3两个环境变量进行连接)
sudo apt-get install python3-pip #安装python的pip
pip install jinja2 opencv-python matplotlib numpy
sudo apt-get install tree #安装树状文件查看
sudo apt-get install xfig #绘图库
sudo apt-get install make gcc-arm-linux-gnueabihf gcc bison flex libssl-dev dpkg-dev lzop vim
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libncurses-dev #使用buildroot 需要使用 menuconfig图形界面配置需要安装此
sudo apt-get install imagemagick-6.q16hdri #可以使用corvent将各种格式的图片进行互相转化,如logo.ppm
sudo apt-get install gcc-multilib g++-multilib
sudo apt-get install libcap-dev
sudo apt-get install libmount-dev
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
网络设置
- Ubunte虚拟机的网络配置。
进入【setting】菜单-->选择【网络】-->设置【第二个以太网】的ipv4 -
windows的网卡设置
-
开发板的网络设置
使用MobaXterm连接开发板
输入 ifconfig eth0 192.168.5.9 配置开发板ip
使用 ifconfig 确认是否配置成功
也可以使用如下代码对开发板IP进行永久配置
vi /etc/systemd/network/50-static.network #编辑网络配置文件 [Match] Name=eth0 [Network] Address=192.168.5.9/24 Gateway=192.168.5.1 systemctl enable systemd-networkd #重启网络
网络文件系统(nfs)的使用
在linux系统编程中,我们往往使用网络文件系统的方式将文件拷贝到嵌入式硬件中,以便快速实现软件的部署和运行。根据上述【网络设置】的内容,我们实际上可以实现任意平台到任意平台的文件操作,接下来是相关的配置操作。
- windows与ubuntu之间的文件传输:
获取ubuntu的网络IP
在windows中打开【MobaXterm】软件
创建SSH连接,输入如下信息,注意:端口号为22
正确输入ubuntu密码
打开windows的【FileZilla】软件
正确输入在【MobaXterm】中输入过的信息,快速连接即可
这样我们可以在windows界面下进行QT开发,验证通过后将源码拷贝到ubuntu中进行交叉编译,最后传输到开发板中。 - ubuntu和linux开发板之间的文件传输:
cd /etc #进入ect文件夹 sudo touch exports #创建exports文件,注:记得修改文件权限,且只能修改本文件,/etc/下的文件不能 #随意修改,要不然麻烦很大 sudo vim /etc/exports #编辑exports文件 #最后一行添加 /home/book/ *(rw,nohide,insecure,no_subtree_check,async,no_root_squash) sudo /etc/init.d/nfs-kernel-server restart #重启nfs cat /etc/exports #快速浏览exports文件 #其返回值 /home/book/ *(rw,nohide,insecure,no_subtree_check,async,no_root_squash) #代表了该目录下无权限就可以访问 ps -A | grep nfs #检查ubuntu是否开启nfs服务 返回值中有nfsd字样表示开放此服务 #通过ubuntu自己挂载自己nfs服务,验证是否成功 /mnt就是指定网络文件路径的别名 sudo mount -t nfs -o nolock,vers=3 192.168.153.139:/home/book/nfs_rootfs/ /mnt ls /home/book/nfs_rootfs/ ls /mnt #开发板通过nfs服务挂在文件夹 /mnt就是指定网络文件路径的别名 mount -t nfs -o nolock,vers=3 192.168.5.11:/home/book/nfs_rootfs /mnt