Amazon Fire HD 10 (7th generation) を Arch Linux サーバ化する。
記事を書いたきっかけ
家に眠っていた Amazon Fire HD 10 (7th generation) を有効活用したい!の一心で設定をして動作検証しました。
まぁまぁ使えそうだったので、共有&備忘録します。
やりたかったこと
- タブレットを (Arch) Linux サーバ化して、いくつかのローカル管理アプリケーションを外部化したかった。
- どこでも触れる Linux 環境が欲しかった。
動作環境
Amazon Fire HD 10 (7th generation) を使います。
以下の事前作業がしてある端末を使います。
- Reset to Factory Defaults (工場出荷時の状態にリセット) しておく。
- 開発者モード (Developer Options) を有効 (Serial Numberをタップするandroid特有の操作) にして、ADB でバックを有効にしておく。
※ Fire Tool Box に必要
- Apps From Unknown Sources を ON にしておく。
※ F-Droid に必要
設定手順
UserLAnd を使っていくのですが、インストールは Google Play Store か F-Droid 経由になります。
Google Play Store
任意の PC を準備して Fire Tool Box のインストールを行います。
※利用は自己責任です。
The Fire Toolbox is a collection of useful ADB (Android Debug Bridge) tweaks that can be applied to Amazon's Fire Tablets. The Toolbox project aims to help users fully customize and unlock the full potential of their tablets by putting all the power into their hands.
※ GitHub には Fire Tool Box とよく似た Fire-Tools[1] も存在する。
PC側の設定は、以下の本でまとめた Arch Linux 環境を使用しました。
◆ PC側の設定
先ほどのページ[2]から Fire Tool Box をダウンロードします。
- FTB_V8.1_AppImage.7z (Linux用)
Fire HD 10 タブレットを USB 接続し、タブレットで「Allow USB Debugging?」のポップアップが出たら ok しておきます。
# 7zip インストール
sudo pacman -S p7zip
# 展開
7z e FTB_V8.1_AppImage.7z
# Android Debug Bridge (adb) インストール ※接続確認のため
sudo pacman -S android-tools
# 確認
adb devices
# Filesystem in Userspace (FUSE) インストール
sudo pacman -S fuse
# 実行
./FTB_V8.1_AppImage.AppImage
後は画面に従って Google Assistant を選び、Google Play Store をインストール可能です。
◆ タブレット側の設定
再起動をし、Google Settings を開いて Google アカウントにログイン後、Play Store が利用できるようになります。
F-Droid
F-Droid[3] は FOSS (Free and Open Source Software) のみを扱うアプリケーションストアです。
※もちろん利用は自己責任です。
Amazon Fire HD 10 (7th generation) は Android 5 世代であり最新版は使えないので、古いバージョンをインストールします。
- org.fdroid.fdroid_1015056.apk
インストールされた F-Droid を起動し、右下の虫眼鏡から検索をかけることができます。
UserLAnd
The easiest way to run a Linux distribution or application on an Android device. With UserLAnd the power to do or create whatever you want will never be out of reach.
UserLAnd は OSS の Linux エミュレータです。
GitHub[4] 上で最近の更新はなさそうですが、3600 Star がつくほど人気があるようです。
◆ タブレット側の設定
UserLAnd を起動したら Arch を選択、Username/Password を設定し、SSHを選択しておきます。
起動時に必要なもののダウンロード・インストールが行われます。
この環境は sudo を使いたい放題なので sudo pacman
もやりたい放題できます。
CPU アーキテクチャは armv81
だそう。
uname -m
> armv81
動作確認
試しに Python http.server でも動かします。
◆ タブレット側
# 事前に ip は調べておく
ip addr show
# 起動
python -m http.server 8000
◆ PC側
先ほど調べた ip と指定したポートで接続します。
ちゃんと見れますね。
(オマケ) Debian/Ubuntu を使った場合
◆ タブレット側の設定
もちろん Arch Linux 以外も使うことができます。
Debian/Ubuntu の場合は以下のような初期設定になるかと思います。
# パッケージ更新
sudo apt update
sudo apt upgrade
# curl https ができなそうだったので適当に証明書を準備
wget http://curl.haxx.se/ca/cacert.pem --no-check-certificate
mkdir -p /etc/ssl/certs
mv cacert.pem /etc/ssl/certs
cd /etc/ssl/certs
mv cacert.pem ca-certificates.crt
sudo apt install gpg
sudo apt install lsb-release
感想
GO で書かれたバイナリをちょこっと動かす検証をするときには、このタブレット環境でも十分耐えうるなと感じました。
一点大変なところがあるとすると、タブレットキーボードで設定ファイル等を記述するのは結構しんどかったです。
コピペの操作感もあまりよくないので、何かしらの方法でスクリプトを運ぶようにしてあげるか、電車の中でもなければキーボードはやはり使うようにすると良さそうですね。
またこの環境は systemd は動いておらず、PID1 は /init
なるものが動いています。
かつての WSL のような感じですが、ココ起因でいくらか相性が悪いものは出てきそうです。
AUR がうまく動かない事例もあるようですね。
とにもかくにも、ずっと眠っていた文鎮も日の目を浴びられそうで良かったです。
Discussion