BeagleBone/Angstromの起動スクリプトの設定

BeagleBone/Angstromの起動スクリプトの設定

複数のUARTにアクセスできるようにBeagleBoneにpinmuxを設定しています。オペレーティングシステムは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

使用するUARTSを設定します。今度は起動するたびにこのスクリプトを実行して、毎回混乱させる必要がないようにしたいと思います。これを行うには、どこに配置するかリンクを作成する必要がありますか?

答え1

私は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

だから多くのナビゲーションの最後に正しい方法を見つけました。 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

これで起動時にスクリプトが呼び出されます。

答え3

初心者として、私はこれを行う2つの方法があることを知っています。そのうちの1つは簡単です。/etc/rc5.d最初に名前が始まる名前を指定する数字で始まるいくつかのファイルが表示され、最後の数字から始まる最初の数字から始まります。ここに最後の数字を含むスクリプトを入れてください。

vi /etc/rc5.d/S25yourScript.sh

S25が最後の数字であるとします。)ここにスクリプトを貼り付けて終了します。再起動するとスクリプトが機能します

関連情報