Я хочу включить внешний проектор, подключенный с помощью контакта gpio.
Когда Я запускаю следующие команды, поскольку sudo/root проектор успешно включается без проблем
Код: Выделить всё
echo 48 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio48/direction
echo 1 > /sys/class/gpio/gpio48/value
Потому что я не хочу каждый раз подключаться по SSH к своей доске и вручную вставлять эти команды, которые я вставил их в скрипте и поместите в службу systemctl.
Код: Выделить всё
#!/bin/bash
echo 48 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio48/direction
echo 1 > /sys/class/gpio/gpio48/value
exit 0
Код: Выделить всё
[Unit]
Description=Turn on projector by i2c pin
[Service]
Type=simple
ExecStart=/bin/bash /usr/local/sbin/projector.init.sh
[Install]
WantedBy=multi-user.target
Код: Выделить всё
debian@beaglebone:~$ sudo systemctl status projector.init.service
[sudo] password for debian:
● projector.init.service - Turn on projector by i2c pin
Loaded: loaded (/etc/systemd/system/projector.init.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Sun 2024-12-01 19:15:06 UTC; 7min ago
Process: 606 ExecStart=/bin/bash /usr/local/sbin/projector.init.sh (code=exited, status=0/SUCCESS)
Main PID: 606 (code=exited, status=0/SUCCESS)
Dec 01 19:15:05 beaglebone systemd[1]: Started Turn on projector by i2c pin.
Dec 01 19:15:05 beaglebone bash[606]: /usr/local/sbin/projector.init.sh: line 2: echo: write error: Operation not permitted
Dec 01 19:15:05 beaglebone bash[606]: /usr/local/sbin/projector.init.sh: line 3: /sys/class/gpio/gpio48/direction: No such file or directory
Dec 01 19:15:05 beaglebone bash[606]: /usr/local/sbin/projector.init.sh: line 4: /sys/class/gpio/gpio48/value: No such file or directory
Кто-нибудь знает, что я делаю неправильно и как я могу выполнить скрипт с полными разрешениями?
Изменить: дополнительная информация
- Я сделал скрипт исполняемым используя chmod +x
- Я попробовал добавить +/bin/bash в службу systemctl, как где-то читал, что он будет выполнять скрипт от имени пользователя root
- Пытался изменить тип службы на oneshot вместо просто
Подробнее здесь: https://stackoverflow.com/questions/792 ... -permitted
Мобильная версия