Configurando scripts de inicialização para BeagleBone / Angstrom

3

Estou trabalhando na configuração do pinmux em um BeagleBone para que eu possa acessar vários UARTS. O sistema operacional é o Angstrom Linux (a imagem de demonstração, se isso ajudar). Eu tenho um script de 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

Que configura o UARTS para uso. Agora, eu quero que este script seja executado na inicialização, para que eu não tenha que mexer com isso toda vez. Onde devo colocar isso / fazer um link para fazer isso?

    
por Bradley Powers 20.08.2012 / 22:44

3 respostas

2

Então, depois de muita escavação, encontrei a maneira correta de fazer isso. Angstrom usa o systemd para iniciar coisas na inicialização, então colocar as coisas em /etc/rc*n*.d não funciona corretamente. Em vez disso, você faz um serviço, informa o systemd sobre ele e funciona automaticamente.

Em / lib / systemd / system, criei um arquivo chamado pinmux.service:

[Unit]
Description=Setting up Pinmux

[Service]
ExecStart = /home/**username**/pinmux.sh

[Install]
WantedBy=multi-user.target

Isso chama o script de shell no meu diretório inicial chamado pinmux.sh, que faz toda a configuração, conforme observado na minha pergunta.

Para ativá-lo, chame systemctl enable pinmux.service , seguido por systemctl start pinmux.service .

Agora, o script será chamado na inicialização.

    
por 24.10.2012 / 17:19
2

Acabei de verificar o Angstrom Linux, ele é baseado no Debian, então copie estas linhas para que /etc/rc.local funcione para você:

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
    
por 28.09.2012 / 11:43
1

Como um novato, eu sei duas maneiras de fazer isso, é fácil: em /etc/rc5.d você pode ver alguns arquivos cujos nomes começam com alguns números que atribuem quem vai começar primeiro, e eles são iniciados a partir do primeiro número para o último número, respectivamente. Coloque seu script aqui com o último número:

vi /etc/rc5.d/S25yourScript.sh

Assumo que o último número S25 :) cole seu script aqui e saia. Quando você reiniciar, assim que seu script funcionar

    
por 28.09.2012 / 11:21

Tags