WSL2+Ubuntu 20.04.6 LTS+SSH+VNC+ROS1

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”

下载并且安装

wsl_update_x64.msi

[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'  # 这只是一个示例,实际输出可能不同
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值