aburi6800のブログ

コンピュータのプログラミング、ゲームに関するニッチな情報を書いていくブログです。

【MSX】AndroidでMSXクロス開発環境を構築する(1)

はじめに

今回から数回に分けて、Android端末にMSX開発環境を構築する手順を紹介します。
とは言え、AndroidMSX開発用のアプリという都合のいいものはないので、AndroidにPCと同様の開発環境(※1)を構築することにします。
具体的には、gitでソースのバージョン管理、VSCodeでソースの編集、z88dkでZ80のCまたはアセンブラソースからromファイルを作成、WebMSXで実行という構成になります。
宜しければお試しください。

※1
ほぼ同様で、違いと言えば実行環境がPCほど選べない(アプリで提供されているMSXエミュレータかWebMSXが選択肢となる)のと、デバッグ環境が無いところだけが違いです。
とはいえ、このデバッグ環境がないのが、結構ツラいところですが・・・

全体の流れ

全体の流れは、以下になります。

  1. Android端末上にLinuxubuntu)環境を構築する
  2. ubuntuにgitをインストール、GitHubSSH通信する設定を行う
  3. ubuntuにz88dkをインストールする
  4. ubuntuにcode serverをインストールする
  5. テストプログラムをコンパイルし、MSXエミュレータ上で実行する

今回は、「1. Android端末上にLinuxubuntu)環境を構築する」部分について記載します。

1.AndroidLinux環境を構築する

(1) Termuxのインストール

まず、AndroidLinux環境を構築します。 これにはroot権限不要でLinux環境を構築できる「Termux」というアプリを使用します。
詳細については以下リンク先を参照してください。
Termux wiki

なお、以前はPlayストアで配信されていましたが、現在はF-Droidで配信されているものを使用することになっています。(Android7.0以降に対応)
F-Froid / Termux

基本的には、apkをダウンロードしてインストールするだけです。

ここで、自分のAndroid端末へのapkのインストール方法が判らない場合は、この先に進むのは止めた方が良いと思います。

(2) Termuxの設定

ダウンロード後の最初の起動時に権限を求められるので、それぞれ許可してください。
その後、コマンドプロンプトが表示されます。

Termuxは基本的にシングルユーザーのため、rootで使用します。特にユーザーの追加などは不要です。
まず、TermuxからSDカードなどにアクセスできるよう、以下のコマンドを入力します。

pkg update && pkg install termux-setup-storage

この結果、ホームディレクトリに storage ディレクトリが作成され、内部ストレージやSDカードにアクセスできるようになります。
以下は、pkg install後のディレクトリ内容を確認した例です。

~ $ ls -al
total 24
drwx------ 4 u0_a245 u0_a245 4096 Mar  5 22:38 .
drwxrwx--x 4 u0_a245 u0_a245 4096 Feb 20 19:06 ..
-rw------- 1 u0_a245 u0_a245  302 Mar  5 22:25 .bash_history
-rw------- 1 u0_a245 u0_a245   26 Feb 20 19:22 .bashrc
drwx------ 2 u0_a245 u0_a245 4096 Feb 20 19:06 .termux
drwx------ 2 u0_a245 u0_a245 4096 Feb 23 00:44 storage
~ $ cd storage/
~/storage $ ls -al
total 8
drwx------ 2 u0_a245 u0_a245 4096 Feb 23 00:44 .
drwx------ 4 u0_a245 u0_a245 4096 Mar  5 22:38 ..
lrwxrwxrwx 1 u0_a245 u0_a245   24 Feb 23 00:44 dcim -> /storage/emulated/0/DCIM
lrwxrwxrwx 1 u0_a245 u0_a245   28 Feb 23 00:44 downloads -> /storage/emulated/0/Download
lrwxrwxrwx 1 u0_a245 u0_a245   48 Feb 23 00:44 external-1 -> /storage/129B-6156/Android/data/com.termux/files
lrwxrwxrwx 1 u0_a245 u0_a245   26 Feb 23 00:44 movies -> /storage/emulated/0/Movies
lrwxrwxrwx 1 u0_a245 u0_a245   25 Feb 23 00:44 music -> /storage/emulated/0/Music
lrwxrwxrwx 1 u0_a245 u0_a245   28 Feb 23 00:44 pictures -> /storage/emulated/0/Pictures
lrwxrwxrwx 1 u0_a245 u0_a245   19 Feb 23 00:44 shared -> /storage/emulated/0
~/storage $

(3) ubuntuのインストール

上記でインストールしたTermuxはDebianベースのLinux環境ですが、若干使い勝手が悪いため、ubuntu環境を使えるようにします。
PCでもubuntuを使っているという場合は、同じコマンドを使えるので、この方が便利だと思います。
もしDebianに慣れている場合は、以降はスキップしても問題ありません。

ます、コンソールで以下のコマンドを実行し、prootproot-distroをインストールします。

pkg install proot proot-distro

その後、以下コマンドで、ubuntuをインストールします。

proot-distro install ubuntu

インストールが完了したら、以下コマンドで確認します。

proot-distro list

ubuntustatusinstalledになっていれば、インストールが成功して利用可能な状態となります。

インストール後は、以下のコマンドで、ubuntuを開始できます。

proot-distro login ubuntu

ログインできたことを確認したら、一度exitとしてubuntuから抜け、以下のコマンドを実行します。

echo 'proot-distro login ubuntu' >> ~/.bashrc

これで、次回からコマンドを実行しなくても、Termux起動後に自動的にubuntuにログインした状態になります。

(4) ubuntuの基本設定

ここまででインストールしたubuntuは、一般的にPCにインストールされるものと違い、必要最低限なものです。
GUI環境でもありませんし、日本語にも対応しておらず、wgetなどもインストールされていません。
また、シングルユーザー(root)の状態ですので、まずはubuntuの基本設定を進めていきます。

日本語ロケールへの変更

まずは日本語ロケールに変更します。
これは全ユーザーに適用されても問題ないので、root(デフォルトのユーザー)のままで行います。

pkg update && pkg upgrade -y
apt install language-pack-ja -y
locale -a

3つ目のコマンドの実行結果で、ja_JP.utf8が表示されていればインストール完了です。
引き続き、以下のコマンドを実行し、システムの設定を変更します。

echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc
echo 'export LANGUAGE="ja_JP:ja"' >> ~/.bashrc
source ~/.bashrc

一般ユーザーの追加

現状ではrootでの作業となり危険ですので、一般ユーザーを追加します。
まず、sudoがないため、以下コマンドを実行します。

apt update
apt dist-upgrade
apt install sudo

その後、ユーザーを追加し、sudoグループに追加します。

adduser <ユーザー名>
gpasswd -a <ユーザー名> sudo

最後に、シェル起動時のスクリプトsuするコマンドを追加し、実行します。

echo 'su <ユーザー名>' >> ~/.bashrc
source ~/.bashrc

ここで、プロンプトが以下の表示になっていれば成功です。

<ユーザー名>@localhost:/root$

ただし、sudoコマンドが使えない場合があります。(少なくとも私は使えなかった)
その場合は一度exitしてrootに戻り、以下コマンドを実行して、設定ファイルを編集します。
一行目は初回のみ必要なものです。

apt install vim
visudo

vimの画面になるので、以下の行を追加します。

:
root ALL=(ALL:ALL) ALL
<ユーザー名> ALL=(ALL:ALL) ALL    ←この行を追加
:

この後、su <ユーザー名>とすると、sudoが使えるようになっていると思います。

意味的にはrootと同じ権限をユーザーに与えるということなので、実際はユーザーを切り替える必要性はあまりありません。 しかし、一般的な情報にある手順はsudoコマンドを使うものですので、読み替えしなくても使えるというメリットはあります。

なお、suした後のカレントディレクトリがrootのホームディレクトリになっています。
これをユーザーのホームディレクトリに変更するには、一般ユーザーでログインした状態で以下のようにします。

echo 'cd ~' > ~/.bashrc
source ~/.bashrc

以上で、Termuxにubuntuをインストールし、必要最低限の設定を行いました。
次回はgitをインストールし、GitHubSSH通信するための設定を行います。