::respawn:-/bin/sh
Usando BR2_ROOTFS_OVERLAY , deixe o convidado /etc/inittab conter:
::respawn:-/bin/sh
em vez da linha padrão de formulário:
console::respawn:/sbin/getty -L console 0 vt100
Você pode copiar o inittab padrão de output/target/etc/inittab após a criação.
Achei isso enquanto estudava o examples/inittab no Busybox 1_28_3 e descobri isso , tentei e funcionou, então é a melhor solução que encontrei até agora.
Não esqueça o traço principal - , ou as ações de controle de trabalho, como Ctrl + C, não funcionam como mencionado abaixo.
O traço principal - é magicamente analisado pelo init da BusyBox: link e configura o TTY para o comando que segue.
O BusyBox também acrescenta - ao início ou arg[0] , que /bin/sh interpreta como indicando um shell de login, o que faz com que ele crie alguns arquivos init, como /etc/profile . Veja também: link
O seguinte é equivalente, pois console é o valor padrão:
console::respawn:-/bin/sh
Para fazer login como outro usuário por padrão, você pode usar:
::respawn:-/bin/login -f user0
Aqui está uma configuração de amostra .
Resposta anterior: getty -l
Depois de quase dois anos, eu encontrei! : -)
Usando BR2_ROOTFS_OVERLAY , substitua / crie os seguintes arquivos:
/ etc / inittab: comece pelo link e edite a linha do console a ser :
console::respawn:/sbin/getty -n -L -l /loginroot.sh console 0 vt100
/loginroot.sh:
#!/bin/sh
exec /bin/login root
/bin/login é o executável padrão se -l não for fornecido. O que fizemos para criar um executável que chama /bin/login com o usuário root já especificado.
Isso faz com que init tente fazer login como o usuário root por padrão e, como a senha padrão está vazia ( BR2_TARGET_GENERIC_ROOT_PASSWD ), ele efetua login automaticamente.
Esta técnica basicamente reimplementa a opção -a <user> presente no getty do Ubuntu 14.04, que a implementação do BusyBox 'não possui.
Depois, para fazer o login como um usuário diferente, basta executar:
/bin/login
Aqui está uma configuração de amostra .
Resposta anterior: console::respawn:/bin/sh
Eu perguntei na lista de discussão e Thomas Petazzoni respondeu que:
/etc/inittab
deve conter:
console::respawn:/bin/sh
em vez de:
console::respawn:/sbin/getty -n -L console 0 vt100 # GENERIC_SERIAL
Com qemu_x86_defconfig , o inittab está sendo usado pelo sistema% init do Busybox, devido a BR2_INIT_BUSYBOX=y .
Este método tem um lado negativo: logo após o login, a mensagem mostra:
/bin/sh can't access tty; job control turned off
e como anunciado, coisas como Ctrl+C não terão efeito.