decantr / rgu-honours Goto Github PK
View Code? Open in Web Editor NEWMesh network deployment tools
Home Page: https://github.com/decantr/rgu-honours-doc
Mesh network deployment tools
Home Page: https://github.com/decantr/rgu-honours-doc
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
.
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 .
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.
pull the compiled go binaries from the releases.
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.
Ship the project through Ubuntu Core as a snap.
This would have a number of advantages such as:
As described in https://github.com/decantr/rgu-honours-report/issues/2 an entry needs to be added to the /etc/hosts file to allow the go program to contact the server.
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)
Installing batctl (2019.0-1) from packages.debian.org/sid/batctl works fine on both the Raspberry Pi 3B and the Pi Zero W. However attempting to run any batctl
command on the Pi Zero W will result in a segmentation fault
error.
Version's 2016.5 (from the Raspbian repo) and 2017.3 (compiled) do not share this issue.
when asking for a drive an empty string is accepted
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.
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.
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).
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).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.