Code Monkey home page Code Monkey logo

byzpi's Introduction

ANNOUNCING BYZANTIUM LINUX V0.5b (Sleep Deprivation)

Approved for: GENERAL RELEASE, DISTRIBUTION UNLIMITED

Project Byzantium, a working group of HacDC (http://hacdc.org/) is proud to announce the release of v0.5 beta of Byzantium Linux, a live distribution of Linux which makes it fast and easy to construct an ad-hoc wireless mesh network which can augment or replace the existing telecommunications infrastructure in the event that it is knocked offline (for example, due to a natural disaster) or rendered untrustworthy (through widespread surveillance or disconnection by hostile entities). This release was developed in the days following Hurricane Sandy, and was perfected while the core development team was assisting with disaster relief efforts in the Red Hook neighborhood of New York City in November of 2012.

Byzantium Linux is designed to run on any x86 computer with at least one 802.11 a/b/g/n wireless interface. Byzantium can be burned to a CD- or DVD-ROM (the .iso image is a bit over 370 megabytes in size), booted from an external hard drive, or can even be installed in parallel with an existing operating system without risk to the user's data and software. Byzantium Linux will act as a node of the mesh and will automatically connect to other mesh nodes and act as an access point for wifi-enabled mobile devices. This release of Byzantium Linux also incorporates seamless interoperability with mesh networks constructed using the Commotion Wireless (https://commotionwireless.net/) firmware.

FEATURES:

  • Binary compatible with Slackware-CURRENT. Existing Slackware packages can be converted with a single command.
  • Can act as a gateway to the Internet if a link is available (via Ethernet or tethered smartphone).
  • Automatic network configuration during boot.
  • Linux kernel v3.7.8
  • Drivers for dozens of wireless chipsets
  • Razor-qt v0.5.0
  • Mplayer
  • GCC v4.7.1
  • Perl v5.16
  • Python v2.7.3
  • Firefox v18.0.2
  • X.org

SYSTEM REQUIREMENTS:

To Use
  • Minimum of 1GB of RAM (512MB without copy2ram boot option)
  • i586 CPU or better
  • CD- or DVD-ROM drive
  • BIOS must boot removable media
  • At least one (1) 802.11 a/b/g/n interface

SYSTEM REQUIREMENTS:

For Persistent Changes
  • The above requirements to use Byzantium
  • 2+GB of free space on thumbdrive or harddrive

WHAT WE NEED:

  • Developers.
  • Developers!
  • DEVELOPERS!
  • No more Bill Ballmer impersonations.
  • People testing Byzantium to find bugs.
  • People reporting bugs on our Github page (https://github.com/Byzantium/Byzantium/issues). We can't fix what we don't know about!
  • Patches.
  • People booting Byzantium and setting up small meshes (2-5 clients) to tell us how well it works for you with your hardware. We have a hardware compatibility list on our wiki that needs to be expanded.
  • Help translating the user interface. We especially need people fluent in dialects of Chinese, Arabic, Farsi, and Urdu.
  • Help us write and translate documentation.

LINKS:

This announcement is published under a Creative Commons By Attribution / Noncommercial / Share Alike v3.0 License. (http://creativecommons.org/licenses/by-nc-sa/3.0/)

byzpi's People

Contributors

catskillmarina avatar elephantninja avatar elliotfriend avatar haxwithaxe avatar sitwon avatar tarrenj avatar virtadpt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

byzpi's Issues

Enable hardware random number generator.

The RasPi's built-in hwRNG isn't enabled by default, which makes generation of random numbers problematic at best, risky at worst. Here's the process to do it:

  • Edit /etc/modules and add 'bcm2708_rng' on a line by itself.
  • Install the rngd daemon: sudo apt-get install rng-tools
  • Edit the file /etc/default/rng-tools. Find the line 'HRNGDEVICE' and change it to read 'HRNGDEVICE=/dev/hwrng'

(Source: http://vk5tu.livejournal.com/43059.html)

A file ByzPi/puppet-etc/modules/byzpi/templates/etc/modules needs to be created in the Git repo with the appropriate contents. The ByzPi/puppet-etc/modules/byzpi/manifests/init.pp Puppet manifest will also need to be edited appropriately.

First connection to the node: 404 Not found.

I successfully connected to the wifi network "Byzantium" running on a Raspberry Pi.

I then entered the search term "test" into google, just to bring up the captive portal. The URL was google.co.uk/search?q=test.

Instead of directing me to the page beginning "You have connected to Byzantium ...", it took me to a "404 Not Found" from CherryPy, saying that the path 'search' was not found. Going to google.co.uk/ worked fine.

Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/cherrypy/_cprequest.py", line 656, in respond
response.body = self.handler()
File "/usr/lib/python2.7/dist-packages/cherrypy/lib/encoding.py", line 188, in call
self.body = self.oldhandler(_args, *_kwargs)
File "/usr/lib/python2.7/dist-packages/cherrypy/_cperror.py", line 386, in call
raise self
NotFound: (404, "The path '/search' was not found.")

Thanks a lot.
Eric T.

apache2 doesn't start, missing libxml2.so.

(Edited to reformat a super-long line into something more understandable.)

At boot-time, service apache2 refuses to start. Error message:

Syntax error on line 262 of /etc/apache2/apache2.conf:
Syntax error on line 103 of /etc/apache2/conf.d/proxy-html.conf:
Cannot load /usr/lib/libxml2.so into server:
/usr/lib/libxml2.so: Cannot open shared object file: No such file or directory

libxml2 appears to be an unsatisfied dependency of apache2.

Clean up the APT cache before shipping.

Add to the end of the install.sh script the command apt-get clean to delete the contents of the APT cache. This is so that we can a) shrink the EXT partition if we want to more readily, and b) it'll compress better prior to distribution.

Some wireless interfaces can only be configured while up, others only while down.

Some wireless interfaces can only be configured while up (ifconfig up), others only while down (ifconfig down). We often see strings of errors of this sort:

Attempting to configure interface wlan0.
Attempting to configure the wireless interface. Try: 0
Error for wireless request "Set Mode" (8B06) :
SET failed on device wlan0 ; Operation not permitted.
Error for wireless request "Set ESSID" (8B1A) :
SET failed on device wlan0 ; Operation not permitted.
Error for wireless request "Set AP Address" (8B14) :
SET failed on device wlan0 ; Operation not permitted.
Failed to setup the interface properly. Retrying...

Since byzantium_configd.py now tries only three times to configure a network interface and dies if it can't, I propose the following:

Try to configure the network interface with the interface turned down. If it is unable to do so, run ifconfig interface up and then try to configure it again. If, after this second set of three attempts it is unable to do so, then ABEND.

Wifi device not appearing after install Byzantium

I've taken a fresh Rasbian installation, working with the RTL8188CUS chipset and installed the Byzantium builds as described in the wiki. However, after Puppet does its thing, wlan0 is no longer anywhere to be found. Attempting to run the byzantium_configd.py script fails out since it can't find anything to configure.

Thank you for the work you're doing and thanks ahead of time for any help you guys can provide.

Apache2 doesn't start, mod_proxy-html errors.

Error message:

Syntax error on line 31 of /etc/apache2/conf.d/proxy-html.conf:
Invalid command 'ProxyHTMLLinks', perhaps misspelled or defined by a module
not included in the server configuration.

New Version of OSLR

There is a new version of OSLR available with support for jsoninfo plugin.

Installation of byzantium configd.py

Hi, I have tried to follow the steps. However, got this error. Could anyone help me on this?

Attempting to configure interface wlan1.
Setting wireless interface wlan1 to down.
Attempting to configure the wireless interface. Try: 0
ESSID is correct.
Mode is correct.
Failed to set up the interface properly. Retrying...
Attempting to configure the wireless interface. Try: 1
ESSID is correct.
Mode is correct.
Failed to set up the interface properly. Retrying...
Attempting to configure the wireless interface. Try: 2
ESSID is correct.
Mode is correct.
Failed to set up the interface properly. Retrying...
Setting wireless interface wlan1 to up.
Attempting to configure the wireless interface. Try: 0
ESSID is correct.
Mode is correct.
BSSID is correct.
Channel is correct.
Turning interface wlan1 up to continue configuration.
Probing for IP address for the mesh interface.
Traceback (most recent call last):
File "byzantium_configd.py", line 187, in
ip_in_use = subprocess.call(arping)
File "/usr/lib/python2.7/subprocess.py", line 168, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 390, in init
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1024, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

Apache2 doesn't start, Invalid Command SSLCipherSuite.

Apache2 doesn't start, bad line in /etc/apache2/conf.d/httpd-ssl.conf:

Invalid command SSLCipherSuite, perhaps misspelled or defined by a module
not included in the server configuration.

Line in question:

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

Known-good line below it (commented out for reference):

SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5

Package qwebirc.

Debian Wheezy doesn't seem to have a QwebIRC package. I think we'll have to make our own .deb for it, and add the custom config file to Puppet.

keep some /etc/network/interfaces lines

some chipsets need help getting the right drivers and the lines like:

interface=wlan0 # The interface to listen on
driver=nl80211

may be required for the wireless to work.
other lines may need to be preserved but i don't know what they are at the moment

Automated Install Script Fails

I created a brand new raspian install on a 4-gig SD card, expanded the filesystem, and ran the curl -s http://byzantium.github.io/ByzPi/install.sh | bash command to perform the 'effortless' and 'automated' install of ByzPi:

Installing the ByzPi puppet module.
Applying the ByzPi configuration.
Failed to parse template /home/pi/ByzPi/puppet-etc/modules/byzpi/templates/etc/stunnel:
Filepath: /usr/lib/ruby/vendor_ruby/puppet/parser/templatewrapper.rb
Line: 84
Detail: Is a directory - /home/pi/ByzPi/puppet-etc/modules/byzpi/templates/etc/stunnel
at /etc/puppet/modules/byzpi/manifests/init.pp:44 on node meshpi.foo.bar
Applying the byzpi configuration failed.

Nice work on hitting the milestone :)

Kiosk mode

kiosk mode for the default gui so that people can access the webgui and or use the node as a comms kiosk etc. the raspi is a tight platform for a full desktop so if we use just bare X11 and a web browser we can help keep the ram and threads down.

treat git tags as commits not branches

git checkout only works if they have the tag locally already. git clone doesn't grab tags so it craps itself when the installer tries to checkout the version tag in an existing repo.
see branch install-sh-issues install.sh

Fix compatibility with Commotion Wireless.

R1 of the Commotion Wireless firmware made some incompatible changes to their configuration that we need to suss out and take into account in Byzantium.

  • All Commotion instances now pick IP addresses from RFC-6958 (Carrier Grade NAT address block) - 100.64/10
  • Each Commotion instance's client network comes from RFC-1918: 10/8
  • It no longer uses a default set of wireless settings. When Commotion nodes are first started up, they have to be configured.
  • BSSIDs for the mesh network are no longer hardcoded, they're deterministically generated. It's now a hash of the ESSID and wireless channel the node is configured for.

Source: https://commotionwireless.net/blog/commotion-r1-breaking-changes

Disable SSH server in ByzPi image.

It would be bad if the SSH daemon was running by default on ByzPi, because Raspbian comes with a known (and sudo-enabled) set of login credentials. Modify the Puppet manifest to turn it off by default.

Invalid command '<Directory', perhaps misspelled or defined by a module not included in the server configuration

Please help me to solve this error
sudo service apache2 reload
Syntax error on line 8 of /etc/apache2/sites-enabled/default-ssl.conf:
Invalid command '<Directory', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
...fail!
administrator@ratticdb:/opt/apps/RatticWeb$ sudo nano default-ssl.conf
administrator@ratticdb:/opt/apps/RatticWeb$ sudo service apache2 reload
Syntax error on line 8 of /etc/apache2/sites-enabled/default-ssl.conf:
Invalid command '<Directory', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
...fail!

Pick a new IRC server.

ngircd isn't available in the Wheezy repositories. We need to pick a new IRC server daemon, configure it for qwebirc, and get the config file we write into Git and the Puppet script.

We might have to package and install qwebirc, too.

ByzPi:byzantium_configd.py not working.

In "Linux raspberrypi 5.15.32-v7+ #1538 SMP Thu Mar 31 19:38:48 BST 2022 armv7l GNU/Linux"

I have been trying to set Byzpi on my device it always fails while attempting to configure the wireless interface on digging a little I found that the command “iwconfig wlan0 mode ad-hoc” was failing with the error “devices or resources are busy”. Since it does not switch into ad-hoc mode.

If you get any solution, please share it.

Contents of olsrd.conf file persist between boots.

We originally designed Byzantium Linux to not assume persistent storage.

ByzPi is a different matter - if the /etc/olsrd/olsrd.conf file is altered (say, a gateway route is appended) that Hna4 route will persist between reboots, possibly erroneously.

Reset the state of the olsrd.conf file at boot.

install.sh script needs a little sanity checking.

The install.sh script does what it's supposed to, and does it well. However, in the event of a re-run (say, when testing), it tries to check out the ByzPi/ repo again, and if it already exists it ABENDs. A conditional that checks for its presence or absence and runs either git clone or git pull as appropriate would fix this.

Groundstation is not installed

Our rc.local tries to start Groundstation near the end of the script, but it fails because Groundstation is not installed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.