0x00 背景
小米平板5开始支持了键盘与鼠标,终于离生产力工具越来越近了。因此,从入手小米平板5开始,就想着怎么安装一个linux系统,可以在里面安装vscode
,以便使用pad开发代码。下面是这段折腾之路的记录。
0x01 使用Aid Learning方案
Aid Learning
是一个为在Android机器上进行AI开发而实现的APP,官网地址为:http://www.aidlearning.net/
。这个APP内置了vscode,对于不想折腾的同学非常友好。
但是,这个应用的实现方案是创建了一个vscode server
,客户端其实只是一个浏览器。这种方式体验上并不是很好,所以还是想达到与linux本地开发一致的体验。
0x02 在Termux中安装linux系统
Termux
是一个Android上的终端模拟器,可以免root模拟linux环境,同时提供了大量linux上的软件供安装使用,但它本质上还是一个Android环境。在这个环境中可以通过安装proot-distro
工具来安装真正的linux系统。
APK下载地址:https://f-droid.org/packages/com.termux/。
$ apt install proot-distro
$ proot-distro list
Supported distributions:
Alpine Linux (3.14.1)
Alias: alpine
Status: NOT installed
Arch Linux
Alias: archlinux
Status: NOT installed
Debian (bullseye)
Alias: debian
Status: NOT installed
Fedora (34)
Alias: fedora
Status: installed
Gentoo
Alias: gentoo
Status: NOT installed
OpenSUSE (Tumbleweed)
Alias: opensuse
Status: NOT installed
Ubuntu (20.04)
Alias: ubuntu
Status: installed
Void Linux
Alias: void
Status: NOT installed
Install selected one with: proot-distro install <alias>
上面是目前支持的linux发行版列表。使用以下命令安装预期的linux系统:
$ proot-distro install ubuntu
由于我这里需要桌面系统,在尝试了多个系统之后,最终选择了Fedora
。安装之后使用以下命令进入linux终端环境:
$ proot-distro login fedora
Last login: Wed Sep 1 16:39:52 UTC 2021 on pts/5
[root@localhost ~]#
可以看到,默认进入的是root环境。这里做一些简单的测试。
# uname -a
Linux localhost 5.4.0-faked #1 SMP PREEMPT Fri Jul 30 03:13:42 CST 2021 aarch64 aarch64 aarch64 GNU/Linux
# cat /etc/os-release
NAME=Fedora
VERSION="34 (Container Image)"
ID=fedora
VERSION_ID=34
VERSION_CODENAME=""
PLATFORM_ID="platform:f34"
PRETTY_NAME="Fedora 34 (Container Image)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:34"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f34/system-administrators-guide/"
SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=34
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=34
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
VARIANT="Container Image"
VARIANT_ID=container
当然,这里的root不是真的root,不能够访问网卡等设备资源。因此,在这里环境里是不能抓包的。
0x03 安装桌面系统
使用命令行界面毕竟还是不太方便,需要开启桌面系统。可以使用以下命令安装桌面系统以及firefox浏览器:
# dnf install mate-session-manager mate-desktop mate-themes mate-terminal pluma caja marco glibc-langpack-en firefox
此时,还不能直接开启桌面系统,需要配置DISPLAY
环境变量。可以使用以下两种方式配置这个环境变量:
- VNC
- XSDL
其中,第二种方法模拟了XServer
服务,更接近linux的日常使用。XSDL的安装包可以在以下地址:https://sourceforge.net/projects/libsdl-android/files/apk/XServer-XSDL/中获取。
启动后,会提示在终端中配置以下环境变量:
$ export DISPLAY=localhost:0 PULSE_SERVER=tcp:localhost:4713
然后启动桌面系统:mate-session
。XSDL窗口中很快就看到linux桌面了。
虽说系统界面谈不上特别美观,但至少够用了,基本的使用应该没啥问题(要啥自行车!)。
0x04 安装常用软件
- 中文输入法
# dnf install fcitx fcitx-sunpinyin fcitx-configtool im-chooser
然后使用im-chooser
命令进行输入法相关设置。
- vscode
在vscode官网下载arm64版本的vscode deb包,使用dpkg -i vscode.deb
命令安装到系统中。
由于vscode不让使用root权限运行,因此,需要创建普通帐号:
# useradd -m drunkdream
# dnf install passwd
# passwd shadowyang
此时,需要使用以下命令行进入fedora:proot-distro login fedora --user drunkdream
。如果要进入root权限,可以使用su
命令,输入密码即可。
- Linux QQ 3.0
最新版本的Linux QQ体验上已经比之前好了很多,完全可以满足跨设备进行复制/粘贴,以及文件传输的需求。
下载地址:https://im.qq.com/linuxqq/index.shtml
下载arm64
版本的rpm
包到本地,然后使用以下命令进行安装:
$ sudo yum install -y xdg-utils
$ sudo rpm -ivh ~/Downloads/linuxqq_3.0.0-571_aarch64.rpm
- 文件管理
Android系统与fedora之间没法直接进行复制、粘贴等操作,此时,可以借助一些文件管理工具来达到这一效果。我使用的是filebrowser,直接下载后放到/usr/local/bin
目录下,需要的时候启动起来即可。
0x05 总结
Android平板可以通过安装termux
应用,进一步安装完整的linux系统,来达到创建开发环境的目的。因此,平板在一定程度上是可以取代笔记本,达到便携式开发和远程处理紧急工作的目的。