ブログ

Armadillo640へのwxPython Phoenixのインストール(eMMC使用)

at_takuma.fukuda
2020年11月9日 6時20分

以前、以下の記事にてwxPython PhoenixをArmadillo-640にインストールする方法をご紹介しました。
Armadillo640へのwxPython Phoenix(Python3に対応したwxPython)のインストール

上記記事ではeMMCをブートディスクとする環境ではダウンロードファイルに対して容量が足りず、
インストールを完了できないとしていました。
しかしながら、インストールの過程で多量のファイルが必要となるものの、
実行環境そのものはそれほど大容量とはならないため、
at-debian-builderを使ってwxPython Phoenixをインストール済のルートファイルシステムをビルドすれば、
Armadillo-600のeMMC上でwxPythonを動作させることが出来ます。
この記事では、そのために必要な手順をご紹介します。

at-debian-builderの準備

以下のページより、at-debian-builderをATDE上にダウンロードしてください。
Armadillo-640 開発用ツール
以下のコマンドでat-debian-builderを展開してください。

[ATDE ~]$ tar xf at-debian-builder-[VERSION].tar.gz

以下のコマンドでArmadillo-600シリーズ用の設定ファイルディレクトリへ移動してください。

[ATDE ~]$ cd at-debian-builder-[VERSION]/a600_resources/resources

このディレクトリ内にある、「packages」と「fixup」というファイルを編集します。

インストールパッケージの設定

packagesをviで編集し、wxPython Phoenixのインストールに必要なパッケージを追加します。
どこに追加しても問題ありませんが、以下の例では末尾に追記する形を取っています。

# List of packaes will install in the debootstrap chroot environment.
# A line start with # is comment. Separate packages name with new-line or space.
 
#Init
systemd
systemd-sysv
 
(中略)
 
#wxpython3.0
python3
python3-pip
python3-numpy
libgtk2.0-dev
libgtk-3-dev
libjpeg-dev
libtiff-dev
libsdl1.2-dev
libgstreamer-plugins-base1.0-dev
libnotify-dev
freeglut3
freeglut3-dev
libsm-dev
libwebkitgtk-dev
libwebkitgtk-3.0-dev

wxPython Phoenixのインストール

wxPython PhoenixはDebianパッケージではないので、Python3-pipを使ってインストールします。
at-debian-builderでのルートファイルシステムアーカイブのビルド実行時にPython3-pipのインストールを行わせるために、fixupを以下のように編集します。

#!/bin/sh
 
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 
PKGS=$(cat /resources/packages | grep -v ^# | xargs)
 
cp /resources/sources.list /etc/apt/sources.list
 
export DEBIAN_FRONTEND=noninteractive
apt-key adv --keyserver pgp.nic.ad.jp --recv-keys 3874DA771B351757
apt-get -y update
apt-get -y install $PKGS
(python3-pipをインストールしてからでないと、pip3 installコマンドを実行できないので、
 「apt-get -y install $PKGS」よりも後に入力して下さい)
------ここから-----------------
#wxpython3.0
pip3 install pathlib2
pip3 install wxpython
------ここまで-----------------
 
#Setup locales
locale-gen
sed -i 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
(後略)

ルートファイルシステムアーカイブのビルド

at-debian-builder-[VERSION]ディレクトリ直下に移動し直して、
下記コマンドを実行してください。

[ATDE ~]$ sudo ./build.sh a600

完了までに数時間を要するのでお気を付け下さい。
また、かならずATDEがインターネットに接続出来ている状態で実行してください。

ルートファイルシステムアーカイブの書き込み

ビルドしたルートファイルシステムアーカイブをArmadillo-640へ書き込んでください。
書き込み方はマニュアルをご参照ください。
イメージファイルの書き換え方法

以上で、wxPython PhoenixがArmadillo-640にインストールされます。

参考情報

インストール後のeMMCの使用可能容量は、検証環境では1.4GBとなっており、
同じArmadillo-640を11/24時点での最新のインストールディスク(install-disk-sd-a600-20201030.img)で初期化した場合の2.6GBよりも1.2GB少なくなりました。

標準のインストールディスクで初期化した直後:
 
root@armadillo:~# df -h
Filesystem       Size  Used Avail Use% Mounted on
udev              10M     0   10M   0% /dev
tmpfs            100M  1.5M   99M   2% /run
/dev/mmcblk0p2   3.3G  553M  2.6G  18% /
tmpfs            250M     0  250M   0% /dev/shm
tmpfs            5.0M     0  5.0M   0% /run/lock
tmpfs            250M     0  250M   0% /sys/fs/cgroup
/dev/mmcblk0gp0  128K  128K     0 100% /opt/license
tmpfs             50M     0   50M   0% /run/user/0
 
wxPythonをインストールしたルートファイルシステムを書き込んだ直後:
root@armadillo:~# df -h
Filesystem       Size  Used Avail Use% Mounted on
udev              10M     0   10M   0% /dev
tmpfs            100M  1.8M   98M   2% /run
/dev/mmcblk0p2   3.3G  1.8G  1.4G  58% /
tmpfs            250M     0  250M   0% /dev/shm
tmpfs            5.0M     0  5.0M   0% /run/lock
tmpfs            250M     0  250M   0% /sys/fs/cgroup
/dev/mmcblk0gp0  128K  128K     0 100% /opt/license
tmpfs             50M     0   50M   0% /run/user/0