{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
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
To do :
{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
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
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 }
- IOL since those are Linux x86 binaries
- VMware/VirtualBox since those are x86 hypervisors
Attachments
Last edited: