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.


Digitel NRX 5100 Digitel NRX 5100

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://marceloneves.org/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:

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.marceloneves.org/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:

Tchelinux 2009, 14 de Novembro na PUC-RS em Porto Alegre

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:

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:

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:

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!