|   | 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. |