複数のUARTにアクセスできるように、BeagleBoneでpinmuxを設定する作業を行っています。 OSはAngstrom Linuxです(デモイメージ(役立つ場合))。私はシェルスクリプトを持っています:
#!/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
使用するUARTを設定します。さて、このスクリプトを起動時に実行したいので、毎回スクリプトをいじる必要はありません。これをどこに置くか/リンクを張る必要がありますか?
それで、多くの掘り下げの後で、私はこれをする正しい方法を見つけました。 Angstromはsystemdを使用して起動時に起動するため、/ etc/rc * n *。dに配置しても正しく機能しません。代わりに、サービスを作成し、systemdにそのことを伝えると、自動的に機能します。
/ lib/systemd/systemに、pinmux.serviceというファイルを作成しました。
[Unit]
Description=Setting up Pinmux
[Service]
ExecStart = /home/**username**/pinmux.sh
[Install]
WantedBy=multi-user.target
これは私の質問で述べたように、pinmux.shと呼ばれる私のホームディレクトリにあるシェルスクリプトを呼び出し、すべての設定を行います。
有効にするには、systemctl enable pinmux.service
を呼び出し、続いてsystemctl start pinmux.service
を呼び出します。
これで、スクリプトは起動時に呼び出されます。
Angstrom Linuxを確認したところ、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
初心者として、私はそれを行う2つの方法を知っています。簡単な方法があります。/etc/rc5.d
には、誰が最初に開始するかを割り当てるいくつかの番号で始まる名前のファイルがいくつかあり、最初の番号から開始されます。それぞれ最後の番号まで。ここに最後の番号を付けてスクリプトを入力します。
vi /etc/rc5.d/S25yourScript.sh
S25が最後の番号だと思います:)ここにスクリプトを貼り付けて終了します。スクリプトが機能するようになったら、再起動すると