はじめに
@GORO_Neko です。ご存知の方ご無沙汰してます。初めての方お初にお目にかかります。
最初にいつも通りのお断りをば。
自分、仕事では一切マイコンボードを利用した業務に携わったことがございません。
以下は、自分が所属する会社の意向を反映したものでもスタンスを示すものでもなく、単なる一個人の趣味の活動から産まれた記述です。
… はい。
Raspberry Pi Pico 用の mruby を使えるようになっていた(凄い! 嬉しい!)
いつものごとくネットをサーフィンしていて、Raspberry Pi Pico 用の mruby を使えるようにしてくださった方がおられることに、先日気が付きました。
Raspberry Pi Pico って MicroPython とか使って弄くっても良いんですが、やっぱり Ruby 言語使って操作したいんですよ、自分は。
早速、使えるようにしてくださった方が書かれた qiita の記事 と Github の記事を拝見して、Raspberry Pi Pico 用の mruby 実行環境を作成してみました。
実行環境は前述の各記事で説明された操作をそのまま繰り返すだけであっさり作成でき、自分所有の Raspberry Pi Pico でもあっさり動作しました。
今回やったこと
上記の通り、Raspberry Pi Pico 用の mruby の実行環境に相当するアプリケーションを Build してみました。
色々試したところ、上記の各記事には明記されていないんだけど、作業時に Python3 がいることがわかったり、前述の各記事を読んでいくと色々なツールチェーン(クロス開発用の gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 等)を導入しないといけなかったりすることが見えてきました。
それらを物理マシンに直接導入しちゃうと、他のものとコンフリクトしちゃったりしそうだったので、仮想環境(今回はコンテナを利用)に入れて、その中で Build を行うことで、Raspberry Pi Pico 用の mruby の実行環境に相当するアプリケーションを作成してみました。
コンテナの構築は手作業で行わず、Dockerfile 化して、別環境での利用も容易化してみましたが、誰か再利用されますか?
※ Dockerfile はこちらで公開してます。
Dockerfile について
Dockerfile の中では特に難しいことはしていません
上から見ていくと
#
# Last Updete: 2022/09/16
#
# Author: Yoshihiko Hara
#
# Overview:
# Create a container containing development environment of pico-mruby (mruby for Raspberry Pi Pico).
#
# Specify the image (Ubuntu 22.04) to be the base of the container.
From ubuntu:22.04
# Specify working directory (/root).
WORKDIR /root
# Update applications and others.
RUN apt -y update
RUN apt -y upgrade
① Ubuntu 22.04 のコンテナを作る
② "/root" ディレクトリに移動して(ここが開発ディレクトリの起点)
③ OS(というかコンテナのユーザランド)を最新化
# Install working tools (vim, wget, curl, git, python3).
# Note: Ubuntu:22.04 container images do not have Python3 installed by default.
RUN apt -y install vim wget curl git python3
# Install build tools.
RUN apt -y install cmake build-essential gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib rake
④ 開発に必要そうなツール類と、ツールチェーンをごそっと導入
# Get "pico-mruby" source code & Build.
RUN git clone https://github.com/k-mana/pico-mruby.git --recursive
WORKDIR /root/pico-mruby
RUN mkdir build
WORKDIR /root/pico-mruby/build
RUN cmake ..
RUN cmake --build .
⑤ Github から Build 用のリソース一式を Get
⑥ 作業に必要なサブディレクトリ作成し、移動
⑦ Build を実行
# Specify the locale.
RUN apt -y install locales
RUN echo "ja_JP UTF-8" > /etc/locale.gen
RUN locale-gen
最後は、自分の趣味。
コンテナのロケールに "ja_JP UTF-8" を追加しただけです(蛇足です♪)。
この Dockerfile が誰かのお役立ちとなると良いなぁ。
では、また。