作者:SkyXZ
CSDN:SkyXZ~-CSDN博客
博客园:SkyXZ - 博客园
在我们远程SSH使用开发板或者是服务器开发的时候,你是否总是苦于没有图像显示环境导致OpenCV的cv2.show()
操作总是报没有xcb的错?你是否总算是烦恼于在电脑上写完视觉代码想进行验证时还需反复给开发板插上显示屏再运行?看完这篇文章让你彻底摆脱下面这个报错!!!
一、VScode端配置
要在VScode上配置X11转发我们首先要下载两个插件,分别是Remote X11
和Remote X11 (SSH)
这两款插件缺一不可哦,具体样子如下:
接着我们修改我们的SSH配置,让我们在使用VScode进行SSH连接的时候能自动启用X11转发,我们点击远程资源管理器插件然后点击齿轮图标打开SSH配置文件,接着我们选择自己使用的ssh配置文件来打开
打开后可以看到,这里面有很多的我们平时常用的远程连接配置,我们找到我们需要配置X11转发的连接配置在对应项后面添加如下选项即可,具体参考如下图片:
bash
ForwardX11 yes
ForwardX11Trusted yes
ForwardAgent yes
由于X11需要在免密SSH登陆的情况下才能使用,因此我们需要为我们需要连接的板端或者服务器配置免密登陆,首先我们打开Windows的CMD,在终端中输入如下命令生成公钥:
cmd
ssh-keygen #Windows CMD
然后我们可以发现我们C盘的用户文件夹下的.ssh
文件夹里面便会生成我们的密钥id_rsa
为私钥,id_rsa.pub
为公钥
接着我们将生成的公钥复制进我们要配置免密登陆也就是配置X11的设备上,然后在Linux端的.ssh
目录下创建(如果没有的话)一个authorized_keys
文件并将我们的公钥传进去即可实现免密登陆SSH到我们的设备:
cmd
# 在Windows
scp ~/.ssh/id_rsa.pub <user_name>@<your_ip>:/path/to/your/路径
# 在Linux
touch ~/.ssh/authorized_keys
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
最后我们只需要在电脑端下载我们的X11客户端即可,我使用的是Xming,其下载地址为:Xming X Server for Windows download | SourceForge.net进入后我们点击下载并安装
然后我们只需要下载后的Xming
程序,我们在开始菜单中搜索XLaunch
然后点击运行后将Display number设置为0后一直点击下一页直到显示点击完成之后我们便成功启动了X11的服务端,之后我们要使用X11的时候只需要启动这个服务一直在后台挂着就可以啦!!!
下载完Xming后我们打开系统环境变量设置,在系统变量中新建变量"DISPLAY"其值为"localhost:0.0"即可,我们便完成了Windows端的配置!
二、Linux端配置
完成了Windows端之后我们接着来配置Linux端,我们首先修改/etc/ssh/sshd_config
文件,将如下两行取消注释,并使用如下命令重启服务即可
bash
sudo systemctl reload sshd.service
sudo systemctl restart sshd.service
接着我们将如下命令添加进Bash即可使用X11转发
bash
# step 1 设置X11
export DISPLAY="localhost:10.0" # 加入Bash后Source即可
# step 2 验证
echo $DISPLAY #输入命令,若输出localhost:10.0即代表配置成功
三、测试使用
最后我们远程SSH上我们的开发板或者是服务器,在终端中输入如下命令,如果出现对应的图像即代表我们的X11配置成功:
bash
xclock #测试
至此,我们VScode端的X11转发已经配置完成啦!配置过程遇到问题的欢迎在评论区留言(附上截屏等详细信息),我每天都在线解答大家的问题!!!