| 37 | |
| 38 | == 1.1 Installation, new version == #new |
| 39 | The installation procedures have been significantly streamlined (e.g. to use apt). It is described in the [http://noxrepo.org/noxwiki/index.php/NOX_Installation NOX wiki], but it will be repeated here for completeness. |
| 40 | |
| 41 | === Base system === |
| 42 | NOX was built on an Ubuntu 10.10 server install with the following additions: |
| 43 | * packages: openssh-server ckermit git chromium-browser xinit icewm |
| 44 | * additional Ethernet interface (for !OpenFlow channel) |
| 45 | * no LVM |
| 46 | |
| 47 | The switch is a NEC IP880/S3640 with !OpenFlow v 1.0 enabled firmware. |
| 48 | |
| 49 | === The process === |
| 50 | 1. as root: |
| 51 | {{{ |
| 52 | cd /etc/apt/sources.list.d |
| 53 | sudo wget http://openflowswitch.org/downloads/debian/nox.list |
| 54 | sudo apt-get update |
| 55 | sudo apt-get install nox-dependencies |
| 56 | }}} |
| 57 | |
| 58 | 2. add the following to the end of `/usr/lib/python2.6/dist-packages/twisted/internet/base.py`, before `__all__ = []` : |
| 59 | {{{ |
| 60 | def _handleSigchld(self, signum, frame,_threadSupport=platform.supportsThreads()): |
| 61 | from twisted.internet.process import reapAllProcesses |
| 62 | if _threadSupport: |
| 63 | self.callFromThread(reapAllProcesses) |
| 64 | else: |
| 65 | self.callLater(0, reapAllProcesses) |
| 66 | }}} |
| 67 | This is to make pyoxidereactor.py happy - it assumes that Python takes care of signal handling, which, in the newer versions, does not. The tabs should match with the rest of the file since Python is quite picky. |
| 68 | [[BR]][[BR]] |
| 69 | ref: http://www.mail-archive.com/nox-dev@noxrepo.org/msg01448.html |
| 70 | |
| 71 | 3. download and build: |
| 72 | {{{ |
| 73 | git clone git://noxrepo.org/nox |
| 74 | cd nox |
| 75 | ./boot.sh |
| 76 | mkdir build/ |
| 77 | cd build/ |
| 78 | ../configure |
| 79 | make -j 5 |
| 80 | }}} |
| 81 | The install was done in /opt in this case. |