Code Monkey home page Code Monkey logo

rgu-honours's People

Contributors

decantr avatar

Watchers

 avatar

rgu-honours's Issues

Infrastructure for updating the reporter binary on the nodes

It should be possible to push updates to the (potentially) off network node's.
This could be performed by using a NFS or HTTP share of the file and its SHA on the bridge pi, which the node's periodically check against their own to determine whether an update is needed.

This implementation is rather noisy, it would be ideal if the bridge could "tell" the nodes they need to update and check on restart if they need to in case an update announcement was made while they were offline.

Cannot connect over WiFi

Obviously there is absolutely no handling of WiFi if a second antenna is connected the software should offer the option of supplying WiFi credentials.

This will require #4 to be solved first and extend it further to select the wlan0 or wlp2s0 interfaces .

Eduroam does not assign IP's inside the BATMAN mesh

Since implementing #1 most (SOHO) networks appear to function fine. However upon testing with the eduroam network, the devices inside the mesh network do not get assigned an IP address instead issuing a self assigned 169.254.0.0/16 address.

Wrong batctl Version

Currently using version 2019.0 of batctl as provided from the debian. The current available version of batctl from the Raspbian archive is 2016.5 (see image below).

pic-window-190228-1728-36

As stated on the open-mesh website the batctl kernel version 4.14 (running on the Raspbian) requires 2017.3. As the source is provided from their repo or (batctl-2017.3.tar.gz) could be shipped and compiled on the nodes. Though this requires additional dependencies (libnl-3 and libnl-genl).

Predictable Hostname

Currently nothing is being done with the hostname.

A unique identifier needs to be set so the use of Avahi or local DNS servers can log a unique name.

Something like the hash of the time of creation for each node would give a wide range of names, for example sensor-9f9c7ac1 which could be created by prepare-sd.sh using data | md5sum | cut -c1- and suffixing that to the name (either bridge or sensor)

Handle connection type dynamically

Currently only an eth0 interface is supported. If a wired adapter is used this will cause issues, or if predictable network names is enabled interfaces will appear as enp0s1.

Secure the Mesh Network

At the very least encrypting the Mesh Network and hiding the SSID would be ideal, if WPA2 can be used that will solve this issue.

If so a way for a user to define the password will be required.

Ship as a Ubuntu Core image

Ship the project through Ubuntu Core as a snap.

This would have a number of advantages such as:

  • Security
  • Updates handled automatically
  • No need to install software after flashing the SD card
  • Smaller install size
  • Newer kernel version
  • LTS support

Use systemd instead of /etc/rc.local to start script

The current method of auto starting the setup script is through the rc.local file.

Appending to this before the exit 0 is not recomended as the file states at the top "Make sure that the script will exit 0" which we can ensure will happen if our script fails.

Ideally we would be using a systemd service to run the setup script on startup.
This has the added benefit of allowing the "wait for network" option so it only runs once the interface is up.

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.