AE-RP2040で開発版FUZIX 0.5を動かしてみました

Electronics

前回の記事でダウンロードしたビルド済FUZIX 0.4のファイルの日付は2021年2月18日と少し古いバージョンのようです。FUZIXの公式サイトにリンクされているGitHubを確認したところ、masterブランチにRaspberry Pi Picoのプラットフォームもマージされていて、開発中のバージョンは0.5になっているようです。この最新版をUbuntu 22.04上でビルドして秋月電子のRP2040マイコンボードキットで動かしてみました。なお、Raspberry Pi Picoで動かす場合にも参考になると思います。

GitHub - EtchedPixels/FUZIX: FuzixOS: Because Small Is Beautiful
FuzixOS: Because Small Is Beautiful. Contribute to EtchedPixels/FUZIX development by creating an account on GitHub.

ハードウェアの準備

前回の記事でFUZIX 0.4を動かしたハードウェアをそのまま使用します。microSDカードは8GBを使いました。

最新のFUZIXをビルドする

Raspberry Pi Pico用Fuzixのビルド手順は以下にあります。必要なユーティリティは前回の記事のLチカの実験でインストール済みの状態です。

FUZIX/Kernel/platform/platform-rpipico/README.md at master · EtchedPixels/FUZIX
FuzixOS: Because Small Is Beautiful. Contribute to EtchedPixels/FUZIX development by creating an account on GitHub.

RP2040のビルドに必要なパッケージのインストールとFuzixのリポジトリをGitHubからクローンするところから行います。

games/2048でエラー発生

残念ながらgames/2048のコンパイルでエラーになってしまいました。ヘッダの不整合のようなので少しいじれば直せるとは思うのですが、一旦このディレクトリのコンパイルを行わないようにFUZIX/Applications/Makefileを以下のように修正して再度makeを行いました。

(修正前)

(修正後)

Buildが成功

これでようやくBuildが通りました。FUZIX/Kernel/platform/platform-rpipicoにfilesystem.uf2にカーネルが含まれたファイルシステムが生成されています。FUZIX/Images/rpipicoのfilesys.imgは様々なアプリケーションが入っているファイルシステムになります。

microSDカードのパーティショニング

lsblkコマンドでmicroSDカードのデバイス名を確認します。この例ではsdaがmicroSDカードになります。ここを間違えるとUbuntuを壊してしまいますので十分注意してください。

次にmicroSDにパーティションを作成します。sda1に2MBのswap用パーティション、sda2に32MBのファイルシステム用のパーティションを作成します。

ファイルシステムの書き込み

BOOTスイッチを押しながらPCとRP2040ボードをUSBケーブルで接続するとディスクドライブがみえますのでFUZIX/Kernel/platform/platform-rpipicoにあるfilesystem.uf2をドラッグ&ドロップでRP2040のフラッシュメモリに書き込みます。書き込みが完了するとFUZIXが起動します。

microSDカードにはFUZIX/Images/rpipicoにあるfilesys.imgを書き込みます。以下のコマンドで先程パーティショニングしたmicroSDカードの32MBのパーテイションに書き込みます。このとき書き込み先がmicroSDカードであることを必ず確認してください。間違えるとUbuntuを壊します。

FUZIX 0.5を起動する

FUZIXのコンソールはRP2040のUSB経由のシリアル(/dev/ttyACM0)もしくはUSBシリアル変換ボードを経由したUART(/dev/ttyUSB0)が使用できます。

起動時にはどのファイルシステムを使用するかを聞いてきます。

hdaと指定するとRP2040のフラッシュメモリのファイルシステムになりますが、フラッシュメモリに格納できるように約1.2MBと最小限のサイズになっています。これを使うとmicroSDカードは不要ですが使えるコマンドは限られます。

hdb2を指定するとmicroSDのファイルシステムとなります。32MBありますので多くのコマンドが揃っています。通常はhdb2を指定すると良いでしょう。

かわいいバナーにはFuzix 0.5とあり、起動直後にもFUZIX version 0.5と表示されています。これで最新版のFUZIXになりました。

FUZIX 0.5を探検する

今回はmicroSDカードのファイルシステムが充実しているのでこちらを探検してみます。まずは、/usr/gamesをみてみましたが、明らかにゲームの数が増えています。

/usr/binの中をみるとネットワーク関係のコマンドも存在するようです。これもどこまで使えるのか試してみる価値はありそうです。

viコマンドもあるのですが通常の状態ではメモリが足りないようです。

swapを追加してみる

ここでmicroSDカードに作成しておいた領域を使って、swapを設定してみます。

swapが追加され使用できるメモリが増えたことがわかります。これで少し大きなプログラムも動かせるようになります。試しにFORTHを動かしてみました。

しかし、viはswaponにしてもout of memoryで動きませんでした。エディタはぜひ使いたいのでこちらは少し調べてみたいと思います。

まとめ

FUZIX 0.5はまだ開発中のバージョンであるため、ビルド環境や一部動作が不完全ですが進化しているように思います。また、リポジトリを見るとわかりますが、様々なアーキテクチャのマイコンボードに移植されていますので、これも試してみる価値はあります。

AE-RP2040ではネットワーク機能が無いため試せませんでしたが、ネットワーク系のコマンドが気になるため実験用にW5500-EVB-Pico2を購入してしまいました。

次回はこのW5500-EVB-Pico2にEthernetを接続してFUZIX 0.5を試してみます。

タイトルとURLをコピーしました