本文用于记录机器人项目迁移到新主板的环境配置具体流程,方便后续查缺补漏。
主板装的是Ubuntu22.04.4。
1.安装Qt5.14.2
1)下载Qt
考虑到官方下载速度太慢,可以通过网盘下载。
链接:https://pan.baidu.com/s/1dp2Ffigmn9vkRxgE9FGwvA
提取码:8209
2)给文件添加权限
chmod 777 qt-opensource-linux-x64-5.14.2.run
3)安装
./qt-opensource-linux-x64-5.14.2.run
安装的时候不联网可以跳过账号登录步骤。
安装地址 /opt/Qt5.14.2
具体步骤可以参考其他文章。
2.添加Qt图标
Qt安装完成之后,如果发现应用程序内没有启动图标,只能通过点击/opt/Qt5.14.2/Tools/QtCreator/bin/qtcreator来启动Qt。
解决办法如下:
1)进入目录
cp /usr/shhare/applications
2)创建desktop文件并给予权限
touch Qtcreator.desktop
chmod 755 Qtcreator.desktop
3)编辑文件
gedit Qtcreator.desktop
文件内写入:
[Desktop Entry]
Encoding=UTF-8
Name=QtCreator
Comment=QtCreator
Exec=/opt/Qt5.14.2/Tools/QtCreator/bin/qtcreator
Icon=/opt/Qt5.14.2/Tools/QtCreator/share/doc/qtcreator/qtcreator/images/creator-gs-01.png
Terminal=false
Type=Application
Categories=Application;Development;
其中Exec为Qt启动路径;Icon为Qt图标路径。
完成。
3.配置环境
1)安装C/C++环境
通过以下指令可以发现build-essential软件包,其内包含编译c/c++所需要的软件包。
sudo apt-cache depends build-essential
所以只需要安装build-essential软件包即可。
sudo apt-get install build-essential
2)安装缺少依赖
此时运行项目会发现有报错:
error: cannot find -lGL: No such file or directory
查阅Qt Wiki找到了解决方法:https://wiki.qt.io/Install_Qt_5_on_Ubuntu
然后发现在这篇文章中也有解决文件不会自动关联(Qt没有图标)的解决方法,与我上文一致O(∩_∩)O。
是因为缺少了一个依赖。
sudo apt-get install mesa-common-dev
然后就可以正常运行项目了。
4.安装NoMachine远程桌面
1)安装NoMachine
下载完成后拷贝至要安装的目录下解压。
sudo tar zxvf nomachine_8.11.3_4_x86_64.tar.gz
然后给文件添加权限。
sudo chmod -R 777 NX
进入到NX文件夹内就可以开始安装了。
cd NX
sudo ./nxserver --install
最后需要重启NoMachine服务。
sudo /usr/NX/bin/nxserver --restart
然后保证在同一网络环境下就可以连接。
2)配置虚拟显示器
需要注意的是,此时如果板子不连接显示器或者不使用HDMI显卡欺骗器,远程连接后依然黑屏无法操作,需要配置虚拟显示器。具体如下:
安装所需要的虚拟显示器软件:
sudo apt-get install xserver-xorg-core-hwe-18.04
sudo apt-get install xserver-xorg-video-dummy
安装完成后,在/usr/share/X11/xorg.conf.d/下添加xorg.conf 文件。
sudo vim /usr/share/X11/xorg.conf.d/xorg.conf
在文件内编辑以下内容:
Section "Device"
Identifier "Device0"
Driver "dummy"
VideoRam 256000
EndSection
Section "Monitor"
Identifier "Monitor0"
HorizSync 28.0-80.0
VertRefresh 48.0-75.0
Modeline "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
EndSection
Section "Screen"
DefaultDepth 24
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
SubSection "Display"
Depth 24
Modes "1920x1080_60.00"
EndSubSection
EndSection
~
保存退出后,重启主板。
5.固定串口设备的串口号
由于项目中同一串口设备存在多个串口号(连接了多个设备),所以只能通过分辨串口设备具体挂载在哪个物理接口(硬串口),从而固定多个相同串口设备的串口号。
udevadm info --attribute-walk --name=/dev/ttyACM0 |grep KERNELS
其中ttyACM0是当前设备。
然后在 /etc/udev/rules.d/ 文件夹下新建USB设备规则。
sudo gedit /etc/udev/rules.d/myrobot.rules
在打开的rules文件内输入以下内容:
KERNEL=="ttyACM*",KERNELS=="1-3.1:1.0", MODE:="0777", GROUP:="dialout", SYMLINK+="tty_battery"
KERNEL=="ttyACM*",KERNELS=="1-3.2:1.0", MODE:="0777", GROUP:="dialout", SYMLINK+="tty_radar1"
KERNEL=="ttyACM*",KERNELS=="1-3.3:1.0", MODE:="0777", GROUP:="dialout", SYMLINK+="tty_radar2"
KERNEL=="ttyACM*",KERNELS=="1-3.4:1.0", MODE:="0777", GROUP:="dialout", SYMLINK+="tty_humiture"
其中 MODE:="0777"表示给最高权限,SYMLINK+=“tty_batteery”是给设备起一个新名字。
保存退出后,重启主板。
至此串口设备的串口号固定完成,但当设备重新插拔后,一定要接到原来的端口。
参考博客
固定串口设备串口号的内容参考了下面这篇文章,其中讲的更加全面且详细,而本文仅说明了我所遇到的其中一种情况。
不能再详细的Ubuntu 多USB转串口教程https://blog.csdn.net/weixin_44037313/article/details/127172796
版权归原作者 葭望十八 所有, 如有侵权,请联系我们删除。