我正在使用BeagleBone上的PWM输出控制8个伺服器。在启动时,PWM的名称是动态分配的,因此它们在启动时各不相同,因此要知道哪个引脚与哪个PWM匹配,我已经编写了此脚本:
#!/bin/sh
# match BeagleBone PWMCHIP{n} with available pwm controllers
for i in $(/bin/ls /sys/class/pwm); do
link=$(/bin/readlink /sys/class/pwm/$i)
case "$link" in
*48300100*) BBPWM0=$i;;
*48300200*) BBPWM1=$i;;
*48302200*) BBPWM2=$i;;
*48304100*) BBPWM3=$i;;
*48304200*) BBPWM4=$i;;
esac
done
export BBPWM0
export BBPWM1
export BBPWM2
export BBPWM3
export BBPWM4
echo "PWM0 = $BBPWM0" > /home/ormund/servo.log
/home/ormund/servo-server
当我从命令行启动系统时,系统运行,伺服服务器侦听网络端口并响应远程命令而正确移动伺服器,但是如果我在启动时从systemd启动,它将失败,BBPWM0是一个空字符串,服务器无法启动。我在做什么错了?