Kiosk com Slackware
Autor: Luiz Mário Moraes | Publicado: 2011-07-28T15:31:00-03:00


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" /&gt;
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/