Luckfox Pico Pro Max
ラズパイが肥大化してきた(愚痴)
なんだか最近のラズパイは普通のPCを目指している感があって、高性能すぎます。メモリーは8GByteもあるし、4k出力が2本もあるし
あとこれは昔からですがRaspberry PI B系はWiFiとか積んでいて飛行機や病院で利用するには電波系が不可な場所だったりします。
config.txt でoffにしても、WiFiやBTのビーコンが飛んでる、という書き込みもみました。私には確認のしようもありませんが。
エンドユーザー様からみたら「WiFi使ってない」っていってもWiFiチップ積んでるボードなんてWiFiのSSID盗聴されてそうで不気味ですしね
さらに値段も1万円から2万円くらいしますので気軽に購入できる価格じゃなくなってきました。ラズパイは500円PCが売りの筈だったんだけどなー。
CEOが変わるとなんかダメだね。UnOtyとか、Stability OOとか
Arduinoだと今度はあまりにプリミティブすぎるというか、ハード屋さん向きというか、ソフトウェア開発者からみると開発環境がととっつきにくくいんですよ。
最近こそUSBで接続できますが、UART(RS232Cの5V版)接続して、PC側は変換ボードで115200bps、8bit、1stop bit でーーとか、いやそういうの気にしないでさっさと繋ぎたい
しかも開発アプリは大抵Windows用ですが、Windows11で動かなかったりするものもあります。下手するとWindows98を用意…はさすがにないか(笑
とにかくそういう準備の部分で苦労したいのではなく、さっとつないで、I2Cデバイスや1Wireで二酸化炭素や温度を計測したいんだぁぁ
なんでPico Max ?
条件としては以下の優先順位な感じで辿り着きました
安いこと。2千円以下がいい。(AliExpressで1700円だった)
EtherNetを積んでいること。100Mbpsでも十分
技適が面倒なのでWiFiは積んでいない
組み込み用Linuxが最初から組み込まれている、またはイメージファイルが提供されている
ある程度メモリがある(256MB)
サポートが比較的しっかりしていること
1から4まではほぼ譲れません
5は、組み込みボードなんでGo/C++/Rust使えばいいじゃんとは思うんですが、クロスコンパイルって面倒だしね。(Goは簡単か)
とりあえずテストの時はshellスクリプトとかPythonとかインタープリタ系の言語動かしたほうがさっと作れるじゃん?みたいにヘタレてるのです。
メモリーも64MByteくらいだと、最初の一行目の```import numpy``` でOut of Memory がでたら悲しいじゃん?やる気なくなるじゃん?
6は綺麗なWikiがメーカーから提供されていました
このLinkを開けるとpico Ultraのページがデフォルトで開くので、pico maxを見てください
ただこちら網羅的すぎて読みづらいので、ここだけわかってればいいな、というところを書き留めておきます
1回目の注文は詐欺でした
細長いブラスチックのカケラが1枚だけ入った詐欺でした
AliExpressで初めて詐欺にあいましたが、当局は真摯に対応してくれて速攻で返金してくれました
さんざん買っていたという記録も残っていたのかも?
送金はPayPal経由だったので最悪そこから返金もできましたが、大元が返金してくれたので助かりました
カード会社直接は大昔1ヶ月くらいかかったので海外注文はPayPalを使うようにしています
一番安いところから購入したんですが、ユーザーの感想が0件だったのを見逃していました。次は3件以上「いいね!」と書いてあるところから買ったとこ、ちゃんと届きました
閑話休題
macOS用 ADBコマンドを手に入れておく
Android用開発キットやAndroid Studioをインストールしてあればば、どこかに入っていますのでspotlightとかで探し出してみてください
単体で手にいれるなら以下のリンクからダウンロードします
adbコマンド初回起動すると、macOSから怪しいツールと言われますので、適時解除してください
ホストMac と接続する
両端がUSB-Cのケーブルをmacとpico maxを接続します
macOSからデバイス繋いでもいいですか?などの質問には許可します
初回起動時は sshキーなどを作っているので、はやる心を抑えて、そのまま2〜3分くらい待ってあげてください。LEDの点滅が終わったから暇してるんだろうと思ったらそれは罠です。32bit CPUは激遅なのです。sshキーをつくるのは結構大変なんです。macだと1秒かかりませんが。
次回から起動は30秒くらいです
「ターミナル」から接続
% cd platform-tools
platform-tools % ./adb shell (ここはまだmacのターミナル)
[root@luckfox ]# (rootで繋がった)
Windowsだとcmd.exeから同様の手順で繋がる気がします。昔はなんか一手間あったような気がしたけど、いまはどうなのかな?
バックドアを消す
バイナリーファイルにウィルス仕込まれてるかもしれないですが、とりあえず目に見える怪しい部分は消しておきます(ここはハニートラップかもしれないけど?)
たぶんバックドアではないと思うんですが、/root/.ssh/known_hosts に知らないホストのキーが入ってました
製品テストで接続したのかも?と好意的にとらえる
このファイルでログイン認証はできないですが、気持ち悪いので消します
# rm -f /root/.ssh/known_hosts
その他にも .sshディレクトリーに不審なファイルがあるようなら消しておきましょう
基本最初は空でOKです。sshログインしたらファイルができますのでその確認という意味でも空にしておきましょう
メモリーの余力は?
[root@luckfox ]# free -h
total used free shared buff/cache available
Mem: 181.4M 16.5M 143.7M 1.1M 21.2M 157.1M
Swap: 0 0 0
[root@luckfox ]#
180MByteくらいありました
簡単なpythonコードなら動作しそうです
I2Cのデバイスはあるかな?
# ls /sys/bus/i2c/devices/
4-0030 4-0030-1 4-0030-2 i2c-4
i2c-4というのが見えます。多分これだね。4番デバイスのようです
すでにi2ctoolsっぽいのが入っていて
i2cdetect
i2cget / i2set
i2cdump
などのコマンドが使えました
EtherNetを繋ぐ
DHCPClientが動作しているようで、Etherケーブルを刺すだけでIPが取得できました
[root@luckfox ]# ifconfig
eth0 Link encap:Ethernet HWaddr B2:EC:4C:XX:XX:XX
inet addr:192.168.10.2 Bcast:10.247.0.255 Mask:255.255.255.0
省略
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
省略
usb0 Link encap:Ethernet HWaddr 8E:C7:47:XX:XX:XX
inet addr:172.32.0.93 Bcast:172.32.255.255 Mask:255.255.0.0
これはADBで接続した時の仮想IPアドレスで、この値に決め打ちです(WiKiより)
情報が古く ssh root / luckfox , pico / luckfox では接続できない
純正wikiや、stackoverflowでは ssh pico@192.168.10.2 で繋がるよーん
と書いてありますが、繋がりません。古い情報です。
/etc/passwd ファイルをみても、picoなんてユーザーはありませんし、ルートディレクトリ ( / ) の gid : uid は 1005:1005 となってます
しかもルードディレクトリは 755 だったりするので、adbで接続したrootユーザーではトップディレクトリにmkdirすらできません!
念の為 cat /etc/shadow してみると rootのパスワードはなんかモニョ文字が入ってましたが、picoというユーザーはありませんでした
rootパスワードも変更しておきましょうね
バックドアかもしんないし(しつこい
1005:1005ユーザーを作る
と言うことで、groupとuserを作ります
sudoコマンドがないけど、rootなので直接追加できます
picoはそれぞれ自分用に読み替えてください
addgroup 1005 pico
useradd -u 1005 -g pico -m pico
passwd pico(パスワードを入れてやる)
/homeディレクトリがないので、このまま作ってあげようとしたら失敗しました
/ の gid:uid が 1005:1005 で、rootでは ( / ) にディリクトリーを作ることができないんでした
なつかしのloginコマンド(sudoがない)
sudoがないので、loginコマンドで自身に入り直します
loginコマンドを直接つかったの30年ぶりかもしれない。懐かしいな
[root@luckfox ]# login
luckfox login: pico
Password: パスワード
[pico@luckfox ~]# <- userがpicoに変わった
# mkdir -p /home/pico <- プロンプトが#のままなのはご愛嬌
これでsshで接続できるはず
他のTerminalを起動して、ssh pico@192.168.10.2 で繋がりました
Sambaも動いていた
ps -ax とすると、sshdの他に smbdとnmbdも動いていました
Sambaの接続パスワードを見てみます
# cat /etc/smb/smbpasswd
root:0:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:EF8BDD6C516032CDB7C15080FFE1B2D5:[U ]:LCT-5FEF3549:
ん? rootというユーザーがありますよ?
macのFinderから CMD+K で
smb://192.168.10.2
root : luckfox としたら接続されました。繋がるまで1分弱かかりました
雑に chmod 777 /home/pico としておいてパーミッション全開にしたところファイルを書き込むことができました
これでmacからGo言語とかでクロスコンパイルして、コピーしてもってくればコマンド作り放題じゃん?
haltです。(shutdownコマンドをしても再起動してしまう)
haltコマンドを使うんだそうです。adbが切れて、LEDのチカチカが止まったらUSBを抜いてOK
これはダメ→「ケーブルぶっこぬくしかないんですかね?」
まぁ何度もやりましたが大丈夫でした。偶然かもしんないのでちゃんとhaltしましょう。
それにしてもshutdownコマンドは何のためにあるんだろうか?
次回はI2Cや1Wire、UARTを繋いでみたいと思います
おしまい