Difference between pages "Mesh/Firmware" and "Freedom Paradigm"

From Sudo Room
(Difference between pages)
Jump to navigation Jump to search
(Updated firmware status)
 
 
Line 1: Line 1:
Documentation for the sudo mesh firmware.
== Beyond the money paradigm ==
=== Technicals of living without money ===
Music + Video-


= Firmware generation features =
torrentz.eu


It should be easy to generate a new firmware with the following custom config:
thepiratebay.sx


*Location and ownership information.
kickass.to
:Contact info should be saved in a secure database but maybe not on the node itself?
*Randomly generated passwords set for wpa2, admin interface and ssh.
:The SSH password should be stored securely and a couple of stickers with the wpa2 and admin password should be printed for the user.
*Web interface
*ssh key generation


[http://meshkit.freifunk.net/ Freifunk Meshkit] is pretty neat!
4shared.com :)


Wifi + Electricity = mind output formula.


We'll be dividing the image generation and node configuration aspects into two parts.
Wifi up to 40M with: http://www.instructables.com/id/Easy-to-Build-WIFI-24GHz-Yagi-Antenna/ of course, [[Mesh]] or http://www.ebay.com/bhp/wifi-yagi-antenna.


[https://github.com/sudomesh/openwrt-firmware Sudomesh Firmware Image Builder Github Repo] has our image builder and
Electricity with: http://otherpower.com/woodmill.html or http://otherpower.com/pmg2.html.


[https://github.com/sudomesh/node-configurator Sudomesh Node Configurator Github Repo] is our node configurator.
Laundry via OpAlternative: https://secure.flickr.com/photos/opalternative/11129099034/


[https://github.com/sudomesh/node-configurator Sudomesh OpenWrt Packages] has all of the sudomesh openwrt packages that we're using/we've written.
Bike Workshop


We flash nodes with the sudomesh image and then we use the node configurator to set them up with networking configs, ssh keys, etc. We also use the node-configurator to write pertinent info to a database.
Electric Car


Graywater via Oberlin: http://www.oberlin.edu/newserv/stories/living_machine_release.html


Status:
Transportation: Bike, or, always a thing.
Pretty much finished! We're testing the last few issues!


= Stuff the firmware should have =
Cell Phone: Free from a payment plan: https://www.safelinkwireless.com/Enrollment/Safelink/en/Public/NewHome.html
Free from government surveillance: Metro PCS. You don't even have to, give them a name....


<big>Ranked from most to least important</big>
Rent/Land, best* answer: "Where there is no greed, there is no struggle for ownership. Also, when everything is free, no-one needs to covet your property when they can just as easily get their own. In a free world, people will also respect each other's entitlement to safe dwelling, privacy and security, because that's how they will be taught from the earliest age - about communities, nature and how we're all connected and mutually dependent." http://www.freeworldcharter.org/en/faqs


== InternetIsDownRedirect ==
Food: An important one, many hacks. See designs, uploaded on a food page here.
In the meantime, makes sens to have folks eat @ community meals which are cooked every day, already well funded + staffed voluntarily or: second-harvested, eg we would be at a farm. but: you don't want food production to be centralized good food designs can be found on http://github.com/EM-Che/Appropriate-building-technology.


When the node doesn't have internet access, it will redirect traffic to our mesh hosted [[Mesh/Firmware#Splash_page|Splash Page]].
On a societal level: We can do away with the notion of haves and have-nots. We could unleash our full technological potential: "allow us to tap into alternative energy technologies, just imagine food produced to the highest standards with plentiful supply. Bigger and better hospitals and schools, with no budget problems. Meaningful knowledge and prosperity to all over the world. Clean energy and communications available to everyone. Space exploration. Underwater cities, who knows? Take away costs, and the only limits are our imagination, and the raw materials to make whatever we want." The Free World Charter.
 
Real: dog food (free in Berkeley), coffee (could use a, lobby somewhere LOL), cheat. Peanut butter, tobacco, and coffee pretty high up there (FOR ME, EC.)


We need something hosted on the node that can check if it has access to the internet. There's a bit of an issue where certain OSes won't connect to APs that don't have internet access. [[User:Juul|Juul]] will look into building a hack that properly manages these requests and redirects them to our node-hosted site.
Tools are set up. Repurposed a family garage. #sawzall #soil http://twitpic.com/dp4o46
This can be made and not sold, and replicated so long as it's not sold and carries the same license :) at http://creativecommons.org/


InternetIsDownRedirect may also have to fake the expected captive portal detection responses? We need to figure out if android/iOS/Mac/Windows will connect to a wifi that does not have internet access.
Free art: http://commons.wikimedia.org/
Free knowledge: Taking wikis and hackerspace pages, own them.
Free food: food pantries, a start.


Status: Implemented except for OS-specific captive portal requests.
== Freedom, to do what you want. ==
Human rights best link: http://www.hrweb.org/legal/cpr.html
Is the United States ready for Universal Human Rights? Designed at: http://www.yesmagazine.org/issues/is-the-u.s.-ready-for-human-rights/the-universal-declaration-of-human-rights
The Constitution: Bill of Rights text. https://en.wikipedia.org/wiki/United_States_Bill_of_Rights


== Splash page ==
One thing occupy really touched on is freedom of common areas, spaces. Local, state, city, and national land can be freed at all levels to really provide for the public good and learn new ways to co-exist with our environment rather than slashing it down for mono-cultured crops. One really positive public example is in the city of Seattle, where they allocated area for a food forest, which anyone can freely go and plant, tend, harvest, learn, walk through, etc.


We can capture OS specific probes in order to specifically redirect captive portal requests without affecting any other network traffic.
Another thing is that this generation is going to be upset about all the debt we are saddled with. Especially when, the Wall Street and Fed Reserve bankers have been printing money and inflating the bubble despite massive civil unrest for now more than two years. How is the future going to contend with all that the country is fucking up now? Justice, to me means we are ready for a crash as things are called out....


Features:
NDAA: NDAA illegal, violates 1st, 2nd, 4th, 5th andts-our basic civil liberties- ICCPR, Geneva Convention. via https://twitter.com/EddieMill/status/379421963279552512


* Brief info on the mesh
Surveillance: "The guardian article:" http://www.theguardian.com/world/2013/jul/31/nsa-top-secret-program-online-data
* Link to our website?
 
Status:  
 
[[User:Juul|Juul]] is in the process of implementing. He needs help with:
* Finding out captive portal request protocols for different OSes. He's covered Iphone, but needs information on other hardware
* We need UX/UI designers!
* Co-located server ($$)
 
== SSH server ==
 
The SSH server should be contactable from any interface. It should initially allow root access using a random generated password that the mesh group has and that the node owner can get and change if they are so inclined.
 
 
Status: Implemented. Mostly openwrt stock but we've added keygen features for the node-configurator
 
== BATMAN-adv ==
 
The [http://www.open-mesh.org/projects/batman-adv/wiki BATMAN-adv] protocol is the mesh protocol. It's an application that we're installing onto OpenWRT and configured with [http://downloads.open-mesh.org/batman/manpages/batctl.8.html batman-ctl].
 
Status: Implemented
 
== Multiple virtual network interfaces with their own SSIDs ==
 
*One ad-hock mode, unencrypted interface for the mesh nodes, e.g. sudomesh-backchannel
*One access point mode, unencrypted interface, for non-mesh devices to connect to the mesh, e.g. sudomesh.
*One access point mode, private interface with WPA2, for the people who own the nodes. [optional]
 
Traffic on the private interface should be completely separated from traffic on the non-private interfaces unless a client connected to the private interface requests an IP on the mesh.
 
Maybe the last one is optional because some people may not need that feature (they already have another access point and they want to keep it), but then how do people administrate the router?
 
In order to serve a secure web admin config to home users, we'll probably always serve 3 APs with one private WPA encrypted home link so that users can access their admin page.
 
Status: Implemented
 
== Web admin interface ==
 
Development information should be put in [[Mesh/Firmware/Web_Admin_Development|Web Admin Dev]]. This section can remain a wish-list.
 
A very simple one-page interface. It should do at least the following:
 
*Display some set of user statistics
:Ideally we could list/graph the number of people who have associated with your mesh node.
:We could also just list/graph the up/down data of people who have been using the mesh.
:[http://lightsquid.sourceforge.net LightSquid] (used by pfSense)
 
*Set location, name, description.
:But do you want to know the location centrally as well so that you can display nodes on the map? Will people enter this information twice or will you pull this information from nodes and then display on the map? Same for name and description. I would suggest that information is stored only once. In your case on the node itself. So probably you can then pull this information through nodewatcher scripts on nodes and then display nodes the map. Just really should not require people to enter or maintain information on two places because it desyncs very fast. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)
*Let people select how much bandwidth they share.
:They always share 100% when they're not using the connection themselves.
::This works if people are using their private SSIDs on the node. But if the node is connected to their existing home network you might not easily configure such sharing. But maybe there is a way to detect that host network is free and can limits can be increased. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)
:Do any ISPs have bandwidth caps around here? If so, let people specify how many MB to share per month.
:Maybe also a button for temporary increase limits (make them more restrictive) which are then after some time automatically restored.
*Let people change the admin password and the private wifi wpa2 password.
:Probably private SSID as well.
*Donate / "buy routers as presents for your friends"-button.
:One idea we had (but this is probably better for splash screen) is "adopt a node". Where a neighbor who uses a node a lot and depends on the node can donate some money to keep it up, but can then give a nickname or avatar to the node. Or something. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)
 
Status: [[User:Maxb|Maxb]] is implementing. Pretty much finished. Still needs graphs, etc. but has most of the other functionality including bandwidth shaping controls.
 
Source here:
 
https://github.com/sudomesh/luci-app-peopleswifi
 
== Watchdog script ==
 
Node tests itself to see if it has connectivity, etc and resets itself if necessary. OpenWrt supports the hardware watchdog on our PicoStations without any additional hacking, yay!
 
By default the hardware watchdog will automatically hard-reset the AP if /dev/watchdog is not written to at least once every 60 seconds. A Lua library has been written to interface with the batman-adv kernel module through the batctl command line utility. We need to identify a list of conditions that require a hard-reset and work them into the Lua watchdog script in the openwrt-firmware repository.
 
The Freifunk group has an awesome watchdog setup, details: http://wiki.freifunk.net/Kamikaze/LuCI/Watchdog
 
list of possible reset conditions: high sustained load, cron goes down, sshd goes down.
 
[https://github.com/wlanslovenija/firmware-packages-opkg/tree/master/util/nodewatcher-watchdog nodewatcher watchdog]
 
Potential use of [https://en.wikipedia.org/wiki/Quilt_%28software%29 Quilt] to update nodes.
 
== QoS / bandwidth shaping ==
 
To support letting node owners select how much bandwidth they share. Allow users to block forwarded traffic based on type. There's an paper regarding [http://www.scribd.com/doc/155501125/Layer-7-Classificarion-and-Policing-in-the-PfSense layer 7 traffic shaping] too.
 
* [http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls-ipfw.html ipfirewall] (ipfw) or [http://info.iet.unipi.it/~luigi/dummynet/ netdummy]
* [http://people.freebsd.org/~mtm/ipfw-classifyd.tar.bz2 ipfw-classifyd] (used by pfSense)
* [http://l7-filter.clearfoundation.com/ l7-filter]
* [http://www.ipp2p.org/ ipp2p] (p2p filtering)
 
 
Status: [[User:Juul|Juul]] is hacking on.
 
== Internet VPN ==
 
The firmware should tunnel all Internet traffic from the mesh through a VPN server, unless this feature is specifically disabled.
 
This should not be a single VPN server, as that would be a single point of failure.
 
I suggest to use [http://wlan-si.net/blog/2012/10/29/tunneldigger-the-new-vpn-solution/ TunnelDigger]. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 21:50, 11 July 2013 (PDT)
 
Another tunneling option: [https://github.com/heyaaron/openmesher OpenMesher] [[User:jwentwistle|jwentwistle]]
 
[[Mesh/Network_topology|Network Topology]]
 
Status: [[User:Juul|Juul]] is implementing.
 
== Mesh VPN ==
 
If the mesh does not see any other nodes (and maybe even if it does?), and it has internet, then it should connect to another node or two over VPN. The easy solution is to use the same VPN servers as for the internet.
 
[[Mesh/Network_topology|Network Topology]]
 
Status: Implemented
 
== DHCP and batman-adv gateway mode ==
 
Nodes with an internet connection should run DHCP and [http://www.open-mesh.org/projects/batman-adv/wiki/Gateways batman-adv gateway mode]. We want to detect if the node can connect to a relay in which case it should configure as a batman-adv gateway server node. Otherwise they should configure as batman-adv gateway clients.
 
Staus: Implemented
 
== Location and status reporting ==
 
Something that reports location and status when polled.
 
We developed this format and easy to publish status data from nodes for our [http://dev.wlan-si.net/wiki/Nodewatcher/NodeTelemetryProvider nodewatcher]. OpenWrt packages are [https://github.com/wlanslovenija/firmware-packages-opkg/tree/master/util here]. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:02, 11 July 2013 (PDT)
 
Nice to have:
 
*Status info: How many nodes is your node connected to. Is the internet link working.
*An "I don't know what my internet bandwidth is, test it for me"-function.
*Usage statistics (so people can see how many people they helped get internet!)
:This is the most important thing! [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)
:You should add as well graphs on how much bandwidth was consumed by the node. This is useful when hosts see that their Internet is slow and believe that it was because of the node. Then they can check and see if it is really node (which often is not) or maybe just ISP has problems. Important because people like to attribute issues they have to nodes they don't understand. [[User:Mitar|Mitar]] ([[User talk:Mitar|talk]]) 22:20, 24 July 2013 (PDT)
*Let people put up a bit of info about their node / house / co-op, on a simple web page that people can access only if they're connected to that node. It could be shown as part of the splash page.
 
 
Status: Waiting for nodewatcher project to finish
 
== Intelligent Wifi Channel Switching ==
 
It would be nice to be able to have the network intelligently determine channels
 
== IPv6 support ==
 
We should have IPv6 support, but I am ok with launching the mesh with only IPv4 and adding in IPv6 later. ([[User:Juul|Juul]] ([[User talk:Juul|talk]]))
 
= Stuff the firmware could have =
 
== DNS server ==
 
Each node could run its own (caching) DNS server.
 
For now, if you're logged into the private network on a node, going to http://my.node will take you to the web admin interface
 
Status:
 
Implemented web admin URL, but no caching DNS server yet.
 
== RSSI Testing and Logging ==
 
At intervals, the nodes could conduct RSSI tests and log them with some way to compare and visualize signal strengths over time.
 
== Caching web proxy ==
 
We could use [http://www.pps.univ-paris-diderot.fr/~jch/software/polipo/ Polipo] to improve people's browsing experience. Not sure how much cpu and memory this would need. We may not be able to run it on the routers with less than 32 MB ram (e.g. the Bullet 2 HPs).
 
== Block ads and tracking ==
 
We could use e.g. [http://www.pps.univ-paris-diderot.fr/~jch/software/polipo/ Polipo] with the sources from both adblock plus and ghostery. If we implement this, it should be an optional (default off) feature that you can select on the splash page, with a "remember this" that remembers either using a cookie or using your MAC (but then we'd be logging people's MAC addresses :-S). The block should probably be time-limited (e.g. 30 days).
 
= Compatible devices =
 
We should have ready-made images for:
 
*One really cheap indoor router (with 3G usb stick support?) like [http://wiki.openwrt.org/toh/tp-link/tl-wr703n TP-Link TL-WR703N]
*One nice high-speed indoor router (300 mbps 802.11n)
*Ubiquiti hardware. Most of the AirMAX stuff.

Revision as of 12:17, 27 January 2014

Beyond the money paradigm

Technicals of living without money

Music + Video-

torrentz.eu

thepiratebay.sx

kickass.to

4shared.com :)

Wifi + Electricity = mind output formula.

Wifi up to 40M with: http://www.instructables.com/id/Easy-to-Build-WIFI-24GHz-Yagi-Antenna/ of course, Mesh or http://www.ebay.com/bhp/wifi-yagi-antenna.

Electricity with: http://otherpower.com/woodmill.html or http://otherpower.com/pmg2.html.

Laundry via OpAlternative: https://secure.flickr.com/photos/opalternative/11129099034/

Bike Workshop

Electric Car

Graywater via Oberlin: http://www.oberlin.edu/newserv/stories/living_machine_release.html

Transportation: Bike, or, always a thing.

Cell Phone: Free from a payment plan: https://www.safelinkwireless.com/Enrollment/Safelink/en/Public/NewHome.html Free from government surveillance: Metro PCS. You don't even have to, give them a name....

Rent/Land, best* answer: "Where there is no greed, there is no struggle for ownership. Also, when everything is free, no-one needs to covet your property when they can just as easily get their own. In a free world, people will also respect each other's entitlement to safe dwelling, privacy and security, because that's how they will be taught from the earliest age - about communities, nature and how we're all connected and mutually dependent." http://www.freeworldcharter.org/en/faqs

Food: An important one, many hacks. See designs, uploaded on a food page here. In the meantime, makes sens to have folks eat @ community meals which are cooked every day, already well funded + staffed voluntarily or: second-harvested, eg we would be at a farm. but: you don't want food production to be centralized good food designs can be found on http://github.com/EM-Che/Appropriate-building-technology.

On a societal level: We can do away with the notion of haves and have-nots. We could unleash our full technological potential: "allow us to tap into alternative energy technologies, just imagine food produced to the highest standards with plentiful supply. Bigger and better hospitals and schools, with no budget problems. Meaningful knowledge and prosperity to all over the world. Clean energy and communications available to everyone. Space exploration. Underwater cities, who knows? Take away costs, and the only limits are our imagination, and the raw materials to make whatever we want." The Free World Charter.

Real: dog food (free in Berkeley), coffee (could use a, lobby somewhere LOL), cheat. Peanut butter, tobacco, and coffee pretty high up there (FOR ME, EC.)

Tools are set up. Repurposed a family garage. #sawzall #soil http://twitpic.com/dp4o46 This can be made and not sold, and replicated so long as it's not sold and carries the same license :) at http://creativecommons.org/

Free art: http://commons.wikimedia.org/ Free knowledge: Taking wikis and hackerspace pages, own them. Free food: food pantries, a start.

Freedom, to do what you want.

Human rights best link: http://www.hrweb.org/legal/cpr.html Is the United States ready for Universal Human Rights? Designed at: http://www.yesmagazine.org/issues/is-the-u.s.-ready-for-human-rights/the-universal-declaration-of-human-rights The Constitution: Bill of Rights text. https://en.wikipedia.org/wiki/United_States_Bill_of_Rights

One thing occupy really touched on is freedom of common areas, spaces. Local, state, city, and national land can be freed at all levels to really provide for the public good and learn new ways to co-exist with our environment rather than slashing it down for mono-cultured crops. One really positive public example is in the city of Seattle, where they allocated area for a food forest, which anyone can freely go and plant, tend, harvest, learn, walk through, etc.

Another thing is that this generation is going to be upset about all the debt we are saddled with. Especially when, the Wall Street and Fed Reserve bankers have been printing money and inflating the bubble despite massive civil unrest for now more than two years. How is the future going to contend with all that the country is fucking up now? Justice, to me means we are ready for a crash as things are called out....

NDAA: NDAA illegal, violates 1st, 2nd, 4th, 5th andts-our basic civil liberties- ICCPR, Geneva Convention. via https://twitter.com/EddieMill/status/379421963279552512

Surveillance: "The guardian article:" http://www.theguardian.com/world/2013/jul/31/nsa-top-secret-program-online-data