1 wsl安装
a. 安装完成,更换国内源,迁移到非系统盘,参照solution
b. 可能遇到的问题Certificate verification failed: The certificate is NOT trusted...
,参照solution
2 可视化界面显示和ubuntu桌面
a. wsl-ubuntu自身只有命令行,如何显示程序运行可视化结果和ubuntu桌面
配置好$DISPLAY
就可以通过xserver显示程序运行可视化结果
配置好`$DISPLAY,同时配置好ccsm和运行compiz命令可ubuntu桌面显示
以上可参照solution
b. 值得注意的是,配置$DISPLAY
,于上述solution不同
export DISPLAY=***:0
, 这里用的不一定是localhost
, 而是使用以太网适配器 vEthernet (WSL)ip地址
or 以太网适配器 VMware Network Adapter VMnet*
orwindows本机ip
)。上述地址可在windows的cmd,输入 ipconfig
均可以查到。可以都试试。
我用公司的网+外插无线网卡+wsl1时使用localhost
就可以,用家里的笔记本电脑+wsl2时使用的是以太网适配器 vEthernet (WSL)ip地址
如果只是希望运行程序可视化结果显示,配置好$DISPLAY
,就够了。可以测试是否配置成功:命令行输入xclock
, 检查xserver界面是否有时钟显示,则成功;如果还希望显示ubuntu可视化桌面,则继续参照a中的solution安装compiz,untiy
后面会讲到如何固定wsl_ip和ubuntu_ip.
3. 开启ssh远程开发。并固定wsl_ip和ubuntu_ip
把wsl当成一台远程服务器,日常开发通过vscode远程开发;并固定ip,将设置$DISPLAY
和ssh配置项和开启ssh服务
,写到bat命令中,方便开机执行。不需要每次开机都要重新查询新的ip并配置
进行ssh配置并开启服务
- 上面我们已经完成了wsl安装和可视化显示。但笔者仍然觉得在可视化桌面或者wsl-ubuntu界面开发很费劲,于是希望通过vscode远程开发,或者其它服务器可以访问wsl-ubuntu.
- 当前的状况我们可以通过windows本机cmd,访问wsl-ubuntu机器可以ping通,但是其他机器无法访问wsl。可以测试下
ping ip
,这里的ip可以在ubuntu里面ifconfig查询,为eth0中的inet值
或者wifi0中的inet值
(使用外接网卡时)。 - 因此,我们需要开启ssh服务并设置防火墙功能,参照solution1和solution2。设置完可以在其他服务器通过
ssh username@ip -p port
检测,看是否能连接上(eg:ssh aa@172.20.123.111 -p 2222
)。上述操作使用记得关闭公司vpn连接(在家连接vpn,死活ssh不成功)
固定ip
- 接下来,为了避免每次开机和开启wsl-ubuntu需要
DISPLAY
环境变量和ubuntu_ip
发生变化。因此需要固定ip。可以参照solution,具体你的机器的地址可以通过链接里面的**show命令查看。(需要注意的是,该方法只适合于DISPLAY=以太网适配器 vEthernet (WSL)ip地址
和ubuntu_ip=0中eth0的inet值
的情况,其它情况可以试试自行修改脚本)
ROS安装
参照solution and solution2
安装完后,rviz可以在xserver中可视化显示,如果显示不成功,仍然是黑屏。首先检查xclock是否有时钟显示,如果有说明xserver连接配置无误,继续检查下是不是ccsm配置项哪里选的不对,导致不兼容的问题