MicroPython的午睡(75) Linux版MicroPythonビルド、SSH接続

Joseph Halfmoon

前回ラズパイPico用のMicroPythonをソースからビルド。環境できたのでラズパイPicoに限らず他のマイコン向けのMicroPythonもビルドできるハズ。今回はLinux用のMicroPythonをビルドしてみます。ビルド後、Windows上のThonnyIDEからSSH接続しバックエンドとしてみます。

※「MicroPython的午睡」投稿順 Indexはこちら

Linux版MicroPythonのビルドの準備

Linux版をビルドするにあたっては、特殊なツールチェーンは必要なく、セルフ開発用のgccやmakeなどがインストールしてあればよいようです。ただし、以下には依存しているようです。手元の母艦、Raspberry Pi 4 model B(64ビットOS)上では、pkg-configは入れてありましたが、libffi-devは不在だったので、aptでインストールしました。

    • libffi-dev
    • pkg-config

なお、libffiはPythonからC用のライブラリなどを呼び出すときにインタフェースとして使われるみたいです。

ビルド

前回、ラズパイPico用にMicroPythonのソース一式をクローンしてあります。該当のディレクトリに入り、各種バージョンが並んでいる ports 内の unix ディレクトリで以下の処理を行います。

cd ports/unix

Makefileは出来上がったものが含まれているので順番にコマンドを打つだけです。まずは submodulesを makeせよと。こんな感じ。makeSubMod

つづいて、本体のmake です。開始したところが以下に。

MicroPythonBuildStart

終了したところが以下に。MicroPythonBuildEnd

お茶を一杯飲む時間くらい(個人の感想です)で、所定のディレクトリ内にmicropythonインタプリタができあがっております。

実行確認

とりあえず、ビルドされた結果をコマンドラインから動かしてみます。動いてるみたいっす。MicroPythonRuns

表示されているように、MicroPythonのREPLから抜けるのは、CTRL-Dです。

つづいて test を行ってみました。make test とな。MicroPythonTestStart

大量のテストケースが流れたあとの、ボトムラインの帳尻が以下に。MicroPythonTestEnd

エラーが2件でてます。839件はパスして、69件スキップして、2件エラーだと。上記みるに浮動小数のparse関係みたいです。「大勢に影響なし」という甘い判断で、現象と理由はまた今度調べることにして今日はパス。

普通にコマンドラインから使えるようにインストールしてしまいました。MicroPythonInstall

Windows上にThonnyIDEからSSH接続

上記でRaspberry Pi OS上でMicroPythonが使えるようになりました(実際にはWindows TerminalからSSH接続で上記の操作を行っているのですが。)しかし、Windows上ではThonnyIDEをMicroPythonの開発環境として使わせていただいております。ThonnyIDEはラズパイPico上のMicroPythonなど各種をバックエンドとして接続可能。その中にSSH接続のMicroPythonもありました。オプションメニューからInterpreterタブを開くとこんな感じ。

MicroPythonSSH

SSH接続するとホストのアドレスなど記入するウインドウが出てくるので設定し、接続してみます。

こんな感じ。MicroPythonSSHrunsOnThonny

シェルウインドウに今ビルドしたばかりのRaspberry Pi OS上のMicroPythonが見えています。また、右下の使用中のバックエンドの表示もSSHになってます。

この処理系で使用できるモジュールの一覧を見てみます。MicroPythonSSHmodules

基本、MicroPythonなのでラズパイPico用のものとは大きく変わりはないですが、今までラズパイPico用のMicroPythonでは不在だったモジュールもちらほら。マイコンのハードに依存しないモジュールであればLinux上で作成して、コンパイル済のモジュールにしてマイコン側に送るといったこともできそうですな。夢が広がります。ホントか?

MicroPython的午睡(74) MicroPythonソースから最新版ビルド へ戻る

MicroPython的午睡(76) SAMD21版MicroPython、WSL2でビルド へ進む