quinta-feira, 28 de julho de 2011

Kiosk com Slackware

Neste tutorial, irei demonstrar como configurar um kiosk utilizando o Slackware, no qual iremos apenas carregar o xorg para exibição do Firefox em modo fullscreen.

Depois de ter instalado e configurado o Slackware, crie um usuário específico, onde iremos configurar o kiosk. Neste exemplo, iremos criar um usuário com o nome de terminal:
adduser terminal

Após criado o usuário, carregue o gerenciador de janelas:
startx

Inicie o Firefox e defina o site que será exibido no kiosk como página inicial.

Instale o add-on R-kiosk para firefox através deste link.
Este add-on faz com que o Firefox seja executado em modo fullscreen, desabilita todos os menus, barras de ferramentas, comandos de teclado e o botão direito do mouse.

Agora vamos configurar o Slackware para executar o Firefox assim que o modo gráfico for inicializado.
Dentro do diretório /home/terminal crie o arquivo .xinitrc e insira a seguinte linha:
exec /usr/bin/firefox

Configure o firefox para ser executado em modo fullscreen. Para isso, acesso o arquivo /home/terminal/.mozilla/firefox/algumacoisa.default/localstore.rdf e procure pelas linhas:

width="1024"
height="768" />
Defina os valores de resolução desejados nos campos "width" e "height".

Ainda há um problema na nossa configuração. Se deixarmos a configuração como está, quando alguém utilizar o comando ctrl+c, o sistema irá para o modo texto e a conta na qual o Firefox está sendo executado ficará livre para o usuário fazer o que quiser com o sistema, inclusive desconfigurar tudo o que fizemos até agora. Para evitar isso, iremos editar o arquivo .bash_profile no diretório /home/terminal com os seguintes parâmetros:

#!/bin/bash

while true
do
/usr/bin/startx
done
Dessa forma o terminal não irá para o modo texto quando o usuário encerrar o aplicativo com o atalho ctrl+c, ou seja, quando o usuário tentar sair do aplicativo o X simplesmente será reiniciado e tudo voltará a funcionar normalmente.
Agora só falta configurar o Slackware para exibir o browser na tela sem que seja preciso fazer login no sistema, de forma que assim que o terminal for ligado o browser será executado.
Tome cuidado, pois após feita essa configuração nós não iremos mais conseguir logar com outro usuário na máquina, pois a opção de login será desativada.
Para isso, primeiro iremos editar o arquivo inittab:
vim /etc/inittab
E alterar a linha:
1:2345:respawn:/sbin/agetty 38400 tty
por:
1:2345:respawn:/sbin/agetty -n -l /sbin/autologin 38400 tty1
Onde o -n especifica que não queremos que o prompt de login seja apresentado na tela. Já o -l permite invocar um programa específico de login, em substituição ao default (geralmente o /bin/login).
Vamos criar agora o programa de login que será carregado pelo sistema:
vim /sbin/autologin.c
Escreva no arquivo o seguinte conteúdo:
int main() {
execlp( "login", "-f", "terminal", 0);
}
Depois é só compilar:
gcc -o /sbin/autologin /sbin/autologin.c
Edite o arquivo /etc/login.defs e procure por uma linha assim:
#NO_PASSWORD_CONSOLE tty1:tty2:tty3:tty4:tty5:tty6
Mude-a para:
NO_PASSWORD_CONSOLE tty1

Pronto, processo concluído. Para que as alterações sejam processadas para uso futuro sem a necessidade de rebootar o sistema, digite:
init q
E execute o programa que criamos para login automático:
./autologin

Referências:
Slackbook: http://www.slackbook.org
JACK.eti.br: http://www.jack.eti.br/www/

Nenhum comentário:

Postar um comentário