Skip to the content.

首页 | Blogs | 项目合集 | Bilibili↗
←返回 | 创建:2025-03-08 | 最后更新:2025-03-08

前言

由于之前Blog #36里面搞了个VSCode CLI实在是太太太难用了,所以想着搞个Linux容器跑VSCode For Linux Arm64玩一下。

前置

你将需要:

安装Debian

首先安装Debian教程网上一大堆,这里简单列出来一下:

初始化容器

## Termux中运行
# 更新软件包
apt update && apt upgrade
# 安装前置,记得换源(main和x11两个源)
apt install proot proot-distro termux-api termux-x11 viglrenderer-android pulseaudio termux-x11-nightly
# 申请存储权限
termux-setup-storage
# 安装容器
# 如果比较慢自行搜索proot换源
proot-distro install debian
# 登录debian
proot-distro login debian --user root

初始化Debian

## Debian中运行
# 自行换源
apt update && apt upgrade
# 安装常用库和Firefox ESR(因为Chormium系浏览器在这个容器里不是很好用)
apt install wget curl git ssh xfce4 xfce4-goodies xfce4-terminal gnome-keyring firefox-esr locales sudo vim fcitx5 fcitx5-pinyin fonts-noto-cjk-extra fonts-noto-cjk

# 以下命令不要直接运行,下面这个exit命令防止你手快,也不用运行
exit 1
# 开始配置中文(执行后按End键找到zh_CN.UTF-8 UTF-8,空格键选中再回车,选择zh_CN.UTF-8回车)
dpkg-reconfigure locales
# 配置时区(默认UTC+0,执行后依次键入4 10 1 1切换到北京时间UTC+8)
tzselect
# 修改root账户密码
passwd
# 添加用户
adduser <用户名>
# 允许sudo
echo "<用户名> ALL=(ALL:ALL) ALL">>/etc/sudoers
# 设置字体共享,目标字体目录为安卓存储根目录下的Fonts文件夹里面
ln -sn /storage/self/primary/Fonts/ /usr/share/fonts/android-fonts
cd /usr/share/fonts/android-fonts
mkfontscale
mkfontdir
# 刷新字体缓存(即安装字体)
fc-cache -fv
# 切换用户
su <用户名>
# 设置文件夹共享
cd ~
rm -rf ./下载/
ln -sn /data/data/com.termux/files/home/storage/downloads/ ./下载/
ln -sn /data/data/com.termux/files/home/storage/ ./sdcard/
ln -sn /data/data/com.termux/files/home/ ./termux-home/
# 设置Termux Home共享(ssh/git/vim/
ln -sn /data/data/com.termux/files/home/.ssh/ ./.ssh/
ln -sn /data/data/com.termux/files/home/.gitconfig
ln -sn /data/data/com.termux/files/home/.viminfo

执行以后debian就安装完毕了

便于下次访问

关掉Termux,重新启动后写个脚本:

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

# 启动唤醒锁防止被杀
termux-wake-lock
# 终止正在运行的 X11 进程
kill -9 $(pgrep -f "termux.x11") 2>/dev/null
# 启动 PulseAudio 并配置网络音频支持
pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1
# 启动 virgl_test_server_android 服务
virgl_test_server_android >/dev/null &
# 准备 termux-x11 会话,显示器设为:1,因为我自己不知道为啥:0报错
export XDG_RUNTIME_DIR=${TMPDIR}
termux-x11 :1 >/dev/null &
sleep 3
# 启动 Termux:X11
am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity > /dev/null 2>&1
sleep 1
proot-distro login debian --shared-tmp -- /bin/bash -c  'export PULSE_SERVER=127.0.0.1 && export XDG_RUNTIME_DIR=${TMPDIR} && su - <用户名> -c "env DISPLAY=:1 LANG=zh_CN.UTF-8 GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx startxfce4"'
# 启动完毕
exit 0

把倒数第三行的<用户名>改成自己刚才新建的用户,之后运行这个脚本就可以打开Debian图形化桌面了。
如果安卓11以上需要关闭子进程限制,详情自行搜索或者安装VMOS助手฿

优化Debian和常见问题解决

[i] 作者撰写此文时他的Debian桌面已经配置好了,所以界面不一样很正常。

启动一会就崩溃了或者Not Connect

你没有关掉子进程限制,详情自行搜索或者安装VMOS助手฿

桌面好小

桌面右键打开外观

把窗口缩放改成2x即可

输入法?

输入法服务已安装但是没有启动。

设置里面的会话与启动里面的应用程序自启动

添加一个启动项,命令行填/usr/bin/fcitx5,其余默认并保存

重启容器即可。

词库

由于Fcitx 5不是那种商业输入法,词库很贫穷,需要自己加一点开源词库。

我这里推荐zhwiki dict,下载下来后把dict文件移动到/usr/share/fcitx5/pinyin/目录里面就行

界面大小

托盘里面右键打开Fcitx 5配置,附加组件里面经典用户界面把三个字体大小都拉高。

安装VSCode

官网下载Linux .deb ARM64安装包฿,安装即可。

如果启动右下角有一个叉叉试试命令:

sudo apt install gnome-keyring

启用全局加速

[i] 此段参考文章:高通平台下Termux Chroot/Proot容器实现全局硬件加速的笔记. @iPupil฿

虽然有着virglRenderer的支持,感觉GPU转译效率还是很低……在试图解决Steam无法启动时偶然看到这篇文章,于是来试试。
原博主使用Mi Pad 6 Pro还能玩Java版MC,我相信这个Pad 7也差不了多少……

## Termux内运行
apt install tur-repo
apt install mesa-zink vulkan-loader-android
## 容器内运行
sudo apt install mesa-utils vulkan-tools

再去sabamdarif/termux-desktop฿安装mesa-vulkan-kgsl软件包

理论上再把Termux一键启动脚本改成

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

# 启动唤醒锁防止被杀
termux-wake-lock
# 终止正在运行的 X11 进程
kill -9 $(pgrep -f "termux.x11") 2>/dev/null
# 启动 PulseAudio 并配置网络音频支持
pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1
# 启动 virgl_test_server_android 服务
virgl_test_server_android >/dev/null &
# 准备 termux-x11 会话,显示器设为:1,因为我自己不知道为啥:0报错
export XDG_RUNTIME_DIR=${TMPDIR}
termux-x11 :1 >/dev/null &
sleep 3
# 启动 Termux:X11
am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity > /dev/null 2>&1
sleep 1
proot-distro login debian --shared-tmp -- /bin/bash -c  'export PULSE_SERVER=127.0.0.1 && export XDG_RUNTIME_DIR=${TMPDIR} && export MESA_LOADER_DRIVER_OVERRIDE=zink && export TU_DEBUG=noconform && su - <用户名> -c "env DISPLAY=:1 LANG=zh_CN.UTF-8 GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx XDG_RUNTIME_DIR=${TMPDIR} MESA_LOADER_DRIVER_OVERRIDE=zink TU_DEBUG=noconform startxfce4"'
# 启动完毕
exit 0

安装thefuck终端纠错

sudo apt install thefuck
eval $(thefuck --alias)

安装之后输入fuck对上次命令进行纠错