0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kazuedaの活動記録2024Advent Calendar 2024

Day 7

Buildrootでsftpサーバーをビルド

Last updated at Posted at 2024-12-06

はじめに

 GPIO搭載の安価なLinuxボード「Milk-V Duo」を2023年から使用しており、様々なプロジェクトを実施してきました。

 これらの成果は、秋葉原ロボット部のアドベントカレンダーで公開しています。

 このボードで動作するPythonプログラムをビジュアルプログラミング環境で行いたく、実験を行っていました。具体的には、「ビジュアルプログラミング」で「フィジカルコンピューティング」を行う環境の構築です。以下の記事の続きに、なります。

 本稿には、「鹿児島Linux勉強会2024.2」での発表内容を含みます。

ビジュアルプログラミング環境のMind+

 ビジュアルプログラミングは、Windows10上で動作する「Mind+」を想定しています。

以下の特徴があります。
・Scratch3.0から派生
・ブロックを使ったビジュアルプログラミング環境
・対応言語は、Arduino CとPython
・ブロックプログラムをテキストファイルに
・対応マイクロコントローラは、Arduino、microbit、ESP32ベースのデバイス等
・Debian OSで動作するUNIHIKER
 Linuxの動作するボードが含まれていますので、Milk-v duoでも使えるかもしれません。

Milk-vでsftpをサポートする

「Milk-V Duo」はSCPプロトコルのみサポートしているので、Mind+の使用するsftpプロトコルを追加する必要があります。
 設定には以下のものがあります。

  1. SSHサーバーの「dropbear」とsftpサーバーの「gesftpserver」の組み合わせ
  2. SSHサーバーの「dropbear」とsftpサーバーの「openssh-sftp-server」との組み合わせ
  3. SFTPプロトコル対応のSSHサーバーの「openssh-server」
     ここでは、を設定することにします。

buildrootのdefconfigの修正

 「milkv-duo_musl_riscv64_defconfig」に以下の項目を追加します。

BR2_USE_WCHAR=y
BR2_TOOLCHAIN_HAS_THREADS=y
BR2_USE_MMU=y
BR2_PACKAGE_LIBICONV=y
BR2_ENABLE_LOCALE=y
BR2_PACKAGE_GESFTPSERVER=y

 実際にビルドしてみると、Python2がないと表示されてビルドに失敗します。
 さらに、Python3ではなくPython2を使う場合も、ビルドに失敗します。

gesftpserver.mkへのパッチ

「gesftpserver.mk」にパッチを当てて、 Python2を探さないようにします。

パッチは以下の通りです。

@@ -23,6 +23,10 @@ GESFTPSERVER_DEPENDENCIES += \
$(if $(BR2_ENABLE_LOCALE),,libiconv) \
$(if $(BR2_PACKAGE_OPENSSH),openssh)

+# Python on the host is only used for tests, which we don't use in
+# Buildroot
+GESFTPSERVER_CONF_ENV += rjk_cv_python24=false
+
# openssh/dropbear looks here
define GESFTPSERVER_ADD_SYMLINK
ln -sf gesftpserver $(TARGET_DIR)/usr/libexec/sftp-server

パッチを当てたのち、buildrootをビルドします。

$ cd builroot-2021.05
$ make clean
$ make milkv-duo_musl_riscv64_defconfig
$ make all

なお、milk-vのbuildrootのビルドの仕方は、以下のurlで説明しています。

動作確認

image.png

 Gesftpserverが起動し、Mind+で作成したpythonのソースファイルが転送されて、milk-v上で作成したpythonプログラムが動作していることがわかります。

おわりに

 Risc-VのCPUを搭載したMilk-vボード用pythonプログラムをMind+で作成する環境が構築できました。
 Milk-v以外にも、Risc-VのCPUを搭載したボードが多数販売されているので、python用ビジュアルプログラミング環境を検討されている方には、おすすめです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?