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

초보자로서 저는 이 작업을 수행하는 두 가지 방법이 있다는 것을 알고 있습니다. 그 중 하나는 간단합니다. /etc/rc5.d이름이 누가 먼저 시작할 것인지 지정하는 숫자로 시작하는 일부 파일을 볼 수 있으며 마지막 숫자부터 시작하는 첫 번째 숫자부터 시작합니다. 여기에 마지막 숫자를 포함한 스크립트를 넣으세요.

vi /etc/rc5.d/S25yourScript.sh

S25가 마지막 숫자라고 가정합니다 :) 여기에 스크립트를 붙여넣고 종료하세요. 재부팅하면 스크립트가 작동합니다

관련 정보