Здраствуйте! Подскажите можно ли настроить автоматическое монтирование флешки? И можно ли как то через wb-rules отслеживать чтобы флешка вставлена.
Цель: при подключении флешки копировать /mnt/data/var/lib/wirenboard/db/data.db, далее зуммером пропищать что файл скопирован, далее извлечь флеш носитель.
Добрый день.
Можно. Например так:
Ну и соответственно из скрипта (или прост напрямую командой mosquitto_pub) устанавливать топик, за которым следит правило.
Ну или вообще делать копию из скрипта, не запуская никаких правил и пищать бипером - тоже.
- А как можно зуммером управлять из под консоли? Не дает через echo зуммер включить. root@wirenboard-AK476JRE:/sys/class/pwm/pwmchip0/pwm0# echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
-bash: echo: write error: Invalid argument
- Есть ли проверенный пример такого правила udev. К сожалению я перебробывал разные варианты и все некорректно работают. Последний вариант правила:
ERNEL==“sd[a-z][0-9]”, SUBSYSTEMS==“usb”, ACTION==“add”, RUN+="/bin/mkdir -p /media/usb && /bin/mount /dev/%k /media/usb && cp /mnt/data/var/lib/wirenboard/db/data.db /media/usb"
KERNEL==“sd[a-z][0-9]”, SUBSYSTEMS==“usb”, ACTION==“remove”, RUN+="/bin/umount /media/usb && /bin/rm -r /media/usb"
Логично:
echo 1 >> /sys/class/pwm/pwmchip0/pwm0/enable
Нет, имено для подобной задачи пока не писали, примеров пока нет.
Советую вызывать не набор команд а скрипт все же, так отладить проще, выводом в текстовый лог например.
Что за контроллер?
https://wirenboard.com/wiki/GPIO
Что возвращает
cat /sys/class/pwm/pwmchip0/pwm0/enable
Ну и аппаратно независимый вариант:
mosquitto_pub -t /devices/buzzer/controls/enabled/on -m 1
cat /sys/class/pwm/pwmchip0/pwm0/enable
0
Спасибо через mosquitto_pub хороший вариант) Как то даже не подумал про него)
Проблема решена! Вот если что скрипты мало ли кому пригодиться:
logger_mount_usb.sh:
#!/bin/bash
mkdir -p /media/usb && /bin/mount /dev/sda1 /media/usb;
cp /mnt/data/var/lib/wirenboard/db/data.db /media/usb;
mosquitto_pub -t /devices/buzzer/controls/enabled/on -m 1 && sleep 5 && mosquitto_pub -t /devices/buzzer/controls/enabled/on -m 0
logger_umount_usb.sh
#!/bin/bash
/bin/umount /media/usb && /bin/rm -rf /media/usb
Файл udev:
KERNEL=="sd[a-z][0-9]", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/mnt/data/root/logger_mount_usb.sh"
KERNEL=="sd[a-z][0-9]", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/mnt/data/root/logger_umount_usb.sh"
В дополнение удобнее всего воспользоваться утилитой usbmount.
apt install ./usbmount_0.0.24_all.deb
```[usbmount_0.0.24_all.deb|attachment](upload://eyXd8fFdbKrCwm3eqAq7OyFFM3D.deb) (18.2 КБ)