Unitree go2 拓展坞的升级及相关配置

前言

使用宇树的拓展坞进行控制太爽了,不过还是喜欢刷成humble的版本,这样对于跑一些开源代码是挺有用处的,总比抱着笔记本进行转发强,但是默认拓展坞里面是ubuntu 20.04的版本,太低了,这个升级即可,这里主要记录一下,因为需要升级的拓展坞还挺多的。

拓展坞通过笔记本 Wi-Fi 上网(拓展坞固定 192.168.123.18)

目标

  1. 拓展坞固定管理地址:192.168.123.18/24
  2. 笔记本通过 Wi-Fi 上网,并通过网线把网络共享给拓展坞(NAT)
  3. 拓展坞可访问外网(apt/git/ping)

已确认的接口与现状

笔记本(Ubuntu)

  1. Wi-Fi 接口:wlp0s20f3(已联网)
  2. 有线接口:enx00e04c360ba2(连接拓展坞)
  3. 当前有线 IP:192.168.123.22/24(你已确认)

拓展坞(Ubuntu/Jetson)

  1. 有线接口:eth0
  2. 固定 IP:192.168.123.18
  3. 连接 profile:Profile 1

用笔记本当前地址 192.168.123.22 作为网关

笔记本端配置(NAT + 转发)

在笔记本执行:

# 开启 IPv4 转发
sudo sysctl -w net.ipv4.ip_forward=1

# 为 192.168.123.0/24 做 NAT 到 Wi-Fi
sudo iptables -t nat -C POSTROUTING -s 192.168.123.0/24 -o wlp0s20f3 -j MASQUERADE 2>/dev/null \
|| sudo iptables -t nat -A POSTROUTING -s 192.168.123.0/24 -o wlp0s20f3 -j MASQUERADE

# 放行转发
sudo iptables -C FORWARD -i wlp0s20f3 -o enx00e04c360ba2 -m state --state RELATED,ESTABLISHED -j ACCEPT 2>/dev/null \
|| sudo iptables -A FORWARD -i wlp0s20f3 -o enx00e04c360ba2 -m state --state RELATED,ESTABLISHED -j ACCEPT

sudo iptables -C FORWARD -i enx00e04c360ba2 -o wlp0s20f3 -j ACCEPT 2>/dev/null \
|| sudo iptables -A FORWARD -i enx00e04c360ba2 -o wlp0s20f3 -j ACCEPT

拓展坞端配置(默认路由 + DNS)

在拓展坞执行:

# 默认路由指向笔记本(注意:这里用 192.168.123.22)
sudo ip route replace default via 192.168.123.22 dev eth0

# DNS(快速验证版)
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

验证:

ping -c 2 192.168.123.22
ping -c 2 1.1.1.1
ping -c 2 github.com

升级拓展坞到 ubuntu 22.04版本

先远程到宇树go2的拓展坞里面

ssh unitree@192.168.123.18  #密码默认是123

编辑文件:

sudo vim /etc/update-manager/release-upgrades

把:

Prompt=never

改成:

Prompt=lts

把 20.04 更新到最新(降低依赖冲突)

sudo apt update
sudo apt full-upgrade -y
sudo apt autoremove --purge -y
sudo reboot

使用命令进行升级

sudo do-release-upgrade

有任何阻碍升级的第三方源,都给删了即可。一般在 /etc/apt/sources.list, 或者在路径 /etc/apt/sources.list.d/下面,总有一些妨碍升级的,屏蔽掉即可, 后面等待的时间就很长了,尽量有一个好一些的网络,不然卡在了半山腰,可能就成砖了。

CMake CMakeLists Conan Eigen FCPX Forge GNU Gazebo Git Interest IsaacLab KDL Life Linux Matrix ODE PPO QoS ROS ROS2 Ros UML Ubuntu VcXsrv algorithm algorithms axis-angle bode c++ calibration chrome colcon control cpp dB data_struct dots figure gdb git latex launch life linux mac math matlab memory mlp motor moveit operator optimal algorithm python robot robotics ros ros2 rtb shell simulation stl thread tools twist unitree urdf valgrind velocity vim web work wsl 交叉编译 依赖管理 分支管理 强化学习 构建系统 版本控制 配置类
知识共享许可协议