先日はMulticomp Cycllne II-C でfuzixを試してみたが、同じfuzixつながりでRaspberry Pi Picoで動かしてみた。 (参考RaspberryPi PicoでUnix!!(FUZIX動いた!))
追試的に同じことをしてみたが全く同じ状態。記事にならってバイナリイメージをダウンロードし書き込むことで起動出来た。
しかしこれではソフトウエアを追加したり出来ない。そこでなぜgithub上の
最新が動かないのか調べてみた。
参考記事ではHow to get started with FUZIX on Raspberry Pi Picoを参照しながら
$ make world -j
$ ./update-flash.sh
としてbuild/fuzix.uf2
とfilesystem.img
を作る手順としている。
記事でも触れられているように、作成されるfilesystem.img
が小さすぎる。
不思議なことにWebで「raspberry pi pico fuzix」で検索すると、ヒットするのがほとんど2021/2頃の記事。
途方にくれてローカルにクローン(git clone https://github.com/davidgiven/FUZIX.git)したソースでupdate-flash.sh
に絞って過去にさかのぼってみたところ2021/3/1のコミットでmkfsのサイズが大幅に変更されていることが判明。
$ git log -p Kernel/platform-rpipico/update-flash.sh
途中略
commit c934a0dfc78243e805d6364b7f9e74ec519afa4d
Author: David Given dg@cowlark.com
Date: Mon Mar 1 23:15:38 2021 +0100
Add tooling to create an FTL NAND flash root filesystem instead of an SD card
one, and import the tooling to turn it into a flashable UF2 file (I hope).
diff --git a/Kernel/platform-rpipico/update-flash.sh b/Kernel/platform-rpipico/update-flash.sh
index b3ecb0f9..8af3ad72 100755
--- a/Kernel/platform-rpipico/update-flash.sh
+++ b/Kernel/platform-rpipico/update-flash.sh
@@ -6,7 +6,8 @@ set -e
#truncate --size=1450k filesystem.img
#sudo losetup -P /dev/loop0 filesystem.img
#trap 'sudo losetup -d /dev/loop0' EXIT
-../../Standalone/mkfs ${IMG} 256 65535
+rm -f ${IMG}
+../../Standalone/mkfs ${IMG} 32 2794
../../Standalone/ucp ${IMG} <<EOF
cd /
mkdir bin
どうもNAND flashにルートファイルシステムを作り、microSDがなくても動くようにしたようだ。
なので32MBじゃないのか。さらにこのコミットの詳細を調べてみると
$ git show c934a0dfc78
途中略
-You should now end up withbuild/fuzix.uf2
andfilesystem.img
. Theuf2
-file can be flashed onto the Pico in the usual way (i.e. connect it up as a
+You should now end up withbuild/fuzix.uf2
andfilesystem.uf2
. Theuf2
+files can be flashed onto the Pico in the usual way (i.e. connect it up as a
mass storage device and copy the file on). Alternatively, you can use OpenOCD
このタイミングでfilesystem.imgではなくfilesystem.uf2になっている。
ちゃんと読んでなかったが確かにREADME.mdに$ make image -j
と記載されており、
これを実行するとbuild/fuzix.uf2とfilesystem.uf2が出来た。
しかしRaspberryPi Picoでuf2ファイルを2個書き込む方法がわからない。
(usual wayとなっているが、RaspberryPi Picoではファイルを一つ書き込んだ段階でストレージモードが解除され実行開始されるので一度に2個書けない)
悩みながらfuzix2.uf2とfilesystem.uf2をbootモードにしながら何度となく書いていると
(何度も順に書いたので、どちらを先に書いたの既にわからない)が動き出した。
確かに/dev/ttyACM0
に115200baudでつながる。
RaspberryPi Picoを良く知らないので原因がわからず若干のもやもやが残るが、
これでソフトウエアの追加や編集ができそう。
※コメント投稿者のブログIDはブログ作成者のみに通知されます