Open7
LLM_moduleをまずは動かす
❯ adb shell
sh-5.1# echo 100 > /sys/class/leds/R/brightness
sh-5.1#
sh-5.1#
sh-5.1#
sh-5.1# echo 255 > /sys/class/leds/R/brightness
sh-5.1# echo 0 > /sys/class/leds/G/brightness
sh-5.1# echo 0 > /sys/class/leds/B/brightness
sh-5.1# echo 255 > /sys/class/leds/B/brightness
sh-5.1# python
sh: python: command not found
sh-5.1# python3
Python 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('hello')
hello
>>>
>>> quit()
sh-5.1# python3 ModuleLLM_LED.py
python3: can't open file '//ModuleLLM_LED.py': [Errno 2] No such file or directory
sh-5.1# ls
bin dev home lost+found mnt param root sbin srv tmp var
boot etc lib media opt proc run soc sys usr
sh-5.1# ls lib/
aarch64-linux-gnu libexpat.so.1.8.7 libz.so
apparmor libgomp.so.1 libz.so.1
apt libgomp.so.1.0.0 libz.so.1.2.11
bfd-plugins libiperf.so locale
binfmt.d libiperf.so.0 lsb
cmake libiperf.so.0.0.0 mime
compat-ld libjson-c.a modprobe.d
cpp libjson-c.so modules
dbus-1.0 libjson-c.so.5 modules-load.d
dpkg libjson-c.so.5.3.0 networkd-dispatcher
environment.d libjson_script.so ntp
firmware libnl-3.so openssh
gcc libnl-3.so.200 optee_armtz
git-core libnl-3.so.200.26.0 os-release
gnupg libnl-genl-3.so pam.d
gnupg2 libnl-genl-3.so.200 pkgconfig
gold-ld libnl-genl-3.so.200.26.0 python2.7
ifupdown libnl-idiag-3.so python3
init libnl-idiag-3.so.200 python3.10
initramfs-tools libnl-idiag-3.so.200.26.0 python3.11
kernel libnl-nf-3.so resolvconf
ld-linux-aarch64.so.1 libnl-nf-3.so.200 rsyslog
libatomic.so.1 libnl-nf-3.so.200.26.0 sasl2
libatomic.so.1.2.0 libnl-route-3.so sftp-server
libax_syslog.so libnl-route-3.so.200 ssl
libblobmsg_json.a libnl-route-3.so.200.26.0 sysctl.d
libblobmsg_json.so libnl-xfrm-3.so systemd
libcrypto.so libnl-xfrm-3.so.200 sysusers.d
libcrypto.so.1.1 libnl-xfrm-3.so.200.26.0 tc
libdw-0.186.so libssl.so tee-supplicant
libdw.so libssl.so.1.1 telnetlogin
libdw.so.1 libstdc++.so.6.0.28-gdb.py terminfo
libelf-0.186.so libubox.a tmpfiles.d
libelf.so libubox.so udev
libelf.so.1 libubox.so.20210516 usrmerge
libexpat.so libubus.so valgrind
libexpat.so.1 libubus.so.20210630
sh-5.1# ls sys/class/leds/
B G R
sh-5.1# cat sys/class/leds/R/max_
max_brightness max_current
sh-5.1# cat sys/class/leds/R/max_brightness
255
sh-5.1# cat
.update.log etc/ media/ proc/ soc/ usr/
bin/ home/ mnt/ root/ srv/ var/
boot/ lib/ opt/ run/ sys/
dev/ lost+found/ param/ sbin/ tmp/
sh-5.1# cat
.update.log etc/ media/ proc/ soc/ usr/
bin/ home/ mnt/ root/ srv/ var/
boot/ lib/ opt/ run/ sys/
dev/ lost+found/ param/ sbin/ tmp/
sh-5.1# cat sys/class/leds/R/max_brightness
255
sh-5.1# cat sys/class/leds/R/max_brightness
255
sh-5.1# cat > /root/ModuleLLM_LED.py <<'PY'
import os, time
# 各LEDの明るさを設定
def set_led(r=0, g=0, b=0):
os.system(f"echo {r} > /sys/class/leds/R/brightness")
os.system(f"echo {g} > /sys/class/leds/G/brightness")
os.system(f"echo {b} > /sys/class/leds/B/brightness")
# テストでRGBを順番に点滅
for _ in range(5):
set_led(255,0,0); time.sleep(0.3)
set_led(0,255,0); time.sleep(0.3)
set_led(0,0,255); time.sleep(0.3)
set_led(0,0,0)
PY
sh-5.1# ls
bin dev home lost+found mnt param root sbin srv tmp var
boot etc lib media opt proc run soc sys usr
sh-5.1# python3
Python 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> quit(0)
sh-5.1# python3 root/ModuleLLM_LED.py
sh-5.1# python3 root/ModuleLLM_LED.py
sh-5.1# python3 root/ModuleLLM_LED.py
sh-5.1# python3 root/ModuleLLM_LED.py
sh-5.1# python3 root/ModuleLLM_LED.py
sh-5.1# python3 root/ModuleLLM_LED.py
sh-5.1# ls
bin dev home lost+found mnt param root sbin srv tmp var
boot etc lib media opt proc run soc sys usr
sh-5.1# cat root/ModuleLLM_LED.py
import os, time
# 各LEDの明るさを設定
def set_led(r=0, g=0, b=0):
os.system(f"echo {r} > /sys/class/leds/R/brightness")
os.system(f"echo {g} > /sys/class/leds/G/brightness")
os.system(f"echo {b} > /sys/class/leds/B/brightness")
# テストでRGBを順番に点滅
for _ in range(5):
set_led(255,0,0); time.sleep(0.3)
set_led(0,255,0); time.sleep(0.3)
set_led(0,0,255); time.sleep(0.3)
set_led(0,0,0)
sh-5.1# ls -a
. bin etc lost+found opt root soc tmp
.. boot home media param run srv usr
.update.log dev lib mnt proc sbin sys var
sh-5.1# ls
bin dev home lost+found mnt param root sbin srv tmp var
boot etc lib media opt proc run soc sys usr
sh-5.1# ls root/
ModuleLLM_LED.py
sh-5.1# cat usr/
bin/ include/ libexec/ sbin/ src/
games/ lib/ local/ share/
sh-5.1# cat usr/local/
bin/ games/ lib/ man/ share/
etc/ include/ m5stack/ sbin/ src/
sh-5.1# cat usr/local/m5stack/
bash_env.sh lib/ startup-script.sh
bin/ logo.wav update_check.sh
block-mount.sh shutdown-script.sh
sh-5.1# cat usr/local/m5stack/startup-script.sh
#!/bin/sh
. /etc/profile
insmod /usr/lib/modules/4.19.125/kernel/drivers/leds/led-class.ko
insmod /usr/lib/modules/4.19.125/kernel/drivers/leds/leds-lp55xx-common.ko
insmod /usr/lib/modules/4.19.125/kernel/drivers/leds/leds-lp5562.ko
sleep 0.1
echo 0 > /sys/class/leds/R/brightness
echo 50 > /sys/class/leds/G/brightness
echo 0 > /sys/class/leds/B/brightness
tinyplay -D0 -d1 /usr/local/m5stack/logo.wav > /dev/null 2>&1 &
sh-5.1# ps aux | grep -i llm
avahi 1629 0.0 0.3 7932 3508 ? Ss 05:11 0:00 avahi-daemon: running [m5stack-LLM.local]
root 1722 0.0 0.7 613944 7196 ? Ssl 05:11 0:00 /opt/m5stack/bin/llm_sys
root 1723 0.0 0.7 387972 7580 ? Ssl 05:11 0:00 /opt/m5stack/bin/llm_asr
root 1726 0.0 0.5 534312 5588 ? Ssl 05:11 0:00 /opt/m5stack/bin/llm_audio
root 1727 0.0 0.5 386008 5412 ? Ssl 05:11 0:00 /opt/m5stack/bin/llm_camera
root 1728 0.0 0.6 399676 6636 ? Ssl 05:11 0:00 /opt/m5stack/bin/llm_kws
root 1730 0.0 0.5 386908 5876 ? Ssl 05:11 0:00 /opt/m5stack/bin/llm_llm
root 1731 0.0 0.6 397556 6860 ? Ssl 05:11 0:00 /opt/m5stack/bin/llm_melotts
root 1732 0.0 0.5 12508 5040 ? Ss 05:11 0:00 /opt/m5stack/bin/llm_skel
root 1733 0.0 1.7 401820 17036 ? Ssl 05:11 0:00 /opt/m5stack/bin/llm_tts
root 1734 0.0 0.6 391476 6712 ? Ssl 05:11 0:00 /opt/m5stack/bin/llm_vlm
root 1735 0.0 0.7 390932 7100 ? Ssl 05:11 0:00 /opt/m5stack/bin/llm_yolo
root 10696 0.0 0.2 9008 2044 pts/0 S+ 05:43 0:00 grep -i llm
rootにpythonスクリプトを保存して実行してみたり
psで動いてるプロセスをgrepしてみたり
sh-5.1# dpkg -l | grep llm
ii lib-llm 1.3 arm64 llm-module
ii llm-asr 1.3 arm64 llm-module
ii llm-audio 1.3 arm64 llm-module
ii llm-audio-en-us 0.2 arm64 llm-module
ii llm-audio-zh-cn 0.2 arm64 llm-module
ii llm-camera 1.3 arm64 llm-module
ii llm-kws 1.3 arm64 llm-module
ii llm-llm 1.3 arm64 llm-module
ii llm-melotts 1.3 arm64 llm-module
ii llm-melotts-zh-cn 0.2 arm64 llm-module
ii llm-qwen2.5-0.5b-prefill-20e 0.2 arm64 llm-module
ii llm-sherpa-ncnn-streaming-zipformer-20m-2023-02-17 0.2 arm64 llm-module
ii llm-sherpa-ncnn-streaming-zipformer-zh-14m-2023-02-23 0.2 arm64 llm-module
ii llm-sherpa-onnx-kws-zipformer-gigaspeech-3.3m-2024-01-01 0.2 arm64 llm-module
ii llm-sherpa-onnx-kws-zipformer-wenetspeech-3.3m-2024-01-01 0.2 arm64 llm-module
ii llm-single-speaker-english-fast 0.2 arm64 llm-module
ii llm-single-speaker-fast 0.2 arm64 llm-module
ii llm-skel 1.3 arm64 llm-module
ii llm-sys 1.3 arm64 llm-module
ii llm-tts 1.3 arm64 llm-module
ii llm-vlm 1.3 arm64 llm-module
ii llm-yolo 1.3 arm64 llm-module
ii llm-yolo11n 0.2 arm64 llm-module
ii llm-yolo11n-pose 0.2 arm64 llm-module
ii llm-yolo11n-seg 0.2 arm64 llm-module
昨日時点でqwenは入れられていたっぽい
# filename: test_llm.py
import zmq
ctx = zmq.Context()
sock = ctx.socket(zmq.REQ)
sock.connect("ipc:///tmp/llm/5556.sock")
sock.send_json({"prompt": "Hello from Python"})
reply = sock.recv_json()
print("Response:", reply)
sh-5.1# systemctl start llm-llm
sh-5.1# systemctl status llm-llm
● llm-llm.service - llm-llm Service
Loaded: loaded (/lib/systemd/system/llm-llm.service; enabled; vendor prese>
Active: active (running) since Tue 2023-08-22 05:11:42 CST; 19min ago
Main PID: 1734 (llm_llm)
Tasks: 5 (limit: 1149)
Memory: 5.0M
CPU: 39ms
CGroup: /system.slice/llm-llm.service
└─1734 /opt/m5stack/bin/llm_llm
Aug 22 05:11:42 m5stack-LLM systemd[1]: Started llm-llm Service.
ここまできた
adb push ~/Desktop/test_llm.py /root/
desktopにtest_llm.py
を配置してこれを実行してrootに配置できたので、adb shell上でcat するより良さそう
一旦まとめた