Difference between pages "Mesh/WalkThrough" and "Mesh/Minutes"

(Difference between pages)
Jump to navigation Jump to search
3,360 bytes removed ,  15:42, 23 April 2017
no edit summary
 
 
Line 1: Line 1:
This a walkthrough for flashing a node with the sudomesh firmware and then configuring it with makenode. At the end of the walkthrough, you'll be able to plug in your router and join the mesh. The walkthrough assumes you're using a linux-ish (OSX should mostly work) OS and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The basic idea of getting a node (router) on the mesh consists of flashing (copying files to [https://en.wikipedia.org/wiki/Flash_memory flash memory]) an operating system to the node and then using a software configurator finish setup.
{| class="wikitable sortable collapsible"
 
! colspan="2"| Past Meeting Notes
If you do not want to use a per-compiled OpenWRT image, you can build your own from scratch using this how to: [[Mesh/Build An OpenWRT Image]]
 
Before you flash your router it is recommended that you read the [[Home and extender nodes#Home_nodes|Home node info]] to find out the router works as a mesh node.
 
= Preparing Your Laptop =
 
You will need to install the dependencies for the [https://github.com/sudomesh/makenode makenode] utility developed by the SudoMesh project.
 
== Linux ==
 
If you are working with a fresh installation of Ubuntu Linux, you will need to install a few pieces of software.
To install them, open your terminal and type the following commands.
 
  sudo apt-get install nodejs ([https://github.com/creationix/nvm nvm] is preferable for installing nodejs and npm)
  sudo apt-get install npm
  sudo apt-get install git
  sudo apt-get install dropbear
 
(arch also works, though you may have to build dropbear from its [https://github.com/mkj/dropbear source])
 
== Mac ==
 
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.
 
  brew install nodejs
  brew install git
  brew install npm
  brew install dropbear
  brew install gnu-tar
  brew install fakeroot
 
== Windows ==
 
For the moment, Windows users will have to figure out some of these steps on their own. Completing this process from a Windows machine has not been tested.
 
* Install [https://nodejs.org/en/download/ NodeJS ] - Make sure to install the 'npm package manager', and select to 'Add to Path'
* Install [https://git-scm.com/download/win Git]
* Install Dropbear (no known ports for Windows)
 
= Install OpenWRT on your Router =
 
== Download the Sudomesh OpenWRT Image File For a Supported Router ==
 
Sudomesh firmware images can be found at [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx/ https://builds.sudomesh.org/builds/chaos_calmer/ar71xx/]
 
At the moment, we are supporting the following routers for home nodes:
 
{| class="wikitable"
! Name !! Model No. !! OpenWRT Doc !! Firmware Image
|-
|-
| TP-Link WDR3500 ||  || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin firmware image]
! data-sort-type="isoDate" | date
! class="unsortable" | comments
|-
|-
| TP-Link WDR3600 ||  || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin firmware image]
| [[Mesh/18_April_2017|2017-04-18]]
| Weekly organizing meeting
|-
|-
| TP-Link WDR4300 ||  || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin firmware image]
|-
|-
| Western Digital MyNet N600 ||  || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin firmware image]
| [[Mesh/17_April_2017|2017-04-17]]
| Annual sudo mesh board meeting
|-
|-
|  Western Digital MyNet N750 ||  || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin firmware image]
|-
|-
| [[Mesh/11_April_2017|2017-04-11]]
| Weekly organizing meeting
|-
|-
| [[Mesh/4_April_2017|2017-04-04]]
| Weekly organizing meeting
|-
|-
| [[Mesh/28_March_2017|2017-03-28]]
| Weekly organizing meeting
|-
| [[Mesh/21_March_2017|2017-03-21]]
| Weekly organizing meeting
|-
| [[Mesh/14_March_2017|2017-03-14]]
| Weekly organizing meeting
|-
| [[Mesh/07_March_2017|2017-03-07]]
| Weekly organizing meeting
|-
| [[Mesh/28_February_2017|2017-02-28]]
| Weekly organizing meeting
|-
| [[Mesh/21_February_2017|2017-02-21]]
| Weekly organizing meeting
|-
| [[Mesh/10_February_2017|2017-02-10]]
| Weekly organizing meeting
|-
| [[Mesh/07_February_2017|2017-02-07]]
| Organizing "Build Your Own Internet" Workshop
|-
| [[Mesh/05_July_2016|2016-07-05]]
| Videochat meeting with nycmesh
|-
| [[Mesh/22_June_2016|2016-06-22]]
| Weekly organizing meeting
|-
| [[Mesh/07_June_2016|2016-06-07]]
| Weekly organizing meeting
|-
| [[Mesh/23_February_2016|2016-02-23]]
| Monthly general meeting
|-
| [[Mesh/09_February_2016|2016-02-09]]
| Weekly organizing meeting
|-
| [[Mesh/02_February_2016|2016-02-02]]
| Weekly organizing meeting
|-
| [[Mesh/26_January_2016|2016-01-26]]
| Monthly general meeting
|-
| [[Mesh/27_October_2015|2015-10-27]]
| Monthly general meeting
|-
| [[Mesh/06_October_2015|2015-10-06]]
| Weekly organizing meeting
|-
| [[Mesh/29_September_2015|2015-09-29]]
| Weekly organizing meeting
|-
| [[Mesh/22_September_2015|2015-09-22]]
| Weekly organizing meeting
|-
| [[Mesh/15_September_2015|2015-09-15]]
| Second annual board meeting
|-
| [[Mesh/08_September_2015|2015-09-08]]
| Weekly organizing meeting
|-
| [[Mesh/01_September_2015|2015-09-01]]
| Monthly general meeting
|-
| [[Mesh/07_April_2015|2015-04-07]]
| Weekly organizing meeting
|-
| [[Mesh/26_March_2015|2015-03-26]]
| Weekly organizing meeting
|-
| [[Mesh/17_March_2015|2015-03-17]]
| Weekly organizing meeting
|-
| [[Mesh/10_March_2015|2015-03-10]]
| Weekly organizing meeting
|-
| [[Mesh/26_February_2015|2015-02-26]]
| Big general meeting
|-
| [[Mesh/24_February_2015|2015-02-24]]
| Hacknight
|-
| [[Mesh/19_February_2015|2015-02-19]]
| Weekly organizing meeting
|-
| [[Mesh/05_February_2015|2015-02-05]]
| Weekly organizing meeting
|-
| [[Mesh/03_February_2015|2015-02-04]]
| Hacknight
|-
| [[Mesh/29_January_2015|2015-01-29]]
| Big general meeting
|-
| [[Mesh/24_January_2015|2015-01-24]]
| Mesh mini-retreat
|-
| [[Mesh/22_January_2015|2015-01-22]]
| Weekly general meeting
|-
| [[Mesh/15_January_2015|2015-01-15]]
| Weekly general meeting
|-
| [[Mesh/30_December_2014|2014-12-30]]
| Big general meeting
|-
| [[Mesh/18_December_2014|2014-12-18]]
| Weekly general meeting
|-
| [[Mesh/13_November_2014|2014-11-13]]
| Weekly general meeting
|-
| [[Mesh/21_October_2014|2014-10-21]]
| Hacknight
|-
| [[Mesh/16_October_2014|2014-10-16]]
| Weekly general meeting
|-
| [[Mesh/09_October_2014|2014-10-09]]
| Weekly general meeting
|-
| [[Mesh/02_October_2014|2014-10-02]]
| Weekly general meeting
|-
| [[Mesh/25_September_2014|2014-09-25]]
| Big general meeting
|-
| [[Mesh/28_August_2014|2014-08-28]]
| Big general meeting
|-
| [[Mesh/21_August_2014|2014-08-21]]
|
|-
| [[Mesh/07_August_2014|2014-08-07]]
|
|-
| [[Mesh/31_July_2014|2014-07-31]]
| Big general meeting
|-
| [[Mesh/17_July_2014|2014-07-17]]
|
|-
| [[Mesh/15_July_2014|2014-07-15]]
|
|-
| [[Mesh/10_July_2014|2014-07-10]]
|
|-
| [[Mesh/06_July_2014|2014-07-06]]
| Hackathon Day 2!
|-
| [[Mesh/05_July_2014|2014-07-05]]
| Hackathon Day 1!
|-
| [[Mesh/03_July_2014|2014-07-03]]
|
|-
| [[Mesh/12_June_2014|2014-06-12]]
|
|-
| [[Mesh/05_June_2014|2014-06-05]]
|
|-
|-
| [[Mesh/29_May_2014|2014-05-29]]
| General meeting
|-
| [[Mesh/27_May_2014|2014-05-27]]
|
|-
| [[Mesh/20_May_2014|2014-05-20]]
|
|-
| [[Mesh/13_May_2014|2014-05-13]]
| First Tuesday meeting ^.^
|-
| [[Mesh/08_May_2014|2014-05-08]]
|
|-
| [[Mesh/01_May_2014|2014-05-01]]
|
|-
| [[Mesh/24_April_2014|2014-04-24]]
| General meeting!
|-
| [[Mesh/17_April_2014|2014-04-17]]
|
|-
| [[Mesh/03_April_2014|2014-04-03]]
|
|-
| [[Mesh/27_March_2014|2014-03-27]]
|
|-
| [[Mesh/20_March_2014|2014-03-20]]
|
|-
| [[Mesh/13_March_2014|2014-03-13]]
|
|-
| [[Mesh/27_February_2014|2014-02-27]]
|
|-
| [[Mesh/20_February_2014|2014-02-20]]
|
|-
| [[Mesh/13_February_2014|2014-02-13]]
|
|-
| [[Mesh/6_February_2014|2014-02-06]]
|
|-
| [[Mesh/30_January_2014|2014-01-30]]
|
|-
| [[Mesh/23_January_2014|2014-01-23]]
|
|-
| [[Mesh/16_January_2014|2014-01-16]]
|
|-
| 31 December - 09 January
| Holidaze Break
|-
| [[Mesh/26_December_2013|2013-12-26]]
|
|-
| [[Mesh/19_December_2013|2013-12-19]]
|
|-
| [[Mesh/12_December_2013|2013-12-12]]
|
|-
| [[Mesh/5_December_2013|2013-12-05]]
|
|-
| [[Mesh/21_November_2013|2013-11-21]]
|
|-
| [[Mesh/14_November_2013|2013-11-14]]
|
|-
| [[Mesh/07_November_2013|2013-11-07]]
|
|-
| [[Mesh/31_October_2013|2013-10-31]]
|
|-
| [[Mesh/24_October_2013|2013-10-24]]
|
|-
| [[Mesh/17_October_2013|2013-10-17]]
|
|-
| [[Mesh/10_October_2013|2013-10-10]]
|
|-
| [[Mesh/26_September_2013|2013-09-26]]
|
|-
| [[Mesh/18_September_2013|2013-09-18]]
|
|-
| [[Mesh/11_September_2013|2013-09-11]]
|
|-
| [[Mesh/4_September_2013|2013-09-04]]
|
|-
| [[Mesh/28_August_2013|2013-08-28]]
|
|-
| 07 August - 21 August
| Hack nights!
|-
| [[Mesh/31_July_2013|2013-07-31]]
|
|-
| [[Mesh/25_July_2013|2013-07-25]]
|
|-
| 18 July 2013
| Hack night: Flashing, firmware
|-
| [[Mesh/11_July_2013|2013-07-11]]
|
|-
| [[Mesh/04_July_2013|2013-07-04]]
|
|-
| [[Mesh/27_June_2013|2013-06-27]]
|
|-
| [[Mesh/20_June_2013|2013-06-20]]
|
|-
| [[Mesh/13_June_2013|2013-06-13]]
|
|-
| 30 May - 05 June
| Hack nights! Trying out some of the nicer Ubiquiti equipment we procured
|-
| [[Mesh/23_May_2013|2013-05-23]]
|
|-
| [[Mesh/09_May_2013|2013-05-09]]
|
|-
| 25 April - 02 May
| Hack nights! See wiki for documentation - principally going through <br>donated routers, flashing them with OpenWRT and installing batman-adv.
|-
| [[Mesh/18_April_2013|2013-04-18]]
|
|-
| [[Mesh/11_April_2013|2013-04-11]]
|
|-
| 28 March - 04 April
| SPRING SHIFT HIATUS
|-
| [[Mesh/21_March_2013|2013-03-21]]
|
|-
| [[Mesh/07_March_2013|2013-03-07]]
|
|-
| [[Mesh/28_February_2013|2013-02-28]]
|
|-
| [[Mesh/21_February_2013|2013-02-21]]
|
|-
| [[Mesh/14_February_2013|2013-02-14]]
|
|-
| [[Mesh/7_February_2013|2013-02-07]]
|
|-
| [http://lists.sudoroom.org/pipermail/mesh/2013-January/000000.html 2013-01-31]
|
|}
|}
Download the image file for your supported router.
== Flash your Router with OpenWRT ==
There are different techniques for flashing each of the routers. Use the links above to the OpenWRT wiki and follow the instructions there to flash the router with the firmware you've downloaded.
For example, if you have a Western Digital MyNet N600, follow these instructions:
* Plug one end of the Ethernet cable into your laptop.
* Plug the other end of the Ethernet cable into one of the normal ports on the router (not the Internet/WAN port).
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.
* With the pin held down, turn on the router power button.
* Watch the front blue light - they will flash on and off a few times.
* Once the front blue is flashing, you can let go of the pin.
On your laptop edit your network settings to reflect the following:
* Network Configuration Method: Manual
* IP Address: 192.168.1.10 (some devices will only accept from this IP)
* Subnet Mask: 255.255.255.0
* Gateway: 0.0.0.0
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]
In your web browser:
* Go to [http://192.168.1.1 http://192.168.1.1]
* Click 'Browse' and select the firmware file you downloaded
* Click Install
Note: Sometimes the firmware upload will not complete. After you click on 'Install' You should get a page with a countdown of 120+ seconds. If this does not occur, reboot the router with the pin reset button depressed (as noted above), and try again.
= Configuring Your OpenWRT Router to Work on the Sudomesh Network =
A freshly flashed node will be setup on 172.22.0.1. You will need to configure your machine to use the following network settings to communicate with the node.
* IP address: 172.22.0.9
* Subnet mask:  255.255.255.0
* Gateway: 0.0.0.0
See Network Configuration Guides: [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20Linux Linux] [https://sudoroom.org/wiki/Mesh/Network%20Configuration%20for%20MacOS%20X Mac]
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to https://172.22.0.1
if the flash was successfull you should be brought to the following screen:
[[File:DefaultUI.png|thumb|center|upright=2]]
After you have successfully flashed your router with OpenWRT, you will need to use [https://github.com/sudomesh/makenode makenode] to complete the setup. makenode registers your node on the SudoMesh network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.
From your terminal, run the following:
  git clone https://github.com/sudomesh/makenode.git
  cd makenode
  npm install
  cp settings.js.example settings.js
The default settings in <tt>settings.js</tt> should suffice in most cases, but if you need to make changes, do them in <tt>settings.js</tt>.
== Configuring the Home Node ==
Make sure the Ethernet cable is connected to the 4th port on the router.
Once your network configuration is refreshed, use the following command to run the script and configure your node:
  ./makenode.js
If you get the error "no such file or directory", open a new terminal and run this command to ensure that <tt>node</tt> points to your NodeJS executable:
  sudo ln -s nodejs node
In the new terminal, return to the 'makenode' source code directory and try again:
  npm install
  ./makenode.js
Now the configuration wizard will ask you a number of questions:
* "enter valid hostname" - this is the host name when you SSH into the node - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]
* "max share upstream bandwidth" - how much of your home network upstream bandwidth you wish to share with the mesh network, measured in kbps (kilobits per second). So if you'd like to share 10mbps (megabits per second) enter "10000" or if you want to share 256kbps (kilobytes per second) enter "256". You may want to run a [http://www.dslreports.com/speedtest speed test] to find out how much bandwidth you have and determine how much you want to share.
* "max share downstream bandwidth" - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. "512" would share 512 kbps
* "admin user password" - this is the password for for changing wifi settings on the node
* "root user password" - this is the root password for the router - Make sure that your root password is strong! If you don't enter a root password, a strong one will be generated and will be logged to screen. It's generally preferable to not use the root password at all and instead add an ssh key to the device - see details below.
* "wifi transmit power" - set this to 23 dBm (which is equivalent to 200 milliwatts)
* "operator name" - this is the name that the network admins can associate with the node - so use a unique name like your first name or location name
* "private wifi SSID" - this is the wireless SSID name for the private wireless network that will run on this router
* "private wifi password" - this is the password for the private wireless network that will run on this router - it must be at least 8 characters long
== Testing ==
After you're finished with the makenode configuration, your home node should be available for connections via your private WiFi SSID. Additionally the public SSID 'peoplesopen.net' will be available.
A third interface named 'pplsopen.net-node2node' will be detectable as well. This is the interface used for the nodes to mesh with each other.
At this point you're setup. For more information on using your node, such as accessing the web-based management interface, see [[Home and extender nodes#Home_nodes|Home node info]]
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]
= Flashing Extender Nodes =
If you're wanting to optionally boost the signal of your home node for a larger range, you'll want to setup an extender antenna.
See [[Mesh/Flashing extender nodes]]
1,196

edits

Navigation menu