小米平板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/

$ 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系统,来达到创建开发环境的目的。因此,平板在一定程度上是可以取代笔记本,达到便携式开发和远程处理紧急工作的目的。

分享