見出し画像

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 ?


条件としては以下の優先順位な感じで辿り着きました

  1. 安いこと。2千円以下がいい。(AliExpressで1700円だった)

  2. EtherNetを積んでいること。100Mbpsでも十分

  3. 技適が面倒なのでWiFiは積んでいない

  4. 組み込み用Linuxが最初から組み込まれている、またはイメージファイルが提供されている

  5. ある程度メモリがある(256MB)

  6. サポートが比較的しっかりしていること

 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件以上「いいね!」と書いてあるところから買ったとこ、ちゃんと届きました

閑話休題

1回目の注文は詐欺でしたが、2回目はちゃんと届いた!

macOS用 ADBコマンドを手に入れておく

  Android用開発キットやAndroid Studioをインストールしてあればば、どこかに入っていますのでspotlightとかで探し出してみてください

 単体で手にいれるなら以下のリンクからダウンロードします

 adbコマンド初回起動すると、macOSから怪しいツールと言われますので、適時解除してください

ホストMac と接続する

 両端がUSB-Cのケーブルをmacとpico maxを接続します
 macOSからデバイス繋いでもいいですか?などの質問には許可します

接続はこれだけでおしまい!簡単
picp maxの赤いランプがケーブルの根本で点滅してる筈なんですが撮れてませんでした orz

 初回起動時は 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を繋いでみたいと思います

おしまい


この記事が気に入ったらサポートをしてみませんか?