石原 博の覚書

電子工作に関する日々の覚書を記載します

Raspberry Pi Picoでfuzix

2022-09-01 21:44:51 | 日記

先日は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.uf2filesystem.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 with build/fuzix.uf2 and filesystem.img. The uf2
-file can be flashed onto the Pico in the usual way (i.e. connect it up as a
+You should now end up with build/fuzix.uf2 and filesystem.uf2. The uf2
+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を良く知らないので原因がわからず若干のもやもやが残るが、
これでソフトウエアの追加や編集ができそう。



最新の画像もっと見る

コメントを投稿