Mudanças entre as edições de "Omnetpp-Instalacao"
Ir para navegação
Ir para pesquisar
Linha 55: | Linha 55: | ||
* Selective Repeat | * Selective Repeat | ||
− | + | Para executá-los siga os passos: | |
+ | # Faça o download do [http://www.sj.ifsc.edu.br/~msobral/RCO2/soft/p-to-p.tgz modelo de simulação] | ||
+ | # Descompacte-os com o comando: <syntaxhighlight lang=bash> | ||
+ | tar xzf p-to-p.tgz | ||
+ | </syntaxhighlight> | ||
+ | # Entre no diretório ''p-to-p'', e compile o modelo: <syntaxhighlight lang=bash> | ||
+ | cd p-to-p | ||
+ | opp_makemake -f --deep -O out | ||
+ | make | ||
+ | </syntaxhighlight> | ||
+ | # Se tudo der certo, deve aparecer isto na tela: <syntaxhighlight lang=text> | ||
+ | Creating Makefile in /data/rco2/p-to-p... | ||
+ | Makefile created, running "make depend" to add dependencies... | ||
+ | opp_makedep -Y --objdirtree -I. -Iresults -f Makefile -P\$O/ -- ./*.cc results/*.cc | ||
+ | sobral@linux-pohy:/data/rco2/p-to-p> make | ||
+ | g++ -c -g -Wall -fno-stack-protector -DXMLPARSER=libxml -DWITH_PARSIM -DWITH_NETBUILDER -I. -Iresults -I/data/rco2/omnetpp-4.0p1/include -o out/gcc-debug//ppif.o ppif.cc | ||
+ | opp_msgc -s _m.cc -I. -Iresults frame.msg | ||
+ | g++ -c -g -Wall -fno-stack-protector -DXMLPARSER=libxml -DWITH_PARSIM -DWITH_NETBUILDER -I. -Iresults -I/data/rco2/omnetpp-4.0p1/include -o out/gcc-debug//ppsink.o ppsink.cc | ||
+ | g++ -c -g -Wall -fno-stack-protector -DXMLPARSER=libxml -DWITH_PARSIM -DWITH_NETBUILDER -I. -Iresults -I/data/rco2/omnetpp-4.0p1/include -o out/gcc-debug//ppsink2.o ppsink2.cc | ||
+ | ppsink2.cc: In member function ‘virtual void PPSink2::handleMessage(cMessage*)’: | ||
+ | ppsink2.cc:61: warning: unused variable ‘acking’ | ||
+ | g++ -c -g -Wall -fno-stack-protector -DXMLPARSER=libxml -DWITH_PARSIM -DWITH_NETBUILDER -I. -Iresults -I/data/rco2/omnetpp-4.0p1/include -o out/gcc-debug//ppsource.o ppsource.cc | ||
+ | g++ -c -g -Wall -fno-stack-protector -DXMLPARSER=libxml -DWITH_PARSIM -DWITH_NETBUILDER -I. -Iresults -I/data/rco2/omnetpp-4.0p1/include -o out/gcc-debug//ppsource2.o ppsource2.cc | ||
+ | g++ -c -g -Wall -fno-stack-protector -DXMLPARSER=libxml -DWITH_PARSIM -DWITH_NETBUILDER -I. -Iresults -I/data/rco2/omnetpp-4.0p1/include -o out/gcc-debug//ppsource3.o ppsource3.cc | ||
+ | g++ -c -g -Wall -fno-stack-protector -DXMLPARSER=libxml -DWITH_PARSIM -DWITH_NETBUILDER -I. -Iresults -I/data/rco2/omnetpp-4.0p1/include -o out/gcc-debug//frame_m.o frame_m.cc | ||
+ | g++ -Wl,--export-dynamic -Wl,-rpath,/data/rco2/omnetpp-4.0p1/lib:. -o out/gcc-debug//p-to-p out/gcc-debug//ppif.o out/gcc-debug//ppsink.o out/gcc-debug//ppsink2.o out/gcc-debug//ppsource.o out/gcc-debug//ppsource2.o out/gcc-debug//ppsource3.o out/gcc-debug//frame_m.o -Wl,--whole-archive -Wl,--no-whole-archive -L"/data/rco2/omnetpp-4.0p1/lib/gcc" -L"/data/rco2/omnetpp-4.0p1/lib" -u _tkenv_lib -lopptkenvd -loppenvird -lopplayoutd -u _cmdenv_lib -loppcmdenvd -loppenvird -loppsimd -ldl -lstdc++ | ||
+ | ln -s -f out/gcc-debug//p-to-p . | ||
+ | </syntaxhighlight> | ||
+ | ** O importante é a última linha, que informa que a compilação teve sucesso: <syntaxhighlight lang=text> | ||
+ | g++ -Wl,--export-dynamic -Wl,-rpath,/data/rco2/omnetpp-4.0p1/lib:. -o out/gcc-debug//p-to-p out/gcc-debug//ppif.o out/gcc-debug//ppsink.o out/gcc-debug//ppsink2.o out/gcc-debug//ppsource.o out/gcc-debug//ppsource2.o out/gcc-debug//ppsource3.o out/gcc-debug//frame_m.o -Wl,--whole-archive -Wl,--no-whole-archive -L"/data/rco2/omnetpp-4.0p1/lib/gcc" -L"/data/rco2/omnetpp-4.0p1/lib" -u _tkenv_lib -lopptkenvd -loppenvird -lopplayoutd -u _cmdenv_lib -loppcmdenvd -loppenvird -loppsimd -ldl -lstdc++ | ||
+ | ln -s -f out/gcc-debug//p-to-p . | ||
+ | </syntaxhighlight> | ||
+ | ** Caso a compilação tenha falhado, verifique se a seguinte linha foi adicionada ao seu arquivo ''~/.profile'': <syntaxhighlight lang=bash> | ||
+ | export PATH=~/omnetpp-4.0p1/bin:$PATH | ||
+ | </syntaxhighlight> Se não estiver lá, acrescente-a e também execute o seguinte no prompt do shell: <syntaxhighlight lang=bash> | ||
+ | export PATH=/data/rco2/omnetpp-4.0p1/bin:$PATH | ||
+ | </syntaxhighlight> Isto será necessário somente dessa vez .. nos próximos logins a variável PATH estará definida corretamente. | ||
+ | * Execute o simulador dos mecanismos ARQ: <syntaxhighlight lang=bash> | ||
+ | ./p-to-p | ||
+ | </syntaxhighlight> | ||
== Usando o ambiente de desenvolvimento (IDE) do simulador == | == Usando o ambiente de desenvolvimento (IDE) do simulador == |
Edição das 09h25min de 19 de março de 2010
Tutorial para instalação do simulador Omnet++
Obs: assume-se que seu computador possua o Ubuntu Linux 9.04 ou superior.
- Instale os seguintes softwares no Ubuntu:
sudo apt-get install -y bison flex zlib1g-dev g++ libstdc++-dev tcl8.5-dev tk8.5-dev
- Faça o download do Omnet++ 4.0p para dentro do seu diretório home:
cd ~ wget http://omnetpp.org/download/release/omnetpp-4.0p1-src.tgz
- Descompacte o arquivo que contém o código fonte do simulador:
tar xzf omnetpp-4.0p1-src.tgz
- Entre no diretório do simulador, e execute o script ./configure:
cd omnetpp-4.0p1 ./configure
- Se tudo der certo, você deve ver um monte de linhas mostradas na tela, e que finalizam com o seguinte:
configure: WARNING: Optional package Akaroa not found configure: creating ./config.status config.status: creating Makefile.inc config.status: creating test/core/runtest patching the ide configuration file. default workspace is: /home/professores/msobral/rco2/omnetpp-4.0p1/samples WARNING: The configuration script could not detect the following packages: MPI (optional) Akaroa (optional) Scroll up to see the warning messages (use shift+PgUp key), and see config.log for more details. While you can use OMNeT++ in the current configuration, please be aware that some functionality may be unavailable or incomplete. Your PATH contains /home/professores/msobral/rco2/omnetpp-4.0p1/bin. Good! TCL_LIBRARY is set. Good!
- Caso a execução do ./configure tenha falhado, observe qual foi a mensagem de erro. Normalmente a causa é a falta de algum software de que o simulador depende para ser compilado. Instale o software pedido, e tente novamente.
- Tendo sucesso no ./configure, compile o simulador:
make
- A compilação terá sido bem sucedida se ao final de todo o processo aparecer:
Now you can type "omnetpp" to start the IDE
- Execute o seguinte comando para que você possa executar o simulador diretamente (sem entrar em seu diretorio de instalação) nas próximas vezes que logar no seu computador:
echo export PATH+=:~/omnetpp-4.0p1/bin >> ~/.profile
Rodando as simulações dos mecanismos ARQ
Foram desenvolvidos componentes para simularem os três mecanismos ARQ vistos em aula:
- Stop-and-Wait
- Go-Back-N
- Selective Repeat
Para executá-los siga os passos:
- Faça o download do modelo de simulação
- Descompacte-os com o comando:
tar xzf p-to-p.tgz
- Entre no diretório p-to-p, e compile o modelo:
cd p-to-p opp_makemake -f --deep -O out make
- Se tudo der certo, deve aparecer isto na tela:
Creating Makefile in /data/rco2/p-to-p... Makefile created, running "make depend" to add dependencies... opp_makedep -Y --objdirtree -I. -Iresults -f Makefile -P\$O/ -- ./*.cc results/*.cc sobral@linux-pohy:/data/rco2/p-to-p> make g++ -c -g -Wall -fno-stack-protector -DXMLPARSER=libxml -DWITH_PARSIM -DWITH_NETBUILDER -I. -Iresults -I/data/rco2/omnetpp-4.0p1/include -o out/gcc-debug//ppif.o ppif.cc opp_msgc -s _m.cc -I. -Iresults frame.msg g++ -c -g -Wall -fno-stack-protector -DXMLPARSER=libxml -DWITH_PARSIM -DWITH_NETBUILDER -I. -Iresults -I/data/rco2/omnetpp-4.0p1/include -o out/gcc-debug//ppsink.o ppsink.cc g++ -c -g -Wall -fno-stack-protector -DXMLPARSER=libxml -DWITH_PARSIM -DWITH_NETBUILDER -I. -Iresults -I/data/rco2/omnetpp-4.0p1/include -o out/gcc-debug//ppsink2.o ppsink2.cc ppsink2.cc: In member function ‘virtual void PPSink2::handleMessage(cMessage*)’: ppsink2.cc:61: warning: unused variable ‘acking’ g++ -c -g -Wall -fno-stack-protector -DXMLPARSER=libxml -DWITH_PARSIM -DWITH_NETBUILDER -I. -Iresults -I/data/rco2/omnetpp-4.0p1/include -o out/gcc-debug//ppsource.o ppsource.cc g++ -c -g -Wall -fno-stack-protector -DXMLPARSER=libxml -DWITH_PARSIM -DWITH_NETBUILDER -I. -Iresults -I/data/rco2/omnetpp-4.0p1/include -o out/gcc-debug//ppsource2.o ppsource2.cc g++ -c -g -Wall -fno-stack-protector -DXMLPARSER=libxml -DWITH_PARSIM -DWITH_NETBUILDER -I. -Iresults -I/data/rco2/omnetpp-4.0p1/include -o out/gcc-debug//ppsource3.o ppsource3.cc g++ -c -g -Wall -fno-stack-protector -DXMLPARSER=libxml -DWITH_PARSIM -DWITH_NETBUILDER -I. -Iresults -I/data/rco2/omnetpp-4.0p1/include -o out/gcc-debug//frame_m.o frame_m.cc g++ -Wl,--export-dynamic -Wl,-rpath,/data/rco2/omnetpp-4.0p1/lib:. -o out/gcc-debug//p-to-p out/gcc-debug//ppif.o out/gcc-debug//ppsink.o out/gcc-debug//ppsink2.o out/gcc-debug//ppsource.o out/gcc-debug//ppsource2.o out/gcc-debug//ppsource3.o out/gcc-debug//frame_m.o -Wl,--whole-archive -Wl,--no-whole-archive -L"/data/rco2/omnetpp-4.0p1/lib/gcc" -L"/data/rco2/omnetpp-4.0p1/lib" -u _tkenv_lib -lopptkenvd -loppenvird -lopplayoutd -u _cmdenv_lib -loppcmdenvd -loppenvird -loppsimd -ldl -lstdc++ ln -s -f out/gcc-debug//p-to-p .
- O importante é a última linha, que informa que a compilação teve sucesso:
g++ -Wl,--export-dynamic -Wl,-rpath,/data/rco2/omnetpp-4.0p1/lib:. -o out/gcc-debug//p-to-p out/gcc-debug//ppif.o out/gcc-debug//ppsink.o out/gcc-debug//ppsink2.o out/gcc-debug//ppsource.o out/gcc-debug//ppsource2.o out/gcc-debug//ppsource3.o out/gcc-debug//frame_m.o -Wl,--whole-archive -Wl,--no-whole-archive -L"/data/rco2/omnetpp-4.0p1/lib/gcc" -L"/data/rco2/omnetpp-4.0p1/lib" -u _tkenv_lib -lopptkenvd -loppenvird -lopplayoutd -u _cmdenv_lib -loppcmdenvd -loppenvird -loppsimd -ldl -lstdc++ ln -s -f out/gcc-debug//p-to-p .
- Caso a compilação tenha falhado, verifique se a seguinte linha foi adicionada ao seu arquivo ~/.profile: Se não estiver lá, acrescente-a e também execute o seguinte no prompt do shell:
export PATH=~/omnetpp-4.0p1/bin:$PATH
Isto será necessário somente dessa vez .. nos próximos logins a variável PATH estará definida corretamente.export PATH=/data/rco2/omnetpp-4.0p1/bin:$PATH
- O importante é a última linha, que informa que a compilação teve sucesso:
- Execute o simulador dos mecanismos ARQ:
./p-to-p
Usando o ambiente de desenvolvimento (IDE) do simulador
O ambiente de desenvolvimento se destina somente a quem queira desenvolver modelos de simulação. Esses modelos podem ser criados usando-se componentes prontos do Omnet, os quais simulam protocolos e equipamentos, e também componentes desenvolvidos pelo usuário (e que devem ser escritos na linguagem C++, e explorar a API do Omnet++). Fica aqui um guia rápido para os curiosos ... o manual detalhado está no site do Omnet++.
O IDE do Omnet se integra ao Eclipse, e pode ser executado com o seguinte comando:
omnetpp
- A tela de abertura do simulador aparecerá como abaixo. Selecione a opção "Workbench":
- O simulador mostrará sua área de trabalho com os projetos de exemplo:
- Selecione o projeto "aloha", e clique com o botão direito do mouse para abri-lo.
- Clique novamente em "aloha", e com o botão direito do mouse selecione a opção "Run as" -> "Omnet++ Simulation":
- Caso apareça a tela a seguir, escolha "omnetpp.ini":
- Clique em "Ok":
- A tela a seguir aparecerá, mostrando uma visão gráfica da rede a ser simulada:
- Para executar a simulação, clique em "Run", e veja a animação do funcionamento da rede. Para parar a simulação clique em "Stop", e depois em "Finish" (botão com uma bandeira de fórmula 1):