ChromebookにUSB経由でMicro:bitをつなぎ、Crostini(Linux)から作成したコードのフラッシングをしてみたいと思い、CrostiniのUSBの認識周りから整理しながらフラッシングをしてみた。


話を進める前に使っているChromebookについて挙げておく。

端末:ASUS Chromebook Detachable CM3 CM3000


はじめにRaspberry Pi等のメインのOSがLinuxの環境でのフラッシングを挙げておく。

Micro:bitにフラッシングするために作成したpyファイルのパスを/path/to/dir/main.pyとしておく。

pip install uflash
uflash /path/to/dir/main.py

上記のコードでuflashを実行してフラッシングは終了する。

uflash · PyPI


この内容を踏まえた上で、Crostiniで同様のコマンドを実行してみると、

$ uflash /path/to/dir/main.py
Error flashing hello.py to microbit: Unable to find micro:bit. Is it plugged in?

というエラーになる。


Crostiniはバーチャルマシンに当たるため、Micro:bitが標準のUSBのデバイスとして認識されずにエラーとなる。

Crostini上ではUSBの認識はどうなっているのだろう?と設定 > Linux開発環境 > 共有フォルダを管理するを開いてみると、

/mnt/chromeos/removable/MICROBIT/

にマウントされるようだ。


この内容を加味して、targetを指定してuflashしてみたら

$ uflash /path/to/dir/main.py /mnt/chromeos/removable/MICROBIT/
Flashing hello.py to: /mnt/chromeos/removable/MICROBIT/micropython.hex

エラーなく、Micro:bitにフラッシングされた。


uflashをする時にtargetを指定するのは面倒なので簡略化したいが、今はここまでにしておく