Tagged: Linux

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

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:

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!

Como instalar o ISE 9.1i no Linux (Ubuntu)

No trabalho, já tive diversas vezes que utilizar a ferramenta iMPACT do ISE para programar uma FPGA via cabo JTAG. Para não ter que usar uma máquina Windows, resolvi perder um tempinho e fazer funcionar o ISE 9.1i no Linux (mais especificamente no Ubuntu, que é a distro padrão que utilizamos na empresa). A seguir encontra-se uma descrição do processo de instalação e alguns probleminhas enfrentados.

Obs: este tutorial está desatualizado, por favor leia o post Como instalar o ISE 10.1 no Linux (Ubuntu 8.04).

Instalação

Definir o bash como shell padrão (Ubuntu vem com dash):

  # rm /bin/sh
  # ls -s /bin/bash /bin/sh

Montar o cdrom e executar o comando setup:

  # mount /media/cdrom
  # cd /media/cdrom
  # ./setup

Será iniciado o programa de instalação semelhante ao do Windows. Após a instalação, deve-se configurar o PATH para conter os programas instalados.

Problemas encontrados

1. Caso ocorra o seguinte erro: “./setup: /bin/sh: bad interpreter: Permission denied” é necessário editar o /etc/fstab para permitir execução no cdrom/dvd. Exemplo de como deve ficar:

  /dev/hda        /media/cdrom0   udf,iso9660 user,noauto,exec     0       0

Obs: é importante montar o cdrom novamente para garantir a modificação.

2. Caso os “Cable Drivers” não funcionem (e muito provavelmente não vão funcionar porque são específicos para RHEL 3/4), pode-se instalar um usb-driver alternativo como o descrito em:

A instalação do driver resume-se a:

  # apt-get install libusb-dev
  # tar xzf usb-driver-HEAD.tar.gz
  # cd usb-driver
  # make
  # ls libusb-driver.so

Para executar o iMPACT com essa biblioteca:

  export LD_PRELOAD=/path/to/usb-driver/libusb-driver.so
  ./Xilinx9.1i/bin/lin/impact

-veiga