Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Lastic

macrumors 6502a
Original poster
Mar 19, 2016
879
757
North of the HellHole
{EDIT 26-AUG-2017 Dynamips works, see at the bottom of this post}
{EDIT 28-AUG-2017 Links between QEMU nodes work, see at the bottom of this post}
{EDIT 02-APR-2019 Dynamips using Cisco images now works}


I'm currently taking an Udemy Python Network Automation course where the instructor uses GNS3
https://www.gns3.com/
in order to create labs to work on.

Having installed GNS3 (on Fedora 26 x86 ) I was impressed by it's capabilities because
  • it's written in Python itself
  • has the ability to run QEMU images
  • provides a local server which launches QEMU/Dynamips/IOL
  • uses Qt
The latest version 2.0.3 uses Python 3+ and Qt5 , unfortunately Qt5 is no longer supported on PPC.
Thus I looked for the latest version that still runs on Qt4 which was 1.3.13
(1.4.0a1 also works but has a bug with the Preferences Pane which won't close)

As I like to mimic my x86 setups on PowerPC , I made it my Sunday challenge.

Since the G5 is faster and has more RAM to run virtual machines, I wiped my Fedora 25 install and
reinstalled OS X 10.5.8 from scratch.

WARNING , this install is not for the faint of heart, it took me 8 hours with trial and error to
get a working setup. Might go a bit faster now because the order of the steps is now clear to me.
A lot of the issues were because some dependencies would only install using pip (Python installer) or
Macports or using Macports to install the downloaded source.


==Xcode=======================================================

xcode311_9m2517_developerdvd (24 July 2008 ) or a later Xcode version
downloadable from developer.apple.com
This is a 2 GB install !

==Macports======================================================

Download Macports for OS X 10.5.8 by clicking on the link saying Leopard hereunder

https://distfiles.macports.org/MacPorts/MacPorts-2.3.4-10.5-Leopard.dmg <== Macports 2.3.4

sudo port install git
(installs python 2.7 )

==INSTALL OLDER QEMU 2.2.0==========================================

cd ~
mkdir macports
cd macport
git clone --single-branch https://github.com/macports/macports-ports.git
cd macports-ports/
git checkout b05540d8c997bb4909166ba47f87222c415d8dcd
cd emulators/qemu
sudo port install


==INSTALL PYTHON 3.6 + QT 4=========================================

sudo port install python36

At the end it will tell you how to make it the default python by using
sudo port select ...

need to update Macports or it will not find pip 3.6

sudo port selfupdate

sudo port install py36-pip

At the end it will tell you how to make it the default python by using
sudo port select ...

sudo port install qt4-mac

sudo port install py36-pyqt4 (Failed)

---> Fetching archive for py36-pyqt4
---> Attempting to fetch py36-pyqt4-4.12.1_0.darwin_9.ppc.tbz2 from http://packages.macports.org/py36-pyqt4

Looking at one repository , I found that that the packages cannot be found using Macports 2.3.4

http://distfiles.macports.org/python/

So I went to install it manually.

==INSTALL SIP REQUIREMENT FOR PyQT 4==================================

https://sourceforge.net/projects/pyqt/files/sip/sip-4.19.2/sip-4.19.2.tar.gz/download

cd ~/Downloads/
tar -xvzf sip-4.19.2.tar.gz
cd sip-4.19.2
python configure.py
make
sudo make install


==INSTALL PyQT 4=================================================

http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.12.1/PyQt4_gpl_mac-4.12.1.tar.gz

cd ~/Downloads/
tar -xvzf PyQt4_gpl_mac-4.12.1.tar.gz
cd PyQt4_gpl_mac-4.12.1
python configure-ng.py --qmake /opt/local/libexec/qt4/bin/qmake --sip /opt/local/Library/Frameworks/Python.framework/Versions/3.6/bin/sip
make
sudo make install


==INSTALL GNS3-GUI QT 4 ===========================================

sudo pip install gns3-gui==1.3.13

Collecting pynacl>=1.0.1 (from paramiko>=1.15.1->gns3-gui==1.4.0b4)
Downloading PyNaCl-1.1.2.tar.gz (3.1MB)
Running setup.py install for pynacl ... error

PyNacl kept failing to build when using the build-in libsodium library
so I installed all dependencies seperately.

==INSTALL LIBSODIUM REQUIREMENT FOR PyNACL=============================

sudo port install libsodium

==INSTALL PyCPARSER REQUIREMENT FOR PyNACL=============================

sudo port install py36-pynacl
Cannot find py36-pycparser

Again the package couldn't be found on Macports so I copied the source
into the failed build directory and let Macports install it from there.

https://pypi.python.org/packages/8c...073d36a17b1491fd09df6ed/pycparser-2.18.tar.gz

cd /opt/local/var/macports/distfiles/py-pycparser
sudo cp ~/Downloads/pycparser-2.18.tar.gz .
sudo port install py36-pycparser
sudo port -f activate py36-pycparser


==INSTALL CFFI REQUIREMENT FOR PyNACL=================================

sudo port install py36-cffi

Again the package couldn't be found on Macports so I copied the source
into the failed build directory and let Macports install it from there.

https://pypi.python.org/packages/5b...0.tar.gz#md5=2b5fa41182ed0edaf929a789e602a070

cd /opt/local/var/macports/distfiles/py-cffi
sudo cp ~/Downloads/cffi-1.10.0.tar.gz .
sudo port install py36-cffi
sudo port -f activate py36-cffi


==INSTALL SIX REQUIREMENT FOR PyNACL==================================

sudo port install py36-pynacl

PyNacl will fail but it will install Six but complain that you need
to activate it manually using the command hereunder.

sudo port -f activate py36-six

==INSTALL PyNACL ==============================================

sudo port install py36-pynacl
Failed to fetch py36-pynacl

Again the package couldn't be found on Macports so I copied the source
into the failed build directory and let Macports install it from there.

https://pypi.python.org/packages/8d...2.tar.gz#md5=1963c14272a42585676e74cf6292f4e3

cd /opt/local/var/macports/distfiles/py-pynacl
sudo cp ~/Downloads/PyNaCl-1.1.2.tar.gz .
sudo port install py36-pynacl


==CONTINUE GNS3-GUI INSTALL=======================================

sudo pip install gns3-gui==1.3.13

Installing collected packages: idna, asn1crypto, cryptography, pyasn1, bcrypt, paramiko, configobj, gns3-converter, gns3-gui
Running setup.py install for cryptography ... error
cc1: error: -Werror=sign-conversion: No option -Wsign-conversion

py36-cryptography fails so let's try Macports.

sudo port install py36-cryptography
---> Computing dependencies for py36-cryptography
The following dependencies will be installed:
py36-asn1crypto
py36-idna

Again the packages couldn't be found on Macports so I copied the source
into the failed build directory and let Macports install it from there.

https://pypi.python.org/packages/67...0.tar.gz#md5=74a8b9402625b38ef19cf3fa69ef8470

cd /opt/local/var/macports/distfiles/py-asn1crypto/
sudo cp ~/Downloads/asn1crypto-0.22.0.tar.gz .
sudo port -v install py36-asn1crypto
sudo port -f activate py36-asn1crypto


https://pypi.python.org/packages/f4...6.tar.gz#md5=c706e2790b016bd0ed4edd2d4ba4d147

cd /opt/local/var/macports/distfiles/py-idna
sudo cp ~/Downloads/idna-2.6.tar.gz .
sudo port -v install py36-idna
sudo port -f activate py36-idna


sudo port install py36-cryptography

Again the package couldn't be found on Macports so I copied the source
into the failed build directory and let Macports install it from there.

https://pypi.python.org/packages/9c...3.tar.gz#md5=24cbdab3fda22be31dd3aef2808f5d2f

cd /opt/local/var/macports/distfiles/py-cryptography
sudo cp ~/Downloads/cryptography-2.0.3.tar.gz .
sudo port install py36-cryptography


The build would still fail because of a parameter in the build_openssl.py file.

cd ~/Downloads/cryptography-2.0.3/src/_cffi_src

nano build_openssl.py

if platform != "win32":
return ["-Wconversion", "-Wno-error=sign-conversion"]
else:
return []

Since gcc would complain about -Wno-error=sign-conversion I blanked it out

if platform != "win32":
return ["-Wconversion", ""]
else:
return []

Tried again to install it but it couldn't find the openssl libraries

/usr/bin/gcc-4.2 -fno-strict-aliasing -Wsign-compare -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -pipe -Os -arch ppc -I/opt/local/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m -c build/temp.macosx-10.5-ppc-3.6/_openssl.c -o build/temp.macosx-10.5-ppc-3.6/build/temp.macosx-10.5-ppc-3.6/_openssl.o -Wconversion

build/temp.macosx-10.5-ppc-3.6/_openssl.c:481:26: error: openssl/cmac.h: No such file or directory

cd ~/Downloads/cryptography-2.0.3/src/_cffi_src

nano build_openssl.py


build_openssl.py

if platform != "win32":
return ["-Wconversion", "-I/opt/local/include/"]

Then I installed it from the source directory

cd ~/Downloads/cryptography-2.0.3
sudo python setup.py install


==GNS3-SERVER SPECIFIC AIOHTTP VERSION=====================================

sudo pip3 install aiohttp==1.1.6

==DYNAMIPS LATEST VERSION INSTALL FROM SOURCE ===============================

sudo port install libelf


sudo port install cmake

https://github.com/GNS3/dynamips/archive/v0.2.17.tar.gz

cd ~/Downloads
tar -xvzf dynamips-0.2.17.tar.gz
cd dynamips-0.2.17
mkdir build
cd build
cmake ..

sudo make install

{EDIT 26-AUG-2017}

I edited the Python module for the Dynamips Hypervisor in GNS3 so it works now.

https://www.dropbox.com/s/p4uamient55x9q6/dynamips_hypervisor.py?dl=0

You will then need to copy this file from your Downloads folder to the above folder

sudo cp ~/Downloads/dynamips_hypervisor.py /opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/gns3server/modules/dynamips/.


{EDIT 28-AUG-2017 I don't think uBridge is used in GNS3 1.3.13 but doesn't cause
problems when it's installed}

==UBRIDGE INSTALL=============================================

sudo port install libpcap

https://github.com/GNS3/ubridge/archive/v0.9.11.tar.gz

This version will compile , 0.9.12 gives a pcap error I can't resolve

cd ~/Downloads
tar -xvzf ubridge-0.9.11.tar.gz
cd ubridge-0.9.11
make
sudo make install


==GNS3-GUI AND SERVER INSTALL===========================================

sudo pip -v install gns3-gui==1.3.13
sudo pip -v install gns3-server==1.3.13


{EDIT 28-AUG-2017 Patched gns3-server Python module qemu_vm.py for working links}

https://www.dropbox.com/s/yervi22svvrkhgu/qemu_vm.py?dl=0

sudo cp ~/Downloads/qemu_vm.py /opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/gns3server/modules/qemu/

cd /opt/local/Library/Frameworks/Python.framework/Versions/3.6/bin/

./gns3

YEEEAAAAAHHHH, it works with links and working telnet console between Qemu nodes now

Picture 2.png


To do :
  • ubridge done see above
  • iouyap not really needed since IOU won't work on PPC
  • dynamips 0.2.7 (Macports) gives an uuid error, done see above
  • getting links to work and telnet to console, done see above
  • getting Cloud (internet) access to work done but only Generic Ethernet Adapter
  • vpcs there is no source that can be compiled for ppc
    {24-DEC-2017} got it working , see last post
  • Dynamips router images crash but they do also on my x86 GNS3 2.0.3 install
    {02-APR-2019 GNS3 ,Preferences, Dynamips, Advanced, Disable Ghost Support }
What won't work
  • IOL since those are Linux x86 binaries
  • VMware/VirtualBox since those are x86 hypervisors
 

Attachments

  • Picture 1.png
    Picture 1.png
    258.2 KB · Views: 1,203
Last edited:
Very impressive perseverance! Well done and well documented for future reference.
 
  • Like
Reactions: Lastic
Very impressive perseverance! Well done and well documented for future reference.

Thanks, the more detail the better, I hope any aspiring Networking student with older hardware will have a use for this.

I hope to replicate this on my G4 PB also but since it has only 1,25 GB RAM it won't run many QEMU images so I'm trying to get Dynamips working. Too bad there is no Qemu user to run the x86 Linux IOL binaries.
 
Thanks, the more detail the better, I hope any aspiring Networking student with older hardware will have a use for this.

I hope to replicate this on my G4 PB also but since it has only 1,25 GB RAM it won't run many QEMU images so I'm trying to get Dynamips working. Too bad there is no Qemu user to run the x86 Linux IOL binaries.

Could you build qemu user x86 from the 2.2.0 or 2.4.0 source? I haven't tested it, but I've read that the qemu userspace translation will work on powerpc Mac OS X to run x86 binaries so long as they aren't calling any of the Cocoa / UI frameworks.
 
Could you build qemu user x86 from the 2.2.0 or 2.4.0 source? I haven't tested it, but I've read that the qemu userspace translation will work on powerpc Mac OS X to run x86 binaries so long as they aren't calling any of the Cocoa / UI frameworks.

I can try :D , good idea !
I would also have to link the IOL binary name to a script that calls the qemu-user and passes the IOL parameters or GNS3 won't be able to call the IOL binary by it's original name.

But I'm going to focus now on getting the links between nodes working since there isn't much Network Simulation if the devices can't connect to eachother.
 
No luck on source-compiling qemu 2.2.0 but did get another thing working.

I will update my first post with the solution but here is the boring technical breakdown :)

So I continued to debug dynamips since this causes 3 issues with my install
  1. it doesn't start appliances because of an unsupported 'hypervisor uuid' command no longer working as of dynamips 0.2.13
  2. creating links between nodes doesn't work
  3. when a Qemu node has been connected to another node via a link , the console to the Qemu node will no longer work (it uses the wrong console port to telnet to)
Thus I debugged Dynamips using following info.
Start gns3 with --debug to see the messages when it performs actions

cd /opt/local/Library/Frameworks/Python.framework/Versions/3.6/bin/
./gns3 --debug


Second place to look for debugging info :

Under your projects folder (which you can define in GNS3 Preferences) which in my case is located at

cd /Users/uz3r/GNS3/projects/untitled/project-files/dynamips


There you will find a logfile called dynamips_ix_log.txt ( x being a number)
( just look for the most recent one using ls -ltrh )

cat dynamips_i1_log.txt

This will show all the commands sent by GNS3 to the running dynamips hypervisor process .

Here I found the error message that exec_cmd : hypervisor uuid was not working.

As such I tried to compile dynamips 0.2.12 but I can't get it to build (make fails) then I started looking and found the reverse solution being adapt the older (1.3.13) GNS3 Dynamips Python module so it no longer sends this non-working UUID command to dynamips 0.2.17

https://github.com/GNS3/gns3-server/commit/93e2d4096d85453e0c8d8afcd8b8d1a906ad21cc?diff=split

cd /opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/gns3server/modules/dynamips

sudo nano dynamips_hypervisor.py (or another Texteditor)

I will attach the file to my 1st post which you then need to copy from your Downloads folder to the above folder

sudo cp ~/Downloads/dynamips_hypervisor.py /opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/gns3server/modules/dynamips/.

Hooray , dynamips nodes now start and linking between nodes seems to work but Qemu doesn't seem to give me a telnet console to a Qemu node once I've linked it to another node

To be continued
 
  • Like
Reactions: AphoticD
So today I decided to install GNS3 1.3.13 on my PB 1,5 Ghz G4 (PATA SSD).

The entire procedure took me about 3 hours on charger and luckily I found some mistakes in my first post which I have corrected now.

Xcode (was already installed)

Macports 2.3.4 (was already installed)

sudo port install git (was already installed)

qemu 2.2.0 was already installed as well as qt4-mac for another previous project.

==INSTALL PYTHON 3.6 + QT 4========================================

sudo port install python36


Need to update Macports to be able to install pip 3.6

sudo port selfupdate

sudo port install py36-pip

sudo port install qt4-mac (was already installed )

sudo port install py36-pyqt4

Didn't fail on my G4

==INSTALL GNS3-GUI QT 4 =========================================
gns3 2.0.3 => Qt5 no PowerPC Support

sudo pip install gns3-gui==1.3.13

Installing collected packages: idna, asn1crypto, cryptography, pyasn1, bcrypt, paramiko, configobj, gns3-converter, gns3-gui

Running setup.py install for cryptography ... error

cc1: error: -Werror=sign-conversion: No option -Wsign-conversion

Download cryptography from here

https://pypi.python.org/packages/9c...3.tar.gz#md5=24cbdab3fda22be31dd3aef2808f5d2f

cd ~/Downloads/cryptography-2.0.3

sudo python setup.py install

Continue with the install of gns3-gui now the dependency has been installed.

sudo pip install gns3-gui==1.3.13

==CONTINUE GNS3-SERVER INSTALL====================================

sudo pip install gns3-server==1.3.13

===gns3-server needs lower aiohttp version===============================

sudo pip3 install aiohttp==1.1.6

==Dynamips install===============================================

sudo port install dynamips => 0.2.7 is too old but will install the necessary dependencies


sudo port uninstall dynamips => the dependencies will remain and now we can install 0.2.17 from source

https://github.com/GNS3/dynamips/archive/v0.2.17.tar.gz

cd ~/Downloads

tar -xvzf dynamips-0.2.17.tar.gz

cd dynamips-0.2.17

mkdir build

cd build

cmake ..

sudo make install

Dynamips will still complain about the no longer used hypervisor uuid command so we need to correct
the GNS3 Dynamips Python module

https://www.dropbox.com/s/p4uamient55x9q6/dynamips_hypervisor.py?dl=0

sudo cp ~/Downloads/dynamips_hypervisor.py /opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/gns3server/modules/dynamips/.

Things I've learned from this install, typo's :) , uuid is not needed, ubridge also not for the moment.

==startup GNS3=============================

cd /opt/local/Library/Frameworks/Python.framework/Versions/3.6/bin/

./gns3

Error message No local server found
Go to Preferences, Server , Path , browse to

/opt/local/Library/Frameworks/Python.framework/Versions/3.6/bin/gns3server

Still need to get the links between nodes to work but now I can do it on my lap with the PB G4 :)
 
  • Like
Reactions: AphoticD
Since I had a day off and partially found my answer in this post

http://forum.gns3.net/post17132.html?sid=ce35911632deac63b2452dea0036d017#p17132

I decided to look which Python module of GNS3 does the Qemu setup.

I found qemu_vm.py under /opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/gns3server/modules/qemu/

I changed the parameter where it would fail to set the self._host to 0.0.0.0 instead of 127.0.0.1

So far it has been a fun ride to debug Python , links now work between Qemu nodes and telnet console access also once links have been added.

1st post has been updated.

Now to get Cloud (internet) access working so I can connect to the lab from OS X and find a replacement for vpcs since this isn't ppc compatible.
 
  • Like
Reactions: AphoticD
After trying to get Armitage running with OpenJDK 1.7 and previously trying to get a NAT Cloud object in GNS3 1.3.13 , today's challenge on this rainy day will be getting VNC Console access to the QEMU VM's.

I have a Win7-Lite image which runs with 384 MB RAM but you need VNC console acces to do anything with it.

https://certcollection.org/forum/topic/280861-windows-7-lite-for-unetlab/
Hidden Content

qemu version ( this is the one I'm using )
https://mega.nz/#!ds0EgLqS!dPQVQxHbrFfdVptu7tnREGV05jPdnDz6kqca8_qIyXk

vmware/virtualbox version (ovf format)
https://mega.nz/#!h4NDXL6C!HACyugUl1JU-2ipPgw6CeZmgexNc1ku5CSAjMKRaIS8

companion cdrom.iso
https://mega.nz/#!Iw9zGTbS!EV3CT2zaZZVremjmQeHr2lhQu5ctZMbQWcQm5yzo6cs

And VNC Console is only available since GNS3 1.4 so I'm going to try to adapt the GNS3 1.3.13 python files so they also include this option based on the GNS3 1.4 source.
 
And for today's hacking session trying to get a VNC console next to the already working Telnet console.

I had already adapted so my GNS3 1.3.13 Python source files to include the VNC option from the sources of GNS3 1.4.1 that my entire Qemu settings and preferences were screwed up.

So I went the other route, pip uninstall gns3-gui==1.3.13 and pip uninstall gns3-server==1.3.13 and pip install gns3-gui and server==1.4.0a1

GNS3 1.4.0a1 already includes the VNC options , it does still complain that I don't have Qt5 but it starts.

Some first caveats :
  1. I can't add a new Qemu VM with vnc console, this is not due to vnc but due to 1.4.0a1 giving me a Python Qt error when trying to click OK or Apply after changing a setting in the preferences
  2. As such I had to adapt a working Qemu VM with telnet console by right-clicking on it on the Canvas , selecting configure and changing the console to VNC . Here I can click OK and the settings stick.
  3. Then I started my VM but saw the error message in the GNS3 console, qemu does not support VNC.
    Looked like I didn't compile my Macports qemu 2.2.0 version with the +vnc variant.
    Redid my install with sudo port install qemu +vnc
  4. Now qemu would start with the VNC option but it has it set to 0.0.0.0:0 (which should be 127.0.0.1) , the port is translated to 5900
    (looks like I need to do the same patch as with telnet console where the address is always 0.0.0.0 instead of 127.0.0.1)
  5. As such no luck with ScreenSharing since it refuses to connect to local host (127.0.01) , so installed Chicken of the VNC
  6. The Console option also uses the wrong 0.0.0.0 address so pasted manually in Terminal
    osascript -e 'tell application "Chicken"' -e 'open location "vnc://192.168.1.2:0"' -e 'end tell'
  7. Bumped up the RAM of the VM from 384 MB to 1024 MB since it is slow, need to expand my G5's RAM from 5,5GB to 8 GB
  8. QEMU is sloooooow even when running this stripped down Win7 version
Picture 6.png


Ah well, at least I can VNC console to it :)
 
And for today's hacking session trying to get a VNC console next to the already working Telnet console.

I had already adapted so my GNS3 1.3.13 Python source files to include the VNC option from the sources of GNS3 1.4.1 that my entire Qemu settings and preferences were screwed up.

So I went the other route, pip uninstall gns3-gui==1.3.13 and pip uninstall gns3-server==1.3.13 and pip install gns3-gui and server==1.4.0a1

GNS3 1.4.0a1 already includes the VNC options , it does still complain that I don't have Qt5 but it starts.

Some first caveats :
  1. I can't add a new Qemu VM with vnc console, this is not due to vnc but due to 1.4.0a1 giving me a Python Qt error when trying to click OK or Apply after changing a setting in the preferences
  2. As such I had to adapt a working Qemu VM with telnet console by right-clicking on it on the Canvas , selecting configure and changing the console to VNC . Here I can click OK and the settings stick.
  3. Then I started my VM but saw the error message in the GNS3 console, qemu does not support VNC.
    Looked like I didn't compile my Macports qemu 2.2.0 version with the +vnc variant.
    Redid my install with sudo port install qemu +vnc
  4. Now qemu would start with the VNC option but it has it set to 0.0.0.0:0 (which should be 127.0.0.1) , the port is translated to 5900
    (looks like I need to do the same patch as with telnet console where the address is always 0.0.0.0 instead of 127.0.0.1)
  5. As such no luck with ScreenSharing since it refuses to connect to local host (127.0.01) , so installed Chicken of the VNC
  6. The Console option also uses the wrong 0.0.0.0 address so pasted manually in Terminal
    osascript -e 'tell application "Chicken"' -e 'open location "vnc://192.168.1.2:0"' -e 'end tell'
  7. Bumped up the RAM of the VM from 384 MB to 1024 MB since it is slow, need to expand my G5's RAM from 5,5GB to 8 GB
  8. QEMU is sloooooow even when running this stripped down Win7 version
View attachment 722978

Ah well, at least I can VNC console to it :)

So another rainy Sunday working on GNS3 1.4.0a1 and I found the solution to my issues.

With installing a newer version of GNS3 my patched files were gone as such I had to make the same changes again to

/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/gns3server/modules/qemu

File qemu_vm.py

self._host = "0.0.0.0"
# server_config.get("host", "127.0.0.1")

/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/gns3server/modules/dynamips

File dynamips_hypervisor.py

#self._uuid = None

#self._uuid = yield from self.send("hypervisor uuid")

#@property
#def uuid(self):
# """
# Returns this hypervisor UUID.
#
# :Returns: uuid string
# """
#
# return self._uuid


And tadaah , telnet consoles work, vnc consoles work but off course with 384 MB assigned to the Qemu Win7 VM it's seriously slow, oh paycheck where are you so I can order my 16 GB of RAM :)

Picture 8.png

 
And another Sunday GNS3 troubleshooting and I found that I was doing it the wrong way to get Cloud (Internet access)

Since GNS3 1.4 there is a Cloud appliance which uses Dynamips to create NIO adapters but you need an Ethernet Switch in between the Cloud and your Network Device.

Apparantly on OS X only the Generic Ethernet Adapter seems to work for GNS3 1.4

So far I have only been able to set it up using the Ethernet Adaptor but I'm still trying with Wireless (Airport) also.

I've succesfully had a virtual Router have it's interface IP received via DHCP and could access it via Telnet from another device on the same network .

Also GNS3 on 2 different machines running seperate virtual routers with DHCP , connected to the same network and I can access each router from the other machine.

This ticks off the last checkbox of what I wanted to accomplish with this setup.

I can now even run heavier VM's via qemu on the G5 and acces them from GNS3 on the G4's or run real hardware connected to the same network and have bi-directional access in GNS3 on any PPC machine.

For some reason my GNS3 1.4 install doesn't work , Dynamips -e doesn't list any of my Ethernet adapters so I will re-install during the PPC Winter Challenge to finally have a clean writeup .

GNS3 Cloud Internet working.png
 
Merry Christmas everybody !

'Twas the day before Christmas, when all thro' the house
Not a creature was stirring, not even a mouse

And I was bored , waiting to go eat at my parents house later in the afternoon/evening.
So I started up one of my PPC's and decided I really need VPCS to work.

I downloaded the last source-files which was version 0.8b , and decided to see how it compiled.
It uses a Makefile.osx (in /src) in which the CPU architecture was defined as i386 so I changed that to PPC

RM=rm -f
CC=gcc $(CCOPT)
OSTYPE=Darwin
CPUTYPE=i386
HVOPT=-DHV

I then ran the mk.sh script from within the /src directory, it would compile but fail at the end when compiling command.c
on the lines containing IN_LOOPBACK

I found this comment

https://github.com/GNS3/vpcs/commit/44a74cb1221bf5b0443c414469b450fe4149a1f1

and decided that these added parts could be removed for OSX thus I edited command.c to this version.

if (rip == -1 || gip == -1 || rip == gip ||
#ifdef Linux
((rip & 0x7f) == 0x7f) || rip == 0 || IN_MULTICAST(ntohl(rip))) {
#else
IN_LOOPBACK(ntohl(rip)) || IN_ZERONET(ntohl(rip)) || IN_MULTICAST(ntohl(rip))) {
#endif

printf("Invalid address\n");
return 0;
}

And so I compiled again (/src) ./mk.sh and it worked.
I did a sudo cp vpcs /usr/local/bin and the binary was working ... or not.

It wouldn't accept commands that were longer than 2 characters ?
Must be a flaw in the program itself as reported here :

https://github.com/GNS3/vpcs/issues/10

But wait vpcs 0.8b has been around since 1-NOV-2015 , surely the author has fixed this already by now ?

And yes , he did in the svn trunk , https://sourceforge.net/p/vpcs/code/HEAD/tree/trunk/

So start again but with the latest version from the svn trunk by using :

svn checkout https://svn.code.sf.net/p/vpcs/code/trunk vpcs-code

Under /src I changed the CPU type again in Makefile.osx and in command.c I removed the 4 lines again, then under /src ran ./mk.sh and again a compiled binary which I copied somewhere usefull sudo cp vpcs /usr/local/bin/

And now I have a virtual PC which only has network commands but doesn't use QEMU , is more lightweight and is a single process running.

VPCS under GNS3.png


Only thing I can't get to work yet is DHCP via the Cloud node in GNS3 but that's for today :)
 
  • Like
Reactions: Traace and AphoticD
So it looks that I have a working Portfile for Dynamips which only worked for connecting nodes in GNS3 1.4 but not for what it is intended , simulate Cisco Hardware and run 'real' router images.

Making a bit of progress there also , now why does GNS3 create a Ghost which seems to crash everything ...

Dynamips SImulated CLI.png
 
  • Like
Reactions: Traace
Found the 'Ghost' , GNS3 ,Preferences, Dynamips, Advanced, Disable Ghost Support.

And as such another progress report, on my G5 Dynamips works, I can link 2 router instances to each other , assign IP's and ping each other.
However linking a router instance to the Cloud Appliance doesn't work, bizarre , might have to recheck my GNS3 1.4 install on the G5.

On my PB G4 however, it is slow, the cloud appliance seems to work and not work, starting a router image directly via Dynamips boots in
1-2 min , via GNS3 it takes almost 6 minutes.

But last year Dynamips didn't do anything, so there is progress.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.