2014/12/28

[Android][Arch] Xperia Z2 Tablet に chroot Arch Linux 環境を入れた

前提条件

  • Xperia Z2 Tablet の root 化済み
  • BusyBox インストール済み

自分が入れた BusyBox はこれ。BusyBox - Google Play の Android アプリ

やったこと

sd カードに arch 用のパーティションを作る

busybox の fdisk, mkfs を使用。詳細は略す。

arch 格納用のディレクトリ準備

# 読み書きできるように再マウント
mount -o rw,remount /

# マウントポイントを作成
mkdir /mnt/arch

# sd カードの arch 用パーティションをマウント
cd /mnt
mount -t ext2 /dev/block/mmcblk1p2 arch

arch のベースシステム(?)を配置

cd /mnt/arch

# ベースシステムが格納されたファイルをダウンロード
wget http://os.archlinuxarm.org/os/ArchLinuxARM-armv7-latest.tar.gz

# 解凍
tar zxfv ArchLinuxARM-armv7-latest.tar.gz

[2015/01/6更新]:armv7でなく、armv5だったので修正。

[2015/01/7更新]:やっぱりarmv7だったので修正。

chroot しても問題なく動くように設定を書き換える

# dns につながるように設定を書き換える
rm /mnt/arch/etc/resolv.conf
echo 'nameserver 8.8.8.8' > /mnt/arch/etc/resolv.conf

# chroot 環境から proc が見えるようにする
mount -t proc /proc /mnt/arch/proc

# /dev が必要なプログラムも多いので bind しておく
mount -o bind /dev /mnt/arch

arch 環境を整える

# 既存パッケージのアップグレード
pacman -Syu

# 必要なパッケージをインストール
pacman -S vim
pacman -S git
pacman -S ghc
pacman -S cabal-install
cabal update
cabal install cabal-install
cabal install pandoc
pacman -S graphviz
pacman -S go
pacman -S base-devel

pacman -S imagemagick
pacman -S otf-ipafont

とりあえず、 golang と imagemagick が動くことは確認できた。