技术 | 一周从零搭建安卓平板Linux工作站:从踩坑到手动搭建全流程操作&深度复盘
拿生活费省吃俭用换了新平板,又记电子笔记又大屏打游戏,顿时觉得省钱没白省,那么还能做什么呢,要不下个文本编辑器写代码?于是我搜到了常见的几个代码编辑器,还有人说拿这玩意部署linux系统的,多新鲜啊(根本就是咱孤陋寡闻罢),遍历几个视频,随便问了问豆包,看着还挺靠谱的,于是参考一个评论作为大的框架。这是一个用termux+proot+x11——在安卓系统上部署linux(具体是ubuntu)的方案,实际情况比营销号说法要复杂的多,所以全流程执行共历时一周,平均每天耗时三小时,最后得到了一个一键开关机,能完整运行的Linux桌面系统,有代码编辑器、有浏览器,外接一套便宜键鼠,使用起来与电脑无异,性能后续还能够优化,但是让我先歇两天吧(瘫)省流版readme
Termux是一个在安卓设备上仿照linux的命令行应用,用这个下载proot-distro(这东西能够在termux的环境下,不用root权限下载和管理轻量的linux发行版),在里面下载ubuntu,启动之后下载xfce4(轻量桌面环境),再用termux-x11,在本地接收termux内部这个ubuntu系统发出来的桌面,并显示在屏幕上,并能够实时交互,这样就很完整了,之后还有一些小的优化,省流了于是按下不表。那个笔记软件的手写笔适配一点都不好,害的我写这么丑如果你拿这一段去问ai,应该也是可以完整地走上一遭的(因为我就是先走弯路,之后梳理出来个这,然后去问ai的),接下来就是完整版:第1天:一键脚本踩坑,“抄作业”未遂
根据营销号的说法,我尝试使用tmoe一键式脚本,在Termux中直接下载完整Ubuntu系统,再用VNC转发,结果脚本的网络配置是写死的,更换镜像源即卡死,无法继续后续下载内容,排查DNS等网络问题无果,脚本因年久失修彻底失效,但是,tmoe脚本用的就是proot-distro来下载系统,那么能不能我们自己用这个来下载系统并运行呢?工具依赖与环境配置的复杂度远超预期,依赖他人封装的脚本存在不可控风险,最终只能选择完全手动搭建工具链(真的能做到吗?),从根源上掌控整个部署流程。脚本默认使用的是北京外国语大学的源,死活连不上,我记住你了北外(?)第2天:proot容器部署,打通命令行基础环境
昨天失败了,但是它留下了一点希望——能用proot-distro工具,可以在Termux中容器化部署Ubuntu系统,手动完成换源、DNS配置,解决网络连接问题,就完整用上了最基础的命令行界面成功启用Ubuntu命令行界面,完成核心基础部署。理解原理后使用官方推荐工具,才是技术操作的核心。借助AI,我们是可以快速拆解底层逻辑的,完全没有必要找别人做好的方案照猫画虎。以前有很多次都是这样:看着别人给的视频内容或者是手把手教,结果本地的某些配置又不一样,最后无功而返或者是全是bug,这个思路也应该复用到其他事情当中。第3天:图形化桌面搭建,完成系统核心架构
基于termux给出的转发方案,即用termux-x11直接接收本地的桌面信息,换言之内部的小系统没法直接在安卓设备的屏幕上显示桌面,于是发给x11,由它显示出桌面。配置xfce4桌面环境与x11本地转发,调整x11服务监听端口、xfce4输出端口与模式,安装dbus与自启动项,在bashrc中写全环境变量,解决大量报错(AI干的),完成桌面基础配置,前期的工作我们已经做得差不多了,安装每一层的本体和对应的依赖包,找到对应的端口写好环境变量,建立屏幕映射,usb连电脑用ADB调试,关掉了后台省电防止杀后台。图形化桌面成功跑通,平板正式成为能可视化操作的Linux设备,完成系统核心架构搭建。每一个工具都有对应的依赖和环境配置,确实是很不好办,怪不得这帮子人都用tmoe一键式脚本,我还想用那个嘞,结果脚本年久失修,网络死活接不上,最后只能动手搓一套工具出来。但是,手动配置每一项环境、亲眼见证桌面从无到有加载完成,手动把文件管理、网络连接的各种配置设置好,又手动打开图形化桌面,看着前面的窗口加载出来,又同时能够在后台实时看到各种变化,这真是极好的一课,能很鲜明地展示电脑的内部环境(管中窥豹)和其中的软件是怎么一点一点相互搭建起来的。唯一的问题就是——我快累死了,好在道路已经完全明朗了,之后只要能够多次完整复现,就可以用脚本一键启动,之后就没有什么问题了,我们就确确实实地把平板改造成了linux平台了。第4-5天:系统细节打磨,从“能用”到“好用”
显示优化:适配平板分辨率,调整字体全局缩放、导航栏图标、任务栏高度、桌面图标尺寸,手动放大按钮尺寸、设置窗口半透明,解决图标过小无法操作的问题;软件部署:安装Firefox浏览器、Codium代码编辑器,配置桌面快捷方式,测试网络连通性;音频适配未遂:使用pulseaudio配置系统声音,走一大堆弯路,最终摸清proot容器的权限限制,办不到。哦对,还创建了正常权限的用户身份,不用root权限裸奔了。亲手搭建的环境,每一处细节都由自己调整,这种“自己打扫屋子再请客”的掌控感真是不一样啊,我用不着去打游戏了。倒腾音频服务,发现全是权限不足,因为proot容器的本质就是用虚拟信息伪造完整Linux环境,隔离真实硬件权限,凡是它要校验有外界接触的,proot全给它伪造咯,所以我们一来就是root权限,桌面服务,系统dbus服务,仅仅在我们需要的时候才启动,所以只有一个虚拟的电源,它没有硬件拿来关机,或者是系统配置启动dbus。我们是造出来了一个楚门的世界,添加了摄像头并把画面转播给我们,我逐渐理解一切,明白原理就可以做很多新的操作了。桌面在运行的时候也会尝试连接硬件,连不上的,但是不影响运行第6天:自动化脚本开发,实现一键启动
启动这东西还挺麻烦的,首先进入termux,用tmux开分屏,一个分屏打开termux-x11的转发服务,另一个分屏进入系统,手动打开dbus,再手动打开xfce4桌面。基于已验证的全流程,拿AI写个一键开机脚本,将所有手动操作自动化,简化使用流程。实现系统一键启动,大幅降低使用门槛,完成从“手动搭建”到“一键使用”的转化。第7天:桌面化体验完善,完成全流程收尾
问问ai:有没有那种快捷方式,我一点就能执行脚本的,答案是termux:widget,但是每次让它直接执行脚本就卡死,可能冷启动和手动启动的原理不太一样。但是,我已经知道这是个什么事了,那我改改这个快捷方式,让我点一下脚本就能模仿手动启动把软件打开,再输入脚本回车,这不就行了嘛还有修改桌面关机命令,写了个关机脚本,实际上就是按顺序把我们之前打开的进程一个个杀了,把电源键改成执行咱的脚本,那么虽然硬件是假的,它不能真断电,但是它可以执行我们写的脚本把虚拟的进程杀了,这样关机键也做好了。系统完全桌面化,一键启停、桌面快捷、正常权限全部就绪,成为完整可用的便携Linux工作站。这软件用来把能运行的脚本放在桌面上(请忽略右上角的粥)经过了一周的快速上手和折腾,这东西已经完全是可以一键使用的系统了,linux工作站的基本配置没有问题了,之后只需要在这个框架上加入各种各样的工具。诚然,我并不能看懂多少,但是拿AI问个大概,梳理出来要做什么,就能接着一点点理解和操作,照样一步步跑通了整套流程,前途是光明的!