XUELK-AN-002: Running Debian distribution

From DAVE Developer's Wiki
Jump to: navigation, search
Info Box
SBC Lynx-top.png Applies to SBC Lynx

History[edit | edit source]

Version Date Notes
1.0.0 February 2017 First public release

Introduction[edit | edit source]

Several "distributions" are available for embedded Linux devices. Yocto and Buildroot are just two examples of the most common. Nevertheless, for some applications the use of a desktop/server distribution might be preferable. Since they are not conceived for embedded platforms, these distributions have to be carefully tailored, in order to match hardware resources.[1]

This application note shows how to run one of such distributions - Debian Jessie - on SBC Lynx. It is assumed that the reader if already familiar with AXEL ULite and SBC Lynx Embedded Linux Kit (XUELK), as it is the basis of this work.



[1] Non-volatile storage footprint is the typical example. Disk occupation of a desktop distribution is measured in GB or tens of GB, while many embedded platforms have less the 1 GB of flash memory.

Initial configuration[edit | edit source]

For the sake of simplicity, the same approach described here is used.

It is quite straightforward to prepare a microSD card containing a Debian minimal root file system that replaces the one delivered along with the XUELK.

To get such an image, issue the following command on your host machine:[1]

wget -c https://rcn-ee.com/rootfs/eewiki/barefs/debian-8.7-bare-armhf-2017-01-14.tar.xz

To verify it:

sha256sum debian-8.7-bare-armhf-2017-01-14.tar.xz
159e1a6addc35bbfff03b5eafd5cb741086a8a016d5ab9572ab122ce64d63e5e  debian-8.7-bare-armhf-2017-01-14.tar.xz

After inserting the microSD card into the adapter connected to the host machine, it is possible to decompress the .tar.xz file in the ROOTFS partition:

unzip debian-8-xfce-wandboard-20150514.zip 
cd debian-8.7-bare-armhf-2017-01-14/
tar xvf armhf-rootfs-debian-jessie.tar -C /media/dvdk/ROOTFS/
sudo umount /media/dvdk/BOOT 
sudo umount /media/dvdk/ROOTFS 

You can then insert the microSD card into the SBC Lynx's slot. On target side, these are the messages printed out on the serial console, when the root file system is mounted:

...
[    5.114803] VFS: Mounted root (ext3 filesystem) on device 179:2.
[    5.125035] devtmpfs: mounted
[    5.128943] Freeing unused kernel memory: 408K (80b15000 - 80b7b000)
[    5.751274] systemd[1]: System time before build time, advancing clock.
[    5.783486] systemd[1]: Failed to insert module 'kdbus': Function not imp
[    5.823801] systemd[1]: systemd 230 running in system mode. (+PAM +AUDIT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[    5.843563] systemd[1]: Detected architecture arm.

Welcome to Debian GNU/Linux 8 (jessie)!

[    5.880235] systemd[1]: Set hostname to <arm>.
[    6.727889] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[    6.758625] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[    6.788119] systemd[1]: Reached target Encrypted Volumes.
[  OK  ] Reached target Encrypted Volumes.
[    6.818418] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[    6.839082] systemd[1]: Reached target Remote File Systems (Pre).
[  OK  ] Reached target Remote File Systems (Pre).
[    6.869354] systemd[1]: Started Forward Password Requests to Wall Directo
[  OK  ] Started Forward Password Requests to Wall Directory Watch.
[    6.901334] systemd[1]: Set up automount Arbitrary Executable File Format
[  OK  ] Set up automount Arbitrary Executab...ats File System Automount Poi
[    6.939313] systemd[1]: Listening on /dev/initctl Compatibility Named Pip
[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
[    6.968527] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[    6.999801] systemd[1]: Reached target Swap.
[  OK  ] Reached target Swap.
[    7.019678] systemd[1]: Created slice System Slice.
[  OK  ] Created slice System Slice.
[    7.038667] systemd[1]: Reached target Slices.
[  OK  ] Reached target Slices.
[    7.059455] systemd[1]: Created slice system-serial\x2dgetty.slice.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[    7.089497] systemd[1]: Created slice system-getty.slice.
[  OK  ] Created slice system-getty.slice.
[    7.119398] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[    7.145290] systemd[1]: Starting Journal Service...
         Starting Journal Service...
[    7.182154] systemd[1]: Starting Remount Root and Kernel File Systems...
         Starting Remount Root and Kernel File Systems...
[    7.241987] systemd[1]: Mounting Debug File System...
         Mounting Debug File System...
[    7.308585] systemd[1]: Starting Load Kernel Modules...
         Starting Load Kernel Modules...
[    7.364001] systemd[1]: Started Dispatch Password Requests to Console Dir
[  OK  ] Started Dispatch Password Requests to Console Directory Watch.
[    7.418164] systemd[1]: Reached target Paths.
[  OK  ] Reached target Paths.
[    7.451915] systemd[1]: Starting Create Static Device Nodes in /dev...
         Starting Create Static Device Nodes in /dev...
[    7.508441] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[    7.528001] systemd[1]: Reached target Sockets.
[  OK  ] Reached target Sockets.
[    7.558251] systemd[1]: Mounted Debug File System.
[  OK  ] Mounted Debug File System.
[    7.589958] systemd[1]: Started Remount Root and Kernel File Systems.
[  OK  ] Started Remount Root and Kernel File Systems.
[    7.651199] systemd[1]: Started Load Kernel Modules.
[  OK  ] Started Load Kernel Modules.
[    7.680384] systemd[1]: Started Create Static Device Nodes in /dev.
[  OK  ] Started Create Static Device Nodes in /dev.
[    7.716855] systemd[1]: Starting udev Kernel Device Manager...
         Starting udev Kernel Device Manager...
[    7.780271] systemd[1]: Starting Apply Kernel Variables...
         Starting Apply Kernel Variables...
[    7.821035] systemd[1]: Mounting FUSE Control File System...
         Mounting FUSE Control File System...
[    7.909856] systemd[1]: Starting udev Coldplug all Devices...
         Starting udev Coldplug all Devices...
[    7.932630] systemd[1]: Reached target Local File Systems (Pre).
[  OK  ] Reached target Local File Systems (Pre).
[    8.001492] systemd[1]: Starting Load/Save Random Seed...
         Starting Load/Save Random Seed...
[    8.058300] systemd[1]: Reached target Local File Systems.
[  OK  ] Reached target Local File Systems.
[    8.114063] systemd[1]: Mounted FUSE Control File System.
[  OK  ] Mounted FUSE Control File System.
[    8.179693] systemd[1]: Started udev Kernel Device Manager.
[  OK  ] Started udev Kernel Device Manager.
[    8.210239] systemd[1]: Started Apply Kernel Variables.
[  OK  ] Started Apply Kernel Variables.
[    8.251215] systemd[1]: Started Load/Save Random Seed.
[  OK  ] Started Load/Save Random Seed.
[    8.295404] systemd[1]: Starting Raise network interfaces...
         Starting Raise network interfaces...
[    9.378588] systemd[1]: Started Journal Service.
[  OK  ] Started Journal Service.
         Starting Flush Journal to Persistent Storage...
[   10.329376] systemd-journald[134]: Received request to flush runtime jour
[  OK  ] Started Flush Journal to Persistent Storage.
         Starting Create Volatile Files and Directories...
[  OK  ] Started Create Volatile Files and Directories.
         Starting Network Time Synchronization...
         Starting Update UTMP about System Boot/Shutdown...
[  OK  ] Started udev Coldplug all Devices.
[   21.038081] fec 2188000.ethernet eth0: Freescale FEC PHY driver [Micrel K
[   21.188538] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Initialization.
[  OK  ] Reached target Basic System.
[  OK  ] Started Regular background program processing daemon.
         Starting Cape Manager Service...
         Starting System Logging Service...
         Starting getty on tty2-tty6 if dbus and logind are not available...
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timers.
         Starting Generic Board Startup...
[  OK  ] Reached target System Time Synchronized.
[FAILED] Failed to start Cape Manager Service.
See 'systemctl status capemgr.service' for details.
[FAILED] Failed to start Generic Board Startup.
See 'systemctl status generic-board-startup.service' for details.
[  OK  ] Started System Logging Service.
[   25.038599] libphy: 2188000.ethernet:03 - Link is Up - 100/Full
[   25.044599] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[  OK  ] Started getty on tty2-tty6 if dbus and logind are not available.
[  OK  ] Found device /dev/ttymxc0.
[  OK  ] Started Raise network interfaces.
[  OK  ] Reached target Network.
         Starting /etc/rc.local Compatibility...
         Starting Permit User Sessions...
[  OK  ] Started /etc/rc.local Compatibility.
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Getty on tty6.
[  OK  ] Started Getty on tty3.
[  OK  ] Started Serial Getty on ttymxc0.
[  OK  ] Started Getty on tty2.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Getty on tty5.
[  OK  ] Started Getty on tty4.
[  OK  ] Reached target Login Prompts.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.
         Starting Update UTMP about System Runlevel Changes...
[  OK  ] Started Update UTMP about System Runlevel Changes.

Debian GNU/Linux 8 arm ttymxc0

default username:password is [debian:temppwd]

arm login: root
Password:
Last login: Sun Jan 15 02:57:41 UTC 2017 on ttymxc0
Linux arm 3.14.52-xuelk-1.1.0 #7 SMP PREEMPT Fri Nov 25 17:15:33 CET 2016 ar

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@arm:~#

By default, two users are defined:

  • user debian, password temppwd
  • user root, password root



[1] These information are retrieved from here.

Adding packages[edit | edit source]

Of course, one of the greatest - if not the greatest - pros of having a desktop distribution, is the availability of a huge archive of pre-built packages. They can be installed very easily with tools such as apt and pip.

Before installing packages, the network interface has to be configured, as it is disabled by default. To configure it with a static IP address (192.168.0.80 in the example), nano text editor can be used:

  GNU nano 2.2.6         File: /etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
#source-directory /etc/network/interfaces.d
auto eth0
iface eth0 inet static
     address 192.168.0.80
     netmask 255.255.255.0
     gateway 192.168.0.254











                               [ Wrote 9 lines ]

Please note the these changes will take effect after rebooting the machine.

DNS server has also to be enabled, in order to resolve URLs. Again, nano comes to help:

  GNU nano 2.2.6            File: /etc/resolv.conf

domain localdomain
search localdomain
nameserver 8.8.8.8
















                               [ Wrote 4 lines ]

You can finally install the desired packages, as shown in the following examples:

root@arm:~# apt update
Get:1 http://security.debian.org jessie/updates InRelease [63.1 kB]
Get:2 http://repos.rcn-ee.com jessie InRelease [4373 B]
Ign http://httpredir.debian.org jessie InRelease
Get:3 http://httpredir.debian.org jessie-updates InRelease [145 kB]
Get:4 http://httpredir.debian.org jessie Release.gpg [2373 B]
Get:5 http://httpredir.debian.org jessie Release [148 kB]
Get:6 http://security.debian.org jessie/updates/main armhf Packages [420 kB]
Get:7 http://repos.rcn-ee.com jessie/main armhf Packages [796 kB]
Get:8 http://security.debian.org jessie/updates/contrib armhf Packages [994 B]
Get:9 http://security.debian.org jessie/updates/non-free armhf Packages [20 B]
Get:10 http://httpredir.debian.org jessie-updates/main armhf Packages [17.6 kB]
Get:11 http://httpredir.debian.org jessie-updates/contrib armhf Packages [20 B]
Get:12 http://httpredir.debian.org jessie-updates/non-free armhf Packages [450 B]
Get:13 http://httpredir.debian.org jessie/contrib armhf Packages [44.7 kB]
Get:14 http://httpredir.debian.org jessie/non-free armhf Packages [74.9 kB]
Get:15 http://httpredir.debian.org jessie/main armhf Packages [8850 kB]
Fetched 10.6 MB in 43s (240 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
root@arm:~# apt-get install python
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  file libexpat1 libmagic1 libpython-stdlib libpython2.7-minimal
  libpython2.7-stdlib libsqlite3-0 libssl1.0.0 mime-support python-minimal
  python2.7 python2.7-minimal
Suggested packages:
  python-doc python-tk python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
  file libexpat1 libmagic1 libpython-stdlib libpython2.7-minimal
  libpython2.7-stdlib libsqlite3-0 libssl1.0.0 mime-support python
  python-minimal python2.7 python2.7-minimal
0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
Need to get 5449 kB of archives.
After this operation, 20.5 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://security.debian.org/ jessie/updates/main libssl1.0.0 armhf 1.0.1t-1+deb8u6 [868 kB]
Get:2 http://httpredir.debian.org/debian/ jessie/main libmagic1 armhf 1:5.22+15-2+deb8u3 [245 kB]
Get:3 http://httpredir.debian.org/debian/ jessie/main libsqlite3-0 armhf 3.8.7.1-1+deb8u2 [384 kB]
Get:4 http://httpredir.debian.org/debian/ jessie/main libpython2.7-minimal armhf 2.7.9-2+deb8u1 [376 kB]
Get:5 http://httpredir.debian.org/debian/ jessie/main python2.7-minimal armhf 2.7.9-2+deb8u1 [1152 kB]
Get:6 http://httpredir.debian.org/debian/ jessie/main mime-support all 3.58 [36.0 kB]
Get:7 http://httpredir.debian.org/debian/ jessie/main python-minimal armhf 2.7.9-1 [40.2 kB]
Get:8 http://httpredir.debian.org/debian/ jessie/main libexpat1 armhf 2.1.0-6+deb8u3 [61.8 kB]
Get:9 http://httpredir.debian.org/debian/ jessie/main file armhf 1:5.22+15-2+deb8u3 [60.0 kB]
Get:10 http://httpredir.debian.org/debian/ jessie/main libpython2.7-stdlib armhf 2.7.9-2+deb8u1 [1805 kB]
Get:11 http://httpredir.debian.org/debian/ jessie/main python2.7 armhf 2.7.9-2+deb8u1 [252 kB]
Get:12 http://httpredir.debian.org/debian/ jessie/main libpython-stdlib armhf 2.7.9-1 [19.6 kB]
Get:13 http://httpredir.debian.org/debian/ jessie/main python armhf 2.7.9-1 [151 kB]
Fetched 5449 kB in 4s (1306 kB/s)
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 13.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7, <> line 13.)
debconf: falling back to frontend: Teletype
Preconfiguring packages ...
Selecting previously unselected package libssl1.0.0:armhf.
(Reading database ... (Reading database ... 5%(Reading database ... 10%(Reading database ... 15%(Reading database ... 20%(Reading database ... 25%(Reading database ... 30%(Reading database ... 35%(Reading database ... 40%(Reading database ... 45%(Reading database ... 50%(Reading database ... 55%(Reading database ... 60%(Reading database ... 65%(Reading database ... 70%(Reading database ... 75%(Reading database ... 80%(Reading database ... 85%(Reading database ... 90%(Reading database ... 95%(Reading database ... 100%(Reading database ... 8710 files and directories currently installed.)
Preparing to unpack .../libssl1.0.0_1.0.1t-1+deb8u6_armhf.deb ...
Unpacking libssl1.0.0:armhf (1.0.1t-1+deb8u6) ...
Selecting previously unselected package libmagic1:armhf.
Preparing to unpack .../libmagic1_1%3a5.22+15-2+deb8u3_armhf.deb ...
Unpacking libmagic1:armhf (1:5.22+15-2+deb8u3) ...
Selecting previously unselected package libsqlite3-0:armhf.
Preparing to unpack .../libsqlite3-0_3.8.7.1-1+deb8u2_armhf.deb ...
Unpacking libsqlite3-0:armhf (3.8.7.1-1+deb8u2) ...
Selecting previously unselected package libpython2.7-minimal:armhf.
Preparing to unpack .../libpython2.7-minimal_2.7.9-2+deb8u1_armhf.deb ...
Unpacking libpython2.7-minimal:armhf (2.7.9-2+deb8u1) ...
Selecting previously unselected package python2.7-minimal.
Preparing to unpack .../python2.7-minimal_2.7.9-2+deb8u1_armhf.deb ...
Unpacking python2.7-minimal (2.7.9-2+deb8u1) ...
Selecting previously unselected package python-minimal.
Preparing to unpack .../python-minimal_2.7.9-1_armhf.deb ...
Unpacking python-minimal (2.7.9-1) ...
Selecting previously unselected package mime-support.
Preparing to unpack .../mime-support_3.58_all.deb ...
Unpacking mime-support (3.58) ...
Selecting previously unselected package libexpat1:armhf.
Preparing to unpack .../libexpat1_2.1.0-6+deb8u3_armhf.deb ...
Unpacking libexpat1:armhf (2.1.0-6+deb8u3) ...
Selecting previously unselected package libpython2.7-stdlib:armhf.
Preparing to unpack .../libpython2.7-stdlib_2.7.9-2+deb8u1_armhf.deb ...
Unpacking libpython2.7-stdlib:armhf (2.7.9-2+deb8u1) ...
Selecting previously unselected package python2.7.
Preparing to unpack .../python2.7_2.7.9-2+deb8u1_armhf.deb ...
Unpacking python2.7 (2.7.9-2+deb8u1) ...
Selecting previously unselected package libpython-stdlib:armhf.
Preparing to unpack .../libpython-stdlib_2.7.9-1_armhf.deb ...
Unpacking libpython-stdlib:armhf (2.7.9-1) ...
Setting up libpython2.7-minimal:armhf (2.7.9-2+deb8u1) ...
Setting up python2.7-minimal (2.7.9-2+deb8u1) ...
Linking and byte-compiling packages for runtime python2.7...
Setting up python-minimal (2.7.9-1) ...
Selecting previously unselected package python.
(Reading database ... (Reading database ... 5%(Reading database ... 10%(Reading database ... 15%(Reading database ... 20%(Reading database ... 25%(Reading database ... 30%(Reading database ... 35%(Reading database ... 40%(Reading database ... 45%(Reading database ... 50%(Reading database ... 55%(Reading database ... 60%(Reading database ... 65%(Reading database ... 70%(Reading database ... 75%(Reading database ... 80%(Reading database ... 85%(Reading database ... 90%(Reading database ... 95%(Reading database ... 100%(Reading database ... 9539 files and directories currently installed.)
Preparing to unpack .../python_2.7.9-1_armhf.deb ...
Unpacking python (2.7.9-1) ...
Selecting previously unselected package file.
Preparing to unpack .../file_1%3a5.22+15-2+deb8u3_armhf.deb ...
Unpacking file (1:5.22+15-2+deb8u3) ...
Setting up libssl1.0.0:armhf (1.0.1t-1+deb8u6) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.)
debconf: falling back to frontend: Teletype
Setting up libmagic1:armhf (1:5.22+15-2+deb8u3) ...
Setting up libsqlite3-0:armhf (3.8.7.1-1+deb8u2) ...
Setting up mime-support (3.58) ...
Setting up libexpat1:armhf (2.1.0-6+deb8u3) ...
Setting up libpython2.7-stdlib:armhf (2.7.9-2+deb8u1) ...
Setting up python2.7 (2.7.9-2+deb8u1) ...
Setting up libpython-stdlib:armhf (2.7.9-1) ...
Setting up python (2.7.9-1) ...
Setting up file (1:5.22+15-2+deb8u3) ...
Processing triggers for libc-bin (2.19-18+deb8u7) ...
root@arm:~# pip install 'autobahn==0.13.0'
Downloading/unpacking autobahn==0.13.0
  Downloading autobahn-0.13.0.tar.gz (169kB): 169kB downloaded
  Running setup.py (path:/tmp/pip-build-bHFxQl/autobahn/setup.py) egg_info f

    package init file 'twisted/plugins/__init__.py' not found (or not a regu
    Unhandled Error
    Traceback (most recent call last):
      File "<string>", line 17, in <module>

      File "/tmp/pip-build-bHFxQl/autobahn/setup.py", line 259, in <module>
        list(getPlugins(IPlugin))
      File "/usr/local/lib/python2.7/dist-packages/twisted/plugin.py", line
        allDropins = getCache(package)
    --- <exception caught here> ---
      File "/usr/local/lib/python2.7/dist-packages/twisted/plugin.py", line
        provider = pluginModule.load()
      File "/usr/local/lib/python2.7/dist-packages/twisted/python/modules.py
        return self.pathEntry.pythonPath.moduleLoader(self.name)
      File "/usr/local/lib/python2.7/dist-packages/twisted/python/reflect.py
        topLevelPackage = _importAndCheckStack(trialname)
      File "/usr/local/lib/python2.7/dist-packages/twisted/python/reflect.py
        reraise(excValue, excTraceback)
      File "/tmp/pip-build-bHFxQl/autobahn/twisted/plugins/autobahn_endpoint
        from autobahn.twisted.websocket import WrappingWebSocketServerFactor
      File "autobahn/twisted/__init__.py", line 41, in <module>
        from autobahn.twisted.choosereactor import install_reactor
      File "autobahn/twisted/choosereactor.py", line 31, in <module>
        import txaio
    exceptions.ImportError: No module named txaio

    Twisted found (default reactor is <class 'twisted.internet.epollreactor.
    Twisted dropin.cache regenerated.
Downloading/unpacking six>=1.10.0 (from autobahn==0.13.0)
  Downloading six-1.10.0-py2.py3-none-any.whl
Downloading/unpacking txaio>=2.2.2 (from autobahn==0.13.0)
  Downloading txaio-2.6.0-py2.py3-none-any.whl
Installing collected packages: autobahn, six, txaio
  Running setup.py install for autobahn
    package init file 'twisted/plugins/__init__.py' not found (or not a regu

    Unhandled Error
    Traceback (most recent call last):
      File "<string>", line 1, in <module>

      File "/tmp/pip-build-bHFxQl/autobahn/setup.py", line 259, in <module>
        list(getPlugins(IPlugin))
      File "/usr/local/lib/python2.7/dist-packages/twisted/plugin.py", line
        allDropins = getCache(package)
    --- <exception caught here> ---
      File "/usr/local/lib/python2.7/dist-packages/twisted/plugin.py", line
        provider = pluginModule.load()
      File "/usr/local/lib/python2.7/dist-packages/twisted/python/modules.py
        return self.pathEntry.pythonPath.moduleLoader(self.name)
      File "/usr/local/lib/python2.7/dist-packages/twisted/python/reflect.py
        topLevelPackage = _importAndCheckStack(trialname)
      File "/usr/local/lib/python2.7/dist-packages/twisted/python/reflect.py
        reraise(excValue, excTraceback)
      File "/usr/local/lib/python2.7/dist-packages/twisted/plugins/autobahn_
        from autobahn.twisted.websocket import WrappingWebSocketServerFactor
      File "autobahn/twisted/__init__.py", line 41, in <module>
        from autobahn.twisted.choosereactor import install_reactor
      File "autobahn/twisted/choosereactor.py", line 31, in <module>
        import txaio
    exceptions.ImportError: No module named txaio

    Twisted found (default reactor is <class 'twisted.internet.epollreactor.
    Twisted dropin.cache regenerated.
  Found existing installation: six 1.8.0
    Not uninstalling six at /usr/lib/python2.7/dist-packages, owned by OS
Successfully installed autobahn six txaio
Cleaning up...