<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sudoroom.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Robb</id>
	<title>Sudo Room - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://sudoroom.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Robb"/>
	<link rel="alternate" type="text/html" href="https://sudoroom.org/wiki/Special:Contributions/Robb"/>
	<updated>2026-05-13T19:36:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.2</generator>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11345</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11345"/>
		<updated>2018-06-26T23:39:56Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with Sudo Mesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by Sudo Mesh). 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 OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
Before you flash your router, it is recommended that you read the [[Home and extender nodes#Home_nodes|home node info]] to ensure your router works as a mesh node.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || '''[https://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
'''[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest]''' &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || &lt;br /&gt;
'''[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest]''' &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
'''[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest]''' &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
'''[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest]'''&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [http://builds.sudomesh.org/builds/sudowrt/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use Sudo Mesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. 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.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' 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.&lt;br /&gt;
&lt;br /&gt;
= Configure =&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.30.0.xx. You will need to configure your laptop to use the following network settings to communicate with the node:&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.30.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.30.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
== Autoconf (v.0.3.0) ==&lt;br /&gt;
[[File:Nodeports.jpg|100px|frame|right|Plug into port 3 to access the private network from your laptop. Port 2 connects to the public 'peoplesopen.net' network]] Connect your newly-flashed MyNet N600 to your existing Internet router via ethernet from your existing router's LAN port to your new node's Internet port. Wait a few minutes for your new node to connect to the Internet and obtain its private IP address, then try connecting to your unconfigured router by opening a browser and navigating to http://172.30.0.1 &lt;br /&gt;
&lt;br /&gt;
If the flash was successful you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.jpg|frame|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Here you can set the amount of downstream and upstream bandwidth you're willing to share (default is set to 4096kb, or roughly 4 megabits/second):&lt;br /&gt;
[[File:homeScreen.jpg|frame|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WifiSettings.jpg|frame|left|upright=2|Set your private SSID and password via the 'WIFi Settings' tab. NOTE: When you first set your private SSID name and hit 'Save', you will have to reconnect to the newly-named SSID using the original default password ('meshtheworld') and then reconnect again with the new password after setting it in the dashboard]] [[File:Connections.jpg|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt; If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you will not need to use makenode ([[##Makenode|instructions further down]]) after flashing the sudowrt-firmware to your router to configure it to work on People's Open Network.&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
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 peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
=== Install Dependencies ===&lt;br /&gt;
You first will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
===== OS Compatibility checklist =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Mac ====&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
==== Windows 10 (Experimental)====&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
=== Install and run makenode ===&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode -b 0.0.1&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router, and that your computer has a working internet connection (e.g. over WiFi). From a terminal, you should be able to ping the home node at 172.22.0.1 &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; arbitrary websites like github.com.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - 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 &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. 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.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your 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, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
After you're finished with the flashing and configuration, your home node should be available for connections via your private WiFi SSID. Additionally the public SSID 'peoplesopen.net' will be available. It should also be populated on the [https://peoplesopen.herokuapp.com monitor]!&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, upload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11332</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11332"/>
		<updated>2018-06-26T08:17:58Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Reconfigure your computer's network settings */  change ip of router&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). 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 OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest] [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest] &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest] &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest] &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest] &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [http://builds.sudomesh.org/builds/sudowrt/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. 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.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' 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.&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it to work on a People's Open Network &lt;br /&gt;
* unless you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers which auto configures &amp;amp; you are done. See [https://github.com/sudomesh/sudowrt-firmware/pull/132 proposal for sudowrt 0.3.0] for more info.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.30.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.30.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.30.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.30.0.1&lt;br /&gt;
You can SSH into the node as root using the password 'meshtheplanet'. If the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
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 peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode -b 0.0.1&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router, and that your computer has a working internet connection (e.g. over WiFi). From a terminal, you should be able to ping the home node at 172.22.0.1 &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; arbitrary websites like github.com.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - 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 &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. 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.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your 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, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, updload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11331</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11331"/>
		<updated>2018-06-26T08:16:29Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Reconfigure your computer's network settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). 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 OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest] [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest] &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest] &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest] &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest] &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [http://builds.sudomesh.org/builds/sudowrt/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. 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.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' 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.&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it to work on a People's Open Network &lt;br /&gt;
* unless you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers which auto configures &amp;amp; you are done. See [https://github.com/sudomesh/sudowrt-firmware/pull/132 proposal for sudowrt 0.3.0] for more info.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.30.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.30.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.30.0.1&lt;br /&gt;
You can SSH into the node as root using the password 'meshtheplanet'. If the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
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 peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode -b 0.0.1&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router, and that your computer has a working internet connection (e.g. over WiFi). From a terminal, you should be able to ping the home node at 172.22.0.1 &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; arbitrary websites like github.com.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - 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 &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. 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.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your 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, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, updload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11330</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11330"/>
		<updated>2018-06-26T08:16:09Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Reconfigure your computer's network settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). 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 OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest] [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest] &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest] &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest] &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest] &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
[https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [http://builds.sudomesh.org/builds/sudowrt/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. 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.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' 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.&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it to work on a People's Open Network &lt;br /&gt;
* unless you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers which auto configures &amp;amp; you are done. See [https://github.com/sudomesh/sudowrt-firmware/pull/132 proposal for sudowrt 0.3.0] for more info.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.30.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.30.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.22.0.1&lt;br /&gt;
You can SSH into the node as root using the password 'meshtheplanet'. If the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
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 peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode -b 0.0.1&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router, and that your computer has a working internet connection (e.g. over WiFi). From a terminal, you should be able to ping the home node at 172.22.0.1 &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; arbitrary websites like github.com.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - 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 &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. 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.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your 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, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, updload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11299</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11299"/>
		<updated>2018-06-24T02:46:43Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* makenode/Configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). 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 OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [http://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [http://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.3.0]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. 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.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' 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.&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it to work on a People's Open Network &lt;br /&gt;
* unless you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers which auto configures &amp;amp; you are done. See [https://github.com/sudomesh/sudowrt-firmware/pull/132 proposal for sudowrt 0.3.0] for more info.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.22.0.1&lt;br /&gt;
You can SSH into the node as root using the password 'meshtheplanet'. If the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
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 peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode -b 0.0.1&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router, and that your computer has a working internet connection (e.g. over WiFi). From a terminal, you should be able to ping the home node at 172.22.0.1 &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; arbitrary websites like github.com.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - 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 &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. 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.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your 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, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, updload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11298</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11298"/>
		<updated>2018-06-24T02:45:31Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Notice for (MyNet N600 only) Release 0.3.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). 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 OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [http://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [http://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.3.0]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. 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.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' 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.&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it to work on a People's Open Network &lt;br /&gt;
* unless you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] which auto configures &amp;amp; you are done. See [https://github.com/sudomesh/sudowrt-firmware/pull/132 proposal for sudowrt 0.3.0] for more info.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.22.0.1&lt;br /&gt;
You can SSH into the node as root using the password 'meshtheplanet'. If the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
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 peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode -b 0.0.1&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router, and that your computer has a working internet connection (e.g. over WiFi). From a terminal, you should be able to ping the home node at 172.22.0.1 &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; arbitrary websites like github.com.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - 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 &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. 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.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your 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, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, updload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11297</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11297"/>
		<updated>2018-06-24T02:45:01Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* makenode/Configure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). 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 OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [http://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [http://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.3.0]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. 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.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' 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.&lt;br /&gt;
&lt;br /&gt;
= Notice for (MyNet N600 only) Release 0.3.0 =&lt;br /&gt;
[https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0/ Release 0.3.0 (dispossessed)] allows a newly flashed node to retrieve an IP over its WAN connection from a [https://github.com/sudomesh/meshnode-database sudomesh/meshnode-database]. Once the node gets an IP, it configures itself to mesh with other People's Open Nodes and tunnel to a [https://github.com/sudomesh/exitnode sudomesh/exitnode]. makenode/Configure is no longer required &amp;amp; you are done installing the firmware. [https://github.com/sudomesh/sudowrt-firmware/pull/132 More information.]&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it to work on a People's Open Network &lt;br /&gt;
* unless you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] which auto configures &amp;amp; you are done. See [https://github.com/sudomesh/sudowrt-firmware/pull/132 proposal for sudowrt 0.3.0] for more info.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.22.0.1&lt;br /&gt;
You can SSH into the node as root using the password 'meshtheplanet'. If the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
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 peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode -b 0.0.1&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router, and that your computer has a working internet connection (e.g. over WiFi). From a terminal, you should be able to ping the home node at 172.22.0.1 &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; arbitrary websites like github.com.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - 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 &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. 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.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your 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, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, updload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11296</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11296"/>
		<updated>2018-06-24T02:43:37Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* makenode/Configure */  add info for release 0.3.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). 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 OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [http://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [http://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.3.0]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. 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.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' 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.&lt;br /&gt;
&lt;br /&gt;
= Notice for (MyNet N600 only) Release 0.3.0 =&lt;br /&gt;
[https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0/ Release 0.3.0 (dispossessed)] allows a newly flashed node to retrieve an IP over its WAN connection from a [https://github.com/sudomesh/meshnode-database sudomesh/meshnode-database]. Once the node gets an IP, it configures itself to mesh with other People's Open Nodes and tunnel to a [https://github.com/sudomesh/exitnode sudomesh/exitnode]. makenode/Configure is no longer required &amp;amp; you are done installing the firmware. [https://github.com/sudomesh/sudowrt-firmware/pull/132 More information.]&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it to work on a People's Open Network unless you installed unless you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] which auto configures &amp;amp; you are done. See [https://github.com/sudomesh/sudowrt-firmware/pull/132 proposal for sudowrt 0.3.0] for more info.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.22.0.1&lt;br /&gt;
You can SSH into the node as root using the password 'meshtheplanet'. If the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
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 peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode -b 0.0.1&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router, and that your computer has a working internet connection (e.g. over WiFi). From a terminal, you should be able to ping the home node at 172.22.0.1 &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; arbitrary websites like github.com.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - 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 &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. 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.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your 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, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, updload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11295</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11295"/>
		<updated>2018-06-24T02:33:46Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Notice for latest Release 0.3.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). 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 OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [http://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [http://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.3.0]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. 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.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' 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.&lt;br /&gt;
&lt;br /&gt;
= Notice for (MyNet N600 only) Release 0.3.0 =&lt;br /&gt;
[https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0/ Release 0.3.0 (dispossessed)] allows a newly flashed node to retrieve an IP over its WAN connection from a [https://github.com/sudomesh/meshnode-database sudomesh/meshnode-database]. Once the node gets an IP, it configures itself to mesh with other People's Open Nodes and tunnel to a [https://github.com/sudomesh/exitnode sudomesh/exitnode]. makenode/Configure is no longer required &amp;amp; you are done installing the firmware. [https://github.com/sudomesh/sudowrt-firmware/pull/132 More information.]&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it work on a People's Open Network.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.22.0.1&lt;br /&gt;
You can SSH into the node as root using the password 'meshtheplanet'. If the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
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 peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode -b 0.0.1&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router, and that your computer has a working internet connection (e.g. over WiFi). From a terminal, you should be able to ping the home node at 172.22.0.1 &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; arbitrary websites like github.com.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - 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 &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. 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.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your 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, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, updload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11294</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11294"/>
		<updated>2018-06-24T02:30:43Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Notice for latest Release 0.3.0 */  add (myNet only)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). 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 OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [http://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [http://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.3.0]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. 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.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' 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.&lt;br /&gt;
&lt;br /&gt;
= Notice for latest Release 0.3.0 =&lt;br /&gt;
[https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0/ Release 0.3.0 (dispossessed)] (MyNet N600 only) allows a newly flashed node to retrieve an IP over its WAN connection from a [https://github.com/sudomesh/meshnode-database sudomesh/meshnode-database]. Once the node gets an IP, it configures itself to mesh with other People's Open Nodes and tunnel to a [https://github.com/sudomesh/exitnode sudomesh/exitnode]. makenode/Configure is no longer required &amp;amp; you are done installing the firmware. [https://github.com/sudomesh/sudowrt-firmware/pull/132 More information.]&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it work on a People's Open Network.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.22.0.1&lt;br /&gt;
You can SSH into the node as root using the password 'meshtheplanet'. If the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
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 peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode -b 0.0.1&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router, and that your computer has a working internet connection (e.g. over WiFi). From a terminal, you should be able to ping the home node at 172.22.0.1 &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; arbitrary websites like github.com.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - 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 &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. 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.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your 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, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, updload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11293</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11293"/>
		<updated>2018-06-24T02:22:59Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Download/Build */  added link to dispossessed firmware&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). 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 OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [http://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [http://builds.sudomesh.org/builds/sudowrt/dispossessed/0.3.0/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.3.0]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. 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.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' 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.&lt;br /&gt;
&lt;br /&gt;
= Notice for latest Release 0.3.0 =&lt;br /&gt;
[https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0/ Release 0.3.0 (dispossessed)] allows a newly flashed node to retrieve an IP over its WAN connection from a [https://github.com/sudomesh/meshnode-database sudomesh/meshnode-database]. Once the node gets an IP, it configures itself to mesh with other People's Open Nodes and tunnel to a [https://github.com/sudomesh/exitnode sudomesh/exitnode]. makenode/Configure is no longer required &amp;amp; you are done installing the firmware. [https://github.com/sudomesh/sudowrt-firmware/pull/132 More information.]&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it work on a People's Open Network.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.22.0.1&lt;br /&gt;
You can SSH into the node as root using the password 'meshtheplanet'. If the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
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 peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode -b 0.0.1&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router, and that your computer has a working internet connection (e.g. over WiFi). From a terminal, you should be able to ping the home node at 172.22.0.1 &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; arbitrary websites like github.com.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - 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 &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. 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.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your 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, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, updload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11292</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11292"/>
		<updated>2018-06-24T02:08:18Z</updated>

		<summary type="html">&lt;p&gt;Robb: add section about autoconf for dispossessed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations on choosing to become part of a People's Open Network! This is a walkthrough for flashing a node (a home router) with the SudoMesh's sudowrt-firmware (a custom build of OpenWRT) and then configuring it with makenode (a custom javascript tool developed by SudoMesh). 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 OS (mac OSX should work also) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The general idea of building your own mesh node consists of three steps, [[#Download/Build|downloading or compiling]] custom firmware, [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory flash memory]), and [[#makenode/Configure|configuring the node]] to function as part of a mesh (with a software tool such as makenode).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Download/Build =&lt;br /&gt;
&lt;br /&gt;
Now that you have a node, you will probably want to learn how to flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. &lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3500 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3500 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N750 || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || &lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin latest] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.0] [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2]&lt;br /&gt;
[https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.3]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Builds for other routers can be found on our [https://builds.sudomesh.org/builds/sudowrt/fledgling/0.2.0/ar71xx/ builds server] or on  [https://doi.org/10.5281/zenodo.1205601 zenodo], though there is no guarantee the firmware will work with any given router. For release notes, please go to our [https://github.com/sudomesh/sudowrt-firmware/releases github release pages].&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can build your own copy of the firmware images by following the guide in the [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware source].&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a SudoMesh's OpenWRT image, you can also install [https://downloads.openwrt.org/ a standard OpenWRT] release and configure it from scratch.&lt;br /&gt;
&lt;br /&gt;
= Flash/Upload =&lt;br /&gt;
&lt;br /&gt;
Once you have a copy of the sudowrt-firmware intended for your router, you can proceed with flashing it to your router. 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.&lt;br /&gt;
&lt;br /&gt;
For convenience, if you have a Western Digital MyNet N600 or N750, follow these instructions:&lt;br /&gt;
&lt;br /&gt;
== Reset your new N750/N600 router ==&lt;br /&gt;
* Plug one end of the Ethernet cable into your laptop.&lt;br /&gt;
* Plug the other end of the Ethernet cable into one of the normal ports (LAN) on the router (not the Internet/WAN port).&lt;br /&gt;
* With the router plugged in and power turned off, push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, turn on the router power button.&lt;br /&gt;
* Watch the front blue light - they will flash on and off a few times.&lt;br /&gt;
* Once the front blue is flashing, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
== Configure your computer's network settings ==&lt;br /&gt;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Manager Method: Manual&lt;br /&gt;
* IP Address: 192.168.1.10 (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: 255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0 (Or leave blank)&lt;br /&gt;
&lt;br /&gt;
You can also use the commands:&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 192.168.1.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
See Network Configuration Guides: [[Mesh/Network%20Configuration%20for%20Linux | Linux]], [[Mesh/Network%20Configuration%20for%20MacOS%20X | Mac]]&lt;br /&gt;
&lt;br /&gt;
== Upload sudowrt-firmware ==&lt;br /&gt;
In your web browser:&lt;br /&gt;
&lt;br /&gt;
* Go to [http://192.168.1.1 http://192.168.1.1], if the reset was successful, you should see the following page:&lt;br /&gt;
[[File:Screenshot from 2017-04-04 18-27-09.png|thumb|center|upright=2]]&lt;br /&gt;
* Click 'Browse' and select the firmware file you downloaded&lt;br /&gt;
* Click Upload and you will be taken to an exciting countdown timer:&lt;br /&gt;
[[File:Screenshot from 2017-04-02 17-20-51.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
Note: Sometimes the firmware upload will not complete. After you click on 'Upload' 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.&lt;br /&gt;
&lt;br /&gt;
= Notice for latest Release 0.3.0 =&lt;br /&gt;
[https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0/ Release 0.3.0 (dispossessed)] allows a newly flashed node to retrieve an IP over its WAN connection from a [https://github.com/sudomesh/meshnode-database sudomesh/meshnode-database]. Once the node gets an IP, it configures itself to mesh with other People's Open Nodes and tunnel to a [https://github.com/sudomesh/exitnode sudomesh/exitnode]. makenode/Configure is no longer required &amp;amp; you are done installing the firmware. [https://github.com/sudomesh/sudowrt-firmware/pull/132 More information.]&lt;br /&gt;
&lt;br /&gt;
= makenode/Configure =&lt;br /&gt;
After flashing sudowrt-firmware to your router you will need to configure it work on a People's Open Network.&lt;br /&gt;
&lt;br /&gt;
== Reconfigure your computer's network settings ==&lt;br /&gt;
A freshly flashed node automatically sets its IP address to 172.22.0.1. You will need to configure your laptop to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.10 &lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
Or use the commands&lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; down &lt;br /&gt;
  sudo ip addr add 172.22.0.10/24 dev &amp;lt;eth_interface&amp;gt; &lt;br /&gt;
  sudo ip link set &amp;lt;eth_interface&amp;gt; up&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;eth_interface&amp;gt; is the name of your ethernet interface found using `ip addr` (common names include eth0, enp3s0, ...)&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to http://172.22.0.1&lt;br /&gt;
You can SSH into the node as root using the password 'meshtheplanet'. If the flash was successfull you should be brought to the following screen:&lt;br /&gt;
&lt;br /&gt;
[[File:Peoplesopen-dash.png|thumb|center|upright=2]]&lt;br /&gt;
&lt;br /&gt;
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 peoplesopen network, resulting in the assignment of a 64 IPv4 address subnet to your node, in addition to applying basic configuration.&lt;br /&gt;
&lt;br /&gt;
== Preparing your laptop for makenode ==&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for [https://github.com/sudomesh/makenode makenode].&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of one of the operating systems listed in the compatibility checklist, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and enter the following commands.&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install curl git dropbear&lt;br /&gt;
  curl -o- ht&amp;lt;span&amp;gt;tps://&amp;lt;/span&amp;gt;raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash&lt;br /&gt;
  export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot;  # or you can close and reopen your terminal before using nvm&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
&lt;br /&gt;
==== OS Compatibility checklist ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! OS !! Compatible !! Link to ISO !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 16.04 LTS || yes || http://releases.ubuntu.com/16.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04 LTS || please verify || http://releases.ubuntu.com/14.04/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9.3 Stretch || yes || https://www.debian.org/distrib/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8.1 Jessie || yes || https://www.debian.org/releases/jessie/debian-installer/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || yes || https://www.archlinux.org/download/ || you may have to build dropbear from [https://github.com/mkj/dropbear source]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
&lt;br /&gt;
Install the [http://brew.sh/ Homebrew] package manager, then install the required binaries.&lt;br /&gt;
&lt;br /&gt;
  brew install nodejs&lt;br /&gt;
  brew install git&lt;br /&gt;
  brew install npm&lt;br /&gt;
  brew install dropbear&lt;br /&gt;
  brew install gnu-tar&lt;br /&gt;
  brew install fakeroot&lt;br /&gt;
  brew install iproute2mac&lt;br /&gt;
&lt;br /&gt;
=== Windows 10 (Experimental)===&lt;br /&gt;
&lt;br /&gt;
'''Note: Windows is not currently recommened for setting up a node due to Dropbear not supporting Windows. What follows is instructions for Windows Subsytem for Linux.'''&lt;br /&gt;
&lt;br /&gt;
Due to Dropbear requirements your best bet is to use [[Windows Subsystem for Linux]] (WSL) and follow the instructions for Linux with additional instructions to get WSL set up. Follow the instructions for [https://docs.microsoft.com/en-us/windows/wsl/install-win10 installing] WSL on your Windows 10 PC. For now Ubuntu has been tested and appears to work. SUSE and other WSL flavors have not been tested.&lt;br /&gt;
&lt;br /&gt;
Once WSL is installed. Install dependencies (assuming Ubuntu).&lt;br /&gt;
&lt;br /&gt;
  sudo apt update&lt;br /&gt;
  sudo apt install python&lt;br /&gt;
  sudo apt install make&lt;br /&gt;
  sudo apt install build-essential&lt;br /&gt;
&lt;br /&gt;
WSL doesn't fully support SYSV IPC so fakeroot needs to be rebuilt using tcp.&lt;br /&gt;
&lt;br /&gt;
  sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp&lt;br /&gt;
&lt;br /&gt;
Follow Linux [[Mesh/WalkThrough#Linux | instructions]] for installing Dropbear and dependencies.&lt;br /&gt;
&lt;br /&gt;
== Install and run makenode ==&lt;br /&gt;
&lt;br /&gt;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode -b 0.0.1&lt;br /&gt;
  cd makenode&lt;br /&gt;
  npm install&lt;br /&gt;
  cp settings.js.example settings.js&lt;br /&gt;
&lt;br /&gt;
The default settings in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt; should suffice in most cases, but if you need to make changes, do them in &amp;lt;tt&amp;gt;settings.js&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router, and that your computer has a working internet connection (e.g. over WiFi). From a terminal, you should be able to ping the home node at 172.22.0.1 &amp;lt;b&amp;gt;and&amp;lt;/b&amp;gt; arbitrary websites like github.com.&lt;br /&gt;
&lt;br /&gt;
Once your network configuration is refreshed, use the following command to run the script and configure your node:&lt;br /&gt;
&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - name of the box, will only be seen when you SSH into the router - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&lt;br /&gt;
* &amp;quot;max share upstream bandwidth&amp;quot; - 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 &amp;quot;10000&amp;quot; or if you want to share 256kbps (kilobits per second) enter &amp;quot;256&amp;quot;. 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.&lt;br /&gt;
* &amp;quot;max share downstream bandwidth&amp;quot; - how much of your home network upstream bandwidth you wish to share with the mesh network - eg. &amp;quot;512&amp;quot; would share 512 kbps&lt;br /&gt;
* &amp;quot;admin user password&amp;quot; - used to log into the admin dashboard where you can modify some settings at http://172.22.0.1 (if on wired connection) or http://172.30.0.1 (if on private wifi network)&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - used to SSH into the router so you modify files and manually configure your 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, ssh keys are stored in /etc/dropbear/authorized_keys.&lt;br /&gt;
* &amp;quot;wifi transmit power&amp;quot; - set this to 23 dBm (which is equivalent to 200 milliwatts)&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - name of the private wireless network that can be used to administer this router. It will be publicly visible so pick something amusing or descriptive.&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - password for the private wireless network named in the previous step. It's the one you'll want to give to friends, so come up with something amusing or memorable. Note: it must be at least 8 characters long.&lt;br /&gt;
* &amp;quot;operator name&amp;quot; - name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;Operator email&amp;quot; - email that network admis can contact you at&lt;br /&gt;
* &amp;quot;Expected node address (optional)&amp;quot; - address location of node&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
For more technical details on the internals of the home node, see the [[Mesh/Technical_Overview]]&lt;br /&gt;
&lt;br /&gt;
For more in depth testing procedures, see our [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md mesh node operator's manual].&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If you get the error &amp;quot;no such file or directory&amp;quot;, open a new terminal and run this command to ensure that &amp;lt;tt&amp;gt;node&amp;lt;/tt&amp;gt; points to your NodeJS executable:&lt;br /&gt;
&lt;br /&gt;
  sudo ln -s nodejs node&lt;br /&gt;
&lt;br /&gt;
In the new terminal, return to the 'makenode' source code directory and try again:&lt;br /&gt;
&lt;br /&gt;
  npm install&lt;br /&gt;
  ./makenode.js&lt;br /&gt;
&lt;br /&gt;
= Flashing TP-Link Routers =&lt;br /&gt;
If you happen to come across a TP-Link router, such as a WDR4300, you may discover that the above instructions absolutely do not work. This is especially true if the router has previously been flashed with the sudowrt firmware (or any kind of OpenWRT or DD-WRT?). If you find yourself attempting to reflash a TP-Link router, you will first need to reset the router to its factory default firmware. Luckily, redconfetti has provided instructions on how to do this, http://www.rubycoloredglasses.com/2016/04/tp-link-wdr4300-recovery/ (TODO, test/update these instructions and copy them to this wiki)&lt;br /&gt;
&lt;br /&gt;
Next, updload the sudort-firmware manually through the router's gui? Presumably, I haven't gotten that far yet...&lt;br /&gt;
&lt;br /&gt;
After that, makenode should just work right?&lt;br /&gt;
&lt;br /&gt;
There also exists something called tp-flasher, https://github.com/sudomesh/tp-flasher. However, it is highly recommended that you avoid using this because there is a very good chance you will brick your router if you use it incorrectly. Of course, we don't want to discourage anyone from improving tp-flasher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you would like to make long distance point-to-point connections between two or more home nodes, you'll want to setup an extender node (a roof mounted antenna).&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10808</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10808"/>
		<updated>2017-10-26T08:47:30Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Downgrading to earlier AirOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Anything with version 5.6 of AirOS and above needs to be downgraded to an earlier AirOS version before you can flash it with OpenWRT. If you don't know if you need to do this then proceed to the next section (Flash the Extender Node) and come back here if you get an error saying &amp;quot;Firmware check failed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you get this error DO NOT try to flash sudowrt/openwrt through the AirOS web interface. It will succeed and you will be stuck with a partially working system (all changes lost on every reboot) and no easy way to get it fully working.&lt;br /&gt;
&lt;br /&gt;
The solution is to use the built-in AirOS web UI to upload a version 5.5 of AirOS. This will downgrade the bootloader to a point where it's compatible with sudowrt/openwrt. Here's how:&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the following method, use command-line method.&lt;br /&gt;
&lt;br /&gt;
* Download the [http://home.pilsfree.net/morce/Firmware/UBNT/XW.v5.5.10.bin v5.5 AirOS firmware]&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Power on the router.&lt;br /&gt;
* Wait for a couple of minutes.&lt;br /&gt;
* Ensure you're not connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if you're unsure.&lt;br /&gt;
* In your browser go to http://192.168.1.20&lt;br /&gt;
* Log in using the credentials username: ubnt and password: ubnt&lt;br /&gt;
* Click the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the XW.v5.5.10.bin file that you downloaded earlier.&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot before proceeding to flash sudowrt as described in the next section.&lt;br /&gt;
&lt;br /&gt;
command-line method:&lt;br /&gt;
&lt;br /&gt;
$ ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
&lt;br /&gt;
$ scp /''path''/''to''/''firmware''/XM.v5.5.11.28002.150723.1344.bin  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
&lt;br /&gt;
$ ssh ubnt@192.168.1.20 (password is ubnt)&lt;br /&gt;
&lt;br /&gt;
$ /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
$ :)&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10807</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10807"/>
		<updated>2017-10-26T08:46:03Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Downgrading to earlier AirOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Anything with version 5.6 of AirOS and above needs to be downgraded to an earlier AirOS version before you can flash it with OpenWRT. If you don't know if you need to do this then proceed to the next section (Flash the Extender Node) and come back here if you get an error saying &amp;quot;Firmware check failed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you get this error DO NOT try to flash sudowrt/openwrt through the AirOS web interface. It will succeed and you will be stuck with a partially working system (all changes lost on every reboot) and no easy way to get it fully working.&lt;br /&gt;
&lt;br /&gt;
The solution is to use the built-in AirOS web UI to upload a version 5.5 of AirOS. This will downgrade the bootloader to a point where it's compatible with sudowrt/openwrt. Here's how:&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the following method, use command-line method.&lt;br /&gt;
&lt;br /&gt;
* Download the [http://home.pilsfree.net/morce/Firmware/UBNT/XW.v5.5.10.bin v5.5 AirOS firmware]&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Power on the router.&lt;br /&gt;
* Wait for a couple of minutes.&lt;br /&gt;
* Ensure you're not connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if you're unsure.&lt;br /&gt;
* In your browser go to http://192.168.1.20&lt;br /&gt;
* Log in using the credentials username: ubnt and password: ubnt&lt;br /&gt;
* Click the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the XW.v5.5.10.bin file that you downloaded earlier.&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot before proceeding to flash sudowrt as described in the next section.&lt;br /&gt;
&lt;br /&gt;
command-line method:&lt;br /&gt;
&lt;br /&gt;
$ ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
&lt;br /&gt;
$ scp /&amp;quot;&amp;quot;path&amp;quot;&amp;quot;/&amp;quot;&amp;quot;to&amp;quot;&amp;quot;/&amp;quot;&amp;quot;firmware&amp;quot;&amp;quot;/XM.v5.5.11.28002.150723.1344.bin  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
&lt;br /&gt;
$ ssh ubnt@192.168.1.20 (password is ubnt)&lt;br /&gt;
&lt;br /&gt;
$ /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
$ :)&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10806</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10806"/>
		<updated>2017-10-26T08:29:26Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Downgrading to earlier AirOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Anything with version 5.6 of AirOS and above needs to be downgraded to an earlier AirOS version before you can flash it with OpenWRT. If you don't know if you need to do this then proceed to the next section (Flash the Extender Node) and come back here if you get an error saying &amp;quot;Firmware check failed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you get this error DO NOT try to flash sudowrt/openwrt through the AirOS web interface. It will succeed and you will be stuck with a partially working system (all changes lost on every reboot) and no easy way to get it fully working.&lt;br /&gt;
&lt;br /&gt;
The solution is to use the built-in AirOS web UI to upload a version 5.5 of AirOS. This will downgrade the bootloader to a point where it's compatible with sudowrt/openwrt. Here's how:&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the following method, use command-line method.&lt;br /&gt;
&lt;br /&gt;
* Download the [http://home.pilsfree.net/morce/Firmware/UBNT/XW.v5.5.10.bin v5.5 AirOS firmware]&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Power on the router.&lt;br /&gt;
* Wait for a couple of minutes.&lt;br /&gt;
* Ensure you're not connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if you're unsure.&lt;br /&gt;
* In your browser go to http://192.168.1.20&lt;br /&gt;
* Log in using the credentials username: ubnt and password: ubnt&lt;br /&gt;
* Click the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the XW.v5.5.10.bin file that you downloaded earlier.&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot before proceeding to flash sudowrt as described in the next section.&lt;br /&gt;
&lt;br /&gt;
command-line method:&lt;br /&gt;
&lt;br /&gt;
$ ssh-keygen -f &amp;quot;/home/yourusername/.ssh/known_hosts&amp;quot; -R 192.168.1.20&lt;br /&gt;
&lt;br /&gt;
$ scp /path/to/firmware/XM.v5.5.11.28002.150723.1344.bin  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
&lt;br /&gt;
$ ssh ubnt@192.168.1.20 (password is ubnt)&lt;br /&gt;
&lt;br /&gt;
$ /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
$ :)&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10805</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10805"/>
		<updated>2017-10-26T08:25:04Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Downgrading to earlier AirOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Anything with version 5.6 of AirOS and above needs to be downgraded to an earlier AirOS version before you can flash it with OpenWRT. If you don't know if you need to do this then proceed to the next section (Flash the Extender Node) and come back here if you get an error saying &amp;quot;Firmware check failed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you get this error DO NOT try to flash sudowrt/openwrt through the AirOS web interface. It will succeed and you will be stuck with a partially working system (all changes lost on every reboot) and no easy way to get it fully working.&lt;br /&gt;
&lt;br /&gt;
The solution is to use the built-in AirOS web UI to upload a version 5.5 of AirOS. This will downgrade the bootloader to a point where it's compatible with sudowrt/openwrt. Here's how:&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the following method, use command-line method.&lt;br /&gt;
&lt;br /&gt;
* Download the [http://home.pilsfree.net/morce/Firmware/UBNT/XW.v5.5.10.bin v5.5 AirOS firmware]&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Power on the router.&lt;br /&gt;
* Wait for a couple of minutes.&lt;br /&gt;
* Ensure you're not connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if you're unsure.&lt;br /&gt;
* In your browser go to http://192.168.1.20&lt;br /&gt;
* Log in using the credentials username: ubnt and password: ubnt&lt;br /&gt;
* Click the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the XW.v5.5.10.bin file that you downloaded earlier.&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot before proceeding to flash sudowrt as described in the next section.&lt;br /&gt;
&lt;br /&gt;
command-line method:&lt;br /&gt;
&lt;br /&gt;
$ scp /path/to/firmware/XM.v5.5.11.28002.150723.1344.bin  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
&lt;br /&gt;
$ ssh ubnt@192.168.1.20 (password is ubnt)&lt;br /&gt;
&lt;br /&gt;
$ /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
$ :)&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10804</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10804"/>
		<updated>2017-10-26T08:23:46Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Downgrading to earlier AirOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Anything with version 5.6 of AirOS and above needs to be downgraded to an earlier AirOS version before you can flash it with OpenWRT. If you don't know if you need to do this then proceed to the next section (Flash the Extender Node) and come back here if you get an error saying &amp;quot;Firmware check failed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you get this error DO NOT try to flash sudowrt/openwrt through the AirOS web interface. It will succeed and you will be stuck with a partially working system (all changes lost on every reboot) and no easy way to get it fully working.&lt;br /&gt;
&lt;br /&gt;
The solution is to use the built-in AirOS web UI to upload a version 5.5 of AirOS. This will downgrade the bootloader to a point where it's compatible with sudowrt/openwrt. Here's how:&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the following method, use commandline method.&lt;br /&gt;
&lt;br /&gt;
* Download the [http://home.pilsfree.net/morce/Firmware/UBNT/XW.v5.5.10.bin v5.5 AirOS firmware]&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Power on the router.&lt;br /&gt;
* Wait for a couple of minutes.&lt;br /&gt;
* Ensure you're not connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if you're unsure.&lt;br /&gt;
* In your browser go to http://192.168.1.20&lt;br /&gt;
* Log in using the credentials username: ubnt and password: ubnt&lt;br /&gt;
* Click the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the XW.v5.5.10.bin file that you downloaded earlier.&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot before proceeding to flash sudowrt as described in the next section.&lt;br /&gt;
&lt;br /&gt;
commandline method:&lt;br /&gt;
&lt;br /&gt;
$ scp /path/to/firmware/XM.v5.5.11.28002.150723.1344.bin  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
&lt;br /&gt;
$ ssh ubnt@192.168.1.20 (password is ubnt)&lt;br /&gt;
&lt;br /&gt;
$ /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
$ :)&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10802</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10802"/>
		<updated>2017-10-26T08:20:57Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Downgrading to earlier AirOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Anything with version 5.6 of AirOS and above needs to be downgraded to an earlier AirOS version before you can flash it with OpenWRT. If you don't know if you need to do this then proceed to the next section (Flash the Extender Node) and come back here if you get an error saying &amp;quot;Firmware check failed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you get this error DO NOT try to flash sudowrt/openwrt through the AirOS web interface. It will succeed and you will be stuck with a partially working system (all changes lost on every reboot) and no easy way to get it fully working.&lt;br /&gt;
&lt;br /&gt;
The solution is to use the built-in AirOS web UI to upload a version 5.5 of AirOS. This will downgrade the bootloader to a point where it's compatible with sudowrt/openwrt. Here's how:&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the following method, use commandline method.&lt;br /&gt;
&lt;br /&gt;
* Download the [http://home.pilsfree.net/morce/Firmware/UBNT/XW.v5.5.10.bin v5.5 AirOS firmware]&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Power on the router.&lt;br /&gt;
* Wait for a couple of minutes.&lt;br /&gt;
* Ensure you're not connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if you're unsure.&lt;br /&gt;
* In your browser go to http://192.168.1.20&lt;br /&gt;
* Log in using the credentials username: ubnt and password: ubnt&lt;br /&gt;
* Click the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the XW.v5.5.10.bin file that you downloaded earlier.&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot before proceeding to flash sudowrt as described in the next section.&lt;br /&gt;
&lt;br /&gt;
commandline method:&lt;br /&gt;
&lt;br /&gt;
$ scp /path/to/firmware/XM.v5.5.11.28002.150723.1344.bin  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
&lt;br /&gt;
$ ssh ubnt@192.168.1.20&lt;br /&gt;
&lt;br /&gt;
$ /sbin/fwupdate -m&lt;br /&gt;
&lt;br /&gt;
$ :)&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10800</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10800"/>
		<updated>2017-10-26T08:20:23Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Downgrading to earlier AirOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Anything with version 5.6 of AirOS and above needs to be downgraded to an earlier AirOS version before you can flash it with OpenWRT. If you don't know if you need to do this then proceed to the next section (Flash the Extender Node) and come back here if you get an error saying &amp;quot;Firmware check failed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you get this error DO NOT try to flash sudowrt/openwrt through the AirOS web interface. It will succeed and you will be stuck with a partially working system (all changes lost on every reboot) and no easy way to get it fully working.&lt;br /&gt;
&lt;br /&gt;
The solution is to use the built-in AirOS web UI to upload a version 5.5 of AirOS. This will downgrade the bootloader to a point where it's compatible with sudowrt/openwrt. Here's how:&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the following method, use commandline method.&lt;br /&gt;
&lt;br /&gt;
* Download the [http://home.pilsfree.net/morce/Firmware/UBNT/XW.v5.5.10.bin v5.5 AirOS firmware]&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Power on the router.&lt;br /&gt;
* Wait for a couple of minutes.&lt;br /&gt;
* Ensure you're not connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if you're unsure.&lt;br /&gt;
* In your browser go to http://192.168.1.20&lt;br /&gt;
* Log in using the credentials username: ubnt and password: ubnt&lt;br /&gt;
* Click the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the XW.v5.5.10.bin file that you downloaded earlier.&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot before proceeding to flash sudowrt as described in the next section.&lt;br /&gt;
&lt;br /&gt;
commandline method:&lt;br /&gt;
$ scp /path/to/firmware/XM.v5.5.11.28002.150723.1344.bin  ubnt@192.168.1.20:/tmp/fwupdate.bin&lt;br /&gt;
$ ssh ubnt@192.168.1.20&lt;br /&gt;
$ /sbin/fwupdate -m&lt;br /&gt;
$ :)&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10797</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10797"/>
		<updated>2017-10-26T06:13:47Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Downgrading to earlier AirOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Anything with version 5.6 of AirOS and above needs to be downgraded to an earlier AirOS version before you can flash it with OpenWRT. If you don't know if you need to do this then proceed to the next section (Flash the Extender Node) and come back here if you get an error saying &amp;quot;Firmware check failed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you get this error DO NOT try to flash sudowrt/openwrt through the AirOS web interface. It will succeed and you will be stuck with a partially working system (all changes lost on every reboot) and no easy way to get it fully working.&lt;br /&gt;
&lt;br /&gt;
The solution is to use the built-in AirOS web UI to upload a version 5.5 of AirOS. This will downgrade the bootloader to a point where it's compatible with sudowrt/openwrt. Here's how:&lt;br /&gt;
&lt;br /&gt;
XM.v6.0.4 (v6.0.4) firmware version does not appear to be downgradable via the following method (please write FCC with complaints, if you're bored)&lt;br /&gt;
&lt;br /&gt;
* Download the [http://home.pilsfree.net/morce/Firmware/UBNT/XW.v5.5.10.bin v5.5 AirOS firmware]&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Power on the router.&lt;br /&gt;
* Wait for a couple of minutes.&lt;br /&gt;
* Ensure you're not connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if you're unsure.&lt;br /&gt;
* In your browser go to http://192.168.1.20&lt;br /&gt;
* Log in using the credentials username: ubnt and password: ubnt&lt;br /&gt;
* Click the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box &lt;br /&gt;
* Select the XW.v5.5.10.bin file that you downloaded earlier.&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot before proceeding to flash sudowrt as described in the next section.&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10796</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10796"/>
		<updated>2017-10-25T18:44:40Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Downgrading to earlier AirOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Anything with version 5.6 of AirOS and above needs to be downgraded to an earlier AirOS version before you can flash it with OpenWRT. If you don't know if you need to do this then proceed to the next section (Flash the Extender Node) and come back here if you get an error saying &amp;quot;Firmware check failed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you get this error DO NOT try to flash sudowrt/openwrt through the AirOS web interface. It will succeed and you will be stuck with a partially working system (all changes lost on every reboot) and no easy way to get it fully working.&lt;br /&gt;
&lt;br /&gt;
The solution is to use the built-in AirOS web UI to upload a version 5.5 of AirOS. This will downgrade the bootloader to a point where it's compatible with sudowrt/openwrt. Here's how:&lt;br /&gt;
&lt;br /&gt;
* Download the [http://home.pilsfree.net/morce/Firmware/UBNT/XW.v5.5.10.bin v5.5 AirOS firmware]&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Power on the router.&lt;br /&gt;
* Wait for a couple of minutes.&lt;br /&gt;
* Ensure you're not connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if you're unsure.&lt;br /&gt;
* In your browser go to http://192.168.1.20&lt;br /&gt;
* Log in using the credentials username: ubnt and password: ubnt&lt;br /&gt;
* Click the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box (may have to change default username/password in order to Browse)&lt;br /&gt;
* Select the XW.v5.5.10.bin file that you downloaded earlier.&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot before proceeding to flash sudowrt as described in the next section.&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10795</id>
		<title>Mesh/Flashing extender nodes</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Flashing_extender_nodes&amp;diff=10795"/>
		<updated>2017-10-25T18:43:36Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Downgrading to earlier AirOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Download the Image File For a Extender Node ==&lt;br /&gt;
&lt;br /&gt;
The extender nodes that we currently support are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Notes !! OpenWRT Doc !! Firmware Image&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanostation M2 and M5 || Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanostationm5 OpenWRT Docs] || firmware: [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin pre 2015 M5 versions and all M2 versions] or [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin 2015-2016 M5 versions]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation 2 || Previous generation 802.11g (not the same as M2) || [https://wiki.openwrt.org/toh/ubiquiti/picostation2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ath25.extender-node/openwrt-ath25-ubnt2-pico2-squashfs.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Picostation M2 || || [https://wiki.openwrt.org/toh/ubiquiti/picostationm2 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobeam M2 and M5 || NBEâ€‘M2â€‘13 and NBEâ€‘M5â€‘16 work but some (earlier?) NBEâ€‘M5â€‘19 have ethernet port issues. Newer models need [[#Downgrading_to_earlier_AirOS|AirOS downgrade]] before flashing! || [https://wiki.openwrt.org/toh/ubiquiti/nanobeam OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-loco-m-xw-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Nanobridge M2 and M5 || || Same as pre-2015 Nanostation M || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Ubiquiti Bullet M2 and M5 || || [https://wiki.openwrt.org/toh/ubiquiti/bullet OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx.extender-node/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin firmware image]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Downgrading to earlier AirOS ==&lt;br /&gt;
&lt;br /&gt;
Anything with version 5.6 of AirOS and above needs to be downgraded to an earlier AirOS version before you can flash it with OpenWRT. If you don't know if you need to do this then proceed to the next section (Flash the Extender Node) and come back here if you get an error saying &amp;quot;Firmware check failed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you get this error DO NOT try to flash sudowrt/openwrt through the AirOS web interface. It will succeed and you will be stuck with a partially working system (all changes lost on every reboot) and no easy way to get it fully working.&lt;br /&gt;
&lt;br /&gt;
The solution is to use the built-in AirOS web UI to upload a version 5.5 of AirOS. This will downgrade the bootloader to a point where it's compatible with sudowrt/openwrt. Here's how:&lt;br /&gt;
&lt;br /&gt;
* Download the [http://home.pilsfree.net/morce/Firmware/UBNT/XW.v5.5.10.bin v5.5 AirOS firmware]&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Power on the router.&lt;br /&gt;
* Wait for a couple of minutes.&lt;br /&gt;
* Ensure you're not connected to a wifi network that has an 192.168.1.x IP range. Disconnect/disable your wifi if you're unsure.&lt;br /&gt;
* In your browser go to http://192.168.1.20&lt;br /&gt;
* Log in using the credentials username: ubnt and password: ubnt&lt;br /&gt;
* Click the &amp;quot;System&amp;quot; tab.&lt;br /&gt;
* Click the &amp;quot;Browse&amp;quot; button next to the &amp;quot;Upload Firmware&amp;quot; box (may have to change default username/password to Browse)&lt;br /&gt;
* Select the XW.v5.5.10.bin file that you downloaded earlier.&lt;br /&gt;
* Click &amp;quot;Upload&amp;quot;.&lt;br /&gt;
* After uploading you will be asked if you want to upgrade/install the firmware. Click yes/accept.&lt;br /&gt;
* Let the router finish flashing and wait for it to fully reboot before proceeding to flash sudowrt as described in the next section.&lt;br /&gt;
&lt;br /&gt;
== Flash the Extender Node ==&lt;br /&gt;
&lt;br /&gt;
* Configure your wired ethernet interface to use IP: 192.168.1.10, subnet: 255.255.255.0&lt;br /&gt;
* Plug one Ethernet cable into your laptop on one end and into the &amp;quot;LAN&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Plug another Ethernet cable into your node/router on one end and into the &amp;quot;POE&amp;quot; port of the power-over-ethernet power supply on the other end.&lt;br /&gt;
* Push a pin into the reset hole and hold it.&lt;br /&gt;
* With the pin held down, plug in the power to the power-over-ethernet power supply.&lt;br /&gt;
* Watch the lights on the antenna - they will all flash together a few times, then they will flash up and down.&lt;br /&gt;
* Once the lights on the antenna are flashing up and down, you can let go of the pin.&lt;br /&gt;
&lt;br /&gt;
You should be able to ping the extender at 192.168.1.20.&lt;br /&gt;
&lt;br /&gt;
  $ ping 192.168.1.20&lt;br /&gt;
  PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=1.54 ms&lt;br /&gt;
  64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=0.826 ms&lt;br /&gt;
&lt;br /&gt;
In your Linux terminal, type:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/ubi-flasher&lt;br /&gt;
  cd ubi-flasher&lt;br /&gt;
  npm install&lt;br /&gt;
  ./flasher.js '&amp;lt;path to firmware&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
The terminal will tell you &amp;quot;The firmware has been successfully sent to the router. In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up). This means that the router is flashing itself with the new firmware. Once the router goes back to having only the power LED lit, the router has been successfully flashed.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Wait until the antenna has only the power LED lit and you're done.&lt;br /&gt;
&lt;br /&gt;
Reconfigure your machine with the following static network configuration.&lt;br /&gt;
&lt;br /&gt;
* IP Address: 172.22.0.10&lt;br /&gt;
* Subnet mask:  255.255.255.0&lt;br /&gt;
* Gateway: 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
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]&lt;br /&gt;
&lt;br /&gt;
If you ping the extender node on 172.22.0.2 and it responds, it should be ready to connect to your home node on the appropriate wired Ethernet port.&lt;br /&gt;
&lt;br /&gt;
  $ ping 172.22.0.2&lt;br /&gt;
  PING 172.22.0.2 (172.22.0.2) 56(84) bytes of data.&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=1 ttl=64 time=0.617 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=2 ttl=64 time=0.316 ms&lt;br /&gt;
  64 bytes from 172.22.0.2: icmp_seq=3 ttl=64 time=0.398 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extender Detection ==&lt;br /&gt;
&lt;br /&gt;
Log into your home node via SSH, and tail &amp;lt;tt&amp;gt;/var/log/messages&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: eth0.3: Physical disconnect detected&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver: Listening on interface eth0.3:&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client IP: 100.64.37.3&lt;br /&gt;
  Sun May  8 00:51:08 2016 daemon.debug notdhcpserver:   client netmask 26&lt;br /&gt;
  Sun May  8 00:51:12 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  ...&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.debug notdhcpserver: eth0.3: Recieved HEARTBEAT for interface that hadn't been ACKed.&lt;br /&gt;
  Sun May  8 00:54:00 2016 daemon.info hostapd: priv5: STA 80:e6:50:0e:fe:6e WPA: group key handshake completed (RSN)&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.2: Received lease request&lt;br /&gt;
  Sun May  8 00:54:04 2016 daemon.debug notdhcpserver: eth0.3: sending response (with ssl certificate)&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Running up hook script&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
  Sun May  8 00:54:32 2016 daemon.debug notdhcpserver: eth0.3: Received redundant ACK&lt;br /&gt;
&lt;br /&gt;
There should be a debug message in the log from notdhcpserver concerning the extender node.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB to Serial Connection ===&lt;br /&gt;
&lt;br /&gt;
If you experience trouble flashing your device via the web interface, or via the TFTP image upload method, you'll want to establish a serial connection to troubleshoot further. Methods for flashing your device involving a serial connection may become more common as devices adopt configurations to lock down [http://www.networkworld.com/article/3038722/mobile-wireless/manufacturers-start-to-lock-down-wi-fi-router-firmware-thanks-fcc.html wi-fi router firmware] to prevent flashing.&lt;br /&gt;
&lt;br /&gt;
The following notes describe steps to interface with a Nanostation M5 (NSM5) via the serial interface. &lt;br /&gt;
&lt;br /&gt;
==== Order a USB to Serial Converter ====&lt;br /&gt;
&lt;br /&gt;
USB to serial converter devices exist at a cost of $4 - $8 online, with much lower pricing and longer delivery times if ordered from China. Search for &amp;quot;USB to UART TTL&amp;quot;, including &amp;quot;5 pin&amp;quot; in the search. Make sure the specifications do not mention anything other than 3.3 volts.&lt;br /&gt;
&lt;br /&gt;
Mac OS X users may need to install a device driver for their device. For example, for devices using the CP210X chip, you can download the [https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac CP210x USB to UART Bridge VCP Driver], which is made available as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Connecting to Serial ====&lt;br /&gt;
&lt;br /&gt;
You will need to connect the following pins from the converter to the pins on the device.&lt;br /&gt;
&lt;br /&gt;
* Ground (GND)&lt;br /&gt;
* Serial Out (Transmit / TX)&lt;br /&gt;
* Serial In (Receive / RX)&lt;br /&gt;
&lt;br /&gt;
Begin by connecting the Ground of the converter to the Ground of the device. Next connect the Transmit/TX of the converter to the Receive/RX of the device, then connect the Receive/RX of the converter to the Transmit/TX of the device.&lt;br /&gt;
&lt;br /&gt;
Nanostation M5 (NSM5) Example:&lt;br /&gt;
&lt;br /&gt;
[[File:CP2102-usb-to-serial-converter.jpg|400px|KEDSUMÂ® CP2102 Module STC Download Cable USB 2.0 to TTL 6PIN Serial Converter For STC]]&lt;br /&gt;
&lt;br /&gt;
[[File:Ubiquity-NSM5-serial-connectors.jpg|400px|Ubiquiti Nanostation NSM5 - Serial pins with connections]]&lt;br /&gt;
&lt;br /&gt;
==== Serial Communications Program ====&lt;br /&gt;
&lt;br /&gt;
You need to install a serial communication program. Linux users can use Minicom.&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install minicom&lt;br /&gt;
&lt;br /&gt;
Mac OS X users can as well&lt;br /&gt;
&lt;br /&gt;
  brew install minicom&lt;br /&gt;
&lt;br /&gt;
By default the Minicom program will attempt to use /dev/tty8, and will also attempt to initialize the device (expecting a modem) by default.&lt;br /&gt;
&lt;br /&gt;
  $ minicom&lt;br /&gt;
  minicom: cannot open /dev/tty8: Permission denied&lt;br /&gt;
&lt;br /&gt;
Run the program so that it starts the program on the USB converter that is connected by adding &amp;lt;tt&amp;gt;-D /dev/ttyUSB0&amp;lt;/tt&amp;gt;, and specify that it should skip initialization by adding &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt;. Mac users may need to reference a different device (such as &amp;lt;tt&amp;gt;/dev/tty.SLAB_USBtoUART&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also specify from the command line that it use the baud rate and '8N1' settings specified below by including &amp;lt;tt&amp;gt;-b 115200 -8&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
&lt;br /&gt;
In Minicom, CTRL-A to get settings, then Press O, to access settings. Mac users will need to discover the proper META key to use with their Terminal program. iTerm uses the 'ESC' key.&lt;br /&gt;
&lt;br /&gt;
Go to Serial Port Setup, use these settings:&lt;br /&gt;
&lt;br /&gt;
* Set the serial device (should be /dev/tty/USB0)&lt;br /&gt;
* Baud Rate (Bits Per Second): 115200&lt;br /&gt;
* Settings '8N1' (short hand for 8 bits, no parity, 1 stop bit)&lt;br /&gt;
* Turn off hardware and software flow control&lt;br /&gt;
&lt;br /&gt;
Reboot the device, and it will let you drop into a command line. You will then have to figure out how to enable the network from the boot loader (Uboot or Redboot) and transfer the firmware to the device to flash it.&lt;br /&gt;
&lt;br /&gt;
==== Interupting Boot ====&lt;br /&gt;
&lt;br /&gt;
The device will not detect the key you press unless Minicom is configured properly.&lt;br /&gt;
&lt;br /&gt;
* To access the Help screen, Press CTRL-A, then press Z.&lt;br /&gt;
* To access the configuration/settings, press CTRL-A, then press O.&lt;br /&gt;
&lt;br /&gt;
From the configuration window, select to view the 'Serial port setup'&lt;br /&gt;
&lt;br /&gt;
  $ sudo minicom -D /dev/ttyUSB0 -o -b 115200 -8&lt;br /&gt;
  Welcome to minicom 2.7&lt;br /&gt;
  &lt;br /&gt;
  OPTIONS: I18n &lt;br /&gt;
  Compiled on Jan  1 2014, 17:13:19.&lt;br /&gt;
  Port /dev/ttyUSB0, 21:47:56&lt;br /&gt;
  &lt;br /&gt;
  Press CTRL-A Z for help on special keys&lt;br /&gt;
  &lt;br /&gt;
              +-----[configuration]------+&lt;br /&gt;
              | Filenames and paths      |&lt;br /&gt;
              | File transfer protocols  |&lt;br /&gt;
              | Serial port setup        |&lt;br /&gt;
              | Modem and dialing        |&lt;br /&gt;
              | Screen and keyboard      |&lt;br /&gt;
              | Save setup as dfl        |&lt;br /&gt;
              | Save setup as..          |&lt;br /&gt;
              | Exit                     |&lt;br /&gt;
              +--------------------------+&lt;br /&gt;
  &lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
  | A -    Serial Device      : /dev/ttyUSB0                              |&lt;br /&gt;
  | B - Lockfile Location     : /var/lock                                 |&lt;br /&gt;
  | C -   Callin Program      :                                           |&lt;br /&gt;
  | D -  Callout Program      :                                           |&lt;br /&gt;
  | E -    Bps/Par/Bits       : 115200 8N1                                |&lt;br /&gt;
  | F - Hardware Flow Control : Yes                                       |&lt;br /&gt;
  | G - Software Flow Control : No                                        |&lt;br /&gt;
  |                                                                       |&lt;br /&gt;
  |    Change which setting?                                              |&lt;br /&gt;
  +-----------------------------------------------------------------------+&lt;br /&gt;
&lt;br /&gt;
By default the Hardware Flow Control will be enabled. Press 'F' to disable Hardware Flow Control. Press ENTER to exit the Serial port setup window, and then select EXIT to go back to the program.&lt;br /&gt;
&lt;br /&gt;
At this point plug in the Ethernet cable to the 'Main' Ethernet port, with the other end connected to the 'POE' port on the Power Over Ethernet adapter that came with the device. As the device boots up, you'll see output similar to the following.&lt;br /&gt;
&lt;br /&gt;
You'll need to make sure to press a key before it boots the default image.&lt;br /&gt;
&lt;br /&gt;
=== Picostation M2HP ===&lt;br /&gt;
&lt;br /&gt;
Insightful post on [https://www.strugglingcoder.info/index.php/tag/ubnt/ loading FreeBSD image] with help from serial communications. Could be useful with troubleshooting other models.&lt;br /&gt;
=== Nanostation M2 ===&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
The following are simply notes. A solution to this issue is still pending.&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M2 (FCC ID: SWX-M2N) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put openwrt-ar71xx-generic-om2p-squashfs-factory.bin&lt;br /&gt;
  Error code 2: Firmware check failed&lt;br /&gt;
  Sent 4609024 bytes in 12.6 seconds&lt;br /&gt;
&lt;br /&gt;
You can boot up the M2 with a serial connection similar to the instructions below concerning the Nanostation M5.&lt;br /&gt;
&lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
  DRAM:  32 MB&lt;br /&gt;
  Flash:  8 MB&lt;br /&gt;
  PCIe WLAN Module found (#1).&lt;br /&gt;
  Net:   eth0, eth1&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: |&lt;br /&gt;
  Receiving file from 192.168.1.10:35456&lt;br /&gt;
  Received 4609501 bytes&lt;br /&gt;
  Firmware check failed! (-2)&lt;br /&gt;
&lt;br /&gt;
The method outlined for the Nanostation M5 below doesn't work with the M2.&lt;br /&gt;
&lt;br /&gt;
Update the firmware to [http://dl.ubnt.com/firmwares/XN-fw/v5.6.4/XM.v5.6.4.28924.160331.1253.bin airOS for XM board firmware v5.6.4].&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
Terminal:&lt;br /&gt;
&lt;br /&gt;
  $ tftp 192.168.1.20&lt;br /&gt;
  tftp&amp;gt; bin&lt;br /&gt;
  tftp&amp;gt; put XM.v5.6.4.28924.160331.1253.bin&lt;br /&gt;
  Sent 7537129 bytes in 20.8 seconds&lt;br /&gt;
&lt;br /&gt;
Serial Connection:&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:55113&lt;br /&gt;
  Received 7537129 bytes&lt;br /&gt;
  Firmware Version: XM.ar7240.v5.6.4.28924.160331.1253&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Will not overwrite u-boot partition! Skipped.&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
          erasing range 0x9F050000..0x9F14FFFF: ................ done&lt;br /&gt;
  Erased 16 sectors&lt;br /&gt;
          writing to address 0x9f050000, length 0x00100000 ...&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
          erasing range 0x9F150000..0x9F74FFFF: .............................................................................................e&lt;br /&gt;
  Erased 96 sectors&lt;br /&gt;
          writing to address 0x9f150000, length 0x00600000 ...&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)&lt;br /&gt;
  &lt;br /&gt;
  Board: Ubiquiti Networks XM board (rev 1.0 e012)&lt;br /&gt;
&lt;br /&gt;
Attempting to run the same process after performing an official firmware update doesn't resolve the issue.&lt;br /&gt;
&lt;br /&gt;
=== Nanostation M5 ===&lt;br /&gt;
&lt;br /&gt;
Official firmware from Ubiquity Nanostation M5 (NSM5)&lt;br /&gt;
&lt;br /&gt;
* [https://www.ubnt.com/download/airmax-m/nanostationm/default/airos-xw-board-firmware-v564 airOS for XW board firmware v5.6.4]&lt;br /&gt;
&lt;br /&gt;
==== Firmware check failure ====&lt;br /&gt;
&lt;br /&gt;
Flashing the Nanostation M5 (FCC ID: SWX-NSM5D) using the TFTP rescue mode will result in a Firmware check failure error.&lt;br /&gt;
&lt;br /&gt;
If you attempt to flash the extender and receive a 'Firmware check failed' error, then you have a version of the NSM5 that is protected from being flashed via the default TFTP method. You will need to obtain a serial to USB interface (USB to UART TTL Module Serial Converter, 5 pin) and use it to flash the firmware.&lt;br /&gt;
&lt;br /&gt;
   $ ./flasher.js openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin&lt;br /&gt;
   Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
   Connection timed out&lt;br /&gt;
   Sending openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
   [Error: (Server) Firmware check failed]&lt;br /&gt;
&lt;br /&gt;
When connected to the NSM5 via a serial connection, a similar error is displayed when attempting to load the SudoWRT firmware image.&lt;br /&gt;
&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Will reset device configuration (Reset button active after 10 seconds).&lt;br /&gt;
  Erasing sector 123..126&lt;br /&gt;
  &lt;br /&gt;
  First 0x7b last 0x7e sector size 0x10000&lt;br /&gt;
  .... done&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
  Receiving file from 192.168.1.10:49763&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware check failed! (1)&lt;br /&gt;
&lt;br /&gt;
===== Drop into U-Boot Command Prompt =====&lt;br /&gt;
&lt;br /&gt;
Connect a USB to Serial adapter to the correct pins of the NSM5, as shown above. Unplug the Ethernet cable from the device, and then plug it back in to provide Power Over Ethernet once again, resulting in a reboot of the device.&lt;br /&gt;
&lt;br /&gt;
During the boot process, press a key to during the boot process to make the [https://wiki.openwrt.org/doc/techref/bootloader/uboot U-Boot] bootloader to drop into a command line prompt.&lt;br /&gt;
&lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0&lt;br /&gt;
  ar7240&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Running TFTPd =====&lt;br /&gt;
&lt;br /&gt;
Although U-Boot can support two protocols for transfering files, kermit or y-modem, the bootloader does not support the &amp;lt;tt&amp;gt;loadb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;loady&amp;lt;/tt&amp;gt;. Minicom only supports y-modem protocol.&lt;br /&gt;
&lt;br /&gt;
We do not have to resort to a direct serial file transfer however. The 'mtdparts' command that is used to define flash memory partitions can be used to reset the partition table to the defaults before running 'urescue' to start the TFTP server.&lt;br /&gt;
&lt;br /&gt;
  ar7240&amp;gt; help mtdparts&lt;br /&gt;
  mtdparts &lt;br /&gt;
      - list partition table&lt;br /&gt;
  mtdparts delall&lt;br /&gt;
      - delete all partitions&lt;br /&gt;
  mtdparts del part-id&lt;br /&gt;
      - delete partition (e.g. part-id = nand0,1)&lt;br /&gt;
  mtdparts add &amp;lt;mtd-dev&amp;gt; &amp;lt;size&amp;gt;[@&amp;lt;offset&amp;gt;] [&amp;lt;name&amp;gt;] [ro]&lt;br /&gt;
      - add partition&lt;br /&gt;
  mtdparts default&lt;br /&gt;
      - reset partition table to defaults&lt;br /&gt;
  ar7240&amp;gt; mtdparts default&lt;br /&gt;
  ar7240&amp;gt; urescue&lt;br /&gt;
  Setting default IP 192.168.1.20&lt;br /&gt;
  Starting TFTP server...&lt;br /&gt;
  Using eth0 (192.168.1.20), address: 0x81000000&lt;br /&gt;
  Waiting for connection: \&lt;br /&gt;
&lt;br /&gt;
In your other terminal window, run the ubi-flasher script.&lt;br /&gt;
&lt;br /&gt;
  $ ./flasher.js /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin&lt;br /&gt;
  Accessing http://192.168.1.20/login.cgi&lt;br /&gt;
  Connection timed out&lt;br /&gt;
  Sending /home/redconfetti/Projects/mesh/openwrt-images/nanostation-m5/2015-2016/openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin to 192.168.1.20 using tftp put&lt;br /&gt;
  Firmware flashing begun!&lt;br /&gt;
  The firmware has been successfully sent to the router.&lt;br /&gt;
  In a few seconds, the router should begin flashing its four status LEDs sweeping from left to right, then right to left (or up down, down up).&lt;br /&gt;
  This means that the router is flashing itself with the new firmware.&lt;br /&gt;
  Once the router goes back to having only the power LED lit, the router has been successfully flashed.&lt;br /&gt;
&lt;br /&gt;
In the terminal running Minicom you should see the firmware successfully flashing.&lt;br /&gt;
&lt;br /&gt;
  Receiving file from 192.168.1.10:52289&lt;br /&gt;
  Received 4325788 bytes&lt;br /&gt;
  Firmware Version: XW.ar934x.v6.0.0-OpenWrt-r47662&lt;br /&gt;
  Setting U-Boot environment variables&lt;br /&gt;
  Un-Protected 1 sectors&lt;br /&gt;
  Erasing Flash.... done&lt;br /&gt;
  Erased 1 sectors&lt;br /&gt;
  Writing to Flash... write addr: 9f040000&lt;br /&gt;
  done&lt;br /&gt;
  Protected 1 sectors&lt;br /&gt;
  Copying partition 'kernel' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x5 last 0x14 sector size 0x10000&lt;br /&gt;
  ................ done&lt;br /&gt;
  write addr: 9f050000&lt;br /&gt;
  Copying partition 'rootfs' to flash memory:&lt;br /&gt;
  &lt;br /&gt;
  First 0x15 last 0x6e sector size 0x10000&lt;br /&gt;
  .......................................................................................... done&lt;br /&gt;
  write addr: 9f150000&lt;br /&gt;
  &lt;br /&gt;
  Firmware update complete.&lt;br /&gt;
  &lt;br /&gt;
  Resetting...&lt;br /&gt;
  &lt;br /&gt;
  U-Boot 1.1.4-s958 (Jun 10 2015 - 10:56:20)&lt;br /&gt;
  &lt;br /&gt;
  DRAM:  64 MB&lt;br /&gt;
  Flash:  8 MB (0xc2, 0x20, 0x17)&lt;br /&gt;
  Net:   AR8236&lt;br /&gt;
  eth0, eth1&lt;br /&gt;
  Board: Ubiquiti Networks AR9342 board (e855-22585.1122.0030)&lt;br /&gt;
  Radio: 0777:e855&lt;br /&gt;
  Reset: Normal&lt;br /&gt;
  Hit any key to stop autoboot:  0 &lt;br /&gt;
  ## Booting image at 9f050000 ...&lt;br /&gt;
     Image Name:   MIPS OpenWrt Linux-3.18.23&lt;br /&gt;
     Created:      2015-12-01   0:03:51 UTC&lt;br /&gt;
     Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
     Data Size:    1135619 Bytes =  1.1 MB&lt;br /&gt;
     Load Address: 80060000&lt;br /&gt;
     Entry Point:  80060000&lt;br /&gt;
     Verifying Checksum at 0x9f050040 ...OK&lt;br /&gt;
     Uncompressing Kernel Image ... OK&lt;br /&gt;
  &lt;br /&gt;
  Starting kernel ...&lt;br /&gt;
  &lt;br /&gt;
  [    0.000000] Linux version 3.18.23 (sudowrt-builder@build-test2) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r47662) ) #2 Mon Nov 5&lt;br /&gt;
&lt;br /&gt;
After it reboots if you see the first line mention 'sudowrt-builder', the device is booting the SudoWRT firmware build.&lt;br /&gt;
&lt;br /&gt;
You can press ENTER once it is finished, and it should drop into the command line for the SudoWRT system.&lt;br /&gt;
&lt;br /&gt;
  [   25.650000] jffs2: Newly-erased block contained word 0xdeadc0de at offset 0x00000000&lt;br /&gt;
  [   25.660000] done.&lt;br /&gt;
  [   25.660000] jffs2: notice: (993) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and.&lt;br /&gt;
  &lt;br /&gt;
  BusyBox v1.23.2 (2015-11-30 18:48:50 EST) built-in shell (ash)&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    ._______.___    ._______.______  ._____  .___    .___ .______  ._____  &lt;br /&gt;
    :_ ____/|   |   : .____/:_ _   \ :_ ___\ |   |   : __|:      \ :_ ___\ &lt;br /&gt;
    |   _/  |   |   | : _/\ |   |   ||   |___|   |   | : ||       ||   |___&lt;br /&gt;
    |   |   |   |/\ |   /  \| . |   ||   /  ||   |/\ |   ||   |   ||   /  |&lt;br /&gt;
    |_. |   |   /  \|_.: __/|. ____/ |. __  ||   /  \|   ||___|   ||. __  |&lt;br /&gt;
      :/    |______/   :/    :/       :/ |. ||______/|___|    |___| :/ |. |&lt;br /&gt;
      :                      :        :   :/                        :   :/ &lt;br /&gt;
                                          :                             : &lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   sudo mesh v0.2 (fledgling.extender)&lt;br /&gt;
                                based on OpenWRT 15.05 (Chaos Calmer)&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
   &amp;quot;When your rage is choking you, it is best to say nothing.&amp;quot; &lt;br /&gt;
                                              - Octavia E. Butler, Fledgling&lt;br /&gt;
   -------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  root@sudomesh-node:/#&lt;br /&gt;
&lt;br /&gt;
== Extender Node Installation ==&lt;br /&gt;
=== Installation Order ===&lt;br /&gt;
#Flash home nodes and extender nodes&lt;br /&gt;
#Get on roof and determine which direction to face the extender nodes&lt;br /&gt;
#Install J-Pole&lt;br /&gt;
#Crimp end onto Ethernet cable&lt;br /&gt;
#Run Ethernet cable from j-pole down to location of home node (either through a soffit indoors or to an outdoor enclosure)&lt;br /&gt;
#Crimp other end of Ethernet cable and connect to home node via a POE adaptor&lt;br /&gt;
#Install extender node on J-Pole using zip-ties - check lights to make sure unit is powered up&lt;br /&gt;
#Walk around the neighborhood to check the signal&lt;br /&gt;
&lt;br /&gt;
=== Gear Checklist ===&lt;br /&gt;
	&lt;br /&gt;
Protective and personal gear&lt;br /&gt;
*Wear clothes you can get dirty and sturdy boots for roof walking&lt;br /&gt;
*Sunscreen&lt;br /&gt;
*Sunglasses&lt;br /&gt;
*Pocketknife (for cutting zip ties etc)&lt;br /&gt;
*Ladder&lt;br /&gt;
*Safety harness &amp;amp; rope in a bucket&lt;br /&gt;
*Smart phone (to check signal and take pictures)&lt;br /&gt;
Home node gear&lt;br /&gt;
*2 flashed Western Digital Mynet N600 Home Nodes&lt;br /&gt;
*paperclip (to reset equipment)&lt;br /&gt;
*Laptop (to configure equipment)&lt;br /&gt;
*Plastic outdoor enclosure for router (optional)&lt;br /&gt;
*Power Strip&lt;br /&gt;
J-Pole gear&lt;br /&gt;
*J-Pole&lt;br /&gt;
*Latex gloves (for dealing with roofing sealant)&lt;br /&gt;
*Roofing sealant&lt;br /&gt;
*Ratchet set - 10mm for small bolts, 13mm for large bolts&lt;br /&gt;
*Corldless Drill&lt;br /&gt;
*3/16&amp;quot; drill bit for J-pole bolts&lt;br /&gt;
*Steel One-Hole Conduit Straps (for holding Ethernet cable along eves)&lt;br /&gt;
*Screws for the Steel one-hole straps&lt;br /&gt;
Ethernet cable gear&lt;br /&gt;
*Ethernet Spool&lt;br /&gt;
*Ethernet Ends&lt;br /&gt;
*Ethernet Crimper&lt;br /&gt;
*Laminated card showing the Ethernet cable order&lt;br /&gt;
*Label Maker - so you can know which cable is which&lt;br /&gt;
Extender node gear&lt;br /&gt;
*Flashed Ubiquiti Nanostation M2 or M5 extender Node(s)&lt;br /&gt;
*Power over Ethernet (POE) adapters&lt;br /&gt;
*Zip Ties&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=5MoF&amp;diff=10634</id>
		<title>5MoF</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=5MoF&amp;diff=10634"/>
		<updated>2017-07-22T15:00:09Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Future of 5MoFs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;margin:auto;text-align: center;border: 6px solid #00b;background-color:#fff;color:#000; margin:1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;SIGN UP NOW! [[5MoF 2017-06-14|Upcoming 5MoF: June 14, 2017 8:00pm]]&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The sudo room five minutes of fame is a social event where a bunch of folks meet up and munch on snacks while some folks make short 5 minute presentations about projects they're working on or things they care about.&lt;br /&gt;
&lt;br /&gt;
This type of event is blatantly stolen^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^Hheavily inspired by the noisebridge 5MoF events.&lt;br /&gt;
&lt;br /&gt;
People are encouraged to bring snacks/food/drinks.&lt;br /&gt;
&lt;br /&gt;
= Schedule =&lt;br /&gt;
&lt;br /&gt;
These events happen every first Wednesday of the month at sudo room!&lt;br /&gt;
&lt;br /&gt;
Email info@sudoroom.org or [https://sudoroom.org/lists/listinfo/sudo-discuss the sudo room mailing list] to claim a slot for your project. All we need is the title of your presentation and a way to contact you.&lt;br /&gt;
&lt;br /&gt;
7 minutes are allocated to each 5MoF presentation which includes 5 minutes for the presentation, time for questions and time for the next person to get their computer hooked up.&lt;br /&gt;
&lt;br /&gt;
*7 pm: People shuffle in, snack on food and get settled&lt;br /&gt;
*7:30 pm: 1st 5MoF presentation &lt;br /&gt;
*7:37 pm: 2nd 5MoF presentation&lt;br /&gt;
*7:44 pm: 3rd 5MoF presentation&lt;br /&gt;
*7:51 pm: 4th 5MoF presentation&lt;br /&gt;
*7:58 pm: 5th 5MoF presentation&lt;br /&gt;
*8:05 pm: 10 minute break (announced as a 5 minute break so we actually stay on time)&lt;br /&gt;
*8:15 pm: two-minute explanation of sudo room and the Omni. Donation hat passed around. New members encouraged to sign up right then and there. &lt;br /&gt;
*8:18 pm: 6th 5MoF presentation - This is the remote presentation which gives time to set up the video conferencing during the break.&lt;br /&gt;
*8:25 pm: 7th 5MoF presentation&lt;br /&gt;
*8:32 pm: 8th 5MoF presentation&lt;br /&gt;
*8:39 pm: 9th 5MoF presentation&lt;br /&gt;
*8:46 pm: 10th 5MoF presentation&lt;br /&gt;
*8:53 pm: Announce https://pad.riseup.net/p/sudoride for letting people ride-share back home.&lt;br /&gt;
*8:54 pm: Social hangouts and tour of omni for new folk.&lt;br /&gt;
*10:00 pm: Cleanup of food, chairs, etc. and moving folks to sudo room for continued hacking/socializing.&lt;br /&gt;
&lt;br /&gt;
= For speakers =&lt;br /&gt;
&lt;br /&gt;
We provide a stage with a small podium for a laptop, amplified microphone, spotlights and a projector. &lt;br /&gt;
&lt;br /&gt;
We provide a laptop running lubuntu (with firefox) which is already hooked up to the projector, internet and audio. It has LibreOffice and the Eye of Gnome image viewer. You can either make you presentation available on the internet or on a USB stick. As you are setting up to speak please tell a volunteer if you plan to use audio from the laptop.&lt;br /&gt;
&lt;br /&gt;
If you want to use your own laptop we provide the following connectors:&lt;br /&gt;
&lt;br /&gt;
* VGA and HDMI for projector hookup. If you need anything else then bring the appropriate adapter.&lt;br /&gt;
* Ethernet for internet. Don't rely on wifi. If you don't have ethernet then bring the appropriate adapter. &lt;br /&gt;
* Mini jack (3.5 mm TRRS) for audio output from your laptop.&lt;br /&gt;
* Power&lt;br /&gt;
&lt;br /&gt;
If you want to remote in, please email info@sudoroom.org before the event. You will need to use a WebRTC-based (web-based) video chat client which works in firefox and does not require any plugins to be installed nor any signup. Right now we're recommending [https://talky.io/ takly] but we're open to suggestions.&lt;br /&gt;
&lt;br /&gt;
If you have any other needs, please contact info@sudoroom.org before the event.&lt;br /&gt;
&lt;br /&gt;
= Previous of 5MoFs =&lt;br /&gt;
&lt;br /&gt;
* [[5MoF 2017-05-03]]&lt;br /&gt;
* [[5MoF 2017-04-05]]&lt;br /&gt;
* [[5MoF 2017-03-01]]&lt;br /&gt;
&lt;br /&gt;
= Future of 5MoFs =&lt;br /&gt;
&lt;br /&gt;
* [[5MoF 2017-08-2]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Logo&amp;diff=10420</id>
		<title>Logo</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Logo&amp;diff=10420"/>
		<updated>2017-01-27T01:47:21Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Gallery */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:SudoRoom Logo.jpg|thumb|meeting about the logo]] The current Sudo Room logo is in '''iteration 2.0''', and can be downloaded as '''icon''' and '''wordmark''' in both print and web resolutions.&lt;br /&gt;
&lt;br /&gt;
==Reverse-Inspiration==&lt;br /&gt;
'''Post-design readings of the new logo 2.0.''' Check this out: [https://en.wikipedia.org/wiki/Flower_of_life Flower of Life] and this: [https://en.wikipedia.org/wiki/File:Metatron_solids.svg Metatron's Cube and the Platonic Solids]&lt;br /&gt;
&lt;br /&gt;
==Gallery==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Sudo 2.0 Logo.png|thumb|Sudo Room logo, web version. Approximately 3&amp;quot; tall @ 72 dpi.&lt;br /&gt;
File:Sudo 2.0 Print Logo.jpg|thumb|Sudo Room logo, print version. Approximately 3&amp;quot; tall @ 300 dpi.&lt;br /&gt;
File:Sudoroom logo.png|thumb|alternative raster version of logo&lt;br /&gt;
File:Sudoroom logo.svg|thumb|scalable vector graphic (svg) version of logo&lt;br /&gt;
File:Sudo 2.0 Web Wordmark.png|thumb|Sudo Room logo with wordmark, web version. Approximately 5&amp;quot; wide @ 72dpi.&lt;br /&gt;
File:Sudo 2.0 Print Wordmark.jpg|thumb|Sudo Room logo with wordmark, web version. Approximately 5&amp;quot; wide @ 300dpi.&lt;br /&gt;
File:Sudoroom logo text.png|thumb|alternative raster version of logo and text&lt;br /&gt;
File:Sudoroom logo text.svg|thumb|scalable vector graphic (svg) version of logo and text&lt;br /&gt;
File:Sudoroom-sticker.png|thumb|sudoroom hexagon sticker type 1&lt;br /&gt;
File:Sudoroom-hexagon-sticker-2.png|thumb|sudoroom hexagon sticker type 2&lt;br /&gt;
File:Sudo-logo-spin.mp4.mp4|thumb|Sudoroom logo Synfig animation&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=File:Sudo-logo-spin.png.png&amp;diff=10419</id>
		<title>File:Sudo-logo-spin.png.png</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=File:Sudo-logo-spin.png.png&amp;diff=10419"/>
		<updated>2017-01-27T00:17:09Z</updated>

		<summary type="html">&lt;p&gt;Robb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thumbnail 4 sudo-logo-spin.mp4&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=File:Sudo-logo-spin.mp4.mp4&amp;diff=10418</id>
		<title>File:Sudo-logo-spin.mp4.mp4</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=File:Sudo-logo-spin.mp4.mp4&amp;diff=10418"/>
		<updated>2017-01-27T00:08:04Z</updated>

		<summary type="html">&lt;p&gt;Robb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Synfig animation&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Omniphwn&amp;diff=9901</id>
		<title>Omniphwn</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Omniphwn&amp;diff=9901"/>
		<updated>2016-01-18T09:37:45Z</updated>

		<summary type="html">&lt;p&gt;Robb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Omniphonix server running AsteriskNow @100.64.64.30 configured as VOIP intercom on our local network.&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=VOIP_phones&amp;diff=9900</id>
		<title>VOIP phones</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=VOIP_phones&amp;diff=9900"/>
		<updated>2016-01-18T09:35:41Z</updated>

		<summary type="html">&lt;p&gt;Robb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;voip phones on the network&lt;br /&gt;
&lt;br /&gt;
extension/name/ip address - description&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7836/5ud0r00m/100.64.64.31 - that's us at sudoroom :)&lt;br /&gt;
&lt;br /&gt;
3667/door/100.64.64.32 - frontdoor &amp;quot;pay&amp;quot;phone&lt;br /&gt;
&lt;br /&gt;
225/ccl/100.64.64.33 - counter culture labs [not online]&lt;br /&gt;
&lt;br /&gt;
782/pub/100.64.64.34 - public terminals&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
100.64.64.35/Voice_adminPage.htm&lt;br /&gt;
admin&lt;br /&gt;
omniphonix&lt;br /&gt;
http://innomedia.com/wp-content/uploads/2013/10/MTA-6328-2Re-DS.pdf&lt;br /&gt;
00:10:99:04:b7:ef&lt;br /&gt;
&lt;br /&gt;
when you plug into its LAN port it gives you dhcp, you can go to http://192.168.251.1/Voice_adminPage.htm&lt;br /&gt;
&lt;br /&gt;
http://www.dslreports.com/forum/r22145431-Unlock-I-think-I-bricked-my-Innomedia-MTA6328-2Re&lt;br /&gt;
&lt;br /&gt;
1. Disconnect to WAN ( no internet).&lt;br /&gt;
2. Connect the gizmo via WAN to computer and login to it using user id&lt;br /&gt;
Â»192.168.1.xx/&lt;br /&gt;
id=user, pass=welcome&lt;br /&gt;
3. cut and paste the following link aninter desktop computer &amp;amp; giant_robot_arm serial host]]&lt;br /&gt;
| [[User:jake|jake]] d press enter to Restore factory default&lt;br /&gt;
Â»192.168.1.xx/restore2.ssi&lt;br /&gt;
4. power cycle the gizmo and login to admin link with factory default password.&lt;br /&gt;
Â»192.168.1.xx/Voice_adminPage.htm&lt;br /&gt;
id=admin, pass=slapshot (for V3.0.77, V3.0.75)&lt;br /&gt;
5. Disable Provisioning&lt;br /&gt;
Menu--IP Network ---Provisioning Setting&lt;br /&gt;
6. Change username and password!&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=VOIP_phones&amp;diff=9899</id>
		<title>VOIP phones</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=VOIP_phones&amp;diff=9899"/>
		<updated>2016-01-18T09:33:32Z</updated>

		<summary type="html">&lt;p&gt;Robb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;voip phones on the network&lt;br /&gt;
&lt;br /&gt;
ip address/name/extension - description&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
100.64.64.31/5ud0r00m/7836 - that's us at sudoroom :)&lt;br /&gt;
&lt;br /&gt;
100.64.64.32/door/3667 - frontdoor &amp;quot;pay&amp;quot;phone&lt;br /&gt;
&lt;br /&gt;
100.64.64.33/ccl/225 - counter culture labs&lt;br /&gt;
&lt;br /&gt;
100.64.64.34/pub/782 - public terminals&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
100.64.64.35/Voice_adminPage.htm&lt;br /&gt;
admin&lt;br /&gt;
omniphonix&lt;br /&gt;
http://innomedia.com/wp-content/uploads/2013/10/MTA-6328-2Re-DS.pdf&lt;br /&gt;
00:10:99:04:b7:ef&lt;br /&gt;
&lt;br /&gt;
when you plug into its LAN port it gives you dhcp, you can go to http://192.168.251.1/Voice_adminPage.htm&lt;br /&gt;
&lt;br /&gt;
http://www.dslreports.com/forum/r22145431-Unlock-I-think-I-bricked-my-Innomedia-MTA6328-2Re&lt;br /&gt;
&lt;br /&gt;
1. Disconnect to WAN ( no internet).&lt;br /&gt;
2. Connect the gizmo via WAN to computer and login to it using user id&lt;br /&gt;
Â»192.168.1.xx/&lt;br /&gt;
id=user, pass=welcome&lt;br /&gt;
3. cut and paste the following link aninter desktop computer &amp;amp; giant_robot_arm serial host]]&lt;br /&gt;
| [[User:jake|jake]] d press enter to Restore factory default&lt;br /&gt;
Â»192.168.1.xx/restore2.ssi&lt;br /&gt;
4. power cycle the gizmo and login to admin link with factory default password.&lt;br /&gt;
Â»192.168.1.xx/Voice_adminPage.htm&lt;br /&gt;
id=admin, pass=slapshot (for V3.0.77, V3.0.75)&lt;br /&gt;
5. Disable Provisioning&lt;br /&gt;
Menu--IP Network ---Provisioning Setting&lt;br /&gt;
6. Change username and password!&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=VOIP_phones&amp;diff=9898</id>
		<title>VOIP phones</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=VOIP_phones&amp;diff=9898"/>
		<updated>2016-01-18T09:32:53Z</updated>

		<summary type="html">&lt;p&gt;Robb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;voip phones on the network&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ip address/name/extension - description&lt;br /&gt;
&lt;br /&gt;
100.64.64.31/5ud0r00m/7836 - that's us at sudoroom :)&lt;br /&gt;
&lt;br /&gt;
100.64.64.32/door/3667 - frontdoor &amp;quot;pay&amp;quot;phone&lt;br /&gt;
&lt;br /&gt;
100.64.64.33/ccl/225 - counter culture labs&lt;br /&gt;
&lt;br /&gt;
100.64.64.34/pub/782 - public terminals&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
100.64.64.35/Voice_adminPage.htm&lt;br /&gt;
admin&lt;br /&gt;
omniphonix&lt;br /&gt;
http://innomedia.com/wp-content/uploads/2013/10/MTA-6328-2Re-DS.pdf&lt;br /&gt;
00:10:99:04:b7:ef&lt;br /&gt;
&lt;br /&gt;
when you plug into its LAN port it gives you dhcp, you can go to http://192.168.251.1/Voice_adminPage.htm&lt;br /&gt;
&lt;br /&gt;
http://www.dslreports.com/forum/r22145431-Unlock-I-think-I-bricked-my-Innomedia-MTA6328-2Re&lt;br /&gt;
&lt;br /&gt;
1. Disconnect to WAN ( no internet).&lt;br /&gt;
2. Connect the gizmo via WAN to computer and login to it using user id&lt;br /&gt;
Â»192.168.1.xx/&lt;br /&gt;
id=user, pass=welcome&lt;br /&gt;
3. cut and paste the following link aninter desktop computer &amp;amp; giant_robot_arm serial host]]&lt;br /&gt;
| [[User:jake|jake]] d press enter to Restore factory default&lt;br /&gt;
Â»192.168.1.xx/restore2.ssi&lt;br /&gt;
4. power cycle the gizmo and login to admin link with factory default password.&lt;br /&gt;
Â»192.168.1.xx/Voice_adminPage.htm&lt;br /&gt;
id=admin, pass=slapshot (for V3.0.77, V3.0.75)&lt;br /&gt;
5. Disable Provisioning&lt;br /&gt;
Menu--IP Network ---Provisioning Setting&lt;br /&gt;
6. Change username and password!&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=VOIP_phones&amp;diff=9897</id>
		<title>VOIP phones</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=VOIP_phones&amp;diff=9897"/>
		<updated>2016-01-18T09:31:34Z</updated>

		<summary type="html">&lt;p&gt;Robb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;voip phones on the network&lt;br /&gt;
&lt;br /&gt;
ip address/name/extension - description&lt;br /&gt;
&lt;br /&gt;
100.64.64.31/5ud0r00m/7836 - that's us at sudoroom :)&lt;br /&gt;
100.64.64.32/door/3667 - frontdoor &amp;quot;pay&amp;quot;phone&lt;br /&gt;
100.64.64.33/ccl/225 - counter culture labs&lt;br /&gt;
100.64.64.34/pub/782 - public terminals&lt;br /&gt;
&lt;br /&gt;
100.64.64.35/Voice_adminPage.htm&lt;br /&gt;
admin&lt;br /&gt;
omniphonix&lt;br /&gt;
http://innomedia.com/wp-content/uploads/2013/10/MTA-6328-2Re-DS.pdf&lt;br /&gt;
00:10:99:04:b7:ef&lt;br /&gt;
&lt;br /&gt;
when you plug into its LAN port it gives you dhcp, you can go to http://192.168.251.1/Voice_adminPage.htm&lt;br /&gt;
&lt;br /&gt;
http://www.dslreports.com/forum/r22145431-Unlock-I-think-I-bricked-my-Innomedia-MTA6328-2Re&lt;br /&gt;
&lt;br /&gt;
1. Disconnect to WAN ( no internet).&lt;br /&gt;
2. Connect the gizmo via WAN to computer and login to it using user id&lt;br /&gt;
Â»192.168.1.xx/&lt;br /&gt;
id=user, pass=welcome&lt;br /&gt;
3. cut and paste the following link aninter desktop computer &amp;amp; giant_robot_arm serial host]]&lt;br /&gt;
| [[User:jake|jake]] d press enter to Restore factory default&lt;br /&gt;
Â»192.168.1.xx/restore2.ssi&lt;br /&gt;
4. power cycle the gizmo and login to admin link with factory default password.&lt;br /&gt;
Â»192.168.1.xx/Voice_adminPage.htm&lt;br /&gt;
id=admin, pass=slapshot (for V3.0.77, V3.0.75)&lt;br /&gt;
5. Disable Provisioning&lt;br /&gt;
Menu--IP Network ---Provisioning Setting&lt;br /&gt;
6. Change username and password!&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Omniphwn&amp;diff=9896</id>
		<title>Omniphwn</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Omniphwn&amp;diff=9896"/>
		<updated>2016-01-18T09:16:35Z</updated>

		<summary type="html">&lt;p&gt;Robb: Created page with &amp;quot;Omniphonix server running AsteriskNow @100.64.64.30 configured to be a VOIP intercom on our local network.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Omniphonix server running AsteriskNow @100.64.64.30 configured to be a VOIP intercom on our local network.&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Network&amp;diff=9895</id>
		<title>Network</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Network&amp;diff=9895"/>
		<updated>2016-01-18T09:13:45Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Addresses */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
''For more information about sudo room's systems in general, see [[Systems Administration]]''&lt;br /&gt;
&lt;br /&gt;
The sudo room '''network''' provides internal networking, internet access, wireless service, and some externally accessible devices or services. Information about the various devices in use and their configuration is available below.&lt;br /&gt;
&lt;br /&gt;
== peoplesopen.net ==&lt;br /&gt;
&lt;br /&gt;
If you wish to connect to the local mesh network [https://peoplesopen.net peoplesopen.net], then you can either connect using the peoplesopen.net wifi network, &amp;lt;s&amp;gt;or you can connect using ethernet through the D-Link DIR-601A router on the shelf next to the main switch&amp;lt;/s&amp;gt;. Use DHCP to get a 10.0.0.0/8 IP address on the mesh network. The router will handle the meshing protocol for you and also provide you with normal Internet access.&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
* [[Router/Config/Interface|Configure Interface Addresses]]&lt;br /&gt;
* [[Router/Config/PortForward|Open a port to the outside world]]&lt;br /&gt;
&lt;br /&gt;
== Network Info ==&lt;br /&gt;
{|class=&amp;quot;altop&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Internet access is via '''space.local''', a rackmount server running Ubuntu 14.04. If you follow the ethernet cable from the LMI modem through the patch panel, this is the first box connected to it.&lt;br /&gt;
&lt;br /&gt;
=== External ===&lt;br /&gt;
==== Addresses ====&lt;br /&gt;
&lt;br /&gt;
Our public IP is 142.254.26.9 aka '''room.sudoroom.org'''.&lt;br /&gt;
&lt;br /&gt;
=== Internal ===&lt;br /&gt;
==== Ranges ====&lt;br /&gt;
* Internal subnet: 192.168.0.0/16&lt;br /&gt;
* DHCP range: 192.168.50.1 to 192.168.200.254&lt;br /&gt;
&lt;br /&gt;
==== Addresses ====&lt;br /&gt;
{| class=&amp;quot;wikitable blue_lines&amp;quot;&lt;br /&gt;
!style=&amp;quot;width:120px;&amp;quot;| IPv4 Address&lt;br /&gt;
!style=&amp;quot;width:110px;&amp;quot;| IPv6 Address&lt;br /&gt;
!style=&amp;quot;width:110px;&amp;quot;| Assigned to&lt;br /&gt;
!Notes&lt;br /&gt;
!Who set it up?&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.1 / 142.254.26.9&lt;br /&gt;
| fd4f:dc5d:8d1::1&lt;br /&gt;
| [[space.local|space.local / room.sudoroom.org]]&lt;br /&gt;
| Our gateway. Located in the sudo room server &amp;quot;room&amp;quot;.&lt;br /&gt;
| maxb and somebody&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.11&lt;br /&gt;
|&lt;br /&gt;
| omnidoor&lt;br /&gt;
| beaglebone black controlling the door&lt;br /&gt;
| juul and jake&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.3&lt;br /&gt;
| No IPv6 address&lt;br /&gt;
| No host name&lt;br /&gt;
| Dell PowerConnect 5324 24 port gigabit switch&lt;br /&gt;
| juul&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.4&lt;br /&gt;
| No IPv6 address&lt;br /&gt;
| No host name&lt;br /&gt;
| Dell PowerConnect 5448 48 port gigabit switch&lt;br /&gt;
| juul&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.6&lt;br /&gt;
| fe80::219:b9ff:fe17:821c&lt;br /&gt;
| reproxy.local&lt;br /&gt;
| Load balancer and reverse proxy (not yet in commission).&lt;br /&gt;
| wrought&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.7&lt;br /&gt;
| fe80::214:22ff:feb0:606&lt;br /&gt;
| shell.local&lt;br /&gt;
| Shell server (not yet in commission).&lt;br /&gt;
| wrought&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.9&lt;br /&gt;
| &lt;br /&gt;
| BespokeBridge&lt;br /&gt;
| temporary wireless bridge to '''LaCommuneFront''' for public terminals near den in upstairs mezzanine&lt;br /&gt;
| [[User:Wrought|wrought]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.10&lt;br /&gt;
| &lt;br /&gt;
| nodeconf.local&lt;br /&gt;
| The sudo mesh node configuration and build server&lt;br /&gt;
| Primarily [[User:Juul|juul]] and maxb&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.12&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[Brother_HL-2270DW| Brother HL-2270DW laser printer]] (wifi)&lt;br /&gt;
| [[User:Yar|yar]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.20&lt;br /&gt;
| &lt;br /&gt;
| sudobot-3d.local&lt;br /&gt;
| [[sudobot-3d| 3d printer desktop computer &amp;amp; giant_robot_arm serial host]]&lt;br /&gt;
| [[User:jake|jake]] and [[User:Muxlux|muxlux]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.27&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[bigtv| raspberry pi connected to the big TV above skÃ¼lgaard]]&lt;br /&gt;
| [[User:jake|jake]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.30&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[omniphwn| omniphwn asterisk telephony server]]&lt;br /&gt;
| [[User:jake|jake]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.31 through .60&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[VOIP_phones| voip telephone extensions]]&lt;br /&gt;
| [[User:jake|jake]] and [[User:Muxlux|muxlux]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.77&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[pairprogramming| Dual-Monitor/Keyboard/Mouse Pair Programming Station]]&lt;br /&gt;
| [[User:jake|jake]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.22&lt;br /&gt;
| Used only to build sudo mesh firmware and turned off when not in use.&lt;br /&gt;
| meshbuild.local&lt;br /&gt;
| [[Mesh/Build server|sudo mesh build server]]&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.24&lt;br /&gt;
| &lt;br /&gt;
| ccl.local&lt;br /&gt;
| The Counter Culture Labs server. Located in the sudo room server rack.&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.31&lt;br /&gt;
| &lt;br /&gt;
| hackomat.local&lt;br /&gt;
| The [[hack-o-mat]] vending machine.&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.42&lt;br /&gt;
| &lt;br /&gt;
| omnidoor.local&lt;br /&gt;
| Dell laptop controlling the main Omni door access.&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.47&lt;br /&gt;
| &lt;br /&gt;
| spartacus.local&lt;br /&gt;
| Dell desktop proxy server, apt server, for setting up new computers &lt;br /&gt;
| [[User:biged|biged]]&lt;br /&gt;
|-&lt;br /&gt;
! 192.168.42.50 -&amp;lt;br/&amp;gt;192.168.42.254&lt;br /&gt;
|&lt;br /&gt;
!colspan=3| '''DHCP'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Wireless Access Points ==&lt;br /&gt;
{| class=&amp;quot;wikitable blue_lines&amp;quot;&lt;br /&gt;
!SSID&lt;br /&gt;
!Security&lt;br /&gt;
!Key&lt;br /&gt;
!MAC&lt;br /&gt;
!IP&lt;br /&gt;
!Channel&lt;br /&gt;
!Location&lt;br /&gt;
!Hardware&lt;br /&gt;
!Who set it up?&lt;br /&gt;
|-&lt;br /&gt;
|sudomesh&lt;br /&gt;
|open&lt;br /&gt;
|''n/a''&lt;br /&gt;
|Find Me&lt;br /&gt;
|192.168.42.18&lt;br /&gt;
|11&lt;br /&gt;
|zip-tied near server rack&lt;br /&gt;
|Ubiquiti Nanostation M2 Loco&lt;br /&gt;
|[[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
|Omni Ballroom&lt;br /&gt;
|open&lt;br /&gt;
|''n/a''&lt;br /&gt;
|Find Me&lt;br /&gt;
|192.168.42.19&lt;br /&gt;
|11&lt;br /&gt;
|Ballroom near stage&lt;br /&gt;
|Ubiquiti Picostation 2&lt;br /&gt;
|[[User:Maxb|maxb]]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Network&amp;diff=9894</id>
		<title>Network</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Network&amp;diff=9894"/>
		<updated>2016-01-18T09:12:59Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Addresses */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
''For more information about sudo room's systems in general, see [[Systems Administration]]''&lt;br /&gt;
&lt;br /&gt;
The sudo room '''network''' provides internal networking, internet access, wireless service, and some externally accessible devices or services. Information about the various devices in use and their configuration is available below.&lt;br /&gt;
&lt;br /&gt;
== peoplesopen.net ==&lt;br /&gt;
&lt;br /&gt;
If you wish to connect to the local mesh network [https://peoplesopen.net peoplesopen.net], then you can either connect using the peoplesopen.net wifi network, &amp;lt;s&amp;gt;or you can connect using ethernet through the D-Link DIR-601A router on the shelf next to the main switch&amp;lt;/s&amp;gt;. Use DHCP to get a 10.0.0.0/8 IP address on the mesh network. The router will handle the meshing protocol for you and also provide you with normal Internet access.&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
* [[Router/Config/Interface|Configure Interface Addresses]]&lt;br /&gt;
* [[Router/Config/PortForward|Open a port to the outside world]]&lt;br /&gt;
&lt;br /&gt;
== Network Info ==&lt;br /&gt;
{|class=&amp;quot;altop&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Internet access is via '''space.local''', a rackmount server running Ubuntu 14.04. If you follow the ethernet cable from the LMI modem through the patch panel, this is the first box connected to it.&lt;br /&gt;
&lt;br /&gt;
=== External ===&lt;br /&gt;
==== Addresses ====&lt;br /&gt;
&lt;br /&gt;
Our public IP is 142.254.26.9 aka '''room.sudoroom.org'''.&lt;br /&gt;
&lt;br /&gt;
=== Internal ===&lt;br /&gt;
==== Ranges ====&lt;br /&gt;
* Internal subnet: 192.168.0.0/16&lt;br /&gt;
* DHCP range: 192.168.50.1 to 192.168.200.254&lt;br /&gt;
&lt;br /&gt;
==== Addresses ====&lt;br /&gt;
{| class=&amp;quot;wikitable blue_lines&amp;quot;&lt;br /&gt;
!style=&amp;quot;width:120px;&amp;quot;| IPv4 Address&lt;br /&gt;
!style=&amp;quot;width:110px;&amp;quot;| IPv6 Address&lt;br /&gt;
!style=&amp;quot;width:110px;&amp;quot;| Assigned to&lt;br /&gt;
!Notes&lt;br /&gt;
!Who set it up?&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.1 / 142.254.26.9&lt;br /&gt;
| fd4f:dc5d:8d1::1&lt;br /&gt;
| [[space.local|space.local / room.sudoroom.org]]&lt;br /&gt;
| Our gateway. Located in the sudo room server &amp;quot;room&amp;quot;.&lt;br /&gt;
| maxb and somebody&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.11&lt;br /&gt;
|&lt;br /&gt;
| omnidoor&lt;br /&gt;
| beaglebone black controlling the door&lt;br /&gt;
| juul and jake&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.3&lt;br /&gt;
| No IPv6 address&lt;br /&gt;
| No host name&lt;br /&gt;
| Dell PowerConnect 5324 24 port gigabit switch&lt;br /&gt;
| juul&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.4&lt;br /&gt;
| No IPv6 address&lt;br /&gt;
| No host name&lt;br /&gt;
| Dell PowerConnect 5448 48 port gigabit switch&lt;br /&gt;
| juul&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.6&lt;br /&gt;
| fe80::219:b9ff:fe17:821c&lt;br /&gt;
| reproxy.local&lt;br /&gt;
| Load balancer and reverse proxy (not yet in commission).&lt;br /&gt;
| wrought&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.7&lt;br /&gt;
| fe80::214:22ff:feb0:606&lt;br /&gt;
| shell.local&lt;br /&gt;
| Shell server (not yet in commission).&lt;br /&gt;
| wrought&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.9&lt;br /&gt;
| &lt;br /&gt;
| BespokeBridge&lt;br /&gt;
| temporary wireless bridge to '''LaCommuneFront''' for public terminals near den in upstairs mezzanine&lt;br /&gt;
| [[User:Wrought|wrought]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.10&lt;br /&gt;
| &lt;br /&gt;
| nodeconf.local&lt;br /&gt;
| The sudo mesh node configuration and build server&lt;br /&gt;
| Primarily [[User:Juul|juul]] and maxb&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.12&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[Brother_HL-2270DW| Brother HL-2270DW laser printer]] (wifi)&lt;br /&gt;
| [[User:Yar|yar]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.20&lt;br /&gt;
| &lt;br /&gt;
| sudobot-3d.local&lt;br /&gt;
| [[sudobot-3d| 3d printer desktop computer &amp;amp; giant_robot_arm serial host]]&lt;br /&gt;
| [[User:jake|jake]] [[User:Muxlux|muxlux]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.27&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[bigtv| raspberry pi connected to the big TV above skÃ¼lgaard]]&lt;br /&gt;
| [[User:jake|jake]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.30&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[omniphwn| omniphwn asterisk telephony server]]&lt;br /&gt;
| [[User:jake|jake]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.31 through .60&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[VOIP_phones| voip telephone extensions]]&lt;br /&gt;
| [[User:jake|jake]] [[User:Muxlux|muxlux]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.77&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[pairprogramming| Dual-Monitor/Keyboard/Mouse Pair Programming Station]]&lt;br /&gt;
| [[User:jake|jake]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.22&lt;br /&gt;
| Used only to build sudo mesh firmware and turned off when not in use.&lt;br /&gt;
| meshbuild.local&lt;br /&gt;
| [[Mesh/Build server|sudo mesh build server]]&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.24&lt;br /&gt;
| &lt;br /&gt;
| ccl.local&lt;br /&gt;
| The Counter Culture Labs server. Located in the sudo room server rack.&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.31&lt;br /&gt;
| &lt;br /&gt;
| hackomat.local&lt;br /&gt;
| The [[hack-o-mat]] vending machine.&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.42&lt;br /&gt;
| &lt;br /&gt;
| omnidoor.local&lt;br /&gt;
| Dell laptop controlling the main Omni door access.&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.47&lt;br /&gt;
| &lt;br /&gt;
| spartacus.local&lt;br /&gt;
| Dell desktop proxy server, apt server, for setting up new computers &lt;br /&gt;
| [[User:biged|biged]]&lt;br /&gt;
|-&lt;br /&gt;
! 192.168.42.50 -&amp;lt;br/&amp;gt;192.168.42.254&lt;br /&gt;
|&lt;br /&gt;
!colspan=3| '''DHCP'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Wireless Access Points ==&lt;br /&gt;
{| class=&amp;quot;wikitable blue_lines&amp;quot;&lt;br /&gt;
!SSID&lt;br /&gt;
!Security&lt;br /&gt;
!Key&lt;br /&gt;
!MAC&lt;br /&gt;
!IP&lt;br /&gt;
!Channel&lt;br /&gt;
!Location&lt;br /&gt;
!Hardware&lt;br /&gt;
!Who set it up?&lt;br /&gt;
|-&lt;br /&gt;
|sudomesh&lt;br /&gt;
|open&lt;br /&gt;
|''n/a''&lt;br /&gt;
|Find Me&lt;br /&gt;
|192.168.42.18&lt;br /&gt;
|11&lt;br /&gt;
|zip-tied near server rack&lt;br /&gt;
|Ubiquiti Nanostation M2 Loco&lt;br /&gt;
|[[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
|Omni Ballroom&lt;br /&gt;
|open&lt;br /&gt;
|''n/a''&lt;br /&gt;
|Find Me&lt;br /&gt;
|192.168.42.19&lt;br /&gt;
|11&lt;br /&gt;
|Ballroom near stage&lt;br /&gt;
|Ubiquiti Picostation 2&lt;br /&gt;
|[[User:Maxb|maxb]]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Network&amp;diff=9893</id>
		<title>Network</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Network&amp;diff=9893"/>
		<updated>2016-01-18T09:12:33Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Addresses */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
''For more information about sudo room's systems in general, see [[Systems Administration]]''&lt;br /&gt;
&lt;br /&gt;
The sudo room '''network''' provides internal networking, internet access, wireless service, and some externally accessible devices or services. Information about the various devices in use and their configuration is available below.&lt;br /&gt;
&lt;br /&gt;
== peoplesopen.net ==&lt;br /&gt;
&lt;br /&gt;
If you wish to connect to the local mesh network [https://peoplesopen.net peoplesopen.net], then you can either connect using the peoplesopen.net wifi network, &amp;lt;s&amp;gt;or you can connect using ethernet through the D-Link DIR-601A router on the shelf next to the main switch&amp;lt;/s&amp;gt;. Use DHCP to get a 10.0.0.0/8 IP address on the mesh network. The router will handle the meshing protocol for you and also provide you with normal Internet access.&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
* [[Router/Config/Interface|Configure Interface Addresses]]&lt;br /&gt;
* [[Router/Config/PortForward|Open a port to the outside world]]&lt;br /&gt;
&lt;br /&gt;
== Network Info ==&lt;br /&gt;
{|class=&amp;quot;altop&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Internet access is via '''space.local''', a rackmount server running Ubuntu 14.04. If you follow the ethernet cable from the LMI modem through the patch panel, this is the first box connected to it.&lt;br /&gt;
&lt;br /&gt;
=== External ===&lt;br /&gt;
==== Addresses ====&lt;br /&gt;
&lt;br /&gt;
Our public IP is 142.254.26.9 aka '''room.sudoroom.org'''.&lt;br /&gt;
&lt;br /&gt;
=== Internal ===&lt;br /&gt;
==== Ranges ====&lt;br /&gt;
* Internal subnet: 192.168.0.0/16&lt;br /&gt;
* DHCP range: 192.168.50.1 to 192.168.200.254&lt;br /&gt;
&lt;br /&gt;
==== Addresses ====&lt;br /&gt;
{| class=&amp;quot;wikitable blue_lines&amp;quot;&lt;br /&gt;
!style=&amp;quot;width:120px;&amp;quot;| IPv4 Address&lt;br /&gt;
!style=&amp;quot;width:110px;&amp;quot;| IPv6 Address&lt;br /&gt;
!style=&amp;quot;width:110px;&amp;quot;| Assigned to&lt;br /&gt;
!Notes&lt;br /&gt;
!Who set it up?&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.1 / 142.254.26.9&lt;br /&gt;
| fd4f:dc5d:8d1::1&lt;br /&gt;
| [[space.local|space.local / room.sudoroom.org]]&lt;br /&gt;
| Our gateway. Located in the sudo room server &amp;quot;room&amp;quot;.&lt;br /&gt;
| maxb and somebody&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.11&lt;br /&gt;
|&lt;br /&gt;
| omnidoor&lt;br /&gt;
| beaglebone black controlling the door&lt;br /&gt;
| juul and jake&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.3&lt;br /&gt;
| No IPv6 address&lt;br /&gt;
| No host name&lt;br /&gt;
| Dell PowerConnect 5324 24 port gigabit switch&lt;br /&gt;
| juul&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.4&lt;br /&gt;
| No IPv6 address&lt;br /&gt;
| No host name&lt;br /&gt;
| Dell PowerConnect 5448 48 port gigabit switch&lt;br /&gt;
| juul&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.6&lt;br /&gt;
| fe80::219:b9ff:fe17:821c&lt;br /&gt;
| reproxy.local&lt;br /&gt;
| Load balancer and reverse proxy (not yet in commission).&lt;br /&gt;
| wrought&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.7&lt;br /&gt;
| fe80::214:22ff:feb0:606&lt;br /&gt;
| shell.local&lt;br /&gt;
| Shell server (not yet in commission).&lt;br /&gt;
| wrought&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.9&lt;br /&gt;
| &lt;br /&gt;
| BespokeBridge&lt;br /&gt;
| temporary wireless bridge to '''LaCommuneFront''' for public terminals near den in upstairs mezzanine&lt;br /&gt;
| [[User:Wrought|wrought]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.10&lt;br /&gt;
| &lt;br /&gt;
| nodeconf.local&lt;br /&gt;
| The sudo mesh node configuration and build server&lt;br /&gt;
| Primarily [[User:Juul|juul]] and maxb&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.12&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[Brother_HL-2270DW| Brother HL-2270DW laser printer]] (wifi)&lt;br /&gt;
| [[User:Yar|yar]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.20&lt;br /&gt;
| &lt;br /&gt;
| sudobot-3d.local&lt;br /&gt;
| [[sudobot-3d| 3d printer desktop computer &amp;amp; giant_robot_arm serial host]]&lt;br /&gt;
| [[User:jake|jake]] [[User:Muxlux|Muxlux]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.27&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[bigtv| raspberry pi connected to the big TV above skÃ¼lgaard]]&lt;br /&gt;
| [[User:jake|jake]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.30&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[omniphwn| omniphwn asterisk telephony server]]&lt;br /&gt;
| [[User:jake|jake]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.31 through .60&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[VOIP_phones| voip telephone extensions]]&lt;br /&gt;
| [[User:jake|jake]] [[User:Muxlux|muxlux]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.77&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[pairprogramming| Dual-Monitor/Keyboard/Mouse Pair Programming Station]]&lt;br /&gt;
| [[User:jake|jake]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.22&lt;br /&gt;
| Used only to build sudo mesh firmware and turned off when not in use.&lt;br /&gt;
| meshbuild.local&lt;br /&gt;
| [[Mesh/Build server|sudo mesh build server]]&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.24&lt;br /&gt;
| &lt;br /&gt;
| ccl.local&lt;br /&gt;
| The Counter Culture Labs server. Located in the sudo room server rack.&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.31&lt;br /&gt;
| &lt;br /&gt;
| hackomat.local&lt;br /&gt;
| The [[hack-o-mat]] vending machine.&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.42&lt;br /&gt;
| &lt;br /&gt;
| omnidoor.local&lt;br /&gt;
| Dell laptop controlling the main Omni door access.&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.47&lt;br /&gt;
| &lt;br /&gt;
| spartacus.local&lt;br /&gt;
| Dell desktop proxy server, apt server, for setting up new computers &lt;br /&gt;
| [[User:biged|biged]]&lt;br /&gt;
|-&lt;br /&gt;
! 192.168.42.50 -&amp;lt;br/&amp;gt;192.168.42.254&lt;br /&gt;
|&lt;br /&gt;
!colspan=3| '''DHCP'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Wireless Access Points ==&lt;br /&gt;
{| class=&amp;quot;wikitable blue_lines&amp;quot;&lt;br /&gt;
!SSID&lt;br /&gt;
!Security&lt;br /&gt;
!Key&lt;br /&gt;
!MAC&lt;br /&gt;
!IP&lt;br /&gt;
!Channel&lt;br /&gt;
!Location&lt;br /&gt;
!Hardware&lt;br /&gt;
!Who set it up?&lt;br /&gt;
|-&lt;br /&gt;
|sudomesh&lt;br /&gt;
|open&lt;br /&gt;
|''n/a''&lt;br /&gt;
|Find Me&lt;br /&gt;
|192.168.42.18&lt;br /&gt;
|11&lt;br /&gt;
|zip-tied near server rack&lt;br /&gt;
|Ubiquiti Nanostation M2 Loco&lt;br /&gt;
|[[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
|Omni Ballroom&lt;br /&gt;
|open&lt;br /&gt;
|''n/a''&lt;br /&gt;
|Find Me&lt;br /&gt;
|192.168.42.19&lt;br /&gt;
|11&lt;br /&gt;
|Ballroom near stage&lt;br /&gt;
|Ubiquiti Picostation 2&lt;br /&gt;
|[[User:Maxb|maxb]]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Network&amp;diff=9892</id>
		<title>Network</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Network&amp;diff=9892"/>
		<updated>2016-01-18T09:10:54Z</updated>

		<summary type="html">&lt;p&gt;Robb: /* Addresses */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
''For more information about sudo room's systems in general, see [[Systems Administration]]''&lt;br /&gt;
&lt;br /&gt;
The sudo room '''network''' provides internal networking, internet access, wireless service, and some externally accessible devices or services. Information about the various devices in use and their configuration is available below.&lt;br /&gt;
&lt;br /&gt;
== peoplesopen.net ==&lt;br /&gt;
&lt;br /&gt;
If you wish to connect to the local mesh network [https://peoplesopen.net peoplesopen.net], then you can either connect using the peoplesopen.net wifi network, &amp;lt;s&amp;gt;or you can connect using ethernet through the D-Link DIR-601A router on the shelf next to the main switch&amp;lt;/s&amp;gt;. Use DHCP to get a 10.0.0.0/8 IP address on the mesh network. The router will handle the meshing protocol for you and also provide you with normal Internet access.&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
* [[Router/Config/Interface|Configure Interface Addresses]]&lt;br /&gt;
* [[Router/Config/PortForward|Open a port to the outside world]]&lt;br /&gt;
&lt;br /&gt;
== Network Info ==&lt;br /&gt;
{|class=&amp;quot;altop&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Internet access is via '''space.local''', a rackmount server running Ubuntu 14.04. If you follow the ethernet cable from the LMI modem through the patch panel, this is the first box connected to it.&lt;br /&gt;
&lt;br /&gt;
=== External ===&lt;br /&gt;
==== Addresses ====&lt;br /&gt;
&lt;br /&gt;
Our public IP is 142.254.26.9 aka '''room.sudoroom.org'''.&lt;br /&gt;
&lt;br /&gt;
=== Internal ===&lt;br /&gt;
==== Ranges ====&lt;br /&gt;
* Internal subnet: 192.168.0.0/16&lt;br /&gt;
* DHCP range: 192.168.50.1 to 192.168.200.254&lt;br /&gt;
&lt;br /&gt;
==== Addresses ====&lt;br /&gt;
{| class=&amp;quot;wikitable blue_lines&amp;quot;&lt;br /&gt;
!style=&amp;quot;width:120px;&amp;quot;| IPv4 Address&lt;br /&gt;
!style=&amp;quot;width:110px;&amp;quot;| IPv6 Address&lt;br /&gt;
!style=&amp;quot;width:110px;&amp;quot;| Assigned to&lt;br /&gt;
!Notes&lt;br /&gt;
!Who set it up?&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.1 / 142.254.26.9&lt;br /&gt;
| fd4f:dc5d:8d1::1&lt;br /&gt;
| [[space.local|space.local / room.sudoroom.org]]&lt;br /&gt;
| Our gateway. Located in the sudo room server &amp;quot;room&amp;quot;.&lt;br /&gt;
| maxb and somebody&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.11&lt;br /&gt;
|&lt;br /&gt;
| omnidoor&lt;br /&gt;
| beaglebone black controlling the door&lt;br /&gt;
| juul and jake&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.3&lt;br /&gt;
| No IPv6 address&lt;br /&gt;
| No host name&lt;br /&gt;
| Dell PowerConnect 5324 24 port gigabit switch&lt;br /&gt;
| juul&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.4&lt;br /&gt;
| No IPv6 address&lt;br /&gt;
| No host name&lt;br /&gt;
| Dell PowerConnect 5448 48 port gigabit switch&lt;br /&gt;
| juul&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.6&lt;br /&gt;
| fe80::219:b9ff:fe17:821c&lt;br /&gt;
| reproxy.local&lt;br /&gt;
| Load balancer and reverse proxy (not yet in commission).&lt;br /&gt;
| wrought&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.7&lt;br /&gt;
| fe80::214:22ff:feb0:606&lt;br /&gt;
| shell.local&lt;br /&gt;
| Shell server (not yet in commission).&lt;br /&gt;
| wrought&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.9&lt;br /&gt;
| &lt;br /&gt;
| BespokeBridge&lt;br /&gt;
| temporary wireless bridge to '''LaCommuneFront''' for public terminals near den in upstairs mezzanine&lt;br /&gt;
| [[User:Wrought|wrought]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.10&lt;br /&gt;
| &lt;br /&gt;
| nodeconf.local&lt;br /&gt;
| The sudo mesh node configuration and build server&lt;br /&gt;
| Primarily [[User:Juul|juul]] and maxb&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.12&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[Brother_HL-2270DW| Brother HL-2270DW laser printer]] (wifi)&lt;br /&gt;
| [[User:Yar|yar]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.20&lt;br /&gt;
| &lt;br /&gt;
| sudobot-3d.local&lt;br /&gt;
| [[sudobot-3d| 3d printer desktop computer &amp;amp; giant_robot_arm serial host]]&lt;br /&gt;
| [[User:jake|jake]] [[User:Muxlux|Muxlux]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.27&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[bigtv| raspberry pi connected to the big TV above skÃ¼lgaard]]&lt;br /&gt;
| [[User:jake|jake]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.30&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[omniphwn| omniphwn asterisk telephony server]]&lt;br /&gt;
| [[User:jake|jake]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.31 through .60&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[VOIP_phones| voip telephone extensions]]&lt;br /&gt;
| [[User:jake|jake]] [[User:Muxlux|Muxlux]]&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.64.77&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[pairprogramming| Dual-Monitor/Keyboard/Mouse Pair Programming Station]]&lt;br /&gt;
| [[User:jake|jake]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.22&lt;br /&gt;
| Used only to build sudo mesh firmware and turned off when not in use.&lt;br /&gt;
| meshbuild.local&lt;br /&gt;
| [[Mesh/Build server|sudo mesh build server]]&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.24&lt;br /&gt;
| &lt;br /&gt;
| ccl.local&lt;br /&gt;
| The Counter Culture Labs server. Located in the sudo room server rack.&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.31&lt;br /&gt;
| &lt;br /&gt;
| hackomat.local&lt;br /&gt;
| The [[hack-o-mat]] vending machine.&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.42&lt;br /&gt;
| &lt;br /&gt;
| omnidoor.local&lt;br /&gt;
| Dell laptop controlling the main Omni door access.&lt;br /&gt;
| [[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.42.47&lt;br /&gt;
| &lt;br /&gt;
| spartacus.local&lt;br /&gt;
| Dell desktop proxy server, apt server, for setting up new computers &lt;br /&gt;
| [[User:biged|biged]]&lt;br /&gt;
|-&lt;br /&gt;
! 192.168.42.50 -&amp;lt;br/&amp;gt;192.168.42.254&lt;br /&gt;
|&lt;br /&gt;
!colspan=3| '''DHCP'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Wireless Access Points ==&lt;br /&gt;
{| class=&amp;quot;wikitable blue_lines&amp;quot;&lt;br /&gt;
!SSID&lt;br /&gt;
!Security&lt;br /&gt;
!Key&lt;br /&gt;
!MAC&lt;br /&gt;
!IP&lt;br /&gt;
!Channel&lt;br /&gt;
!Location&lt;br /&gt;
!Hardware&lt;br /&gt;
!Who set it up?&lt;br /&gt;
|-&lt;br /&gt;
|sudomesh&lt;br /&gt;
|open&lt;br /&gt;
|''n/a''&lt;br /&gt;
|Find Me&lt;br /&gt;
|192.168.42.18&lt;br /&gt;
|11&lt;br /&gt;
|zip-tied near server rack&lt;br /&gt;
|Ubiquiti Nanostation M2 Loco&lt;br /&gt;
|[[User:Juul|juul]]&lt;br /&gt;
|-&lt;br /&gt;
|Omni Ballroom&lt;br /&gt;
|open&lt;br /&gt;
|''n/a''&lt;br /&gt;
|Find Me&lt;br /&gt;
|192.168.42.19&lt;br /&gt;
|11&lt;br /&gt;
|Ballroom near stage&lt;br /&gt;
|Ubiquiti Picostation 2&lt;br /&gt;
|[[User:Maxb|maxb]]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[[Category:Network]]&lt;/div&gt;</summary>
		<author><name>Robb</name></author>
	</entry>
</feed>