【初心者向け】M5Stack ModuleLLMを使う上で最低限知っておくべきLinux情報
コマンドの詳細は下記の検索条件で大体ヒットするので調べてください(爆)
Linux <コマンド名> オプション
事前の疑問がでそうなところ
-
ユーザーは作らなくてもいい?
→ まだ安定したファームウェアは出ていないのでrootのままで実験した方がいいと思います。きっと何回も作成することになるでしょう。。。リカバリー用のシェル準備できる人は別ですが。 -
エラーが出たんだけど or 上手く動かない
→ Linuxは大体困った問題は全部ログに出力されます。さかのぼって原因を探りましょう。(根気が必要です。)どうしても分からない時は、、、ログを全部githubやgistに貼ったりして天の声が降ってくるのを待つという手もありますが、なるべく自分で調べられるだけは調べてください。
どの環境で、どのコマンドを実行したが動かない。どんなログが出たかが分からないとアドバイスもしようがないので頑張って集めましょう(結構手間はかかります。)
-
新しいファームウェアが出た!書き換えたら今までのデータが全部消えた!
→ 消えます。なので、アクセスは遅いですが、作業ディレクトリはなるべくmicroSDカード上にした方がいいです。(microSD上でも結構作業はできます。) -
microSDカードは何GBぐらい?
→ M5Stackと違い、SPI接続ではないので、128GB以上も使えると思います。(私は64GBと128GBで確認&使っています。)
→ フォーマットはExt4で行った方が、使いやすいです。 -
デバッグボードってどう使うの?
→ 主にModuleLLM側の動作を確認するために使います。(Linuxの知識が必要)
知っておくと便利なコマンド
apt update
インストールできるパッケージを取得します。(インストールやアップグレードはしません。)
apt upgrade(初心者はやらない方がいい)
ModuleLLM等の組み込みLinuxだと、動かなくなる可能性大です。まずはやらない方がいいです。
apt install <パッケージ名>
足りないパッケージをインストールします。treeは入れておいた方が良いと思います。
apt upgrade
apt install -y tree
dpkg -i <debファイル名>
debという拡張子のパッケージをインストールするときに使います。
cp
ファイルコピー
tree
ファイルとディレクトリをツリーで表示してくれる
最初からは入っていないのでapt installする必要があります。
rm <ファイル名>
ファイルを削除する。(即削除なので取り消し不可です。)
rm -rf <フォルダ名>
ディレクトリを配下も全部消してくれる。(即削除なので取り消し不可です。)
よく聞かれる rm -rf /は実行してはいけません。(全部消えます。)
cat
ファイルの中身を表示します。(テキストファイルのみ)
less
catのちょっと使いやすいバージョン(操作はviと一緒)
vim
テキストエディタ。操作が特殊なので慣れないと大変ですが、慣れると英語キーボードマニアになります。
lsusb -t -v
接続されているUSB機器の詳細一覧を取得できる。
見つからない場合はapt install usbutils
で入ります。
ip a
IPアドレスやネットワークアダプタの情報を表示します。
scp
母艦PCとファイルのやりとりをしたい場合に使います。書き方が最初は難しいですが頑張りましょう。
ssh
主に母艦PCで使用します。ネットワークでModuleLLMにアクセスしたいときに使います。
find <フォルダ名> -name <検索したい文字列>
指定したフォルダ配下にあるファイルを検索したいときに使います。
dmesg
起動してからのログを参照します。USB機器が上手くつながらないとか、うまく起動したい処理が動かないといった場合に使用します。
systemctl <status/restart> <サービス名>.service
起動時のサービスを制御するためのコマンドです。
よく使うものは下記2つですが、サービス作成する場合は他のオプションもあります。(enable/disable/start等、、、)
- status
- restart
journalctl
dmesgとは別のシステムログです。systemdで実行されたサービスのログが記録されます。こちらも上手く処理が動かないといったときに使います。
| grep <絞りたい文字列>
grepはほかのコマンドと組み合わせて使います。「|」はコマンドとコマンドをつなげるパイプというもので詳細は調べてください。
コマンドを実行した後にも使えるので、errorの文字列を絞りたいときにも使えます。
例、
dmesg | grep eth0
find /opt -name llm | grep json
cat | grep error
知っておいた方がいいコマンド(準レギュラー)
chmod +x <ファイル名>
主にシェルスクリプトを実行可能な権限を与えます。これをしないとコマンドとして実行できません。
調べておくとよい用語
Ext4
Linuxで使うファイルシステムのフォーマットです。NTFSやFAT32のようなもの。
シェルスクリプト
同じ作業を繰り返したいとか、パラメータでコマンド作りたいとかいう場合に作成できると効率があがります。
adb
デバッグボードが無いときは、最初のPCとのやりとりはadbで行うしかありません。
systemd
Linuxのシステム起動時に実行されるサービスを制御するデーモン。仕組みを知るのは難しいのですが、調べて動かして覚えるしかないと思います。ログはjournalctlに記録されます。
rc.local
システム起動時に実行されるシェルです。なにが起動されているのか調べることができます。
ModuleLLMだとsystemdに登録しても上手く動かない場合があるので最悪はrc.localに書いた方がいいかもしれません。(無保証)
Discussion