Como posso adicionar um script ao Linux incorporado

0

Eu tenho um script (digamos Hello World), que eu quero incluir no meu Linux embarcado. Estou usando o Buildroot e quero iniciar o script no Busybox. Mas como estou fazendo uma compilação cruzada para o alvo, não sei ao certo onde colocar esse script, que no final ele será compilado e executado no Busybox.

    
por user3085931 22.01.2014 / 08:59

3 respostas

2

um script de shell não precisa ser compilado, para ser executado: a natureza de scripts deve ser executada diretamente por um interpretador (seu shell implementação).

portanto, você só precisa colocar o script em um local onde ele será encontrado pelo seu shell. Para scripts instalados pelo administrador, o local preferido é /usr/local/bin (ou /usr/local/sbin se o script for executado em "modo de administrador"). Certifique-se de que o script tenha permissões adequadas.

# cp /path/to/script/hello_world.sh /usr/local/bin
# chown root.root /usr/local/bin/hello_world.sh
# chmod a+x /usr/local/bin/hello_world.sh
# hello_world.sh
Hi there!
#
    
por 22.01.2014 / 10:00
1

Se você quiser que o script seja executado na inicialização e estiver usando o processo busybox init em seu sistema, coloque um script no diretório /etc/init.d .

Você precisa se certificar de que o nome do arquivo de script esteja no formato

SXFilename

onde X é algum inteiro que especifica a ordem em que é executado - quanto menor o valor X, mais cedo o script será executado. Dependendo de como você configurou buildroot , você deverá ver alguns scripts com nomes semelhantes no seu diretório /etc/init.d . Estou assumindo acima que você não editou seu arquivo inittab para desativar a execução desses scripts, é claro. A compilação cruzada não é um problema, pois o script não é compilado e é executado apenas usando ash ou bash se você tiver escolhido criar bash package no seu buildroot setup.

    
por 22.01.2014 / 12:50
0

Eu descobri que existem várias maneiras de fazer isso. Eu criei um fs-overlay, clique em make e era parte da imagem.

Obrigado pelo conselho.

    
por 22.01.2014 / 11:44