Escolar Documentos
Profissional Documentos
Cultura Documentos
GERENCIAMENTO DE REDES
PARA SISTEMAS EMBARCADOS
GERENCIAMENTO DE REDES
PARA SISTEMAS EMBARCADOS
RESUMO
Assim, este trabalho propõe integrar em uma placa FPGA, um agente SNMP e
juntamente com um sistema gerente obter dados gerenciais sobre um determinado sistema
embarcado.
So, this research proposes to integrate in a FPGA board, a SNMP agent that together
with a management system obtains management information about an embedded system.
LISTA DE ABREVIATURAS
SUMÁRIO
INTRODUÇÃO.................................................................................................................. 10
1 GERENCIAMENTO DE REDES ......................................................................... 11
2.1 MODELO BÁSICO DE GERENCIAMENTO ....................................................................... 11
2.2 ELEMENTOS DA ARQUITETURA SNMP....................................................................... 13
2.2.1 Agentes SNMP..................................................................................................... 14
2.2.2 O software gerente................................................................................................ 15
2.3 BASE DE INFORMAÇÃO GERENCIAL (MIB).................................................................. 15
2.3.1 Acesso aos valores da MIB................................................................................... 17
2.3.2 Objetos da MIB II................................................................................................. 17
2.3.3 Objetos da MIB Host-Resources........................................................................... 19
3 SISTEMAS EMBARCADOS................................................................................. 20
3.1 O SISTEMA OPERACIONAL UCLINUX........................................................................... 21
3.1.1 O Sistema Operacional PetaLinux ........................................................................ 22
3.2 A PLACA FPGA XILINX ............................................................................................. 22
3.3 GERENCIAMENTO DE SISTEMAS EMBARCADOS ............................................................ 24
4 IMPLEMENTAÇÃO DO SISTEMA .................................................................... 26
4.1 ARQUITETURA DO SISTEMA DE GERENCIAMENTO ....................................................... 26
4.2 FUNCIONAMENTO GERAL DO SISTEMA ........................................................................ 27
4.3 SISTEMA DE GERENCIAMENTO DE REDE PARA SISTEMAS EMBARCADOS ........................ 28
4.4 COMO MONITORAR UM DISPOSITIVO FPGA COM O SISTEMA ....................................... 28
4.4.1 Cadastrando um novo dispositivo para monitorar.................................................. 29
4.4.2 Iniciando o monitoramento ................................................................................... 31
4.4.3 Gerando tráfego na interface de rede..................................................................... 33
4.4.4 Analisando os relatórios e gráficos gerados pelo sistema ...................................... 34
5 ANALISE DE DESEMPENHO DO SISTEMA .................................................... 38
6 CONCLUSÃO E TRABALHOS FUTUROS ........................................................ 40
REFERÊNCIAS................................................................................................................. 42
ANEXO A – PREPARAÇÃO DO AMBIENTE DE TRABALHO .................................. 45
ANEXO B – RELATÓRIO DE ERROS E SOLUÇÕES.................................................. 67
10
INTRODUÇÃO
O Gerenciamento de redes vem sendo bastante pesquisado nos últimos anos, visto a
grande e crescente quantidade de equipamentos ligados em redes LAN (Local Area Network)
e WAN (Wide Área Network). Entretanto, pouco se desenvolveu para gerenciamento de
sistemas embarcados, que utilizam recursos de hardware limitados. Nos dias atuais, sistemas
embarcados são indispensáveis para aumentar a produtividade em diferentes situações, tais
como área acadêmica, eletro-eletronica e automotiva. É natural que muitos desses sistemas
estejam conectados a Internet para possibilitar uma maior funcionalidade desses
equipamentos. Com essa evolução, esses sistemas embarcados conectados em uma rede IP
necessitam ser monitorados e gerenciados como qualquer outro equipamento de redes de
computadores.
1 GERENCIAMENTO DE REDES
Conforme (SPECIALSKI, 2006), uma rede de computadores precisa ser gerenciada por
menor e mais simples que seja, a fim de garantir, aos usuários, a disponibilidade dos serviços
a um nível de desempenho aceitável. À medida que a rede cresce, aumenta a complexidade de
seu gerenciamento, forçando assim a adoção de ferramentas automatizadas para seu
monitoramento e controle.
Esta afirmação também vale para os sistemas embarcados, cada vez mais utilizados em
equipamentos de propósito especifico, como celulares, tocadores de MP3, fornos de micro-
ondas e geladeiras. Uma vez que os recursos do sistema dedicado sejam monitorados, pode-se
garantir que o mesmo esteja trabalhando adequadamente.
O agente possui acesso direto à base de informações gerenciais (MIB), que contém
todas as informações de gerência. Ao receber uma mensagem SNMP do gerente, o agente
identifica que operação está sendo requisitada e quais as variáveis relacionadas. O agente
então requisita estas informações à MIB. Em seguida, é criada uma mensagem com os dados
solicitados, que posteriormente é enviada ao gerente solicitante (SILVA, 2005).
Conforme (SILVA, 2005), para poder tratar estes erros o agente deve ter certo poder de
decisão, cabendo a ele, a partir da análise do contexto da MIB, decidir se é ou não necessário
enviar a Trap ao gerente. Isso é necessário para que em certas situações, como por exemplo,
durante a inicialização do sistema, Traps desnecessários não sejam trafegados pela rede, o
15
que, em se tratando de dezenas ou centenas de agentes, poderia interferir no desempenho
global da rede.
Assim, o agente que fica em cada equipamento, tem um papel fundamental em todo o
processo de gerenciamento, acessando e disponibilizando informações de gerência contidas na
MIB, além de indicar situações inesperadas de funcionamento do dispositivo que estiver
gerenciando através do envio de Traps ao gerente SNMP.
O software gerente instalado em uma rede, tem como função principal enviar
periodicamente comandos aos agentes, solicitando informações sobre variáveis de um objeto
gerenciado ou modificando o valor de determinada variável, assim como receber e tratar as
exceções (Traps) encaminhadas pelos agentes.
A estação gerente é uma máquina na rede que possui o software gerente, responsável
por obter informações dos agentes e analisá-las. A estação serve como interface para que o
gerente humano possa monitorar e controlar o gerenciamento de uma rede (MEDEIROS,
2006).
Cada objeto SNMP é definido para ter um tipo de acesso somente de leitura, leitura e
escrita ou apenas escrita. Isso determina se o usuário pode ler ou alterar o valor de um objeto
(SILVA, 2005).
Antes que qualquer objeto possa ser lido ou escrito, o nome comunitário do agente
SNMP deve ser conhecido. Estes nomes comunitários são configurados pelo administrador e
podem ser vistos como senhas necessárias para acessar e manipular dados do agente SNMP.
Neste sentido, nomes comunitários existem para permitir que partes da MIB no SNMP, e
subconjuntos de objeto sejam referenciados. Como o termo comunitário é requerido, espera-se
que o verdadeiro propósito destes valores sejam identificar comunitariamente os objetos
SNMP configurados. Porém, é prática comum fazer estes nomes comunitários limitarem o
acesso da capacidade do SNMP para usuários sem permissão (SILVA, 2005).
3 SISTEMAS EMBARCADOS
Nos últimos anos tem-se visto uma crescente utilização de softwares embarcados em
praticamente todos os objetos eletrônicos construídos pelo homem. Sistema embarcado é um
software embutido dentro de um dispositivo eletrônico, como o sistema de injeção eletrônica
de um automóvel, permitindo que este equipamento atue com maior funcionalidade e
flexibilidade. Antes apenas utilizados em sistemas complexos como sistemas industriais,
aeronaves e navios, hoje já existem softwares embarcados em geladeiras, televisores e fornos
de micro-ondas. Estes equipamentos tornam-se cada vez mais sofisticados, demandando mais
complexidade no hardware e software embarcado (TAURION, 2007).
Em 1997 teve início um projeto para portabilizar o kernel 2.0 do sistema operacional
Linux para microcontroladores e microprocessadores sem MMU (Memory Manager Unit).
Este projeto ganhou o nome de Projeto uClinux, que teve sua primeira versão desenvolvida
para o microprocessador DragonBall da Motorola (ASSIS, 2004).
O uClinux, por ser uma versão do Linux, é um sistema operacional que adere ao padrão
POSIX (Portable Operating System Interface for Unix), o que torna os programas
desenvolvidos para Linux compatíveis com o uClinux (ASSIS, 2004).
Embora os dois sistemas por definição sejam compatíveis, uma aplicação compilada
para Linux não funciona no uClinux. Isto acontece porque o uClinux utiliza algumas
bibliotecas modificadas do Linux que visam diminuir o tamanho final dos programas, como a
uClibc. Esta necessidade de diminuir o tamanho final dos programas se faz necessário, uma
vez que o uClinux tem como alvo plataformas que geralmente possuem recursos limitados de
memória e processamento, como, o ARM (Acorn RISC Machine), PowerPC e Microblaze
(UCLINUX, 2007).
Para microprocessadores que não possuem MMU, como o Microblaze, que foi utilizado
neste trabalho de conclusão, a distribuição GNU/Linux recomendada é o uClinux ou o
Petalinux. (MICROBLAZE, 2007).
22
Para o desenvolvimento deste trabalho, foi utilizada a versão mais recente do Petalinux,
que pelo motivo citado acima, foi referenciado no trabalho com o nome de uClinux. Esta nova
versão do uClinux manteve compatibilidade com os dispositivos FPGA um pouco mais
antigas, como a que foi utilizada neste trabalho.
Um FPGA é composto de pequenos blocos lógicos programável, que por sua vez
contêm um pequeno número de registradores e elementos lógicos configuráveis. Ela é
caracterizada pela quantidade de blocos lógicos ou transistores, assim como por sua estrutura
lógica, velocidade e consumo (MOHR, 2006).
Algumas características são comuns a quase todos, como os elementos lógicos, lookup
tables, memória, recursos de roteamento (que são peças-chave na flexibilidade da FPGA) e
entradas e saídas configuráveis – que proverão à interface do sistema. Como o FPGA é
passível de configuração, torna-se simples criar sistemas que possuam exatamente os módulos
necessários para uma determinada aplicação, sendo possível desenhar os seus próprios
23
módulos (MOHR, 2006; SILVA, 2006).
Para a prototipação deste trabalho foi utilizada uma placa fabricada pela Digilent,
baseada no FPGA Virtex-II Pro, da Xilinx, que pode ser vista na Figura 5. É uma plataforma
com diversos componentes periféricos a serem escolhidos para integrar sistemas complexos.
24
Neste contexto, este trabalho descreve os passos para instalar um agente SNMP no
dispositivo FPGA e através do sistema de gerenciamento de redes para sistemas embarcados
desenvolvido pelo autor obter e analisar os dados obtidos do dispositivo.
26
4 IMPLEMENTAÇÃO DO SISTEMA
1
O sistema de gerenciamento de redes desenvolvido neste trabalho pode monitorar vários dispositivos ao mesmo
tempo. Para isto, os mesmos devem estar cadastrados e ativos no sistema.
29
Para adicionar um novo dispositivo, por exemplo, uma nova placa FPGA, deve-se
cadastrar o endereço IP deste dispositivo no sistema. O “menu cadastro” deve ser acessado e
deve-se clicar em “Incluir”. Em seguida, deve-se preencher os dados solicitados e clicar em
“Gravar Dados”. O endereço IP “192.168.0.10”, é o padrão configurado no kernel do
uClinux. A Figura 8 mostra os detalhes do cadastro de um novo dispositivo.
30
Durante a etapa do cadastro, não é necessário que o dispositivo esteja ligado. Porém,
para que o mesmo fique operacional no sistema, deve-se ainda coletar dados técnicos do
mesmo como, por exemplo, a velocidade da interface de rede. Para esta etapa do processo, o
dispositivo deve estar ligado e conectado à rede.
31
Para coletar estes dados, deve-se clicar no “menu cadastro” e selecionar a opção
“Alterar” e após clicar em “Coletar” na linha que identifica o dispositivo, conforme mostra a
Figura 9. Nesta mesma tela, também é possível encontrar as opções de ativar e desativar o
dispositivo, assim como excluir o mesmo do cadastro.
Após a configuração dos parâmetros da coleta, deve-se clicar em “Iniciar Coleta”. Pode-
se notar que uma nova janela abre com o status do monitoramento em andamento, conforme
visto na Figura 11. Esta janela pode ser minimizada e o acompanhamento do resultado da
coleta pode ser feito em paralelo à coleta.
Para melhor visualizar os relatórios e gráficos que o sistema gera a partir dos dados da
coleta, é interessante gerar tráfego na interface de rede. Sugere-se utilizar o comando ping,
que atende perfeitamente a esta situação. A metodologia adotada para gerar tráfego na
interface de rede foi a seguinte: Uma vez iniciada a coleta, a cada intervalo de tempo, dois
novos prompts de comando foram utilizados enviando “ping” para o dispositivo durante as
cinco primeiras coletas. O tamanho dos pacotes enviados (em bytes) pelo comando ping
foram: 32, 1500, 15000, 30000 e 65000. A sintaxe do comando ping no Windows é a
seguinte:
ping 192.168.0.10 –l 1500 –t
O parâmetro “-l” indica ao comando ping para enviar pacotes de dados com 1500
bytes ao IP de destino (neste caso 192.168.0.10) ao invés de pacotes com 32 bytes enviados
por padrão. No sistema Linux, deve-se utilizar a seguinte sintaxe de comando:
ping 192.168.0.10 –f –s 1500
Podem-se ter vários prompts abertos gerando tráfego. Observou-se durante este trabalho
que a cada novo prompt gerando tráfego com o tamanho do pacote igual a 65000 bytes (valor
próximo do máximo aceito, que é 65500), a taxa de utilização da interface de rede aumenta
em 1 ponto percentual (1%), logo, com 100 prompts ativos executando o mesmo comando,
uma interface de rede com velocidade de 100 Mbits chegaria ao limite do tráfego teórico. Na
Figura 12, pode-se observar um exemplo da saída gerada pelo comando ping.
Este processo de seleção de ID da coleta deve ser repetido para cada relatório e gráfico
disponível no menu do sistema.
Os dados do relatório acima, podem ser ainda melhor analisados pelo gráfico gerado
pelo sistema conforme pode ser observado na Figura 15. Pode-se notar que os valores do
gráfico expressam os dados da Figura 14.
Pelo gráfico da Figura 15, pode-se notar que o total de bytes enviados e recebidos é
quase equivalente. Isto se deve ao fato do comando ping responder ao host de origem
enviando o mesmo tamanho de pacote recebido. O total de bytes recebidos é um pouco
superior em relação aos enviados, devido ao tamanho das mensagens trocadas entre o agente e
36
gerente SNMP; ou seja, o tamanho do pacote recebido pelo dispositivo é maior do que o
tamanho do pacote enviado com as informações solicitadas.
Estes dados são importantes para saber qual processo está consumindo mais memória e
ciclos de CPU do dispositivo monitorado em determinado momento da coleta. Em destaque
na Figura 17, o processo “snmpd”.
37
Na Figura 18, pode ser visualisado o relatório de estatísticas emitidas pela ferramenta
Ethereal. Estas estatísticas referem-se aos dados da “Coleta 5” da Tabela 6.
Para analisar o total de ciclos de CPU e total de memória utilizados na placa FPGA,
utilizou-se os dados reportados pelo sistema de gerenciamento desenvolvido no trabalho.
Verificando os dados da Tabela 7, pode-se notar que o processo “snmpd” consome mais de
90% do total dos ciclos de CPU. Este valor se repetiu em todas as coletas efetuadas. Este
valor pode ser justificado pelo fato de ser o único processo que é requisitado constantemente
pelo sistema de gerenciamento de rede a reportar as informações do dispositivo. Os demais
processos sempre estão ociosos.
O consumo de memória sempre ficou com valor igual a zero. Isto significa que nenhum
dos programas executando estava utilizando memória no momento. Os dados referentes ao
consumo de memória, no entanto, devem ser mais bem testados. Sugere-se instalar outros
aplicativos no dispositivo FPGA para analisar o comportamento do uso de memória.
Com base na análise destes dados, conclui-se que é tecnicamente viável monitorar
dispositivos em rede, utilizando o sistema de gerenciamento de redes para sistemas
embarcados, visto que o monitoramento não prejudica ou influência no restante do tráfego da
rede. Quanto ao consumo de ciclos de CPU e memória, conforme já citado acima, devem-se
realizar mais testes junto com outros aplicativos instalados na FPGA para analisar seu
comportamento.
40
Em seguida, são analisados os gráficos e relatórios gerados pelo sistema durante a coleta
das informações. Dentre as principais informações disponibilizadas pelo sistema, estão: total
de bytes enviados e recebidos, a taxa de utilização da interface de rede, a quantidade de
pacotes descartados e com erros e os processos que estão executando no dispositivo
monitorado, assim como a quantidade de ciclos de CPU e memória utilizados por estes
processos.
Após a conclusão do trabalho, é possível apontar diversas melhorias que podem ser
realizadas para complementar a pesquisa realizada. Abaixo algumas sugestões:
41
- A utilização de memória flash, no FPGA: para evitar o processo de upload da
imagem toda vez que o dispositivo é desligado.
- Desenvolvimento de uma MIB para o FPGA Xilinx: para retornar valores específicos
da arquitetura utilizada, como o atributo hrProcessorLoad, não disponível por padrão na MIB
utilizada.
- Estudo do programa AppWeb, disponível no kernel do uClinux: para possibilitar a
instalação deste e outros sistemas web no sistema embarcado, dispensando assim um
computador para esta tarefa.
- Estudo e melhoramento do código do agente SNMP: para melhorar a estabilidade do
sistema embarcado durante a coleta dos dados.
- Instalar mais programas no FPGA: para realizar mais testes de consumo de memória e
ciclos de CPU.
42
REFERÊNCIAS
MOHR, Adilson Arthur. Infra-estrutura para projetos com vpn em sistemas linux embarcados
em FPGA. Trabalho de conclusão (graduação em ciência da computação) – Universidade de
Santa Cruz do Sul, 2006.
43
MYSQL. MySQL AB - The world's most popular open source database.
Disponivel em: < http://www.mysql.com>
Acesso em: agosto de 2007.
SCHMIDT, Mauro; DOUGLAS, Kevin J., SNMP Essencial. Ed. Campus, 2001.
STALLINGS, William. SNMP, SNMPv2, SNMPv3 and RMON 1 and 2. Upper Saddle River,
Addison-Wesley, 1999. Third Edition.
SILVA, Vagner Pinto da. Controle de dispositivos remotos – uma aplicação em FPGA
controlada através de aparelho telefônico celular. Trabalho de conclusão (graduação em
ciência da computação) – Universidade de Santa Cruz do Sul, 2006.
44
TAURION, Cézar. Eletrônica Digital e Sistemas Embarcados - Linux em Tempo Real,
18/06/2007. Disponivel em:
<http://www2.eletronica.org/artigos/eletronica-digital/linux-em-tempo-real>
Acesso em: novembro de 2007.
ZORZO, A. F.; da COSTA, C. M.; BELZ, D.; VALVASSORI, C. S.; CARUSO, L. C. M.;
SCOP, R. Uso de Linux como Sistema Embarcado. In: Anais do III Workshop sobre Software
Livre, Porto Alegre: SBC, 2002.
WILLIAMS, John. Microblaze uClinux, creating a simple uClinux ready Microblaze Design.
Disponível em:
<http://www.itee.uq.edu.au/~wu/downloads/uClinux_ready_Microblaze_design.pdf>.
Acesso em: abril de 2007.
45
O agente SNMP deve ser configurado em uma placa FPGA. Para isto, são necessários os
seguintes programas e equipamentos:
2
Última versão disponível até o final da escrita deste trabalho em 23/11/07.
46
Neste computador, também foi criada uma estrutura de pastas para organizar o
trabalho, conforme abaixo:
3
Para descompactar o arquivo petalinux-v0.20-rc3.tar.gz na pasta /tc/petalinux, utilize a ferramenta “tar”
disponível no sistema linux, com os seguintes parametros: tar –zxvf petalinux-v0.20-rc3.tar.gz –C /tc/petalinux .
47
CRIAÇÃO DA PLATAFORMA NO XPS
Após iniciar o programa Xilinx Platform Studio (XPS), para iniciar um novo projeto,
na tela “Create new or open existing project”, deve-se selecionar a opção: “Base System
Builder wizard” , conforme a Figura 19.
Aqui vale ressaltar a importância de utilizar o mouse para navegar até as pastas do
projeto, que já foram criadas anteriormente. Isto se deve pelo fato de o XPS trabalhar com
outros sistemas operacionais, e com isto diferenciar letras maiúsculas de minúsculas. Também
é importante não utilizar espaços em branco ou acentos nas pastas e nos nomes dos arquivos,
pelo mesmo fato da interoperabilidade do XPS.
Caso a placa Virtex-II Pro não esteja na lista de opções de “Board name”, deve-se
revisar os passos anteriores. É provável que a pasta com as definições de hardware da placa
FPGA não esteja corretamente selecionada, ou também que o arquivo “lib_rev_1_1.zip”
esteja corrompido.
49
Na próxima tela de configuração dos periféricos da placa (IO Interfaces – 2 de 3), deve-
se desmarcar todas as opções, uma vez que nenhum dos periféricos desta lista será utilizada
no projeto.
Em seguida, na tela configuração dos periféricos da placa (IO Interfaces – 3 de 3), deve-
se selecionar apenas a opção DDR_256_MB, como visto na Figura 25. Esta opção,
corresponde à quantidade de memória RAM da placa FPGA em uso neste trabalho.
Na próxima tela, ajustes devem ser feitos na opção “Cache Setup”. Como visto na
Figura 27, deve-se selecionar “16 KB” para as opções de “Instruction Cache” e “Data
Cache”. Também se deve ativar as opções de “ICache” e “DCache”.
Neste ponto, a plataforma está criada. O wizard é finalizado e volta ao menu principal
do XPS. Conforme o tutorial da Xilinux (XAPP730, 2007), alguns ajustes ainda são
necessários para que o sistema funcione corretamente com o kernel do uClinux. Deve-se
acessar o menu “Software”, e selecionar a opção “Software Plataform Settings”. Na opção
“OS & Library Settings”, em “OS”, deve-se selecionar “petalinux”, conforme visto na Figura
30.
Por último, falta apenas gerar o arquivo de configuração que será utilizado na
compilação do kernel na próxima etapa do trabalho. Para isto, deve-se acessar o menu
“Software” e selecionar “Generate Libraries and BSPs”. Deve-se aguardar alguns minutos
ate que a mensagem “LibGen Done” seja exibida.
Para compilar uma nova imagem do kernel, para um hardware especifico como no caso
deste trabalho, algumas etapas devem ser pré-executadas uma única vez. Conforme acima,
uma estrutura de pastas foi criada para organizar o trabalho.
Um detalhe importante deve ser observado: como estes arquivos foram gerados em um
PC com Sistema operacional Windows, os mesmos devem ser convertidos para o formato
Unix. Para tanto se pode utilizar o próprio editor de textos “vi” do GNU/Linux, digitando:
vi auto-config.in
:set ff=unix
:wq
Deve-se repetir este procedimento para o arquivo “Kconfig.auto”. Após a conversão dos
arquivos para o formato Unix, os mesmos devem ser copiados para a pasta:
“/tc/petalinux/software/linux-2.6.x-petalogix/arch/microblaze/platform/microblaze-auto/”.
Finalizadas estas etapas, pode-se agora recompilar o kernel seguindo os passos abaixo:
cd /tc/petalinux
source ./settings.sh
cd /tc/petalinux/software/petalinux-dist
make menuconfig
O último passo abre o menu principal de opções do kernel, conforme visto na Figura 32.
58
As opções que devem ser selecionadas são descritas a seguir. Para sair dos menus, deve-
se selecionar a opção exit e pressionar a tecla ENTER. Deve-se marcar apenas as opções
indicadas abaixo. Qualquer erro de seleção resultará em erros na compilação do kernel.
Na nova tela que abre, deve-se marcar apenas as opções descritas abaixo, mantendo as
demais todas na configuração padrão.
Platform options
Platform (MicroBlaze Auto) --->
(X) MicroBlaze Auto
Device Drivers
Memory Technology Devices (MTD)
[*] Memory Technology Device (MTD) support
[*] MTD partitioning support
Block devices
[*] RAM disk support
(16) Default number of RAM disks
(8192) Default RAM disk size (kbytes)
(1024) Default RAM disk block size (bytes)
Network device support
[*] Network device support
File systems
[*] Second extended fs support
[*] ROM file system support
Miscellaneous filesystems --->
[*] Compressed ROM file system support (cramfs)
make
1. cd /tc/petalinux
2. source ./settings.sh
3. cd /tc/petalinux/software/petalinux-dist
4. make menuconfig
Na nova tela que abre, deve-se marcar apenas as opções descritas abaixo, mantendo as
demais todas na configuração padrão.
Kernel/Library/Defaults Selection
[*] Customize Vendor/User Settings
Novamente, na nova tela que abre, deve-se marcar apenas as opções descritas abaixo,
mantendo as demais todas na configuração padrão.
System Settings
Network Addresses --->
Default host name: "sgr"
Default root password: "root"
(CRAMFS) Root filesystem type
[*] Copy final image to tftpboot
tftpboot directory: "/tftpboot"
Network Applications
[*] net-snmp
[*] Build mini agent
[ ] Build Applications
[*] Build static
[*] Install manuals
[*] Install scripts
[*] Install MIBs
[*] Enable MIB loading
[*] Override defaults
Default version: "2"
Default Sys Contact: "Jorge Staub"
61
Default Sys Location: "Unisc – Sala 5341"
Default Log file: "/var/log/snmp.log"
Default Persistent Directory : "/var/net-snmp"
Deve-se clicar em “exit” e selecionar “yes” para salvar as alterações. Pode-se notar
que a opção “Build Applications” não está selecionada.
INCLUINDO AS MIBS
Este comando irá limpar a compilação antiga deste aplicativo especifico e forçar nova
leitura dos arquivos de configuração (makefile) na próxima compilação do kernel.
Deve-se editar o arquivo makefile. Deve-se localizar a linha 103 e alterar o conteúdo
original de:
Durante a compilação do kernel, é criada uma pasta com todos os arquivos que estarão
disponíveis na sistema operacional transferido para a placa FPGA. Esta pasta está localizada
em: “/tc/petalinux/software/petalinux-dist/romfs”. Nesta pasta pode-se observar as pastas do
sistema: bin, dev, etc, home, lib, mnt, proc, sys, tmp, usr e var.
Na pasta “/etc”, localiza-se os arquivos de configuração do sistema que são lidos durante
a carga do sistema. Na pasta “/etc/default”, encontra-se o arquivo “start”, que pode ser
personalizado pelo usuário. Isto é útil para quando for necessário carregar algum programa
especifico, como no caso deste traballho, onde o agente SNMP é carregado durante a carga do
sistema operacional.
Está etapa do trabalho deve ser executado no PC com Sistema operacional Windows. O
arquivo “image.bin” criado nas seções anteriores, deve ser copiado para a pasta
“D:\TC\Projeto\MB”, seguindo a padrão da estrutura de pastas do projeto.
Para enviar a nova imagem do kernel para a placa FPGA, deve-se conectar todos os
cabos corretamente, liguar a placa e seguir os passos abaixo:
Após a carga do sistema operacional o mesmo solicita login e senha, os quais ambos,
por padrão são “root”. Para acessar a FPGA pela rede, o endereço IP (Internet Protocol)
padrão configurado é 192.168.0.10.
66
Ao ativar o pacote net-snmp para ser compilado no menu de opções do kernel, ocorreu
um fato inesperado: o pacote não era incluído na compilação. Simplemente ignorado pelo
compilador, mesmo sem apresentar erros de compilação.
Pode-se notar que o erro está na função “ARP_Scan_Next”, na linha 705 do arquivo
“at.c”. Analisando detalhadamente os arquivos de “#INCLUDE”, inseridos neste arquivo,
pode-se observar que no arquivo:
“/tc/petalinux/software/petalinux-dist/user/net-snmp/include/net-snmp/system/linux.h”, o
atributo ARP_SCAN_FOUR_ARGUMENTS, está com valor igual a zero, conforme a
Figura 39. A solução é mudar este valor para “1”.
Neste caso, a solução encontrada foi comentar no arquivo com erro todas as referências
a estes atributos. Em resumo, deve-se comentar todo o código a partir da linha 590 até o final
do arquivo, conforme pode ser obsevado na Figura 41.
70