小米平板5安装Linux系统

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/

  1. $ apt install proot-distro
COPY
  1. $ proot-distro list
  2. Supported distributions:
  3. Alpine Linux (3.14.1)
  4. Alias: alpine
  5. Status: NOT installed
  6. Arch Linux
  7. Alias: archlinux
  8. Status: NOT installed
  9. Debian (bullseye)
  10. Alias: debian
  11. Status: NOT installed
  12. Fedora (34)
  13. Alias: fedora
  14. Status: installed
  15. Gentoo
  16. Alias: gentoo
  17. Status: NOT installed
  18. OpenSUSE (Tumbleweed)
  19. Alias: opensuse
  20. Status: NOT installed
  21. Ubuntu (20.04)
  22. Alias: ubuntu
  23. Status: installed
  24. Void Linux
  25. Alias: void
  26. Status: NOT installed
  27. Install selected one with: proot-distro install <alias>
COPY

上面是目前支持的linux发行版列表。使用以下命令安装预期的linux系统:

  1. $ proot-distro install ubuntu
COPY

由于我这里需要桌面系统,在尝试了多个系统之后,最终选择了Fedora。安装之后使用以下命令进入linux终端环境:

  1. $ proot-distro login fedora
  2. Last login: Wed Sep 1 16:39:52 UTC 2021 on pts/5
  3. [root@localhost ~]#
COPY

可以看到,默认进入的是root环境。这里做一些简单的测试。

  1. # uname -a
  2. Linux localhost 5.4.0-faked #1 SMP PREEMPT Fri Jul 30 03:13:42 CST 2021 aarch64 aarch64 aarch64 GNU/Linux
  3. # cat /etc/os-release
  4. NAME=Fedora
  5. VERSION="34 (Container Image)"
  6. ID=fedora
  7. VERSION_ID=34
  8. VERSION_CODENAME=""
  9. PLATFORM_ID="platform:f34"
  10. PRETTY_NAME="Fedora 34 (Container Image)"
  11. ANSI_COLOR="0;38;2;60;110;180"
  12. LOGO=fedora-logo-icon
  13. CPE_NAME="cpe:/o:fedoraproject:fedora:34"
  14. HOME_URL="https://fedoraproject.org/"
  15. DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f34/system-administrators-guide/"
  16. SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
  17. BUG_REPORT_URL="https://bugzilla.redhat.com/"
  18. REDHAT_BUGZILLA_PRODUCT="Fedora"
  19. REDHAT_BUGZILLA_PRODUCT_VERSION=34
  20. REDHAT_SUPPORT_PRODUCT="Fedora"
  21. REDHAT_SUPPORT_PRODUCT_VERSION=34
  22. PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
  23. VARIANT="Container Image"
  24. VARIANT_ID=container
COPY

当然,这里的root不是真的root,不能够访问网卡等设备资源。因此,在这里环境里是不能抓包的。

0x03 安装桌面系统

使用命令行界面毕竟还是不太方便,需要开启桌面系统。可以使用以下命令安装桌面系统以及firefox浏览器:

  1. # dnf install mate-session-manager mate-desktop mate-themes mate-terminal pluma caja marco glibc-langpack-en firefox
COPY

此时,还不能直接开启桌面系统,需要配置DISPLAY环境变量。可以使用以下两种方式配置这个环境变量:

  • VNC
  • XSDL

其中,第二种方法模拟了XServer服务,更接近linux的日常使用。XSDL的安装包可以在以下地址:https://sourceforge.net/projects/libsdl-android/files/apk/XServer-XSDL/中获取。

启动后,会提示在终端中配置以下环境变量:

  1. $ export DISPLAY=localhost:0 PULSE_SERVER=tcp:localhost:4713
COPY

然后启动桌面系统:mate-session。XSDL窗口中很快就看到linux桌面了。

虽说系统界面谈不上特别美观,但至少够用了,基本的使用应该没啥问题(要啥自行车!)。

0x04 安装常用软件

  • 中文输入法
  1. # dnf install fcitx fcitx-sunpinyin fcitx-configtool im-chooser
COPY

然后使用im-chooser命令进行输入法相关设置。

  • vscode

vscode官网下载arm64版本的vscode deb包,使用dpkg -i vscode.deb命令安装到系统中。

由于vscode不让使用root权限运行,因此,需要创建普通帐号:

  1. # useradd -m drunkdream
  2. # dnf install passwd
  3. # passwd shadowyang
COPY

此时,需要使用以下命令行进入fedora:proot-distro login fedora --user drunkdream。如果要进入root权限,可以使用su命令,输入密码即可。

  • Linux QQ 3.0

最新版本的Linux QQ体验上已经比之前好了很多,完全可以满足跨设备进行复制/粘贴,以及文件传输的需求。

下载地址:https://im.qq.com/linuxqq/index.shtml

下载arm64版本的rpm包到本地,然后使用以下命令进行安装:

  1. $ sudo yum install -y xdg-utils
  2. $ sudo rpm -ivh ~/Downloads/linuxqq_3.0.0-571_aarch64.rpm
COPY
  • 文件管理

Android系统与fedora之间没法直接进行复制、粘贴等操作,此时,可以借助一些文件管理工具来达到这一效果。我使用的是filebrowser,直接下载后放到/usr/local/bin目录下,需要的时候启动起来即可。

0x05 总结

Android平板可以通过安装termux应用,进一步安装完整的linux系统,来达到创建开发环境的目的。因此,平板在一定程度上是可以取代笔记本,达到便携式开发和远程处理紧急工作的目的。

分享
7 comments
Anonymous
Markdown is supported
头像
rfd-BigDaycommentedabout 3 years ago

大佬,我按照你教程上的方式操作但是XSDL一直没有显示

头像
drunkdreamcommentedabout 3 years ago

@rfd-BigDay
大佬,我按照你教程上的方式操作但是XSDL一直没有显示

可以试下打开xsdl后,在termux里执行proot-distro login fedora -- bash -c 'export DISPLAY=localhost:0 PULSE_SERVER=tcp:localhost:4713;mate-session'这个命令行来开启桌面系统

头像
jimbirthdaycommentedabout 3 years ago

有试过直接安装ubuntu吗

头像
drunkdreamcommentedabout 3 years ago

@jimbirthday
有试过直接安装ubuntu吗

纯命令行是正常的,安装桌面失败了,就没有继续折腾,这个毕竟不是完整的Linux,主要还是为了在某些场景下应急用的

头像
yixiao0416commentedover 1 year ago

大佬,这样之后还可以转回安卓吗

头像
drunkdreamcommentedover 1 year ago

@yixiao0416
大佬,这样之后还可以转回安卓吗

这里本质上只是安装了一个应用,模拟了Linux环境,退出应用就是Android了

头像
yixiao0416commentedover 1 year ago