freifunk-gluon / gluon Goto Github PK
View Code? Open in Web Editor NEWa modular framework for creating OpenWrt-based firmwares for wireless mesh nodes
Home Page: https://gluon.readthedocs.io
License: Other
a modular framework for creating OpenWrt-based firmwares for wireless mesh nodes
Home Page: https://gluon.readthedocs.io
License: Other
/etc/config/system:
config location
option latitude 0
option longitude 0
Gluon will depend on periodic jobs (e.g. autoupdater, alfred announcements). Unfortunately, there is no simple way to define such jobs from within a package.
OpenWRT provides /etc/crontabs/
for storing crontabs. In this directory one can create a crontab for a single user. Usually, there will be a file named root
containing most jobs. Within gluon almost all jobs will run as root so each package installing /etc/crontab/root
would overwrite other packages jobs.
Therefore, I think we should introduce a special crontab directory where multiple crontabs to be run as root can be stored. Suggested path: /etc/cron.d/
A special init script could just concatenate all files within said directory, put the result somewhere on the ramdisk and run a crond. This will allow other packages to place files like /etc/cron.d/autoupdater
and /etc/cron.d/alfred
without conflicts.
The new OpenWRT IPv6 stack based on odhcp6c still has a number of issues. This ticket is supposed to keep track of them.
It should be possible to enable batman-adv on ethernet ports so nodes can be connected by wire.
The autoupdater is pretty generic and should be usable on a vanilla OpenWRT, too. Therefore having the 'gluon-' prefix seems unnecessary to me.
However simply removing the gluon prefix might not be so nice either, the name "autoupdater" seems a bit too generic to get upstream in the OpenWRT package repository - a fancy, unique name for the autoupdater would be needed, I suppose.
IPv6 for autoupdate host within Freifunk Lübeck: fdef:ffc0:3dd7::ffff:0
Todo: Add keys to site-ffhl repo
With this patch, we can eliminate the next, upcoming bottleneck, the DSL upload bandwidth:
https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2013-September/010586.html
And should be enabled on the fastd VPN interface on the embedded mesh routers. That way we spare the rebroadcast of multicast payload frames arriving on the VPN interface on this same interface.
configmode should show the node's hostname in addition to the public key in order to simplify the procedure of adding new fastd keys.
Ubiquity Nanostation loco M2 (and probably Picostation M2 HP) should be flashed using the bullet-m image as it does only have one ethernet port.
This fact should end up in the documentation.
Just as gluon-configmode gluon-luci-admin should only be enabled when in configmode.
Alfred will replace batman-adv visualisation. It should announce the following information:
In addition to the planed toggling batman on LAN/WAN ports in Configmode, we should have the ability to deliver all possible networks encapsulated in a VLAN.
Use-case: There are one ethernet port devices like the ubnt bullet or nanostation. Several of these could be installed on the roof or ceilings such that they don't see each other via wlan mesh.
Then we like to mesh those devices via ethernet, so we need at least batman on the ethernet port. But we also like to distribute the client network to other devices. And connect at least one of the devices to the mesh via vpn. So we need access to all three networks.
Practical application:
In Kiel we have one facility where the client network is distributed via a in house cisco wlan router setup. Other mesh nodes are connected via cable and only one of the devices has an uplink.
What the title said.
In a case when we have a new firmware release we should have more than one point in a decentralized network to retrieve the release. Thus we can have
servers in the mesh clouds which can provide local nodes with updates in case
of intercloud disconnection issues. Last case could for example happen when we are in a mesh protocol changing phase or when we change the cyphers in the intercloud vpn.
Think this must not be ready for the first gluon release.
When the config has been changed, all packaged using it should be rebuilt automatically
After updates, some services don't run anymore.
By default the root password should be locked. It should be possible to set it from configmode (web + telnet).
In the final page of the wizard the wrong hostname is displayed. This is very confusing, especially when the back button leads in a connection fail.
Fixing the hostname in this case should fix this problem.
I've build the actual trunk for the tpwr841nd with freifunk mainz site.conf but after reboot there is no freifunk luci theme in the image.
Also any configuration results in a luci error:
No page is registered at '/admin/system/admin'.
If this url belongs to an extension, make sure it is properly installed.
If the extension was recently installed, try removing the /tmp/luci-indexcache file.
I've guess it has something to do with the merge to the packages subdirectory
regards
Knirps
Currently the firewall will block SSH on the WAN port. This is not desired in most circumstances.
Make the nodes use an NTP server in the mesh.
In case of a form error the color of the field gets red, with the current theme. Sadly the cursor is nearly the same color, so not visible anymore. This behaviour leads to confusion. Furthermore, in the case of the hostname, the error message should include information about valid character and maximal length.
Most services don't need root privileges (e.g. fastd).
Review services used by gluon and create one or more new user accounts for them.
I've uploaded a batman-adv branch based on 2013.4.0 without vis at https://github.com/NeoRaider/batman-adv-legacy/tree/no-vis . This version still forwards vis packets from other nodes, but doesn't generate vis data itself.
Merging vis information from the old nodes and the new batadv-vis data from alfred should be trivial (and has to be done anyways), do we want to use the patched version?
If there are no objections, I'll include the new version in our feeds sometime in the next days, so it gets a lot of testing. We should probably extend our vis servers to support alfred and merge the data as soon as possible so both old and new nodes are shown.
This will precompile and strip luci modules in order to reduce size.
Generic limits for arbitrary interfaces.
Bullet M, UniFi APs and Nanostation loco M have only one ethernet port (eth0). This port should be used as a WAN port. However, in the version I just built it is assigned to br-client.
ar71xx_board_name
returns unifi
/ bullet-m
fdef:ffc0:3dd7::1 and 10.130.0.1 should always point to the node that the client is connected to.
Configmode should be split into a simple and an advanced mode. Simple-mode will contain just the necessary wizards to setup a new node while the advanced mode will feature additional options geared towards special node setupts.
Simple mode features:
Advanced mode features:
Before building the packages there should be an target which verify the structure of the site.conf and aborts the build process if not valid.
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.