Se você já viu o post de como instalar o Raspbian maravilha, caso contrario veja aqui para entender esta próxima etapa.
Como requisito de um próximo post sobre RaspberryPI que com pouco sacrifício e sem quase nenhuma outra ferramenta fiz para um amigo uma ferramenta para ele utilizar no stand da empresa dele em um workshop, e como ele reportou um feedback muito positivo irei compartilhar o que foi feito, mas para isso a primeira coisa que tive que fazer e sei que muitos querem fazer é o RaspberryPI após ser alimentado ele dar o boot e já entrar direto na interface gráfica não é? Eu precisei disso e sei que muitos precisam, caso contrario ele irá iniciar e parar na tela como na figura abaixo:
Para acessar a interface gráfica desta maneira você deve digitar o usuário/senha, caso seja o Raspbian sera (pi/raspberry) e em seguida startx para subir a interface como na imagem abaixo:
E a interface gráfica sera carregada, mas e se quisermos que esse processo seja todo automatizado e nossa interface carregue igual um Linux (sem senha é claro *rs) ou o Micro$oft Windows, vamos ver o que precisamos alterar.
Primeiro vamos alterar o /etc/inittab para no lugar de carregar o tty para o usuário interagir ele faça o login direto, da seguinte maneira:
pi@raspberry ~ $ cat /etc/inittab ... 1:2345:respawn:/sbin/getty --noclear 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6 # Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100 # Example how to put a getty on a modem line. # #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3 #Spawn a getty on Raspberry Pi serial line T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
Tem varias linhas nesse arquivo porém neste momento o que nos interessa é a linha que contem os parametros:
1:2345:respawn:/sbin/getty –noclear 38400 tty1
Ou algo bem parecido com esta linha visto que –noclear pode nem aparecer e 38400 pode possuir outros valores, enfim vamos alterar para a linha abaixo:
1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1
pi@raspberry ~ $ cat /etc/inittab ... #1:2345:respawn:/sbin/getty --noclear 38400 tty1 1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6 # Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100 # Example how to put a getty on a modem line. # #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3 #Spawn a getty on Raspberry Pi serial line T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
A explicação mais rápida é que getty é para gerenciar os tty e proteger a acesso não autorizado, já o login é para se obter acesso ao sistema, e o tty1 é por padrão para exibir mensagens de inicialização do sistema, por isso fizemos esses redirecionamentos e por fim com 2>&1 e o -f é o usuário que realizara a autenticação. Salve e reboot o RaspberryPI, e ele irá logar automaticamente com o usuário pi (era isso que queríamos) mas e a interface gráfica :(?
Para subir a interface gráfica devemos “criar” um script que faça a chamada para subir ela apos o usuario iniciar, e neste caso vamos utilizar o /etc/rc.local que é o arquivo que o linux acessa para saber o que ele deve fazer após o boot, vamos editar ele então.
pi@raspberry ~ $ cat /etc/rc.local #!/bin/sh -e ... # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %sn" "$_IP" fi exit 0
pi@raspberry ~ $ sudo nano /etc/rc.local # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %sn" "$_IP" fi # Subir interface grafica com usuario pi # esta linha deve ficar antes de exit 0 :) su -l pi -c startx exit 0
O segredo agora foi o comando su, quem já precisou executar scripts de outros usuários com o root sabe do que estou falando -l é o nome do usuário e -c o comando que sera executado, fácil não?
Salve e reinicie o Raspberry PI.
E deve aparecer algo como a imagem abaixo:
No caso estou usando o Raspbian que foi preparado neste post.
Bom desta vez foi essa dica simples porém muito útil e que será a base fundamental para o próximo post.
Até a próxima!
Referência
http://elinux.org/RPi_Debian_Auto_Login
RaspberryPI – Login automático e subindo interface grafica by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.