1. 问题现象与背景分析
最近在调试华为Atlas 200i DK A2开发板时遇到一个典型问题:关闭图形界面后SSH连接立即断开,且无法重新建立连接。这个现象在嵌入式开发和边缘计算场景中并不少见,但Atlas系列的特殊架构使得解决方案与常规Linux设备有所不同。
Atlas 200i DK A2作为华为昇腾AI处理器的开发套件,默认搭载了定制化的Ubuntu系统。其图形界面实际上是通过Xorg服务实现的轻量级桌面环境,而SSH服务(通常是OpenSSH)在系统初始化时就已经启动。问题关键在于:当关闭图形界面时,系统会连带终止某些关键网络服务,导致SSH守护进程异常。
关键发现:通过串口连接观察系统日志发现,关闭图形界面会触发network-manager服务的重启,这可能是SSH连接中断的直接原因。
2. 根本原因深度解析
2.1 系统服务依赖关系
华为Atlas开发板的服务管理采用systemd体系,但存在特殊定制:
code复制$ systemctl list-dependencies graphical.target
graphical.target
├─network-manager.service
├─lightdm.service
└─multi-user.target
关闭图形界面(graphical.target)会级联停止network-manager,而该服务管理着所有网络接口。虽然理论上SSH应该能在没有图形界面的情况下工作,但华为的定制镜像中网络配置存在特殊绑定。
2.2 网络配置特殊性
查看网络配置文件发现华为使用了混合模式:
bash复制$ cat /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
dhcp4: true
optional: true
关键点在于renderer: NetworkManager——这表示网络由图形界面的网络管理器控制,而非传统的systemd-networkd。
3. 永久解决方案实操
3.1 方案一:切换网络渲染器(推荐)
- 通过串口或本地
