我正在努力在BeagleBone上设置pinmux,以便能够访问多个UARTS。操作系统是Angstrom (演示映像,如果这有帮助的话)。我有一个shell脚本:
#!/bin/sh
echo "Configuring Pinmux"
echo 0 > /sys/kernel/debug/omap_mux/uart1_txd
echo 20> /sys/kernel/debug/omap_mux/uart1_rxd
echo "UART 1 (TX):"
cat /sys/kernel/debug/omap_mux/uart1_txd
echo
echo "UART 1 (RX):"
cat /sys/kernel/debug/omap_mux/uart1_rxd
echo
echo 1 > /sys/kernel/debug/omap_mux/spi0_d0
echo 21> /sys/kernel/debug/omap_mux/spi0_sclk
echo "UART 2 (TX):"
cat /sys/kernel/debug/omap_mux/spi0_d0
echo
echo "UART 2 (RX):"
cat /sys/kernel/debug/omap_mux/spi0_sclk
echo它设置UARTS供使用。现在,我希望这个脚本在引导时运行,这样我就不必每次都搞砸它。为了做到这一点,我应该把这个/做一个链接放在哪里?
发布于 2012-10-24 15:19:45
所以,在深入挖掘之后,我找到了正确的方法。Angstrom使用systemd在引导时启动一些内容,因此将其放在/etc/rc*n*.d中不能正常工作。相反,你做一个服务,告诉系统它,然后它自动工作。
在/lib/system/system中,我创建了一个名为pinmux.service的文件:
[Unit]
Description=Setting up Pinmux
[Service]
ExecStart = /home/**username**/pinmux.sh
[Install]
WantedBy=multi-user.target这将调用我的主目录中名为pinmux.sh的shell脚本,它执行所有设置,如我在问题中所述。
要启用它,请调用systemctl enable pinmux.service,然后是systemctl start pinmux.service。
现在,脚本将在引导时被调用。
发布于 2012-09-28 09:43:30
刚刚检查了Angstrom,它是基于Debian的,所以将这些行复制到/etc/rc.local中就可以了:
echo 0 > /sys/kernel/debug/omap_mux/uart1_txd
echo 20> /sys/kernel/debug/omap_mux/uart1_rxd
echo 1 > /sys/kernel/debug/omap_mux/spi0_d0
echo 21> /sys/kernel/debug/omap_mux/spi0_sclk发布于 2012-09-28 09:21:10
作为新手,我知道两种方法,简单的一种是:在/etc/rc5.d中,您可以看到一些文件的名称以某些数字开头,这些数字指定谁将首先开始,并且它们分别从第一个数字开始到最后一个数字。把你的脚本和最后一个数字放在这里:
vi /etc/rc5.d/S25yourScript.sh我假设S25是最后一个数字:)将脚本粘贴在这里并退出。当您重新启动一次您的脚本将工作时
https://unix.stackexchange.com/questions/45940
复制相似问题