WSL2+Ubuntu 20.04.6 LTS+SSH+VNC+ROS1
一、开启WSL✈️
控制面板-程序-程序和功能-启用或关闭windows功能

[注]: 根据提示需要重启
查看可以安装的系统(需要科学上网 推荐 steam++)
#执行这个命令没有输出则说明需要科学上网
wsl --list --online
安装 Ubuntu-20.04
wsl --install -d Ubuntu-20.04
如果发现安装缓慢到微软商店搜索对应的版本然后复制链接

到 Microsoft Store - Generation Project (v1.2.3)进行解析并且下载

然后安装,这里我已经安装过了

打开PowerShell,新建Ubuntu窗口

[ERROR]:错误0x800701bc
如果发生报错“错误0x800701bc”
下载并且安装
[ERROR]:卡在第一个终端下
发现卡在如下界面

重新打开一个此子系统终端
上面的卡死把创建用户给卡掉了,因此需要自己创建用户以及一些配置
[资料](wsl安装出现Installing, this may take a few minutes…)
创建新用户,并赋予相应的权限
adduser xxx
为用户赋予sudo权限
sudo vim /etc/sudoers
# 增加配置, 在打开的配置文件中,找到root ALL=(ALL:ALL) ALL, 在下面对比着添加, 注意注释的两个important
# 其中xxx是你要加入的用户名称
#-----------------------------sudoers内容----------------------------------
# User privilege specification
root ALL=(ALL:ALL) ALL
liyang ALL=(ALL) NOPASSWD:ALL #important!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
%liyang ALL=(ALL) NOPASSWD: ALL #important!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#--------------------------------------------------------------------------
# 按esc,输入:wq!保存配置
设置该用户为默认启动用户
sudo vim /etc/wsl.conf
# 添加配置
[user]
default=你的用户名
# 按esc,输入:wq保存配置
重启ubuntu,完成修改
wsl --shutdown
[注]: sudo 发现root密码未知
解决方法
sudo passwd root
二、开启SSH🚀
[资料] 【WSL】WSL折腾之旅(3)SSH远程连接 - 知乎
#如果有那么就先卸载(卸载了更加契合下面的配置)
apt remove openssh-server
#安装openssh-server
sudo apt install openssh-server
#启动ssh服务器
sudo service ssh restart
相关ssh配置更改
vi /etc/ssh/sshd_config
修改ssh服务监听端口和监听地址
Port 22 #ssh服务器端口号
AddressFamily any #any(不限制地址族支持IPv4和IPv6),inet(仅IPv4),inet6(仅IPv6)
ListenAddress 0.0.0.0 #SSH服务监听所有可用的IPv4地址,0.0.0.0是一个特殊的IP地址(所有IPv4地址)
#ListenAddress :: #::将指示SSH服务监听所有可用的IPv6地址
修改ssh服务允许远程root用户登入
#LoginGraceTime 2m #指定了用户登录失败后,SSH服务器允许用户重新输入密码的时间长度
PermitRootLogin yes #是否允许root用户通过SSH直接登录
#StrictModes yes #指定SSH服务器是否检查用户主目录和~/.ssh目录的权限
#MaxAuthTries 6 #指定用户尝试登录的最大次数
#MaxSessions 10 #限制单个用户可以同时打开的SSH会话的最大数量
修改ssh服务登入方式
PasswordAuthentication yes #允许使用用户名密码方式登入
#PermitEmptyPasswords no #允许空密码登入
设置开机自启(亲测这个没啥用,不要配置)
sudo vim /etc/init.wsl
#加入以下的东西
service ssh start
[注]: ifconfig无法使用
sudo apt install net-tools
三、开启VNC🛸
[注]: 需要确定系统有一个桌面,如果没有跳转到 [6.1 无桌面系统],否则下面的安装好后会出现no“/root/.Xsession” file报错
下载tigervnc
sudo apt update
sudo apt install tigervnc-standalone-server
启动vnc服务器
sudo vncserver :1 -geometry 1920x1440 --localhost no
杀死vnc服务器
sudo vncserver -kill :*
配置vnc服务器
#需要执行上面的 启动vnc服务器 和 杀死vnc服务器 不然没/root/.vnc/xstartup
vi /root/.vnc/xstartup
假设桌面使用的是xfce4 如下配置
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
xfce4-session &
配置完毕重新启动vnc服务器即可
使用RealVNC 通过IP:5901连接,出现界面则成功,黑屏、或者有报错则不成功
本人这里出现的报错是下文中的 [6.1 无桌面系统]
四、安装ROS🛞
[资料] WSL-Ubuntu20.04安装ROS Noetic_wsl 20.04 安装ros-优快云博客
[资料] 【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程_ubuntu20.04安装ros-优快云博客
配置国内源
# 插入国内源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
# 添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
# 更新
sudo apt-get update
安装ROS1包
# 根据Ubuntu版本安装对应的ros
# Ubuntu 20.04.6 LTS为noetic
sudo apt-get install ros-noetic-desktop-full
设置环境变量
# 为xxxx用户设置ROS环境变量
su xxxx
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
# 为root用户设置ROS环境变量
su root
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
构建包依赖
#构建包依赖
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
启动roscore
#在root用户下启动
su root
roscore
#在xxxx用户下启动
su xxxx
roscore
如下则正确

五、WSL2常用命令⛽
(在windows的终端下)
查看可以安装的系统(需要科学上网 推荐 steam++ 免费)
wsl --list --online
安装系统(有可能很慢)
wsl --install -d Ubuntu-20.04
关闭并终止所有当前运行的WSL实例
wsl --shutdown
查看wsl下的所有系统
wsl --list -v
导出系统
# wsl --import [系统名称] [导出的名称]
cd C:\Users\LimitYang\Desktop
wsl --export Ubuntu-20.04 Wsl-img-Ubuntu-20.04-ros.tar
卸载系统
#卸载Ubuntu-20.04
wsl --unregister Ubuntu-20.04
导入系统
# wsl --import [系统名称] [要安装的位置] [安装包的位置]
wsl --import Ubuntu-20.04 G:\AppDate\WSL\Ubuntu-20.04 G:\AppDate\WSL\img\Wsl-img-Ubuntu-20.04-ros.tar
六、其他报错及解决☕
6.1 无桌面系统
no“/root/.Xsession” file报错(没有安装桌面系统)
使用RealVNC连接后,屏幕中心出现报错提示,周围全黑,报错如下
Xsession: unable to start X session — no “/root/.xsession” file, no“/root/.Xsession” file, no session managers, no window managers, and noterminal emulators found;aborting.
解决如下
安装一个桌面,如下桌面中选一个安装
apt-get install gnome-desktop-environment #和wsl冲突
apt-get install x-window-system-core #没试过
apt-get install xfce4 #试过完全可以
配置vnc服务器
vi /root/.vnc/xstartup
对应每个桌面系统的配置如下
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
#gnome-session & #如果安装的gnome-desktop-environment解开这个注释
#x-window-manager & #如果安装的x-window-system-core解开这个注释
xfce4-session & #如果安装的xfce4解开这个注释
6.2 域名映射IP错误
在ubuntu20.04下执行下属操作
git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
报错如下
root@LAPTOP-91JCLTB5:~# git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
Cloning into 'ubuntu-wsl2-systemd-script'...
fatal: unable to access 'https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git/': Failed to connect to github.com port 443: Connection refused
解决如下
vim /etc/hosts
修改为如下的内容
# 140.82.112.3 通过域名‘github.com’查询出来的
140.82.112.3 github.com
七、其他知识点集合🌭
7.1 apt-get删除包
sudo apt-get remove python3-catkin-pkg
7.2 查看是否存在包
dpkg -l | grep python3-catkin-pkg
7.3 查看源上拥有的对应版本的包
apt-cache madison python3-catkin-pkg
7.4 查看当前python解析器的位置
法一:在系统bash终端下
#在系统bash终端下
which python3
法二:启动了Python解释器后
python #启动Python解释器
#启动Python解释器后
>>> import sys
>>> sys.executable
'/usr/bin/python3.8' # 这只是一个示例,实际输出可能不同
emove python3-catkin-pkg
7.2 查看是否存在包
dpkg -l | grep python3-catkin-pkg
7.3 查看源上拥有的对应版本的包
apt-cache madison python3-catkin-pkg
7.4 查看当前python解析器的位置
法一:在系统bash终端下
#在系统bash终端下
which python3
法二:启动了Python解释器后
python #启动Python解释器
#启动Python解释器后
>>> import sys
>>> sys.executable
'/usr/bin/python3.8' # 这只是一个示例,实际输出可能不同

被折叠的 条评论
为什么被折叠?



