在小米平板7S Pro上通过Termux部署XFCE桌面环境并实现开机自启
WisdomSSH-一曲
2026年06月26日 13:14

# 【最近实战】在小米平板7S Pro上通过Termux部署XFCE桌面环境并实现开机自启

## 背景

我有一台小米平板7S Pro,分辨率3200×2136,想把它变成一个轻量级的Linux工作站。之前尝试过VNC方案,但连接不稳定,而且每次容器退出后VNC进程就会挂掉。这次我决定换用Termux:X11方案,配合VirGL硬件加速,直接在平板上运行XFCE桌面环境。

整个操作都是通过Wisdom SSH连接到Termux进行的,AI助手帮我执行命令、排查问题,省去了大量手动输入的时间。

## 目标

在小米平板7S Pro上实现:

1. 安装Termux:X11作为显示服务器

2. 安装VirGL渲染器实现硬件加速

3. 在proot-distro Ubuntu容器中运行XFCE桌面

4. 配置开机自启,打开Termux自动进入桌面

## 步骤

### 第一步:清理旧的VNC方案

之前我尝试过TightVNC方案,但遇到了几个问题:VNC进程在容器退出后就会终止,proot容器和Termux共享网络栈导致端口映射混乱,而且TightVNC对XDamage、XFixes等扩展支持不好,桌面体验很差。

我让AI助手先清理掉VNC相关的脚本和配置:

```

rm -f ~/start-vnc.sh ~/.bashrc

```

然后在容器内杀掉VNC进程并清理锁文件:

```

proot-distro login ubuntu -- bash -c "kill \$(pgrep Xtightvnc) 2>/dev/null; rm -f /tmp/.X1-lock /tmp/.X11-unix/X1; sed -i '/start-vnc/d' /root/.bashrc"

```

### 第二步:安装Termux:X11和VirGL

Termux:X11是专门为Termux设计的X11服务器,相比VNC方案,它不需要端口映射,性能更好,而且支持硬件加速。

安装x11-repo和termux-x11-nightly:

```

pkg install -y x11-repo

pkg install -y termux-x11-nightly

```

安装过程很顺利,Termux:X11的版本是1.03.01-5。

### 第三步:编写启动脚本

我提供了一个完整的启动脚本,AI助手帮我保存到`~/start_desktop.sh`。这个脚本做了以下几件事:

1. 杀掉可能残留的进程

2. 后台启动VirGL渲染器(`virglrenderer-android`)

3. 后台启动Termux:X11服务(`termux-x11`)

4. 等待2秒让服务启动

5. 进入Ubuntu容器,设置环境变量`DISPLAY=:0`、`GALLIUM_DRIVER=virpipe`、`MESA_GL_VERSION_OVERRIDE=3.2`

6. 启动XFCE桌面

脚本内容如下:

```bash

#!/data/data/com.termux/files/usr/bin/bash

pkill -f virglrenderer-android 2>/dev/null

pkill -f termux-x11 2>/dev/null

echo "启动 VirGL 渲染服务..."

virglrenderer-android &

VIRGL_PID=$!

echo "启动 Termux:X11 服务..."

termux-x11 &

X11_PID=$!

sleep 2

echo "进入 Ubuntu 容器启动 XFCE..."

proot-distro login ubuntu --shared-tmp -- bash -c "

    export DISPLAY=:0

    export GALLIUM_DRIVER=virpipe

    export MESA_GL_VERSION_OVERRIDE=3.2

    pkill -f startxfce4 2>/dev/null

    startxfce4 &

    wait

"

kill $VIRGL_PID $X11_PID 2>/dev/null

```

关键点:`--shared-tmp`参数让容器共享Termux的`/tmp`目录,这样Termux:X11的socket文件才能被容器访问到。

### 第四步:配置开机自启

Termux没有systemd,但可以通过`.bashrc`实现自动启动。AI助手帮我创建了`.bashrc`文件:

```bash

# 自动启动桌面环境(VirGL + Termux:X11 + XFCE)

~/start_desktop.sh

```

同时获取了唤醒锁,防止Android系统杀掉Termux进程:

```

termux-wake-lock

```

### 第五步:Android系统设置

这一步需要手动操作,AI助手提醒我:

1. 在Android系统设置 → 应用 → Termux → 电池 → 设置为"无限制"(关闭电池优化)

2. 从酷安或Google Play下载安装Termux:X11应用

3. 打开Termux,脚本会自动启动桌面

## 验证

启动后,打开Termux:X11应用,应该就能看到XFCE桌面了。如果遇到黑屏或连接失败,可以检查:

- VirGL是否正常启动:`ps aux | grep virgl`

- Termux:X11是否在监听:`ps aux | grep termux-x11`

- 容器内DISPLAY变量是否正确:`echo $DISPLAY`(应该输出`:0`)

## 扩展思考

这次从VNC切换到Termux:X11,核心区别在于:

| 方案 | 原理 | 性能 | 稳定性 |

|------|------|------|--------|

| TightVNC | VNC协议,需要端口映射 | 一般,软件渲染 | 差,进程易挂 |

| Termux:X11 | 本地X11 socket通信 | 好,支持VirGL硬件加速 | 好,与Termux同生命周期 |

VirGL的加入让3D加速成为可能,虽然MESA_GL_VERSION_OVERRIDE=3.2只是软件层面的版本声明,但配合virpipe驱动,至少能让一些轻量级图形应用跑起来。

后续还可以在桌面里安装VS Code、浏览器等常用软件,真正把平板变成一个便携工作站。借助Wisdom SSH的AI辅助功能,这些安装和配置过程都可以通过自然语言指令完成,不需要手动敲大量命令。