Raspberry Pi: UI + web server!
Boas pessoal, desculpem a demora em postar conteúdo, fiquei afastado esse mês todo... não só devido ao trabalho e vida pessoal, mas também a projetos que estive fazendo! :D
Bom em um destes meus projetos, resolvi que iria gastar um tempo comprando um raspberry pi (é eu sei, ja deveria ter feito isso antes), mas eu estava relutando em comprar um, visto que ja possuo uma Pandaboard ES ( http://pandaboard.org/ ).
Mas enfim, comprei um, e vou colocar a minha primeira experiência com ele... do momento que comprei até onde parei, ou seja, um servidor web em casa.
Após ouvir muita coisa sobre o raspberry pi, desde uma galera usando pra educação até pra produção resolvi testar!
Vi muita gente falando onde comprar, que é difícil, e realmente é, muita gente esta atrás dessa plaquinha, assim como do arduino. Mas pra facilitar minha vida, decidi que não iria comprar apenas a placa, afinal é preciso muito mais do que apenas ela para rodar.
Entrei no site da Adafruit e comprei o starter kit deles ( starter kit ). Realmente o preço não é dos mais baratos, mas nada que um cartão internacional e uma conta do paypal não possam lhe auxiliar no pagamento.
Comprei e fiquei esperando (detalhe que no momento que escrevo o post 10/12/12 eles não possuem em estoque, mas fique de olho), 2 semanas depois chegou em casa o pacote. Tudo certo, vieram todos os items, em suma o que vem:
- Raspberry Pi model B (pra ver a diferença entre o modelo A e B - http://elinux.org/RPi_Hardware);
- Cartão Micro SD + Adapter de 4GB;
- Caixa de acrílico da Adafruit! :)
- Raspberry Pi Badge... :) (eu colei o mesmo em cima da caixa de acrílico! ficou show olha a foto!)
- E outras coisas + ...
Legal neh, chegou abri e blz! Agora você se pergunta o que fazer? Bom, eu não tenho um monitor / televisor com entrada HDMI e não estava afim de usar a saída RCA também, então eu adiquiri um conversor hdmi to vga no dealextreme. Ok, eu não esperei o pi chegar pra fazer isso, na verdade ambas mercadorias chegaram praticamente juntas.
PS: além de usar no pi, eu tenho uma pandaboard, como falei no começo do post, então esse conversor é pra usar nos dois!
O próximo passo é ligar tudo... conectei todos os componentes, mas ainda falta uma coisa pra sair rodado o pi... instalar o SO que você deseja usar.
Como início, fui testar o Occidentalis v0.2 que é uma distro modificada pela Adafruit da Raspbian “wheezy”.
Fiz o download e instalei no cartão SD seguindo os passos do tutorial que esta no link acima da distro. Iniciei o pi e bing! Estava la a UI do Occidentalis, bem simples e rápido... mas eu não gostei.
Comecei a olhar na net as opções e vi que era possível instalar o Arch Linux ARM, uma distro derivada da Arch Linux que funciona em processadores ARM e pra minha surpresa a pandaboard também é suportada! FTW \o/
Para instalar no pi, bem simples! Simples até demais, faça o download da imagem e grave a mesma no SD card, eu usei o image writer que ja vem pré-instalado no Linux Mint para fazer isso e foi de boa... Reiniciei novamente o pi, agora com o cartão sd e a instalação do arch e depois de uns 10 segundos eu tinha um shell linux pronto para usar!!
Agora o primeiro passo é atualizar seu Arch Linux... faça o login usando root : root.
O shell será será liberado, para atualizar o Arch Linux utiliza-se do pacman, então realize um:
$ pacman -Syyu
Isso fará com que todos os repos sejam atualizados e fará em seguida um update no sistema... aguarde vários minutos! Não se esqueça de estar conectado em uma rede de dados para isso, claro...
Depois de atualizar o sistema, minha sugestão é alterar a senha do root e criar um novo usuário!
Use o comando abaixo para alterar a senha do root!
$ passwd
E em seguida faça:
$ adduser
E siga as instruções... quase tudo pode ser o padrão mesmo... só não esqueça da senha!
Feito isso, você, assim como eu pode desejar ter uma UI para interagir mais facilmente (ou instalar por diversão mesmo!).
Eu segui os tutoriais na wiki do Arch Linux para instalar o LXDM + XFCE4 e deixar o pi +/- com a cara do meu desktop (não que isso fosse necessário, ja que ele será um servidor, mas mesmo assim...).
Antes de mais nada para executar qualquer UI em linux deve-se instalar o X Windows System. Para isso basta você executar:
$ pacman -S xorg-server xorg-apps xorg-xinit xorg-twm xorg-xclock xterm xorg-drivers
Isso vai garantir que o x server todo será instalado, assim como qualquer outros drivers e widgets necessários.
Depois vamos instalar o lxdm e xfce4:
$ pacman -S lxdm xfce4 xfce4-goodies sudo gedit
No meu caso eu ja instalei o sudo e gedit também, apesar do gedit ser um pouco pesado para carregar... ainda não testei pra ver se o emacs funciona de boa.
Pronto!!
Para executar o lxdm e xfce4 ao iniciar o pi, ainda precisamos alterar o arquivo /etc/lxdm/lxdm.conf e mudar a linha session=/usr/bin/startlxde para session=/usr/bin/startxfce4 .
Para editar o arquivo:
$ sudo nano /etc/lxdm/lxdm.conf
E em seguida executar o systemd para ativar o serviço do lxdm:
$ systemctl enable lxdm.service
Reinicie o pi, agora você deve ter uma interface gráfica aparecendo, faça o login com o usuário que você criou e pronto!
Eu enfrentei um problema bem chato, meu monitor não esta suportando 100% o hdmi do pi, para isso bastar alterar a propriedade disable_overscan do arquivo de configuração do Arch Linux.
Execute:
$ sudo nano /boot/config.txt
Desabilite a linha (tire o # da frente), disable_overscan=1 . Além disso altere as propriedades do overscan logo abaixo, é tentativa e erro mesmo, coloque um valor e reinicie o pi pra ver se deu certo.
Seu startup inicial esta pronto... entretanto...
Quando comprei meu raspberry pi que vem no starter kit da Adafruit, notei que ele não possui conexão wireless (uma pena não??), mas isso pode ser remediado comprar um wireless module, olhei no site e achei esse: Miniature WiFi (802.11b/g/n) Module: For Raspberry Pi and more, comprei junto.
Mas para você ter uma interface bacana para interagir com o modulo é preciso instalar umas coisas a mais:
$ pacman -S networkmanager network-manager-applet xfce4-notifyd
$ systemctl enable NetworkManager.service
$ systemctl start NetworkManager.service
Isso vai instalar e inicializar uns widgets bacanas para você controlar seu usb wireless e conetar na sua rede wifi sem precisar digitar comandos no shell!! :D
Por padrão o driver desse dispositivos usb que comprei vem por default ativado, bastando apenas a reinicialização do pi pra tudo funcionar.
Pra finalizar vamos instalar o nginx, que é um web server muito bom e rápido.
$ pacman -S nginx
$ systemctl enable nginx
$ systemctl start nginx
Se você quiser um web browser para rodar no seu pi, instale o midori, pois o firefox e chrome não são suportados na arquitetura x86 (bom pelo menos eles não estão listados no repo do arch linux como disponíveis para arm).
$ pacman -S midori
E é isso ae, por enquanto é isso... no próximo post vou mostrar como instalar o python e uWSGI para fazer seu web site rodar no pi!
falowaer
- http://www.adafruit.com/
- http://www.raspberrypi.org/
- http://dx.com/
- http://learn.adafruit.com/adafruit-raspberry-pi-educational-linux-distro/occidentalis-v0-dot-2
- http://archlinuxarm.org/platforms/armv6/raspberry-pi
- https://wiki.archlinux.org/index.php/Xorg
- https://wiki.archlinux.org/index.php/LXDM
- https://wiki.archlinux.org/index.php/Xfce
- https://wiki.archlinux.org/index.php/Nginx