
とにかく一番小さくて安いので遊びたい!AliExpressでLuckfox Pico Mini Bという1029円の超小型のLinuxボードを購入しました。Cortex-A1 1.2GHz(x1)、メモリ 64MB、ストレージ Flash 128MBと組み込み向けのLinuxボードですが、これを普通じゃない使い方をして遊びます。
Ubuntuをインストールして、Apache、MySQL、PHP、WordPressというごく一般的に使われているソフトウェアを、普通これでは使わないだろってゆうデバイスに入れます。
デフォルトではBusyBoxという、組み込み向けのシステムがインストールされています。Mini AとBはFlashの有無で、128MBのメモリにOSのインストールが可能です。今回はこのOSは使いません。ファームウェアの書き込み方法などのチュートリアルを参考にしながらドライバーや書き込みソフトを用意しておきます。
目次
(1) Ubuntuのセットアップ
(2) UnixBenchをインストールする
(3) Webサーバーの構築
(4) MariaDB (MySQL)のインストール
(5) WordPressでブログを作る
(6) SDカードのバックアップを取っておこう
(7) Cloudflareでインターネットに公開する
(8) 消費電力を測ってみた
(9) Lチカしてみる
(10) Claude Codeをインストールする
(11) Luckfox Lyra Ultra がよさそう
(1) Ubuntuのセットアップ
ターミナルの接続方法
シリアルコンソールが使えるので、適当なUSB-TTLシリアル変換アダプターを使用し、UART2_TX, UART2_RX, GNDに接続します。電源はUSBから取ることにします。

Teratermなどで接続するとシリアルからログインできます。ネットワーク接続ができるようになるまではしばらく重宝します。
Ubuntuをインストールする
この動画を参考にして、Ubuntuのイメージをダウンロードしようとしたら、なんとUbuntuのファイルが削除されていました。公開停止になったのでしょうか。困ったな。どこかに落ちてないかなぁと探してたら、LuckfoxのフォーラムでURLがありました。正直得体の知れないものなので自己責任で。あとは動画を参考にSDカードに書き込み、LuckfoxのFlashを消去して、SDカードを挿入して電源を入れれば起動するはずです。
ログインするユーザーは2種類あります。起動画面に表示されていますが、root(パスワードroot)と、pico(パスワードluckfox)です。picoからsudoできますが、面倒なので以下はrootで行うことにします。
インターネットに接続できるようにする
先ほどの動画の手順を行うと、Windows側からsshでLuckfoxにログインできるようになります。しかしLuckfoxからはインターネットには接続できません。そこでWindowsのインターネット共有機能を使います。コントロールパネルのネットワークアダプターのLuckfoxのプロパティでIPアドレスを設定した場合はDHCPに戻しておきます。
そして、今度は普段インターネット接続に使用しているネットワークアダプターのプロパティを開き、共有の上の方のチェックボックスをチェックします。ホームネットワーク接続は、Luckfoxのアダプタ名を選択します。

そうしたらLuckfoxで以下のコマンドを実行すると、DHCPサーバーから新しいIPアドレスを取得して更新されるはずです。ip a コマンドで新しいIPアドレスになっているか確認してみましょう。
dhclient -v usb0
ip a
192.168.137.77 というIPアドレスが取得できましたね。
root@luckfox:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 3a:91:cb:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 172.32.0.70/16 brd 172.32.255.255 scope global usb0
valid_lft forever preferred_lft forever
inet 192.168.137.77/24 brd 192.168.137.255 scope global dynamic usb0
valid_lft 604790sec preferred_lft 604790sec
ためしにインターネット接続に接続できているか、自分のグローバルIPアドレスを調べてみましょう。
curl ifconfig.io
ifconfig.io/all.json だとjsonで取得できるらしい。
mDNSでホスト名でアクセスできるようにする
毎回IPアドレスを指定するのは面倒なのでavahi-daemonをインストールします。
hostnamectl set-hostname luckfox
apt update
apt install -y avahi-daemon
systemctl enable --now avahi-daemon
systemctl status avahi-daemon
これでWindowsから luckfox.local でアクセスできるはずです。
繋がるけど20秒くらいかかる場合、内部のIPアドレスが重複して配信されることがあります。直し方がわからないので諦めてIPアドレスでアクセスするか、待ちます。
自動でインターネットに接続したい
Luckfoxを再起動するとインターネットに接続できなくなってしまいました。どうやら dhclient -v usb0 コマンドを再度実行しないといけないみたいです。これは面倒なので自動的に接続できるようにします。
network:
version: 2
renderer: networkd
ethernets:
usb0:
dhcp4: true
ファイルを作成したら適用します。/runの容量不足でエラーが出るので一時的に12→24MBに変更してみます。
chmod 700 /etc/netplan/50-usb0-dhcp.yaml
mount -o remount,size=24M /run
netplan try (エラーが出なければENTERを押す)
netplan apply
shutdown -r now
最後に再起動して自動的に接続するようになったか確認してみましょう。
一応これでうまくいったかのように見えたんですが、Windowsを再起動したらIPアドレスを自動取得できませんでした。Windowsのネットワーク共有を一旦無効にして、再度設定しなおしたら繋がるようになりました。
コンソールにアクセスできなくなった??
ここまでずっと調子が良かったんですが、電源を抜いて再度接続したら、シリアルコンソールに以下のエラーが出て止まってしまいました。
[ 31.226696] ttyFIQ ttyFIQ0: tty_port_close_start: tty->count = 1 port count = 2
Luckfox側のUSBケーブルを抜き、Teratermを終了、USBシリアルアダプターから+5Vをジャンパワイヤーで取ってきてLuckfoxのVBUSに与えると正常に起動するようになりました。しかし起動時にUSBが刺さってるとTTY出力が無効になってしまいます(OSの起動はできてる)。
いろいろと調べてみると、adbdが起動するとシリアルコンソールを切り替えてしまうようです。ネットが繋がっているならsshで接続した方が早いですが、ネットもシリアルも繋がらない場合は困ったもの。そんな場合はADBを使用してアクセスしましょう。
adbでコンソールにアクセスする
ADB Platform-Toolsをダウンロードして、adbコマンドを実行します。
(1) 接続されているか確認
$ ./adb.exe devices
List of devices attached
xxxxxxxxxxxxxxxx device
(2) ログインする
$ ./adb.exe shell
# bash
bash
root@luckfox:/#
すごくあっさりログインできてしまいました。しかしCTRL+Cを押すとadbコマンド自体が終了してしまって、使い勝手は良くないです。あくまで非常用として使って、普段はsshでログインするのがいいかもしれません。
(2) UnixBenchをインストールする
せっかくなのでベンチマークをしてみます。まずは必要なソフトウェアをインストールします。/runの容量不足対策のため一時的に変更します。
mount -o remount,size=24M /run
apt-get install libc6-dev gcc make perl perl-modules git
次はUnixBenchをインストールします。
git clone https://github.com/kdlucas/byte-unixbench.git
cd byte-unixbench/UnixBench/
make
コンパイルが完了したら実行してみます。UnixBenchは非常に長いテストなので、今回は整数と浮動小数点のベンチマークだけを行います。
./Run dhry2reg whetstone-double
結果
# # # # # # # ##### ###### # # #### # #
# # ## # # # # # # # ## # # # # #
# # # # # # ## ##### ##### # # # # ######
# # # # # # ## # # # # # # # # #
# # # ## # # # # # # # ## # # # #
#### # # # # # ##### ###### # # #### # #
Version 6.0.0 Based on the Byte Magazine Unix Benchmark
Multi-CPU version Version 5 revisions by Ian Smith,
Sunnyvale, CA, USA
May 21, 2025 johantheghost at yahoo period com
------------------------------------------------------------------------------
Use directories for:
* File I/O tests (named fs***) = /root/byte-unixbench/UnixBench/tmp
* Results = /root/byte-unixbench/UnixBench/results
------------------------------------------------------------------------------
Use of uninitialized value in printf at ./Run line 1638.
Use of uninitialized value in printf at ./Run line 1892.
1 x Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10
1 x Double-Precision Whetstone 1 2 3 4 5 6 7 8 9 10
========================================================================
BYTE UNIX Benchmarks (Version 6.0.0)
System: luckfox: GNU/Linux
OS: GNU/Linux -- 5.10.160 -- #8 Thu Mar 13 21:14:48 CST 2025
Machine: armv7l (armv7l)
Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
CPU 0: ARMv7 Processor rev 5 (v7l) (48.0 bogomips)
15:14:25 up 1:10, 1 user, load average: 10.72, 10.76, 10.81; runlevel Sep
------------------------------------------------------------------------
Benchmark Run: Sat Jul 12 2025 15:14:25 - 15:19:09
1 CPU in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 4467453.1 lps (10.0 s, 7 samples)
Double-Precision Whetstone 967.6 MWIPS (10.1 s, 7 samples)
System Benchmarks Partial Index BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 4467453.1 382.8
Double-Precision Whetstone 55.0 967.6 175.9
========
System Benchmarks Index Score (Partial Only) 259.5
なるほど~。
比較のために M5Stack Module-LLM とRyzen 7 1700(8コア/16スレッド) 3GHzのサーバー上で14スレッドを割り当てた仮想マシン(Ubuntu 24 Desktop)でもベンチマークしてみました。カッコ内はシングルコアの結果です。
実行マシン | dhry2reg | whetstone-double |
---|---|---|
Luckfox Pico Mini B | 389 | 175 |
M5Stack Module-LLM | 1144 (576) | 594 (299) |
Ryzen 7 1700 (VM 14thread) | 28873 (3384) | 12981 (1114) |
LuckfoxはRV1103 Cortex-A7 1.2 GHzのシングルコア、Module-LLMはAX630C Cortex A53 1.2 GHzのデュアルコア、とアーキテクチャの違いもあってかシングルコア性能も高いですね。そしてRyzen 7の結果は仮想マシンなので本来のCPUの性能は出せてませんが桁違いです。まぁ組み込み向けのデバイスはこうゆう用途で使うものじゃないですから結果は参考までに。
(3) Webサーバーの構築
次はWordPressに必要なWebサーバーの構築を始めます。Apacheを使うのが一般的ではありますが、Luckfox Pico Mini Bはメモリが64MBしかないので、大量のメモリを必要とするApacheでは無理があります。まぁスワップメモリが1GB設定されているので動くことは動くでしょうけど、きっと現実的ではないでしょう。ということでWebサーバーはNginxをインストールします。実はNginxは初めて触るので何もわかってません。
NginxとPHP-FPMのインストール
NginxやPHP、PHPのモジュール、その他必要なソフトウェアをインストールします。
sudo apt update
mount -o remount,size=24M /run
sudo apt install -y nginx php-fpm php-mysql php-curl php-gd \
php-mbstring php-xml php-xmlrpc php-intl php-zip unzip
インストールしたら “nginx: [emerg] socket() [::]:80 failed (97: Unknown error)” というエラーが出ました。KernelでIPv6が無効になっているとこうなるみたいです。/etc/nginx/sites-available/default を編集して listen [::] をコメントアウトします。
server {
listen 80 default_server;
#listen [::]:80 default_server;
再度テストして問題なければ再起動します。
nginx -t
systemctl restart nginx
念のためポートを見てみましょう。
# netstat -antlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1860/nginx: master
tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN 463/adbd
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 132/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 232/sshd: /usr/sbin
tcp 0 0 127.0.0.1:5037 0.0.0.0:* LISTEN 463/adbd
tcp 0 140 192.168.137.95:22 192.168.137.1:61867 ESTABLISHED 804/sshd: root@pts/
ポート80でnginxが待ち受けてますね。
ブラウザでアクセスしてみる
PCからアクセスできるか試してみましょう。 http://luckfox.local/
にアクセスします。「Welcome to nginx!」と表示されたら成功です。最初のアクセスは時間がかかるかもしれません。もしタイムアウトしたりホストが見つからないエラーになる場合はIPアドレスでアクセスしてみてください。
Nginxの設定
新規ファイル /etc/nginx/sites-available/wordpress.conf を作成します。内容は最低限の例です。公開する場合は適切に設定してください。
server {
listen 80;
# server_name luckfox.local;
server_name _;
root /var/www/html;
index index.php index.html;
autoindex off;
# for static file
location / {
try_files $uri $uri/ /index.php?$args;
}
# for php file
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
# for security
location ~ /\.ht {
deny all;
}
}
保存したら新しい設定を読み込むようにします。nginx -tでエラーが出なければ再起動します。
rm /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/wordpress.conf /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx
PHPの動作確認
PHPがNginxで実行できるようになったかチェックしてみましょう。ドキュメントルート /var/www/html/ にテストファイル info.php を作成します。
<?php phpinfo(); ?>
http://luckfox.local/info.php にアクセスするとPHPの情報が表示されます。サイトを公開する際はこのファイルがあると内部の情報が知られて危険なので、確認が終わったら削除しておきます。
(4) MariaDB (MySQL)のインストール
次はデータベースをインストールして初期設定を行います。
apt install mariadb-server
mysql_secure_installation
mysql -u root -p
データベースやユーザーを作成します。
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'YOUR-PASSWORD-HERE';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
接続できるかテストしてみましょう。
mysql -u wpuser -p -e "SHOW DATABASES LIKE 'wordpress'; USE wordpress; SHOW TABLES;"
なんか出てきたらOKです。
(5) WordPressでブログを作る
WordPressのインストール
次はWordPressをインストールします。今回は blog/ というサブディレクトリをブログ用に使いたいと思います。
cd /var/www/html
wget https://ja.wordpress.org/latest-ja.tar.gz
tar xfz latest-ja.tar.gz
mv wordpress blog
rm latest-ja.tar.gz
chown -R www-data:www-data blog
次は設定を行います。blog/wp-config.php を編集します。
cp -p blog/wp-config-sample.php blog/wp-config.php
// 接続先のDBの設定
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'YOUR-PASSWORD-HERE' );
// 以降の8行は記載のURLから取得
define('AUTH_KEY','');
// 適当なところに追加(/* That's all, stop editing! Happy publishing. */より上に)
define( 'WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/blog' );
define( 'WP_SITEURL', WP_HOME );
WordPressのセットアップ
ブラウザで http://luckfox.local/blog/ にアクセスします。問題なければ以下のような画面が表示されるはずです。not foundになる場合はNgingの設定、ドキュメントルートは合ってるか、パーミッションは適切かを確認してみてください。

ここまで来たらもう特別なことはありませんね。画面の指示通り進んでいきましょう。セットアップが完了したら管理画面にログインします。

ちょっと重いですが無事WordPressが稼働しました!
せっかくなので記事を投稿してみましょう。画像をアップロードして、画像が正常に表示されることを確認してみてください。
きっともう忘れてるかもしれませんが、Luckfox Pico Mini Bのメインメモリは 64MB ですからね!やばいです。
root@luckfox:/var/www/html# free -m
total used free shared buff/cache available
Mem: 56 24 1 5 30 22
Swap: 1023 119 904
メインメモリの2倍もスワップメモリを消費しています。
(6) SDカードのバックアップを取っておこう
せっかく苦労してここまで構築したので、このへんでSDカードのバックアップを取っておきましょう。ファイルシステムがSDカードのやつって経験上すぐ壊れるんですよ。まずは電源を落とします。shutdown -h nowコマンドだとなぜか再起動してしまうのでhaltコマンドにしてみました。
halt
今回はWin32 Disk Imagerを使いましたが、もちろんお好きなものでかまいません。

容量が大きいので、ダウンロード後は圧縮しておくことをおすすめします。逆にリストアするときはイメージファイルを選択してWriteを押せばOKです。
余談ですが、サイトからソフト名を検索してダウンロードするときって不安になりますね。実際にSEO汚染というのが広がっていて、広告でなくても一番上にあるサイトが本物ではなく偽物で、マルウェアが入っているものがあるそうです。そんな世の中で、「窓の杜」って出てくると安心します。
ちなみに今回ファームウェアを書き込むソフトなどは、VMware Workstation上の仮想マシン上で行いました。用心に越したことはありません。VMware Workstationは実機に接続したUSBデバイスを仮想マシンに接続できるので、信用できるかわからないソフトを使わざるを得ない場合にとても便利です。
(7) Cloudflareでインターネットに公開する
従来のやり方
一般のご家庭でサーバーを公開するとなると、ルーターのポートを開けてNATでポート転送をするのが一般的だと思います(今はそうじゃない?)。プロバイダーから割り当てられたIPアドレスが固定IPアドレスではない場合、途中でIPアドレスが変わってしまう問題があります。それを回避するためにダイナミックDNSを使用したりします。
しかし複数のサーバーを公開したい場合、この方法ではすでにポートが使用されているので、プロキシなどで捌かないとそれぞれのサーバーに振り分けられません。外部からのポートを開けられないサービスを使用している場合は、この方法では公開できません。
Cloudflareはすごい
そこで便利なのが、こらから紹介するCloudflareです。Cloudflareならネットにアクセスさえできれば、どこからでも使用可能になる夢のようなサービスです。あの面倒だったLet’s Encryptのサーバー証明書も、もう自分で管理する必要はありません。勝手にやってくれます。それが無料。こんな便利なもの使うしかないですね。(今回の内容は無料でできる範囲のみ)。
ドメインの登録
はじめにCloudflareにドメインを登録する必要があります。ネームサーバーをCloudflareで管理します。すでにドメインを他のサーバーで使用している場合はとても影響が大きいので慎重に検討してください。ドメインの登録に関する作業は今回のLuckfoxには関係のない部分なので、詳しい説明は割愛します。「cloudflare サーバー公開 tunnel」と検索するとたくさん情報が出てきますので、詳しくはそちらを参考にしてみてください。
トンネルを作成する
トンネルを使うとLuckfoxとCloudflareが直接繋がります。たとえるならLANケーブルでCloudflareと繋がるようなイメージです。実際にはインターネットを経由して接続されていますが、Luckfoxから見るとそんな風に見えます。これを実現するためにcloudflaredというソフトウェアをインストールします。
Cloudflareでトンネルを作成
Cloudflareのダッシュボードにアクセスして、Zero Trust→ネットワーク→Tunnelにアクセスします。「+トンネルを作成する」を押して、トンネルの種類はCloudflaredを選択、するとトンネル名を聞いてくるので、自分がわかりやすいように適当に名前を付けておきます。
cloudflaredのインストール
インストール先の環境を聞いてくるので Debian, arm64-bit を選択します。

「マシンに cloudflared がインストールされていない場合」に記載のコマンドをコピペして実行します。

sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared any main' | sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt-get update && sudo apt-get install cloudflared
インストールが完了したら、左下の “sudo cloudflared service install” のコピーボタンを押して、シェルで実行します。機密性の高いトークン情報が入っていますので、取り扱いには注意が必要です。インストール時に/runが容量不足になるので一時的に変更しています。
mount -o remount,size=24M /run
sudo cloudflared service install ....
エラーが出なければ完了です。
接続されたか確認
画面の一番下に「接続済」と表示されたら接続成功です

以上でトンネルの設定は完了です。次回Luckfox起動時もcloudflaredが自動的に起動します。
トンネルとドメインを紐づける。
次に進むと「トラフィックのルーティング」という設定画面が表示されます。ここではドメインとトンネルの接続元であるcloudflaredを紐づけるための設定です。ホスト名は今回は luckfox にしました。ドメインはプルダウンメニューから選択します。

サービスのところが最初はちょっとわかりづらいかもしれません。これはcloudflaredからどこにアクセスしたらそのWebサーバーにアクセスできるのか、という視点で見ます。cloudflaredはLuckfox上で稼働していますから、HTTPでlocalhostのポート80に接続すれば、Webサーバーにアクセスできます。
アクセスしてみる
それではCloudflare経由でアクセスしてみましょう。
http://luckfox.local/ (今までのURL)
↓
https://luckfox.akibabara.com/blog/ (新しいURL)

表示されました!
あ、でも画像が表示されませんね。これはWordPressの設定が原因です。wp-config.php を修正します。WP_HOMEの http:// を https:// に変更します。
define( 'WP_HOME', 'https://' . $_SERVER['HTTP_HOST'] . '/blog' );
define( 'WP_SITEURL', WP_HOME );
これはCloudflare経由で https:// のURLでアクセスしているのに、WordPressがhttp:// のURLを出力しているために不一致になるからです。修正して再度リロードすれば正常に表示されました!

何のセキュリティ対策もしてないので、サイトやサーバーは非常に脆弱な状態です。今回は一時的な実験目的のためデフォルト設定のまま進めましたが、実際に公開する場合は十分なセキュリティ対策をおすすめします。
重くて何もできないからWeb関係全部止める
たった1つ apt install することすら5分かかっても終わらない…。当然と言えば当然ですが重くてまともに操作ができなくなってしまいました。WordPressでブログを公開するまで作って満足したのでもう止めましょう。
systemctl disable cloudflared
systemctl disable nginx
systemctl disable mariadb
systemctl disable php8.1-fpm
shutdown -r now
systemctl enable cloudflared
systemctl enable nginx
systemctl enable mariadb
systemctl enable php8.1-fpm
shutdown -r now
これでCloudflare、Nginx、MariaDB、PHP-FPMのオン・オフができます。ここから先の作業はもうWebは関係ないので止めちゃいましょう。
(8) 消費電力を測ってみた
Nordic SemiconductorのPower Profiler Kit II (PPK2)で電流値を測定してみました。

結果は5Vで166mAくらいでした。消費電力にすると0.83W、なんと1Wを切ってます。むしろこの消費電力でこれだけの性能を出せるってすごいと思います。
(9) Lチカしてみる
Lチカの動作確認
せっかくGPIOポートがあるので、チュートリアルを参考にLチカをしてみましょう。GPIO 55にLEDを接続して光らせてみます。
echo 55 > /sys/class/gpio/export
echo 1 > /sys/class/gpio/gpio55/value
echo 0 > /sys/class/gpio/gpio55/value
echo 55 > /sys/class/gpio/unexport

問題なくLEDが光りました!
Pythonでのコントロール
まずはuv環境でPythonをインストールします。
curl -LsSf https://astral.sh/uv/install.sh | sh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
uv init lchika
cd lchika
uv venv
チュートリアルの3. GPIO Control (Python Program) を実行することにします。このプログラムはGPIO 55にH/Lの値を出力して、GPIO 55, 54の値を読んでいるみたいです。入力もあるのでGPIO 54にはボタンを取り付けてみました。

必要なパッケージをインストールしたら実行してみましょう。
uv add python-periphery
uv run main.py
Pin state: False
Pin state: False
あー、なんかつまらないですね。
AIにもっと面白いプログラムを作ってもらいましょうか。
(10) Claude Codeをインストールする
node.jsとnpmをインストール後、Claude Codeをインストールします。めっちゃ時間がかかります。気長に待ちましょう。
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
apt-get install -y nodejs
node --version
npm --version
npm install -g @anthropic-ai/claude-code

一応起動しました。ものすごく重いです。/ と打っただけで数十秒待たされます。何か入力する場合は直接入力せずに、コピー&ペーストした方が余計な処理が入らなくていいです。試しに先ほどのLチカのプログラムをAIに修正してもらいましょう。

ボタンを押したら3回LEDが点滅するプログラムを作ってもらいます。


これだけやるのに10分くらいかかりました。実行してみたところ、ボタンを押すと3回LEDが点滅しました。
うーん、もっと刺激が欲しいな。そうだ!フルカラーLEDモジュールを繋げて虹色に光るゲーミング仕様にしよう!そう思っていろいろ調べていたのですが、/dev/spidev2.0 がありません。modprobeしようにもKernelモジュールが1つもないんですよね。
root@luckfox:~/rainbow# modprobe spidev
modprobe: FATAL: Module spidev not found in directory /lib/modules/5.10.160
※/lib/modules/自体がない
Kernelを再ビルドするのは難しそうなので諦めます。デフォルトのBusyBoxなら問題ないんでしょうけど、Ubuntuでいろいろインストールして遊ぶのが今回の目的だったので、とりあえずこれにておしまいにしておきます。
(11) Luckfox Lyra Ultra がよさそう

Luckfox社の製品カテゴリー一覧に載ってなくて気づかなかったのですが、Luckfox Lyra Ultraという5cm角のLinuxボードがあるようです。こちらのスペックはメモリ512MB、ストレージがeMMC 8GB、LANとUSBポート付きという豪華さ。これならあのスワップ地獄からも逃れられそうです。ストレージも8GBあればUbuntuは入りそうです。Aliでは現在2700円くらいで売ってます。これならもう少し遊べそうかな?