Oficina Prática sobre Linux Embarcado na ERRC 2010
Esse ano a Escola Regional de Redes de Computadores (ERRC 2010) ocorrerá em Alegrete-RS, nos dias 4, 5 e 6 de outubro de 2010. Organizado pela Universidade Federal do Pampa (UNIPAMPA), pela Universidade Federal de Santa Maria (UFSM) e pelo Instituto Federal Farroupilha (IFFarroupilha), o evento – que tem como objetivo apresentar e discutir as novas tecnologias na área de Redes de Computadores, reunirá professores, estudantes, pesquisadores e profissionais da área interessados em compartilhar idéias e conhecimentos, de modo a buscar novas soluções para todos.
Nesta edição, apresentarei uma oficina prática em desenvolvimento de Linux Embarcado, juntamente com meu colega Carlos Moratelli. A oficina terá duração de 4 horas e terá um formato de curso que abordará a construção de um sistema de Linux Embarcado a partir do zero. O foco do curso será em sistemas gerenciáveis via rede. Desta forma, abordaremos questões como suporte à rede e protocolos de gerenciamento.
Segue os dados da palestra:
Título: Construção de Linux Embarcado com Suporte a Gerenciamento
Palestrantes: Carlos Moratelli e Marcelo Veiga Neves
Data: 05/10/2010, a partir das 14h (durante a ERRC 2010)
Palestra sobre Linux em Sistemas Embarcados na UNIPAMPA
No dia 25 de junho de 2010, participei como palestrante da Semana Acadêmica do Centro de Tecnologia de Alegrete - SACTA 2010 - da Universidade Federal do Pampa - UNIPAMPA - em Alegrete, RS. A minha palestra foi sobre Linux em Sistemas Embarcados e contou com uma seção de demonstração utilizando um dos equipamentos de rede da Digitel. A Digitel me emprestou um roteador 3G da linha Digitel NetRouter NRX 5100, que roda um Linux Embarcado.

Disponibilizei os slides da apresentação no SlideShare, segue os dados a seguir.
Título da Palestra: Linux em Sistemas Embarcados
Resumo:
Esta palestra tem como tema o desenvolvimento de Linux para sistemas embarcados. Primeiramente, será apresentada uma visão geral da área. Na sequência, serão abordados os problemas típicos envolvendo o porte do Linux para novas plataformas, a preparação de toolchains para cross-compilação, bootloaders, escolha de sistemas de arquivos, preparação do kernel para trabalhar com os barramentos e dispositivos típicos em sistemas embarcados, depuração do hardware embarcado, entre outros. A palestra terá também uma seção de demonstração utilizando uma placa baseada em PowerPC.
Slides no SlideShare:
Slides para download: http://veiga.eti.br/docs/veiga-elinux-unipampa2010.pdf
Mercado de Trabalho na Sociedade do Conhecimento
Recentemente, participei de uma besteira dinâmica de grupo onde cada um deveria realizar uma apresentação para os colegas. O assunto era livre e as apresentações giraram em torno de hobbies e assuntos da atualidade. Para a minha apresentação, resolvi criar um vídeo com uma seleção de cenas de entrevistas (melhores momentos) com o consultor de empresas Waldez Ludwig, falando sobre como funciona o mercado de trabalho na Sociedade do Conhecimento.
Sociedade do Conhecimento, também chamado de Sociedade da Informação, é o termo utilizado para designar o tipo de sociedade que surgiu no fim do Século XX, período Pós-Industrial. Nesta nova sociedade, a economia é baseada em conhecimento e a inovação passa a ser a chave para o sucesso das empresas. Levando em consideração que inovação só pode vir de pessoas, o capital humano e intelectual passa a ser mais importante para as empresas que o próprio capital físico.
O vídeo é bastante interessante, engraçado e responde algumas perguntas como: porque algumas pessoas ganham mais que outras? por que ainda não fui promovido? e coisas do tipo. Além disso, o vídeo serve como um “tapa com luva de pelica” em gerentes com mentalidade ultrapassada. ;-) Disponibilizei o vídeo no Vimeo.
ps: o vídeo também foi a minha primeira edição do iMovie, muito legal o programa.
Palestras do Tchelinux Disponibilizadas no SlideShare e Vimeo
Recentemente, o Jerônimo Madruga fez um trabalho bem legal disponibilizando os slides das palestras do grupo Tchelinux no SlideShare. Na mesma linha, no ano passado o Douglas Landgraf disponibilizou alguns vídeos de palestras do grupo no Vimeo.
Segue a minha palestra realizada no final do ano passado que agora está disponível no SlideShare do Tchelinux.
Seguem algumas sugestões de palestras disponíveis no Vimeo do Tchelinux:
- Investigando o Kernel com Systemtap
- Gerenciando Repositórios de Código com GIT
- Do UNIX ao Linux: a história do Software Livre
Slides da palestra Desenvolvendo Sistemas de Linux Embarcado no Tchelinux 2009
No final do ano passado, participei do Tchelinux 2009 em Porto Alegre e apresentei a palestra “Desenvolvendo Sistemas de Linux Embarcado”. Agora estou disponibilizando os slides para download.
Segue os dados da palestra como foram divulgados no evento:
Título: Desenvolvendo Sistemas de Linux Embarcado
Currículo:
Marcelo Veiga Neves é formado em Ciência da Computação pela UFSM e mestre pela UFRGS. Atualmente, trabalha na empresa Digitel projetando e desenvolvendo software para sistemas embarcados (por exemplo, adaptando o kernel do Linux para novas plataformas baseadas em PowerPC, escrevendo drivers de dispositivos, protocolos de rede e programas diversos para sistemas embarcados, etc.).
Resumo da Palestra:
Esta palestra abordará os itens necessários para construir um sistema de Linux embarcado. Serão abordados os problemas típicos envolvendo Linux em sistemas embarcados, a preparação de toolchains para cross-compilação, bootloaders, escolha de sistemas de arquivos, preparação do kernel para trabalhar com os barramentos e dispositivos típicos em sistemas embarcados, depuração do hardware embarcado, entre outros. A palestra terá também uma seção de demonstração utilizando uma placa de desenvolvimento baseada em PowerPC.
Slides para download: http://www.veiga.eti.br/docs/veiga-elinux-tchelinux2009.pdf
-veiga
Evento do Tchelinux em Porto Alegre
No dia 14 de Novembro de 2009, próximo sábado, acorrerá o 4º Seminário de Software Livre Tchelinux. O evento acontecerá nas dependências da Faculdade de Informática da PUC-RS em Porto Alegre. Como de costume, não será cobrada inscrição em dinheiro, entretanto cada participante é encorajado a doar 2 (dois) quilogramas de alimentos não perecíveis, que serão encaminhados à instituições de caridade.
Nesta edição, o evento conta com mais de 60 apresentações sobre temas relacionados ao Software Livre. Os temas das palestras vão desde conceitos sobre software livre orientados para o público iniciante, até temas para usuários avançados. Dentre os palestrantes confirmados, estão os Kernel Hackers da RedHat Luis Claudio Gonçalves, Fábio Olivé Leite e Douglas Landgraf, o criador do TinyCobol Rildo Pragana, o Global Support Engineer at Red Hat Carlos Maiolino e o Instrutor e Consultor da RedHat Marcelo Moreira de Mello.
Já participei de algumas edições do Tchelinux. Apesar de ser organizado na forma de palestras, o ambiente do evento é propício a troca de informações. As palestras que participei sempre terminaram em bate-papos de bom nível. Gostei tanto do formato do evento que decidi submeter uma palestra para essa edição. Já planejava fazer isso antes, mas infelizmente o trabalho e o mestrado estavam sugando quase todo o meu tempo. :-(
O título da minha palestra é “Desenvolvendo Sistemas de Linux Embarcado” e abordará os itens necessários para colocar um sistema de Linux Embarcado no ar. A palestra terá também uma seção de demonstração utilizando uma placa de desenvolvimento baseada em PowerPC.
As inscrições já estão abertas:
Conversor USB-to-Serial no Mac OS X
Recentemente, eu comprei um cabo conversor USB-to-Serial para acessar equipamentos e placas de desenvolvimento via console no meu MacBook. Já tinha utilizado outras opções, mas essa realmente me chamou a atenção pelo preço e facilidade de utilização. O conversor que eu comprei é este, que está disponível em sites chineses por apenas $4 (um conversor desses na Digimer custa em torno de R$ 50). ;-)
A grande maioria desses conversores utilizada um chip da Prolific. Então, o procedimento a seguir deve funcionar para quase todos.
Utilização no Linux
Antes de utilizar no Mac, resolvi testar o conversor no Linux. No Ubuntu, o conversor funcionou automaticamente, sem a necessidade de instalar nada. Basta plugar o cabo na USB e aparece um dispositivo serial do tipo ttyUSBx.
ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 2009-11-02 17:06 /dev/ttyUSB0
Utilizei o programa minicom para acessar uma placa de desenvolvimento via serial e tudo funcionou normalmente.
minicom -s
Utilização no Mac OS X
No Mac OS X, foi necessário instalar um driver. A própria Prolific disponibiliza um driver, no entanto existe um driver open source para esse chip que funciona muito bem e ainda disponibiliza alguma documentação. Nem cheguei a testar ao driver do fabricante, fui direto para a segunda opção. Após a instalação do driver, basta plugar o cabo na USB e aparece um dispositivo serial do tipo tty.PL2303-xxx.
ls -l /dev/tty.PL2303-* crw-rw-rw- 1 root wheel 11, 18 2 Nov 18:56 /dev/tty.PL2303-0000101D
O emulador de terminal disponível no Mac é o screen. Utilizei esse programa para acessar uma placa de desenvolvimento via serial e tudo funcionou normalmente. É necessário passar o dispositivo e o baudrate como parâmetro para o programa.
screen /dev/tty.PL2303-0000101D 115200
Outra opção é instalar o minicom utilizando o MacPorts.
port instal minicom minicom -s
Procurei algumas opções gráficas, mas não consegui achar muita coisa livre. A melhor opção encontrada foi o goSerial.
Para mais informações:
- Mac OS X Prolific PL2303 driver project: http://osx-pl2303.sourceforge.net/
Instalação de Servidor GIT sobre WebDAV e gitweb no Fedora
Este post documenta o procedimento de instalação de um servidor GIT com acesso via WebDAV e gitweb. O objetivo desta instalação é ter um servidor de GIT que possa ser utilizado exatamente como um servidor SVN, sem grandes traumas na transição de SVN para GIT. Por exemplo, deseja-se ter o servidor GIT como um centralizador de repositórios, no qual os usuários possam usar “git clone/pull/push” da mesma forma que usariam “svn update/commit”.
A instalação foi realizada no Fedora 11.
Instalação do Servidor Web
Instalar o servidor Apache:
yum install httpd
Por default, o arquivo de configuração do Apache já carrega os módulos do WebDAV.
cat /etc/httpd/conf/httpd.conf ... LoadModule dav_module modules/mod_dav.so ... LoadModule dav_fs_module modules/mod_dav_fs.so
Colocar o Apache na inicialização do sistema:
chkconfig --levels 235 httpd on /etc/init.d/httpd start
Configuração do WebDAV
Criar o arquivo git.conf:
cat /etc/httpd/conf.d/git.conf
Alias /git "/srv/git"
<Directory "/srv/git">
DAV on
Options +Indexes +FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
AuthType Basic
AuthName "Git"
AuthUserFile /etc/httpd/passwd.git
Require valid-user
</Directory>
Criar o arquivo de senhas a autenticação do tipo Basic:
htpasswd -c /etc/httpd/passwd.git usuario
Criar diretório dos repositórios para testar a autenticação:
mkdir /var/git
Reiniciar o Apache e testar o endereço http://localhost/git:
/etc/init.d/httpd restart
Instalação e Configuração do GIT
yum install git
Criação de um Repositório
Criar um repositório de teste:
mkdir -p /srv/git/myproject cd /srv/git/myproject git --bare init Initialized empty Git repository in /srv/git/myproject/
Habilitar o hook de post-update:
cd /srv/git/myproject/ cp hooks/post-update.sample hooks/post-update chmod +x hooks/post-update
O conteúdo do hooks/post-update deve ser:
cat hooks/post-update exec git update-server-info
Executar manualmente a primeira vez:
./hooks/post-update
Dar permissão correta para o usuário do Apache (no caso do Fedora é apache):
chown -R apache:apache /srv/git/myproject/
Testando
No cliente, instalar o GIT (neste caso, o teste foi feito no localhost mesmo):
yum install git
Configuracao mínima:
git config --global user.name "My Name" git config --global user.email "my@email.com"
Configurar usuário e senha do servidor:
cat ~/.netrc machine localhost login usuario password senha
Testar acesso ao servidor via curl:
curl --netrc --location -v http://localhost/git
Clonar o repositório remoto:
git clone http://localhost/git/myproject Initialized empty Git repository in /home/user/myproject/.git/
Adicionar alguma coisa ao repositório:
cd myproject echo testando > teste.txt git add teste.txt git commit
Enviar modificações ao servidor:
git push origin master
Fetching remote heads...
refs/
refs/tags/
refs/heads/
updating 'refs/heads/master'
from 0000000000000000000000000000000000000000
to 87366d467e2dfcc6057bf7d5e112b79ede984861
sending 3 objects
done
Instalação e Configuração do gitweb
Instalar gitweb:
yum install gitweb
Criar arquivo gitweb.conf para o Apache:
cat /etc/httpd/conf.d/gitweb.conf Alias /gitweb /var/www/git <Directory /var/www/git> Options +ExecCGI AddHandler cgi-script .cgi DirectoryIndex gitweb.cgi </Directory>
Criar arquivo de configuração do gitweb:
cat /etc/gitweb.conf
$projectroot = '/srv/git/';
@git_base_url_list = ('http://localhost/git')
Reiniciar o Apache e testar o endereço http://localhost/gitweb:
/etc/init.d/httpd restart
Para mais informações
* 8 Ways To Share Your GIT Repository: http://www.jedi.be/blog/2009/05/06/8-ways-to-share-your-git-repository
* How to use HTTP Basic Authentication with git: http://maymay.net/blog/2008/08/08/how-to-use-http-basic-authentication-with-git
* How To Set Up WebDAV With Apache2 On Fedora 10: http://www.howtoforge.com/how-to-set-up-webdav-with-apache2-on-fedora-10
Como instalar o ISE 10.1 no Linux (Ubuntu 8.04)
Ano passado postei um tutorial de como instalar e resolver os problemas de utilização da ferramenta iMPACT, que faz parte do ISE Desing Suite da Xilinx, utilizada para programar FPGAs via cabo JTAG. Na ocasião estava usando a versão 9.1i do ISE no Ubuntu 7.10). Recentemente precisei instalar a versão 10.1 do ISE em um Ubuntu 8.04 e percebi que meu tutorial postado anteriormente não cobria mais todos os probleminhas de instalação. Como o outro tutorial foi útil para algumas pessoas, resolvi reescreve-lo adicionado essas novas informações.
Instalação
Colocar o DVD de instalação do ISE e instalar normalmente:
mount /media/cdrom cd /media/cdrom/ise ./setup
No meu exemplo, escolhi instalar o ISE no diretório que ele sugeriu: /opt/Xilinx/10.1
Os “Cable Drivers” da instalação padrão não funcionam na maioria das distribuições Linux (são específicos para RHEL). Por isso, é necessário instalar um usb-driver alternativo que pode ser obtido em:
- XILINX JTAG tools on Linux without proprietary kernel modules (http://www.rmdir.de/~michael/xilinx/)
A instalação do driver resume-se a:
apt-get install libusb-dev tar xzf usb-driver-HEAD.tar.gz -C /opt/Xilinx/10.1 cd /opt/Xilinx/10.1/usb-driver make ls libusb-driver.so
Teste do Cabo JTAG
1. Testar o dispositivo com o comando lsusb:
lsusb | grep "Xilinx" Bus 006 Device 017: ID 03fd:0008 Xilinx, Inc.
O campo ID deve conter 03fd:0008. Caso seja diferente desse valor, é sinal que o firmware inicial do dispositivo não foi carregado corretamente (após o carregamento do firmware, o ID do produto é trocado para 0008). Caso o ID esteja correto, pule para o passo 5.
2. Copiar as regras de carregamento e os arquivo de firmware:
cp /opt/Xilinx/10.1/ISE/bin/lin/xusbdfwu.rules /etc/udev/rules.d/xusbdfwu.rules cp /opt/Xilinx/10.1/ISE/bin/lin/xusb*.hex /usr/share/
3. O programa fxload é utilizado para carregar o firmware inicial, portanto:
apt-get install fxload
4. O programa fxload utiliza o USB File System para acessar os dispositivos USB, então é necessário adicionar a seguinte linha ao /etc/fstab:
none /proc/bus/usb usbfs defaults 0 0
Na primeira vez, montar o usbfs na mão:
mount /proc/bus/usb
5. Para acessar o dispositivo usb como usuário normal, colocar a seguinte linha no arquivo /etc/udev/rules.d/libusb-driver.rules e reiniciar o udev novamente:
ACTION=="add", BUS=="usb", SYSFS{idVendor}=="03fd", MODE="666"
6. Reiniciar o udev e plugar o cabo JTAG novamente:
/etc/init.d/udev restart
Alternativamente, é possivel fazer um teste rápido com:
lsusb | grep Xilinx Bus 002 Device 004: ID 03fd:0007 Xilinx, Inc. sudo /sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D /proc/bus/usb/002/004 lsusb | grep Xilinx Bus 006 Device 007: ID 03fd:0008 Xilinx, Inc.
Utilização
Para executar a ferramenta iMPATCT, criei um scriptizinho ao qual chamei de impact.sh:
#!/bin/sh XIL_DIR=/opt/Xilinx/10.1 DRV_DIR=$XIL_DIR/usb-driver export LD_PRELOAD=$DRV_DIR/libusb-driver.so $XIL_DIR/ISE/bin/lin/impact
Pronto! O iMPACT será executado corretamente.
./impact.sh
-veiga
Para mais informações:
- XILINX JTAG tools on Linux without proprietary kernel modules: http://www.rmdir.de/~michael/xilinx/
- Notes for the USB and parallel cabes: README
- Installation instructions using a MacBook running Ubuntu in VMware by Sven Andersson: http://svenand.blogdrive.com/archive/55.html
Evento do Tchelinux em Gravataí
No 31 de Maio de 2008, próximo sábado, acorrerá o 1º Seminário de Software Livre Tchelinux Gravataí, na ULBRA Gravataí. Este evento, que abre o calendário de atividades do grupo Tchelinux 2008, tem em sua programação 14 palestras e 3 workshops com temas que vão desde conceitos sobre software livre orientadas para o público principiante até temas para usuários avançados.
Já participei de dois eventos do Tchelinux (Canoas e Porto Alegre). Apesar de ser organizado na forma de palestras, o ambiente do evento é propício a troca de informações. As palestras que participei sempre terminaram em bate-papos de bom nível. Esse evento infelizmente não terá nenhuma palestra sobre o kernel do Linux, tinha prometido ao Douglas Landgraf que apresentaria algo desta vez, mas o mestrado continua me sugando todo o tempo livre. :-(
Recomendadíssimo!
