<?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=Matt</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=Matt"/>
	<link rel="alternate" type="text/html" href="https://sudoroom.org/wiki/Special:Contributions/Matt"/>
	<updated>2026-05-10T18:30:56Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.2</generator>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11663</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11663"/>
		<updated>2019-12-14T01:39:44Z</updated>

		<summary type="html">&lt;p&gt;Matt: adds troubleshooting and reset button soldering section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 can flash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using the &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; command (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
* If your reset was not successful, try debugging your network configuration described in the previous step.&lt;br /&gt;
** If you continue to have issues consider reloading network settings or restarting your computer.&lt;br /&gt;
** If you are still unable to access this firmware upload page, turn off your router and try to reset it again as instructed above. &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;
* Make sure not to disconnect or lose power at this stage, wait for the timer to complete. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' Sometimes the firmware upload will not complete correctly. 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;
&lt;br /&gt;
'''''If you are configuring something other than a WD MyNet N600, or firmware version 0.2.3 or earlier, follow ([[#Makenode_.28v.0.2.3_and_earlier.29|these instructions]])'''''&lt;br /&gt;
&lt;br /&gt;
[[File:Nodeports titles.png|400px|thumb|right|Plug into port 3 to access the private network from your laptop. Port 2 connects to the public 'peoplesopen.net' network]]&lt;br /&gt;
# Connect your newly-flashed MyNet N600 to your existing Internet router via ethernet cable from your existing router's '''LAN port''' to your new node's '''Internet port'''.&lt;br /&gt;
# Wait several minutes for your new node autoconfigure, connect to the Internet, and obtain its private IP address from the sudo mesh build server. When this process is complete, the node should broadcast several WiFi networks with the following SSIDs and purposes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; - This is the public network broadcast on the 2.4ghz band; it has no password, and is suitable for access to the internet.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net fast&amp;lt;/code&amp;gt; - This is the same public network, but broadcast on the 5ghz band, which is more ideal for high-bandwidth activities such as streaming media.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net-node2node&amp;lt;/code&amp;gt; - This is the public network used for mesh nodes to discover and communicate with one another. You should not need to connect or use this network, but you will want to verify it is active.&lt;br /&gt;
#* &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; This is the private network, and you can use it to access a web dashboard to configure some settings, such as its SSID. The default WiFi password is &amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;. Try connecting to it (you can also connect to the private network using an ethernet cable connected to '''port 3''' on an N600 -- see diagram for details).&lt;br /&gt;
&lt;br /&gt;
Learn more about the [[Mesh/Network topology|network's topology here]].&lt;br /&gt;
&lt;br /&gt;
== Configuring the Web Dashboard ==&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network (default &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt;), try connecting to the home node's web dashboard by opening a web browser and navigating to [http://172.30.0.1 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;
The default password is &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here you can set the amount of downstream and upstream bandwidth you're willing to share on the public &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; network (default is set to 4096kb, or roughly 4 megabits/second):&lt;br /&gt;
&lt;br /&gt;
[[File:homeScreen.jpg|frame|center|upright=2]]&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 (&amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;) and then reconnect again with the new password after setting it in the dashboard]] [[File:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changing Admin and Root User Passwords ==&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change the above wifi settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; private network (or whatever new SSID you may have chosen):&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&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 (default &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt;). Additionally the public SSIDs &amp;lt;code&amp;gt;peoplesopen.net &amp;lt;your mesh IP&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;peoplesopen.net fast &amp;lt;your mesh IP&amp;gt;&amp;lt;/code&amp;gt; will be available. It should also be populated on the [https://peoplesopen.herokuapp.com monitor]!&lt;br /&gt;
&lt;br /&gt;
A fourth interface named &amp;lt;code&amp;gt;pplsopen.net-node2node&amp;lt;/code&amp;gt; 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. Reach out to the [[Mesh#How_To_Participate|rest of the network]]!&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Soldering A Reset Button ==&lt;br /&gt;
&lt;br /&gt;
As you are resetting routers, you may end up having a component, such as the reset button itself, fall off of the PCB (printed circuit board). The WD MyNet n600 has security screws, so you may need a [https://www.google.com/search?hl=en&amp;amp;ei=Zz30XZ-iLurJ0PEP8Mq90As&amp;amp;q=site%3Aaliexpress.com+torx+t10+security+bit&amp;amp;oq=site%3Aaliexpress.com+torx+t10+security+bit&amp;amp;gs_l=psy-ab.3...15707.23122..23261...0.0..2.605.6423.23j13j6j1j1j1......0....1..gws-wiz.......0i273j0j0i131j0i67.SQrobDcWg6U&amp;amp;ved=0ahUKEwjf8eHvgLTmAhXqJDQIHXBlD7oQ4dUDCAs&amp;amp;uact=5 Torx T10 Security Bit] to remove the case. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;traditional&amp;quot;&amp;gt;&lt;br /&gt;
File:Wd_n600_naked_board.jpg|WD MyNet n600 naked (without case)&lt;br /&gt;
File:Wd_n600_reset_button_resolder.jpg|WD MyNet n600 resolder of the reset button that fell off&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=File:Wd_n600_reset_button_resolder.jpg&amp;diff=11662</id>
		<title>File:Wd n600 reset button resolder.jpg</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=File:Wd_n600_reset_button_resolder.jpg&amp;diff=11662"/>
		<updated>2019-12-14T01:26:36Z</updated>

		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=File:Wd_n600_naked_board.jpg&amp;diff=11661</id>
		<title>File:Wd n600 naked board.jpg</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=File:Wd_n600_naked_board.jpg&amp;diff=11661"/>
		<updated>2019-12-14T01:24:03Z</updated>

		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11658</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11658"/>
		<updated>2019-11-14T07:18:36Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Testing */ remove apostrophe (lol)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using the &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; command (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
* If your reset was not successful, try debugging your network configuration described in the previous step.&lt;br /&gt;
** If you continue to have issues consider reloading network settings or restarting your computer.&lt;br /&gt;
** If you are still unable to access this firmware upload page, turn off your router and try to reset it again as instructed above. &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;
* Make sure not to disconnect or lose power at this stage, wait for the timer to complete. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' Sometimes the firmware upload will not complete correctly. 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 &amp;lt;code&amp;gt;172.30.0.xx&amp;lt;/code&amp;gt;. 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: &amp;lt;code&amp;gt;172.30.0.10&amp;lt;/code&amp;gt;&lt;br /&gt;
* Subnet mask:  &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;&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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
'''''Note: If you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, your node can be autoconfigured. You will not need to use the previous solution &amp;lt;code&amp;gt;makenode&amp;lt;/code&amp;gt;, otherwise you may need to read the ([[#Makenode_.28v.0.2.3_and_earlier.29|instructions further down]])'''''&lt;br /&gt;
&lt;br /&gt;
[[File:Nodeports titles.png|400px|thumb|right|Plug into port 3 to access the private network from your laptop. Port 2 connects to the public 'peoplesopen.net' network]]&lt;br /&gt;
# Connect your newly-flashed MyNet N600 to your existing Internet router via ethernet cable from your existing router's '''LAN port''' to your new node's '''Internet port'''.&lt;br /&gt;
# Wait several minutes for your new node autoconfigure, connect to the Internet, and obtain its private IP address from the sudo mesh build server. When this process is complete, the node should broadcast several WiFi networks with the following SSIDs and purposes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; - This is the public network broadcast on the 2.4ghz band; it has no password, and is suitable for access to the internet.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net fast&amp;lt;/code&amp;gt; - This is the same public network, but broadcast on the 5ghz band, which is more ideal for high-bandwidth activities such as streaming media.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net-node2node&amp;lt;/code&amp;gt; - This is the public network used for mesh nodes to discover and communicate with one another. You should not need to connect or use this network, but you will want to verify it is active.&lt;br /&gt;
#* &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; This is the private network, and you can use it to access a web dashboard to configure some settings, such as its SSID. The default WiFi password is &amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;. Try connecting to it (you can also connect to the private network using an ethernet cable connected to '''port 3''' on an N600 -- see diagram for details).&lt;br /&gt;
&lt;br /&gt;
Learn more about the [[Mesh/Network topology|network's topology here]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring the Web Dashboard ===&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network (default &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt;), try connecting to the home node's web dashboard by opening a web browser and navigating to [http://172.30.0.1 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;
The default password is &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here you can set the amount of downstream and upstream bandwidth you're willing to share on the public &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; network (default is set to 4096kb, or roughly 4 megabits/second):&lt;br /&gt;
&lt;br /&gt;
[[File:homeScreen.jpg|frame|center|upright=2]]&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 (&amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;) and then reconnect again with the new password after setting it in the dashboard]] [[File:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changing Admin and Root User Passwords ===&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change the above wifi settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; private network (or whatever new SSID you may have chosen):&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&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 (default &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt;). Additionally the public SSIDs &amp;lt;code&amp;gt;peoplesopen.net &amp;lt;your mesh IP&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;peoplesopen.net fast &amp;lt;your mesh IP&amp;gt;&amp;lt;/code&amp;gt; will be available. It should also be populated on the [https://peoplesopen.herokuapp.com monitor]!&lt;br /&gt;
&lt;br /&gt;
A fourth interface named &amp;lt;code&amp;gt;pplsopen.net-node2node&amp;lt;/code&amp;gt; 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. Reach out to the [[Mesh#How_To_Participate|rest of the network]]!&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11657</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11657"/>
		<updated>2019-11-14T07:18:10Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using the &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; command (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
* If your reset was not successful, try debugging your network configuration described in the previous step.&lt;br /&gt;
** If you continue to have issues consider reloading network settings or restarting your computer.&lt;br /&gt;
** If you are still unable to access this firmware upload page, turn off your router and try to reset it again as instructed above. &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;
* Make sure not to disconnect or lose power at this stage, wait for the timer to complete. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' Sometimes the firmware upload will not complete correctly. 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 &amp;lt;code&amp;gt;172.30.0.xx&amp;lt;/code&amp;gt;. 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: &amp;lt;code&amp;gt;172.30.0.10&amp;lt;/code&amp;gt;&lt;br /&gt;
* Subnet mask:  &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;&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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
'''''Note: If you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, your node can be autoconfigured. You will not need to use the previous solution &amp;lt;code&amp;gt;makenode&amp;lt;/code&amp;gt;, otherwise you may need to read the ([[#Makenode_.28v.0.2.3_and_earlier.29|instructions further down]])'''''&lt;br /&gt;
&lt;br /&gt;
[[File:Nodeports titles.png|400px|thumb|right|Plug into port 3 to access the private network from your laptop. Port 2 connects to the public 'peoplesopen.net' network]]&lt;br /&gt;
# Connect your newly-flashed MyNet N600 to your existing Internet router via ethernet cable from your existing router's '''LAN port''' to your new node's '''Internet port'''.&lt;br /&gt;
# Wait several minutes for your new node autoconfigure, connect to the Internet, and obtain its private IP address from the sudo mesh build server. When this process is complete, the node should broadcast several WiFi networks with the following SSIDs and purposes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; - This is the public network broadcast on the 2.4ghz band; it has no password, and is suitable for access to the internet.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net fast&amp;lt;/code&amp;gt; - This is the same public network, but broadcast on the 5ghz band, which is more ideal for high-bandwidth activities such as streaming media.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net-node2node&amp;lt;/code&amp;gt; - This is the public network used for mesh nodes to discover and communicate with one another. You should not need to connect or use this network, but you will want to verify it is active.&lt;br /&gt;
#* &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; This is the private network, and you can use it to access a web dashboard to configure some settings, such as its SSID. The default WiFi password is &amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;. Try connecting to it (you can also connect to the private network using an ethernet cable connected to '''port 3''' on an N600 -- see diagram for details).&lt;br /&gt;
&lt;br /&gt;
Learn more about the [[Mesh/Network topology|network's topology here]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring the Web Dashboard ===&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network (default &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt;), try connecting to the home node's web dashboard by opening a web browser and navigating to [http://172.30.0.1 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;
The default password is &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here you can set the amount of downstream and upstream bandwidth you're willing to share on the public &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; network (default is set to 4096kb, or roughly 4 megabits/second):&lt;br /&gt;
&lt;br /&gt;
[[File:homeScreen.jpg|frame|center|upright=2]]&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 (&amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;) and then reconnect again with the new password after setting it in the dashboard]] [[File:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changing Admin and Root User Passwords ===&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change the above wifi settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; private network (or whatever new SSID you may have chosen):&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&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 (default &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt;). Additionally the public SSIDs &amp;lt;code&amp;gt;peoplesopen.net &amp;lt;your mesh IP&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;peoplesopen.net fast &amp;lt;your mesh IP&amp;gt;&amp;lt;/code&amp;gt; will be available. It should also be populated on the [https://peoplesopen.herokuapp.com monitor]!&lt;br /&gt;
&lt;br /&gt;
A fourth interface named &amp;lt;code&amp;gt;pplsopen.net-node2node'&amp;lt;/code&amp;gt; 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. Reach out to the [[Mesh#How_To_Participate|rest of the network]]!&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11656</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11656"/>
		<updated>2019-11-14T06:09:01Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Configuring the Web Dashboard */ fixes link update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using the &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; command (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
* If your reset was not successful, try debugging your network configuration described in the previous step.&lt;br /&gt;
** If you continue to have issues consider reloading network settings or restarting your computer.&lt;br /&gt;
** If you are still unable to access this firmware upload page, turn off your router and try to reset it again as instructed above. &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;
* Make sure not to disconnect or lose power at this stage, wait for the timer to complete. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' Sometimes the firmware upload will not complete correctly. 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 &amp;lt;code&amp;gt;172.30.0.xx&amp;lt;/code&amp;gt;. 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: &amp;lt;code&amp;gt;172.30.0.10&amp;lt;/code&amp;gt;&lt;br /&gt;
* Subnet mask:  &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;&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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
'''''Note: If you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, your node can be autoconfigured. You will not need to use the previous solution &amp;lt;code&amp;gt;makenode&amp;lt;/code&amp;gt;, otherwise you may need to read the ([[#Makenode_.28v.0.2.3_and_earlier.29|instructions further down]])'''''&lt;br /&gt;
&lt;br /&gt;
[[File:Nodeports titles.png|400px|thumb|right|Plug into port 3 to access the private network from your laptop. Port 2 connects to the public 'peoplesopen.net' network]]&lt;br /&gt;
# Connect your newly-flashed MyNet N600 to your existing Internet router via ethernet cable from your existing router's '''LAN port''' to your new node's '''Internet port'''.&lt;br /&gt;
# Wait several minutes for your new node autoconfigure, connect to the Internet, and obtain its private IP address from the sudo mesh build server. When this process is complete, the node should broadcast several WiFi networks with the following SSIDs and purposes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; - This is the public network broadcast on the 2.4ghz band; it has no password, and is suitable for access to the internet.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net fast&amp;lt;/code&amp;gt; - This is the same public network, but broadcast on the 5ghz band, which is more ideal for high-bandwidth activities such as streaming media.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net-node2node&amp;lt;/code&amp;gt; - This is the public network used for mesh nodes to discover and communicate with one another. You should not need to connect or use this network, but you will want to verify it is active.&lt;br /&gt;
#* &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; This is the private network, and you can use it to access a web dashboard to configure some settings, such as its SSID. The default WiFi password is &amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;. Try connecting to it (you can also connect to the private network using an ethernet cable connected to '''port 3''' on an N600 -- see diagram for details).&lt;br /&gt;
&lt;br /&gt;
Learn more about the [[Mesh/Network topology|network's topology here]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring the Web Dashboard ===&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network (default &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt;), try connecting to the home node's web dashboard by opening a web browser and navigating to [http://172.30.0.1 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;
The default password is &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here you can set the amount of downstream and upstream bandwidth you're willing to share on the public &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; network (default is set to 4096kb, or roughly 4 megabits/second):&lt;br /&gt;
&lt;br /&gt;
[[File:homeScreen.jpg|frame|center|upright=2]]&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 (&amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;) and then reconnect again with the new password after setting it in the dashboard]] [[File:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changing Admin and Root User Passwords ===&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change the above wifi settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; private network (or whatever new SSID you may have chosen):&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&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. Reach out to the [[Mesh#How_To_Participate|rest of the network]]!&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11655</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11655"/>
		<updated>2019-11-14T06:08:44Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Configuring the Web Dashboard */ updates link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using the &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; command (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
* If your reset was not successful, try debugging your network configuration described in the previous step.&lt;br /&gt;
** If you continue to have issues consider reloading network settings or restarting your computer.&lt;br /&gt;
** If you are still unable to access this firmware upload page, turn off your router and try to reset it again as instructed above. &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;
* Make sure not to disconnect or lose power at this stage, wait for the timer to complete. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' Sometimes the firmware upload will not complete correctly. 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 &amp;lt;code&amp;gt;172.30.0.xx&amp;lt;/code&amp;gt;. 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: &amp;lt;code&amp;gt;172.30.0.10&amp;lt;/code&amp;gt;&lt;br /&gt;
* Subnet mask:  &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;&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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
'''''Note: If you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, your node can be autoconfigured. You will not need to use the previous solution &amp;lt;code&amp;gt;makenode&amp;lt;/code&amp;gt;, otherwise you may need to read the ([[#Makenode_.28v.0.2.3_and_earlier.29|instructions further down]])'''''&lt;br /&gt;
&lt;br /&gt;
[[File:Nodeports titles.png|400px|thumb|right|Plug into port 3 to access the private network from your laptop. Port 2 connects to the public 'peoplesopen.net' network]]&lt;br /&gt;
# Connect your newly-flashed MyNet N600 to your existing Internet router via ethernet cable from your existing router's '''LAN port''' to your new node's '''Internet port'''.&lt;br /&gt;
# Wait several minutes for your new node autoconfigure, connect to the Internet, and obtain its private IP address from the sudo mesh build server. When this process is complete, the node should broadcast several WiFi networks with the following SSIDs and purposes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; - This is the public network broadcast on the 2.4ghz band; it has no password, and is suitable for access to the internet.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net fast&amp;lt;/code&amp;gt; - This is the same public network, but broadcast on the 5ghz band, which is more ideal for high-bandwidth activities such as streaming media.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net-node2node&amp;lt;/code&amp;gt; - This is the public network used for mesh nodes to discover and communicate with one another. You should not need to connect or use this network, but you will want to verify it is active.&lt;br /&gt;
#* &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; This is the private network, and you can use it to access a web dashboard to configure some settings, such as its SSID. The default WiFi password is &amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;. Try connecting to it (you can also connect to the private network using an ethernet cable connected to '''port 3''' on an N600 -- see diagram for details).&lt;br /&gt;
&lt;br /&gt;
Learn more about the [[Mesh/Network topology|network's topology here]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring the Web Dashboard ===&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network (default &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt;), try connecting to the home node's web dashboard by opening a web browser and navigating to [http://172.30.0.1|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;
The default password is &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here you can set the amount of downstream and upstream bandwidth you're willing to share on the public &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; network (default is set to 4096kb, or roughly 4 megabits/second):&lt;br /&gt;
&lt;br /&gt;
[[File:homeScreen.jpg|frame|center|upright=2]]&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 (&amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;) and then reconnect again with the new password after setting it in the dashboard]] [[File:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changing Admin and Root User Passwords ===&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change the above wifi settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; private network (or whatever new SSID you may have chosen):&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&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. Reach out to the [[Mesh#How_To_Participate|rest of the network]]!&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11654</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11654"/>
		<updated>2019-11-14T06:06:14Z</updated>

		<summary type="html">&lt;p&gt;Matt: cleans up ending&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using the &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; command (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
* If your reset was not successful, try debugging your network configuration described in the previous step.&lt;br /&gt;
** If you continue to have issues consider reloading network settings or restarting your computer.&lt;br /&gt;
** If you are still unable to access this firmware upload page, turn off your router and try to reset it again as instructed above. &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;
* Make sure not to disconnect or lose power at this stage, wait for the timer to complete. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' Sometimes the firmware upload will not complete correctly. 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 &amp;lt;code&amp;gt;172.30.0.xx&amp;lt;/code&amp;gt;. 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: &amp;lt;code&amp;gt;172.30.0.10&amp;lt;/code&amp;gt;&lt;br /&gt;
* Subnet mask:  &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;&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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
'''''Note: If you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, your node can be autoconfigured. You will not need to use the previous solution &amp;lt;code&amp;gt;makenode&amp;lt;/code&amp;gt;, otherwise you may need to read the ([[#Makenode_.28v.0.2.3_and_earlier.29|instructions further down]])'''''&lt;br /&gt;
&lt;br /&gt;
[[File:Nodeports titles.png|400px|thumb|right|Plug into port 3 to access the private network from your laptop. Port 2 connects to the public 'peoplesopen.net' network]]&lt;br /&gt;
# Connect your newly-flashed MyNet N600 to your existing Internet router via ethernet cable from your existing router's '''LAN port''' to your new node's '''Internet port'''.&lt;br /&gt;
# Wait several minutes for your new node autoconfigure, connect to the Internet, and obtain its private IP address from the sudo mesh build server. When this process is complete, the node should broadcast several WiFi networks with the following SSIDs and purposes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; - This is the public network broadcast on the 2.4ghz band; it has no password, and is suitable for access to the internet.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net fast&amp;lt;/code&amp;gt; - This is the same public network, but broadcast on the 5ghz band, which is more ideal for high-bandwidth activities such as streaming media.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net-node2node&amp;lt;/code&amp;gt; - This is the public network used for mesh nodes to discover and communicate with one another. You should not need to connect or use this network, but you will want to verify it is active.&lt;br /&gt;
#* &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; This is the private network, and you can use it to access a web dashboard to configure some settings, such as its SSID. The default WiFi password is &amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;. Try connecting to it (you can also connect to the private network using an ethernet cable connected to '''port 3''' on an N600 -- see diagram for details).&lt;br /&gt;
&lt;br /&gt;
Learn more about the [[Mesh/Network topology|network's topology here]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring the Web Dashboard ===&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network (default &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt;), try connecting to the home node's web dashboard by opening a web 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;
The default password is &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here you can set the amount of downstream and upstream bandwidth you're willing to share on the public &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; network (default is set to 4096kb, or roughly 4 megabits/second):&lt;br /&gt;
&lt;br /&gt;
[[File:homeScreen.jpg|frame|center|upright=2]]&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 (&amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;) and then reconnect again with the new password after setting it in the dashboard]] [[File:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changing Admin and Root User Passwords ===&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change the above wifi settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; private network (or whatever new SSID you may have chosen):&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&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. Reach out to the [[Mesh#How_To_Participate|rest of the network]]!&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/Makenode&amp;diff=11653</id>
		<title>Mesh/Makenode</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/Makenode&amp;diff=11653"/>
		<updated>2019-11-14T06:04:45Z</updated>

		<summary type="html">&lt;p&gt;Matt: moves more sections from WalkThrough page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;makenode is a script that finishes the configuration for People's Open nodes flashed with the sudowrt firmware, see https://github.com/sudomesh/makenode.&lt;br /&gt;
&lt;br /&gt;
This script is in the process of being deprecated, below is ongoing documentation this deprecation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Early alpha status. Things may break.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= makenode theory =&lt;br /&gt;
There are two interconnected theories that govern the implementation, usage, and deprecation of the makenode script&lt;br /&gt;
&lt;br /&gt;
== theory for implementation ==&lt;br /&gt;
The story goes that makenode was created to solve a few problems with the sudowrt firmware. Mainly, it was much quicker to implement changes in makenode rather than rebuilding the firmware. This way patches could be rapidly deployed with out a full rebuild and reflash of the firmware (however this is ignoring the existence of a lot of already &amp;quot;made nodes&amp;quot;). This use case of triaging patches before integrating them into a new build of the firmware devolved into using makenode to do perform almost all node configurations. While these configurations are mostly &amp;quot;per-node&amp;quot;&lt;br /&gt;
&lt;br /&gt;
1. To retrieve an IP from secrets.peoplesopen.net (our meshnode-database) and then copy it into a lot of config files&lt;br /&gt;
&lt;br /&gt;
2. To set a root password other per-node configs, such as hostname, private SSID, etc.&lt;br /&gt;
&lt;br /&gt;
3. To perform hardware detection to select which config files to copy onto node&lt;br /&gt;
&lt;br /&gt;
== theory for deprecation ==&lt;br /&gt;
While makenode does work, it presents a large barrier to inclusion (e.g. doesn't work on Windows, have to be relatively comfortable with terminal) as well as limiting our ability to quickly configure &amp;quot;blank&amp;quot; routers that can be handed out to anyone. Instead, it would be preferable to have a version of the firmware that requires &amp;quot;zero configurations&amp;quot;, aka zeroconf. To do this, we first need to address the three main reasons for implementation.&lt;br /&gt;
&lt;br /&gt;
1. retrieving a mesh IP:&lt;br /&gt;
* this can be done shortly after boot by making a POST request to secrets.peoplesopen.net using curl, the IP can then be then be parse from the json response and inserted into the correct config files using OpenWRT's build UCI configuration tool.&lt;br /&gt;
&lt;br /&gt;
2. setting a root password:&lt;br /&gt;
* the quick (but insecure) solution is to set a default root password. The better solution is to limit the access of the root user to only the hardwired interface and/or disable the password after a certain period of time and/or on second boot&lt;br /&gt;
* any other non-security-related, per-node configurations could and should be set through the admin dashboard&lt;br /&gt;
&lt;br /&gt;
3. hardware detection:&lt;br /&gt;
* an example of this can already be seen for extender nodes in the [https://github.com/paidforby/sudowrt-firmware/blob/master/files_extender-node/etc/uci-defaults/99_wireless 99_wireless script]&lt;br /&gt;
* at boot OpenWrt needs to detect number of antennas and ports, &lt;br /&gt;
* currently we find ourselves flashing almost exclusively one model of router&lt;br /&gt;
&lt;br /&gt;
However, before tackling these concerns, all the configurations made by makenode must be moved back to the firmware and adapted to be somewhat configurable. To do this, we will create a uci-defaults script that does exactly what make makenode previously did...copy a lot of IP addresses into different config files.&lt;br /&gt;
&lt;br /&gt;
== What does makenode change? ==&lt;br /&gt;
&lt;br /&gt;
=== configs/templates/files/opt/mesh/ ===&lt;br /&gt;
* tunnelhook -&amp;gt; callback called by config_load tunneldigger&lt;br /&gt;
&lt;br /&gt;
=== configs/templates/files/etc/ ===&lt;br /&gt;
&lt;br /&gt;
dropbear/ &lt;br /&gt;
* authorized keys, i.e. adds developer keys -&amp;gt; remove? or add more people? opt-in option in dashboard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
config/ &lt;br /&gt;
* dhcp -&amp;gt; dnsmasq, mesh pool, private pool&lt;br /&gt;
* network -&amp;gt;  loopback, lan, adhoc, open, priv&lt;br /&gt;
* notdhcpserver -&amp;gt; extender node static ips&lt;br /&gt;
* polipo -&amp;gt; daemonised caching web proxy &lt;br /&gt;
* rpcd, -&amp;gt; sets ubus username and pass (from where?)&lt;br /&gt;
* snmpd -&amp;gt; managment/monitoring, pulls in operator email/name, presumably from makenode.js&lt;br /&gt;
* system -&amp;gt; sets hostname and log ip? from makenode.js?&lt;br /&gt;
* tunneldigger- &amp;gt; sets tunnel broker ip, l2tp interface, upstream, downstream bandwidth (related to bug #2), and tunnel hook callback script&lt;br /&gt;
* uhttpd -&amp;gt; http server, sets index directory, ubus, cgi-bin, locale&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
init.d/&lt;br /&gt;
* log -&amp;gt; copied from openwrt? purpose?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iproute2/&lt;br /&gt;
* rt_tables -&amp;gt; moved to makenode by MaxB, unclear purpose? reverses values for ...?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
babeld.conf -&amp;gt; allows babel to run on l2tp, adhoc, and open interface, (could address bug #13 here)&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
banner -&amp;gt; presents version info, move back to firmware&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dnsmasq.conf -&amp;gt; excepts interfaces l2tp0, adhoc0, eth0, why?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Original Makenode Instructions =&lt;br /&gt;
This section was migrated from [Mesh/WalkThrough].&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;&lt;br /&gt;
  [ -s &amp;quot;$NVM_DIR/nvm.sh&amp;quot; ] &amp;amp;&amp;amp; \. &amp;quot;$NVM_DIR/nvm.sh&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;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11652</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11652"/>
		<updated>2019-11-14T05:50:33Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Prerequisites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using the &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; command (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
* If your reset was not successful, try debugging your network configuration described in the previous step.&lt;br /&gt;
** If you continue to have issues consider reloading network settings or restarting your computer.&lt;br /&gt;
** If you are still unable to access this firmware upload page, turn off your router and try to reset it again as instructed above. &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;
* Make sure not to disconnect or lose power at this stage, wait for the timer to complete. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' Sometimes the firmware upload will not complete correctly. 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 &amp;lt;code&amp;gt;172.30.0.xx&amp;lt;/code&amp;gt;. 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: &amp;lt;code&amp;gt;172.30.0.10&amp;lt;/code&amp;gt;&lt;br /&gt;
* Subnet mask:  &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;&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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
'''''Note: If you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, your node can be autoconfigured. You will not need to use the previous solution &amp;lt;code&amp;gt;makenode&amp;lt;/code&amp;gt;, otherwise you may need to read the ([[#Makenode_.28v.0.2.3_and_earlier.29|instructions further down]])'''''&lt;br /&gt;
&lt;br /&gt;
[[File:Nodeports titles.png|400px|thumb|right|Plug into port 3 to access the private network from your laptop. Port 2 connects to the public 'peoplesopen.net' network]]&lt;br /&gt;
# Connect your newly-flashed MyNet N600 to your existing Internet router via ethernet cable from your existing router's '''LAN port''' to your new node's '''Internet port'''.&lt;br /&gt;
# Wait several minutes for your new node autoconfigure, connect to the Internet, and obtain its private IP address from the sudo mesh build server. When this process is complete, the node should broadcast several WiFi networks with the following SSIDs and purposes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; - This is the public network broadcast on the 2.4ghz band; it has no password, and is suitable for access to the internet.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net fast&amp;lt;/code&amp;gt; - This is the same public network, but broadcast on the 5ghz band, which is more ideal for high-bandwidth activities such as streaming media.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net-node2node&amp;lt;/code&amp;gt; - This is the public network used for mesh nodes to discover and communicate with one another. You should not need to connect or use this network, but you will want to verify it is active.&lt;br /&gt;
#* &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; This is the private network, and you can use it to access a web dashboard to configure some settings, such as its SSID. The default WiFi password is &amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;. Try connecting to it (you can also connect to the private network using an ethernet cable connected to '''port 3''' on an N600 -- see diagram for details).&lt;br /&gt;
&lt;br /&gt;
Learn more about the [[Mesh/Network topology|network's topology here]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring the Web Dashboard ===&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network (default &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt;), try connecting to the home node's web dashboard by opening a web 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;
The default password is &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here you can set the amount of downstream and upstream bandwidth you're willing to share on the public &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; network (default is set to 4096kb, or roughly 4 megabits/second):&lt;br /&gt;
&lt;br /&gt;
[[File:homeScreen.jpg|frame|center|upright=2]]&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 (&amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;) and then reconnect again with the new password after setting it in the dashboard]] [[File:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changing Admin and Root User Passwords ===&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change the above wifi settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; private network (or whatever new SSID you may have chosen):&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11651</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11651"/>
		<updated>2019-11-14T02:14:31Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Configure */ making into further sub-sections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#makenode/Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using the &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; command (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
* If your reset was not successful, try debugging your network configuration described in the previous step.&lt;br /&gt;
** If you continue to have issues consider reloading network settings or restarting your computer.&lt;br /&gt;
** If you are still unable to access this firmware upload page, turn off your router and try to reset it again as instructed above. &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;
* Make sure not to disconnect or lose power at this stage, wait for the timer to complete. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' Sometimes the firmware upload will not complete correctly. 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 &amp;lt;code&amp;gt;172.30.0.xx&amp;lt;/code&amp;gt;. 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: &amp;lt;code&amp;gt;172.30.0.10&amp;lt;/code&amp;gt;&lt;br /&gt;
* Subnet mask:  &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;&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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
'''''Note: If you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, your node can be autoconfigured. You will not need to use the previous solution &amp;lt;code&amp;gt;makenode&amp;lt;/code&amp;gt;, otherwise you may need to read the ([[#Makenode_.28v.0.2.3_and_earlier.29|instructions further down]])'''''&lt;br /&gt;
&lt;br /&gt;
[[File:Nodeports titles.png|400px|thumb|right|Plug into port 3 to access the private network from your laptop. Port 2 connects to the public 'peoplesopen.net' network]]&lt;br /&gt;
# Connect your newly-flashed MyNet N600 to your existing Internet router via ethernet cable from your existing router's '''LAN port''' to your new node's '''Internet port'''.&lt;br /&gt;
# Wait several minutes for your new node autoconfigure, connect to the Internet, and obtain its private IP address from the sudo mesh build server. When this process is complete, the node should broadcast several WiFi networks with the following SSIDs and purposes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; - This is the public network broadcast on the 2.4ghz band; it has no password, and is suitable for access to the internet.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net fast&amp;lt;/code&amp;gt; - This is the same public network, but broadcast on the 5ghz band, which is more ideal for high-bandwidth activities such as streaming media.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net-node2node&amp;lt;/code&amp;gt; - This is the public network used for mesh nodes to discover and communicate with one another. You should not need to connect or use this network, but you will want to verify it is active.&lt;br /&gt;
#* &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; This is the private network, and you can use it to access a web dashboard to configure some settings, such as its SSID. The default WiFi password is &amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;. Try connecting to it (you can also connect to the private network using an ethernet cable connected to '''port 3''' on an N600 -- see diagram for details).&lt;br /&gt;
&lt;br /&gt;
Learn more about the [[Mesh/Network topology|network's topology here]].&lt;br /&gt;
&lt;br /&gt;
=== Configuring the Web Dashboard ===&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network (default &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt;), try connecting to the home node's web dashboard by opening a web 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;
The default password is &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here you can set the amount of downstream and upstream bandwidth you're willing to share on the public &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; network (default is set to 4096kb, or roughly 4 megabits/second):&lt;br /&gt;
&lt;br /&gt;
[[File:homeScreen.jpg|frame|center|upright=2]]&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 (&amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;) and then reconnect again with the new password after setting it in the dashboard]] [[File:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changing Admin and Root User Passwords ===&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change the above wifi settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; private network (or whatever new SSID you may have chosen):&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11650</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11650"/>
		<updated>2019-11-14T02:13:59Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Autoconf (v.0.3.0) */ cleanup formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#makenode/Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using the &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; command (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
* If your reset was not successful, try debugging your network configuration described in the previous step.&lt;br /&gt;
** If you continue to have issues consider reloading network settings or restarting your computer.&lt;br /&gt;
** If you are still unable to access this firmware upload page, turn off your router and try to reset it again as instructed above. &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;
* Make sure not to disconnect or lose power at this stage, wait for the timer to complete. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' Sometimes the firmware upload will not complete correctly. 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 &amp;lt;code&amp;gt;172.30.0.xx&amp;lt;/code&amp;gt;. 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: &amp;lt;code&amp;gt;172.30.0.10&amp;lt;/code&amp;gt;&lt;br /&gt;
* Subnet mask:  &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;&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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
'''''Note: If you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, your node can be autoconfigured. You will not need to use the previous solution &amp;lt;code&amp;gt;makenode&amp;lt;/code&amp;gt;, otherwise you may need to read the ([[#Makenode_.28v.0.2.3_and_earlier.29|instructions further down]])'''''&lt;br /&gt;
&lt;br /&gt;
[[File:Nodeports titles.png|400px|thumb|right|Plug into port 3 to access the private network from your laptop. Port 2 connects to the public 'peoplesopen.net' network]]&lt;br /&gt;
# Connect your newly-flashed MyNet N600 to your existing Internet router via ethernet cable from your existing router's '''LAN port''' to your new node's '''Internet port'''.&lt;br /&gt;
# Wait several minutes for your new node autoconfigure, connect to the Internet, and obtain its private IP address from the sudo mesh build server. When this process is complete, the node should broadcast several WiFi networks with the following SSIDs and purposes:&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; - This is the public network broadcast on the 2.4ghz band; it has no password, and is suitable for access to the internet.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net fast&amp;lt;/code&amp;gt; - This is the same public network, but broadcast on the 5ghz band, which is more ideal for high-bandwidth activities such as streaming media.&lt;br /&gt;
#* &amp;lt;code&amp;gt;peoplesopen.net-node2node&amp;lt;/code&amp;gt; - This is the public network used for mesh nodes to discover and communicate with one another. You should not need to connect or use this network, but you will want to verify it is active.&lt;br /&gt;
#* &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; This is the private network, and you can use it to access a web dashboard to configure some settings, such as its SSID. The default WiFi password is &amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;. Try connecting to it (you can also connect to the private network using an ethernet cable connected to '''port 3''' on an N600 -- see diagram for details).&lt;br /&gt;
&lt;br /&gt;
Learn more about the [[Mesh/Network topology|network's topology here]].&lt;br /&gt;
&lt;br /&gt;
== Configuring the Web Dashboard ==&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network (default &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt;), try connecting to the home node's web dashboard by opening a web 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;
The default password is &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here you can set the amount of downstream and upstream bandwidth you're willing to share on the public &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; network (default is set to 4096kb, or roughly 4 megabits/second):&lt;br /&gt;
&lt;br /&gt;
[[File:homeScreen.jpg|frame|center|upright=2]]&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 (&amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;) and then reconnect again with the new password after setting it in the dashboard]] [[File:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changing Admin and Root User Passwords ==&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change the above wifi settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; private network (or whatever new SSID you may have chosen):&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11649</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11649"/>
		<updated>2019-11-14T02:11:34Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Configure */ massive overhaul to simplify and make more clear&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#makenode/Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using the &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; command (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
* If your reset was not successful, try debugging your network configuration described in the previous step.&lt;br /&gt;
** If you continue to have issues consider reloading network settings or restarting your computer.&lt;br /&gt;
** If you are still unable to access this firmware upload page, turn off your router and try to reset it again as instructed above. &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;
* Make sure not to disconnect or lose power at this stage, wait for the timer to complete. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' Sometimes the firmware upload will not complete correctly. 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 &amp;lt;code&amp;gt;172.30.0.xx&amp;lt;/code&amp;gt;. 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: &amp;lt;code&amp;gt;172.30.0.10&amp;lt;/code&amp;gt;&lt;br /&gt;
* Subnet mask:  &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;&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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
'''''Note: If you installed [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, your node can be autoconfigured. You will not need to use the previous solution &amp;lt;code&amp;gt;makenode&amp;lt;/code&amp;gt;, otherwise you may need to read the ([[#Makenode_.28v.0.2.3_and_earlier.29|instructions further down]])'''''&lt;br /&gt;
&lt;br /&gt;
[[File:Nodeports titles.png|400px|thumb|right|Plug into port 3 to access the private network from your laptop. Port 2 connects to the public 'peoplesopen.net' network]]&lt;br /&gt;
# Connect your newly-flashed MyNet N600 to your existing Internet router via ethernet cable from your existing router's '''LAN port''' to your new node's '''Internet port'''.&lt;br /&gt;
# Wait several minutes for your new node autoconfigure, connect to the Internet, and obtain its private IP address from the sudo mesh build server.&lt;br /&gt;
#* The node should broadcast several WiFi networks with the following SSIDs and purposes:&lt;br /&gt;
#** &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; - This is the public network broadcast on the 2.4ghz band; it has no password, and is suitable for access to the internet.&lt;br /&gt;
#** &amp;lt;code&amp;gt;peoplesopen.net fast&amp;lt;/code&amp;gt; - This is the same public network, but broadcast on the 5ghz band, which is more ideal for high-bandwidth activities such as streaming media.&lt;br /&gt;
#** &amp;lt;code&amp;gt;peoplesopen.net-node2node&amp;lt;/code&amp;gt; - This is the public network used for mesh nodes to discover and communicate with one another. You should not need to connect or use this network, but you will want to verify it is active.&lt;br /&gt;
#** &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; This is the private network, and you can use it to access a web dashboard to configure some settings, such as its SSID. The default WiFi password is &amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;. Try connecting to it (you can also connect to the private network using an ethernet cable connected to '''port 3''' on an N600 -- see diagram for details).&lt;br /&gt;
&lt;br /&gt;
Learn more about the [[Mesh/Network topology|network's topology here].&lt;br /&gt;
&lt;br /&gt;
== Configuring the Web Dashboard ==&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network (default &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt;), try connecting to the home node's web dashboard by opening a web 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;
The default password is &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here you can set the amount of downstream and upstream bandwidth you're willing to share on the public &amp;lt;code&amp;gt;peoplesopen.net&amp;lt;/code&amp;gt; network (default is set to 4096kb, or roughly 4 megabits/second):&lt;br /&gt;
&lt;br /&gt;
[[File:homeScreen.jpg|frame|center|upright=2]]&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 (&amp;lt;code&amp;gt;meshtheworld&amp;lt;/code&amp;gt;) and then reconnect again with the new password after setting it in the dashboard]] [[File:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changing Admin and Root User Passwords ==&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change the above wifi settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the &amp;lt;code&amp;gt;pplsopen-admin&amp;lt;/code&amp;gt; private network (or whatever new SSID you may have chosen):&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: &amp;lt;code&amp;gt;meshtheplanet&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11648</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11648"/>
		<updated>2019-11-14T01:40:24Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Upload sudowrt-firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#makenode/Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using the &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; command (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
* If your reset was not successful, try debugging your network configuration described in the previous step.&lt;br /&gt;
** If you continue to have issues consider reloading network settings or restarting your computer.&lt;br /&gt;
** If you are still unable to access this firmware upload page, turn off your router and try to reset it again as instructed above. &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;
* Make sure not to disconnect or lose power at this stage, wait for the timer to complete. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' Sometimes the firmware upload will not complete correctly. 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;
'''''Note: 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_.28v.0.2.3_and_earlier.29|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;
[[File:Nodeports titles.png|400px|thumb|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. Once this happens, the node will broadcast a new WiFi network starting with 'peoplesopen.net' (and ending with a unique IP address). This is the public network, has no password, and is suitable for day-to-day internet access.&lt;br /&gt;
&lt;br /&gt;
There is also a wireless network called 'pplsopen-admin'. This is the private network, and you can use it to access a web dashboard to configure some settings. The default WiFi password is 'meshtheworld'. Try connecting to it (you can also connect to the private network using an ethernet cable connected to port 3 on an N600).&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network, try connecting to the home node's web dashboard by opening a web 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;
The default password is 'meshtheplanet'.&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;
[[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:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change these settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the 'pplsopen-admin' SSID:&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: meshtheplanet&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11647</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11647"/>
		<updated>2019-11-14T01:40:06Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Upload sudowrt-firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#makenode/Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using the &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; command (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
* If your reset was not successful, try debugging your network configuration described in the previous step.&lt;br /&gt;
** If you continue to have issues consider reloading network settings or restarting your computer.&lt;br /&gt;
** If you are still unable to access this firmware upload page, turn off your router and try to reset it again as instructed above. &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;
** Make sure not to disconnect or lose power at this stage, wait for the timer to complete. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' Sometimes the firmware upload will not complete correctly. 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;
'''''Note: 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_.28v.0.2.3_and_earlier.29|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;
[[File:Nodeports titles.png|400px|thumb|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. Once this happens, the node will broadcast a new WiFi network starting with 'peoplesopen.net' (and ending with a unique IP address). This is the public network, has no password, and is suitable for day-to-day internet access.&lt;br /&gt;
&lt;br /&gt;
There is also a wireless network called 'pplsopen-admin'. This is the private network, and you can use it to access a web dashboard to configure some settings. The default WiFi password is 'meshtheworld'. Try connecting to it (you can also connect to the private network using an ethernet cable connected to port 3 on an N600).&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network, try connecting to the home node's web dashboard by opening a web 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;
The default password is 'meshtheplanet'.&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;
[[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:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change these settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the 'pplsopen-admin' SSID:&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: meshtheplanet&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11646</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11646"/>
		<updated>2019-11-14T01:39:46Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Upload sudowrt-firmware */ added more instructions based on recent install experience.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#makenode/Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using the &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; command (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
** If your reset was not successful, try debugging your network configuration described in the previous step.&lt;br /&gt;
*** If you continue to have issues consider reloading network settings or restarting your computer.&lt;br /&gt;
*** If you are still unable to access this firmware upload page, turn off your router and try to reset it again as instructed above. &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;
** Make sure not to disconnect or lose power at this stage, wait for the timer to complete. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' Sometimes the firmware upload will not complete correctly. 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;
'''''Note: 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_.28v.0.2.3_and_earlier.29|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;
[[File:Nodeports titles.png|400px|thumb|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. Once this happens, the node will broadcast a new WiFi network starting with 'peoplesopen.net' (and ending with a unique IP address). This is the public network, has no password, and is suitable for day-to-day internet access.&lt;br /&gt;
&lt;br /&gt;
There is also a wireless network called 'pplsopen-admin'. This is the private network, and you can use it to access a web dashboard to configure some settings. The default WiFi password is 'meshtheworld'. Try connecting to it (you can also connect to the private network using an ethernet cable connected to port 3 on an N600).&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network, try connecting to the home node's web dashboard by opening a web 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;
The default password is 'meshtheplanet'.&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;
[[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:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change these settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the 'pplsopen-admin' SSID:&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: meshtheplanet&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11645</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11645"/>
		<updated>2019-11-14T01:34:58Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Configure your computer's network settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#makenode/Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using the &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; command (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
'''''Note: 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_.28v.0.2.3_and_earlier.29|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;
[[File:Nodeports titles.png|400px|thumb|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. Once this happens, the node will broadcast a new WiFi network starting with 'peoplesopen.net' (and ending with a unique IP address). This is the public network, has no password, and is suitable for day-to-day internet access.&lt;br /&gt;
&lt;br /&gt;
There is also a wireless network called 'pplsopen-admin'. This is the private network, and you can use it to access a web dashboard to configure some settings. The default WiFi password is 'meshtheworld'. Try connecting to it (you can also connect to the private network using an ethernet cable connected to port 3 on an N600).&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network, try connecting to the home node's web dashboard by opening a web 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;
The default password is 'meshtheplanet'.&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;
[[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:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change these settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the 'pplsopen-admin' SSID:&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: meshtheplanet&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11644</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11644"/>
		<updated>2019-11-14T01:34:16Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Configure your computer's network settings */ add &amp;lt;code&amp;gt; formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#makenode/Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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: &amp;lt;code&amp;gt;192.168.1.10&amp;lt;/code&amp;gt; (some devices will only accept from this IP)&lt;br /&gt;
* Subnet Mask: &amp;lt;code&amp;gt;255.255.255.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Gateway: &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt; (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;code&amp;gt;&amp;lt;eth_interface&amp;gt;&amp;lt;/code&amp;gt; is the name of your ethernet interface found using &amp;lt;code&amp;gt;ip addr&amp;lt;/code&amp;gt; (common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enp3s0&amp;lt;/code&amp;gt;, ...)&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;
'''''Note: 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_.28v.0.2.3_and_earlier.29|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;
[[File:Nodeports titles.png|400px|thumb|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. Once this happens, the node will broadcast a new WiFi network starting with 'peoplesopen.net' (and ending with a unique IP address). This is the public network, has no password, and is suitable for day-to-day internet access.&lt;br /&gt;
&lt;br /&gt;
There is also a wireless network called 'pplsopen-admin'. This is the private network, and you can use it to access a web dashboard to configure some settings. The default WiFi password is 'meshtheworld'. Try connecting to it (you can also connect to the private network using an ethernet cable connected to port 3 on an N600).&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network, try connecting to the home node's web dashboard by opening a web 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;
The default password is 'meshtheplanet'.&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;
[[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:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change these settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the 'pplsopen-admin' SSID:&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: meshtheplanet&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11643</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11643"/>
		<updated>2019-11-14T01:30:22Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Reset your new N750/N600 router */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#makenode/Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds. Keep another hand free. &lt;br /&gt;
* With the pin still 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;
'''''Note: 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_.28v.0.2.3_and_earlier.29|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;
[[File:Nodeports titles.png|400px|thumb|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. Once this happens, the node will broadcast a new WiFi network starting with 'peoplesopen.net' (and ending with a unique IP address). This is the public network, has no password, and is suitable for day-to-day internet access.&lt;br /&gt;
&lt;br /&gt;
There is also a wireless network called 'pplsopen-admin'. This is the private network, and you can use it to access a web dashboard to configure some settings. The default WiFi password is 'meshtheworld'. Try connecting to it (you can also connect to the private network using an ethernet cable connected to port 3 on an N600).&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network, try connecting to the home node's web dashboard by opening a web 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;
The default password is 'meshtheplanet'.&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;
[[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:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change these settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the 'pplsopen-admin' SSID:&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: meshtheplanet&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11642</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11642"/>
		<updated>2019-11-14T01:28:29Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Download/Build */ adds link to github for rolling-your-own&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#makenode/Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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 canflash it with the latest sudowrt-firmware. The first step is to download the firmware image file for your supported router. At the moment, we are supporting the following firmware builds:&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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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, ([https://github.com/sudomesh/sudowrt-firmware read more on github]).&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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds.&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;
'''''Note: 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_.28v.0.2.3_and_earlier.29|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;
[[File:Nodeports titles.png|400px|thumb|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. Once this happens, the node will broadcast a new WiFi network starting with 'peoplesopen.net' (and ending with a unique IP address). This is the public network, has no password, and is suitable for day-to-day internet access.&lt;br /&gt;
&lt;br /&gt;
There is also a wireless network called 'pplsopen-admin'. This is the private network, and you can use it to access a web dashboard to configure some settings. The default WiFi password is 'meshtheworld'. Try connecting to it (you can also connect to the private network using an ethernet cable connected to port 3 on an N600).&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network, try connecting to the home node's web dashboard by opening a web 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;
The default password is 'meshtheplanet'.&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;
[[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:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change these settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the 'pplsopen-admin' SSID:&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: meshtheplanet&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11641</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=11641"/>
		<updated>2019-11-14T01:03:21Z</updated>

		<summary type="html">&lt;p&gt;Matt: updates intro and creates more logical sections with more helpful links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Congratulations''' on choosing to become part of the [https://peoplesopen.net/ People's Open Network]!&lt;br /&gt;
&lt;br /&gt;
Continue reading to follow these do-it-yourself / do-it-together instructions, or read more about [[Mesh#How_To_Participate|how to participate and get help]]. &lt;br /&gt;
&lt;br /&gt;
= Summary =&lt;br /&gt;
This is a [[Mesh/WalkThrough#linkback|WalkThrough]] to install a custom operating system on a compatible network device for use as a '''node''' (e.g. your home router) on the network. You will learn how to flash Sudo Mesh's [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] (a custom build of [https://openwrt.org/ OpenWRT]) and then configure it.&lt;br /&gt;
&lt;br /&gt;
At the end of this walkthrough, you'll be able to plug in your router and join the mesh. '''Note:''' In order to access the internet, you will likely need your own connection with an existing Internet Service Provider (ISP), or otherwise be located near [https://peoplesopen.net/map/ another mesh node with its own route to the internet].&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
&lt;br /&gt;
This walkthrough assumes you're using linux or another unix-like operating system (such as Mac OS X, Ubuntu, FreeBSD, etc) and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the command-line interface terminal] ('terminal' for short). [https://github.com/sudomesh/sudowrt-firmware/issues/new Contact us] if you can contribute instructions for other systems. &lt;br /&gt;
&lt;br /&gt;
The general idea of building your own mesh node consists of three steps:&lt;br /&gt;
# [[#Download/Build|downloading or compiling]] the custom firmware&lt;br /&gt;
# [[#Flash/Upload|flashing that firmware]] to the node (i.e. copying firmware to [https://en.wikipedia.org/wiki/Flash_memory '''flash''' memory])&lt;br /&gt;
# [[#makenode/Configure|configuring the node]] to function as part of a mesh.&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 is compatible to work 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/sudowrt-firmware/0.3.0/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory-0.3.0.bin 0.3.0]''' [https://zenodo.org/record/1205601/files/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.3] [https://builds.sudomesh.org/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin 0.2.2] [https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/0.2.2/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin 0.2.2][https://builds.sudomesh.org/sudowrt-firmware/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/sudowrt-firmware/ builds server] or on [https://doi.org/10.5281/zenodo.1205601 zenodo], though most builds for routers not listed above have not been tested. 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;
[[File:Router_reset_mynet.png|200px|thumb|right|Reset hole location!]]&lt;br /&gt;
Instructions to reset / default a WD MyNet N600 or N750 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 / paperclip / tiny screwdriver into the reset hole and hold it for at least 15 seconds.&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;
'''''Note: 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_.28v.0.2.3_and_earlier.29|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;
[[File:Nodeports titles.png|400px|thumb|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. Once this happens, the node will broadcast a new WiFi network starting with 'peoplesopen.net' (and ending with a unique IP address). This is the public network, has no password, and is suitable for day-to-day internet access.&lt;br /&gt;
&lt;br /&gt;
There is also a wireless network called 'pplsopen-admin'. This is the private network, and you can use it to access a web dashboard to configure some settings. The default WiFi password is 'meshtheworld'. Try connecting to it (you can also connect to the private network using an ethernet cable connected to port 3 on an N600).&lt;br /&gt;
&lt;br /&gt;
While connected to the ''private'' network, try connecting to the home node's web dashboard by opening a web 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;
The default password is 'meshtheplanet'.&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;
[[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:newrouter.png|frame|right|upright=2|See all devices connected to your node via the 'Connections' tab]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Note: If you would like to be able to change these settings in the future, or ssh into your router, you will need to change the admin and root passwords within 12 hours.'''''&lt;br /&gt;
&lt;br /&gt;
To do so, open a terminal while connected to the 'pplsopen-admin' SSID:&lt;br /&gt;
    ssh root@172.30.0.1&lt;br /&gt;
Enter the following password: meshtheplanet&lt;br /&gt;
&lt;br /&gt;
Set the root password.&lt;br /&gt;
    passwd&lt;br /&gt;
Now set the admin password for logging into the web dashboard:&lt;br /&gt;
    passwd admin&lt;br /&gt;
&lt;br /&gt;
== Makenode (v.0.2.3 and earlier) ==&lt;br /&gt;
'''''Note: If you installed autoconfiguring [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 release 0.3.0] for myNet N600 routers, you do not need to use makenode. See the autoconf instructions above.'''''&lt;br /&gt;
&lt;br /&gt;
Makenode's documentation has been consolidated to [[Mesh/Makenode|its page.]]&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;br /&gt;
&lt;br /&gt;
[[Category:Mesh]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=10810</id>
		<title>Mesh/WalkThrough</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Mesh/WalkThrough&amp;diff=10810"/>
		<updated>2017-10-26T22:15:48Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Configuring Your OpenWRT Router to Work on the Sudomesh Network */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This a walkthrough for flashing a node with the sudomesh firmware and then configuring it with makenode. At the end of the walkthrough, you'll be able to plug in your router and join the mesh. The walkthrough assumes you're using a linux-ish (OSX should mostly work) OS and that you have [https://help.ubuntu.com/community/UsingTheTerminal basic knowledge of the terminal]. The basic idea of getting a node (router) on the mesh consists of flashing (copying files to [https://en.wikipedia.org/wiki/Flash_memory flash memory]) an operating system to the node and then using a software configurator finish setup.&lt;br /&gt;
&lt;br /&gt;
If you do not want to use a per-compiled OpenWRT image, you can build your own from scratch using this how to: [[Mesh/Build An OpenWRT Image]]&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;
= Preparing Your Laptop =&lt;br /&gt;
&lt;br /&gt;
You will need to install the dependencies for the [https://github.com/sudomesh/makenode makenode] utility developed by the SudoMesh project.&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
If you are working with a fresh installation of Ubuntu Linux, you will need to install a few pieces of software. &lt;br /&gt;
To install them, open your terminal and type the following commands.&lt;br /&gt;
&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;
  (make sure to close and reopen your terminal before trying to use nvm)&lt;br /&gt;
  nvm install 7.10&lt;br /&gt;
  sudo apt-get install git&lt;br /&gt;
  sudo apt-get install dropbear&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(arch also works, though you may have to build dropbear from its [https://github.com/mkj/dropbear source])&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;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
&lt;br /&gt;
For the moment, Windows users will have to figure out some of these steps on their own. Completing this process from a Windows machine has not been tested.&lt;br /&gt;
&lt;br /&gt;
* Install [https://nodejs.org/en/download/ NodeJS ] - Make sure to install the 'npm package manager', and select to 'Add to Path'&lt;br /&gt;
* Install [https://git-scm.com/download/win Git]&lt;br /&gt;
* Install Dropbear (no known ports for Windows)&lt;br /&gt;
&lt;br /&gt;
= Install OpenWRT on your Router =&lt;br /&gt;
&lt;br /&gt;
== Download the Sudomesh OpenWRT Image File For a Supported Router ==&lt;br /&gt;
&lt;br /&gt;
Sudomesh firmware images can be found at [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx/ https://builds.sudomesh.org/builds/chaos_calmer/ar71xx/]&lt;br /&gt;
&lt;br /&gt;
At the moment, we are supporting the following routers for home nodes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Model No. !! 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://builds.sudomesh.org/builds/chaos_calmer/ar71xx/openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR3600 ||  || [https://wiki.openwrt.org/toh/tp-link/tl-wdr3600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx/openwrt-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| TP-Link WDR4300 ||  || [https://wiki.openwrt.org/toh/tp-link/tl-wdr4300 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
| Western Digital MyNet N600 ||  || [https://wiki.openwrt.org/toh/wd/n600 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx/openwrt-ar71xx-generic-mynet-n600-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
|  Western Digital MyNet N750 ||  || [https://wiki.openwrt.org/toh/wd/n750 OpenWRT Docs] || [https://builds.sudomesh.org/builds/chaos_calmer/ar71xx/openwrt-ar71xx-generic-mynet-n750-squashfs-factory.bin firmware image]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Download the image file for your supported router.&lt;br /&gt;
&lt;br /&gt;
== Flash your Router with OpenWRT ==&lt;br /&gt;
&lt;br /&gt;
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 example, if you have a Western Digital MyNet N600, follow these instructions:&lt;br /&gt;
&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 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;
On your laptop edit your network settings to reflect the following:&lt;br /&gt;
&lt;br /&gt;
* Network Configuration 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&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;
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;
= Configuring Your OpenWRT Router to Work on the Sudomesh Network =&lt;br /&gt;
&lt;br /&gt;
A freshly flashed node will be setup on 172.22.0.1. You will need to configure your machine to use the following network settings to communicate with the node.&lt;br /&gt;
&lt;br /&gt;
* IP address: 172.22.0.9 &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;
To test that the flashing was successful, feel free to try connecting to your unconfigured router by opening a browser and navigating to https://172.22.0.1&lt;br /&gt;
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;
From your terminal, run the following:&lt;br /&gt;
&lt;br /&gt;
  git clone https://github.com/sudomesh/makenode.git&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;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
2017/10/26 -- I also needed to replace the `node-uuid` module with `uuid` in order to get this to work, using the following commands:&lt;br /&gt;
&lt;br /&gt;
  npm uninstall --save node-uuid&lt;br /&gt;
  npm install --save uuid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuring the Home Node ==&lt;br /&gt;
&lt;br /&gt;
Make sure the Ethernet cable is connected to the 4th port on the router.&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;
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;
Now the configuration wizard will ask you a number of questions:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;enter valid hostname&amp;quot; - this is the host name when you SSH into the node - For info on what constitutes a valid hostname, see: [http://stackoverflow.com/questions/3523028/valid-characters-of-a-hostname valid characters of a hostname]&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 (kilobytes 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; - this is the password for for changing wifi settings on the node&lt;br /&gt;
* &amp;quot;root user password&amp;quot; - this is the root password for the router - Make sure that your root password is strong! If you don't enter a root password, a strong one will be generated and will be logged to screen. It's generally preferable to not use the root password at all and instead add an ssh key to the device - see details below.&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;operator name&amp;quot; - this is the name that the network admins can associate with the node - so use a unique name like your first name or location name&lt;br /&gt;
* &amp;quot;private wifi SSID&amp;quot; - this is the wireless SSID name for the private wireless network that will run on this router&lt;br /&gt;
* &amp;quot;private wifi password&amp;quot; - this is the password for the private wireless network that will run on this router - it must be at least 8 characters long&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;
= Flashing Extender Nodes =&lt;br /&gt;
&lt;br /&gt;
If you're wanting to optionally boost the signal of your home node for a larger range, you'll want to setup an extender antenna.&lt;br /&gt;
&lt;br /&gt;
See [[Mesh/Flashing extender nodes]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=User_talk:Testwrought&amp;diff=10473</id>
		<title>User talk:Testwrought</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=User_talk:Testwrought&amp;diff=10473"/>
		<updated>2017-02-16T04:22:38Z</updated>

		<summary type="html">&lt;p&gt;Matt: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''Sudo Room''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Matt|Matt]] ([[User talk:Matt|talk]]) 20:22, 15 February 2017 (PST)&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=User_talk:Ocean-max&amp;diff=10471</id>
		<title>User talk:Ocean-max</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=User_talk:Ocean-max&amp;diff=10471"/>
		<updated>2017-02-16T04:02:34Z</updated>

		<summary type="html">&lt;p&gt;Matt: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''Sudo Room''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Matt|Matt]] ([[User talk:Matt|talk]]) 20:02, 15 February 2017 (PST)&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=File:Tomatos.png&amp;diff=10058</id>
		<title>File:Tomatos.png</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=File:Tomatos.png&amp;diff=10058"/>
		<updated>2016-04-21T09:27:28Z</updated>

		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=New_Member_Script&amp;diff=10014</id>
		<title>New Member Script</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=New_Member_Script&amp;diff=10014"/>
		<updated>2016-04-07T04:09:18Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Give them Wordpress, Wiki accounts. */ adds links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questions we can ask prospective members at meetings!&lt;br /&gt;
&lt;br /&gt;
== Primary Questions: ==&lt;br /&gt;
=== PROMPT: There are no wrong answers ===&lt;br /&gt;
=== Would you like to ''very briefly'' introduce yourself? ===&lt;br /&gt;
=== What brings you to sudo room? ===&lt;br /&gt;
=== What do you want to hack or learn at sudo room (if you know)? ===&lt;br /&gt;
=== What do you want to share or teach at sudo room (if you know)? ===&lt;br /&gt;
=== What's your plan to abolish sexual violence, police brutality and white supremacy? in 10 words or less ===&lt;br /&gt;
=== What's your plan to end the anthropocene extinction, world hunger, global warming and global inequality? in 10 words or less ===&lt;br /&gt;
=== What's your plan to ensure freedom and privacy of communication for all? in 10 words or less ===&lt;br /&gt;
=== expectations ===&lt;br /&gt;
Sudo Room is part of the omni commons and as such, we take the omni commons [https://omnicommons.org/wiki/Statement_of_Solidarity statement of solidarity] and [https://omnicommons.org/wiki/Safer_Space_Policy safer space policy] seriously. These policies include expected codes of conduct and the consequences of unacceptable behavior. As a member, you are expected to both act according to the code of conduct and also to be a part of acting to counter unacceptable behavior (we don't let mistreatment slide). Is this going to be a problem for you?&lt;br /&gt;
&lt;br /&gt;
Ideally this should include the group going over the statement of solidarity and the expected behavior and consequences of unexpected behavior section of the safer space policy to make sure the person understands what's expected of them.&lt;br /&gt;
=== Have you ever been banned, asked to take a break, or similar, from a hackerspace or any other collective? ===&lt;br /&gt;
&lt;br /&gt;
=== What are the best ways to contact you? ===&lt;br /&gt;
=== What is your schedule like? Do you have particular times that you think you'll be around? You should check out our regular events! ===&lt;br /&gt;
&lt;br /&gt;
=== Explain the next steps in the membership process and what they should expect ===&lt;br /&gt;
&lt;br /&gt;
== Afterwards ==&lt;br /&gt;
=== Get them set up to pay membership dues on [https://sudoroom.org/humans sudo-humans] ===&lt;br /&gt;
=== Give them [https://sudoroom.org/blog Blog] and [https://sudoroom.org/wiki/ Wiki] accounts. ===&lt;br /&gt;
&lt;br /&gt;
=== Subscribe them to [https://sudoroom.org/lists/ mailing list(s)]. ===&lt;br /&gt;
&lt;br /&gt;
=== Ask if they require any exceptions, such as early (temporary) access? ===&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=New_Member_Script&amp;diff=10013</id>
		<title>New Member Script</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=New_Member_Script&amp;diff=10013"/>
		<updated>2016-04-07T04:08:13Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Subscribe them to mailing list(s). */ adds link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questions we can ask prospective members at meetings!&lt;br /&gt;
&lt;br /&gt;
== Primary Questions: ==&lt;br /&gt;
=== PROMPT: There are no wrong answers ===&lt;br /&gt;
=== Would you like to ''very briefly'' introduce yourself? ===&lt;br /&gt;
=== What brings you to sudo room? ===&lt;br /&gt;
=== What do you want to hack or learn at sudo room (if you know)? ===&lt;br /&gt;
=== What do you want to share or teach at sudo room (if you know)? ===&lt;br /&gt;
=== What's your plan to abolish sexual violence, police brutality and white supremacy? in 10 words or less ===&lt;br /&gt;
=== What's your plan to end the anthropocene extinction, world hunger, global warming and global inequality? in 10 words or less ===&lt;br /&gt;
=== What's your plan to ensure freedom and privacy of communication for all? in 10 words or less ===&lt;br /&gt;
=== expectations ===&lt;br /&gt;
Sudo Room is part of the omni commons and as such, we take the omni commons [https://omnicommons.org/wiki/Statement_of_Solidarity statement of solidarity] and [https://omnicommons.org/wiki/Safer_Space_Policy safer space policy] seriously. These policies include expected codes of conduct and the consequences of unacceptable behavior. As a member, you are expected to both act according to the code of conduct and also to be a part of acting to counter unacceptable behavior (we don't let mistreatment slide). Is this going to be a problem for you?&lt;br /&gt;
&lt;br /&gt;
Ideally this should include the group going over the statement of solidarity and the expected behavior and consequences of unexpected behavior section of the safer space policy to make sure the person understands what's expected of them.&lt;br /&gt;
=== Have you ever been banned, asked to take a break, or similar, from a hackerspace or any other collective? ===&lt;br /&gt;
&lt;br /&gt;
=== What are the best ways to contact you? ===&lt;br /&gt;
=== What is your schedule like? Do you have particular times that you think you'll be around? You should check out our regular events! ===&lt;br /&gt;
&lt;br /&gt;
=== Explain the next steps in the membership process and what they should expect ===&lt;br /&gt;
&lt;br /&gt;
== Afterwards ==&lt;br /&gt;
=== Get them set up to pay membership dues on [https://sudoroom.org/humans sudo-humans] ===&lt;br /&gt;
=== Give them Wordpress, Wiki accounts. ===&lt;br /&gt;
=== Subscribe them to [https://sudoroom.org/lists/ mailing list(s)]. ===&lt;br /&gt;
&lt;br /&gt;
=== Ask if they require any exceptions, such as early (temporary) access? ===&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=MediaWiki:Common.css&amp;diff=9956</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=MediaWiki:Common.css&amp;diff=9956"/>
		<updated>2016-02-25T11:59:48Z</updated>

		<summary type="html">&lt;p&gt;Matt: helps correct navigation sizes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
table.blue_lines tr:nth-child(2n+0),tr.blue_lines:nth-child(2n+0){&lt;br /&gt;
  background-color: #EEEEFF;&lt;br /&gt;
}&lt;br /&gt;
table.blue_lines tr:nth-child(2n+1),tr.blue_lines:nth-child(2n+1){&lt;br /&gt;
  background-color: #CCCCFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/******************&lt;br /&gt;
   GREEN BACKGROUND&lt;br /&gt;
 ******************/&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
   /*&lt;br /&gt;
   background-image: -webkit-gradient(linear,left top, right bottom, color-stop(0,#4e3b2e), color-stop(0.75,#c1b0af));&lt;br /&gt;
   background-image: -webkit-linear-gradient(left top, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
   background-image: -moz-linear-gradient(left top, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
   background-image: -ms-linear-gradient(left top, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
   background-image: -o-linear-gradient(left top, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
   background-image: linear-gradient(to bottom right, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
   */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/******************&lt;br /&gt;
   ANNOYING BLINKER&lt;br /&gt;
 ******************/&lt;br /&gt;
&lt;br /&gt;
.annoying {&lt;br /&gt;
	width: 112px;&lt;br /&gt;
	margin-top: 10px;&lt;br /&gt;
	margin-bottom:10px;&lt;br /&gt;
	margin-left: 5px;&lt;br /&gt;
	margin-right: 0px;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	border-radius: 8px;&lt;br /&gt;
	font-size: 13px;&lt;br /&gt;
	line-height: 13px;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	color: yellow;&lt;br /&gt;
	border: 2px solid yellow;&lt;br /&gt;
	background-color: red;&lt;br /&gt;
	-webkit-animation: blinker 8s linear infinite;&lt;br /&gt;
	-moz-animation: blinker 8s linear infinite;&lt;br /&gt;
	-o-animation: blinker 8s linear infinite;&lt;br /&gt;
	animation: blinker 8s linear infinite;&lt;br /&gt;
}&lt;br /&gt;
.annoying-money {&lt;br /&gt;
	font-size: 30px;&lt;br /&gt;
	line-height: 26px;&lt;br /&gt;
}&lt;br /&gt;
@-webkit-keyframes blinker { 50% { color: red; border: 2px solid red; background-color: yellow; } }&lt;br /&gt;
@-moz-keyframes blinker { 50% { color: red; border: 2px solid red; background-color: yellow; } }&lt;br /&gt;
@-o-keyframes blinker { 50% { color: red; border: 2px solid red; background-color: yellow; } }&lt;br /&gt;
@keyframes blinker { 50% { color: red; border: 2px solid red; background-color: yellow; } }&lt;br /&gt;
&lt;br /&gt;
/******************&lt;br /&gt;
   NAVBAR STYLINGS&lt;br /&gt;
 ******************/&lt;br /&gt;
&lt;br /&gt;
#p-personal.portlet a[href] {&lt;br /&gt;
	 color:#ffffff;&lt;br /&gt;
	 text-shadow:0px 0px 3px #D04040;&lt;br /&gt;
}&lt;br /&gt;
#p-personal.portlet div.pBody ul li a {&lt;br /&gt;
   border: 1px solid transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div#footer,&lt;br /&gt;
#p-search.portlet h3,&lt;br /&gt;
#p-navigation.portlet h3,&lt;br /&gt;
#p-tb.portlet h3,&lt;br /&gt;
#p-extras.portlet h3,&lt;br /&gt;
#p-local.portlet h3,&lt;br /&gt;
#p-gratipay.portlet h3,&lt;br /&gt;
#p-calendar.portlet h3 {&lt;br /&gt;
	 display:none;&lt;br /&gt;
	 visibility:hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Attempts to correct Navigation styles for Vector */&lt;br /&gt;
div#mw-panel div.portal div.body ul li {&lt;br /&gt;
	line-height:1.15em;&lt;br /&gt;
	font-size:0.95em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
div.portlet div.pBody{&lt;br /&gt;
	 padding:0px;&lt;br /&gt;
	 margin:0px;&lt;br /&gt;
	 background-color: transparent;&lt;br /&gt;
	 border:0px;&lt;br /&gt;
}&lt;br /&gt;
div.portlet div.pBody ul{&lt;br /&gt;
	 list-style:none outside none;&lt;br /&gt;
	 margin:0px;&lt;br /&gt;
	 margin-left:4px;&lt;br /&gt;
	 padding:0px;&lt;br /&gt;
}&lt;br /&gt;
div.portlet div.pBody ul li {&lt;br /&gt;
	 margin-bottom: 3px;&lt;br /&gt;
	 overflow:hidden;&lt;br /&gt;
	 white-space:nowrap;&lt;br /&gt;
	 border:1px solid transparent;&lt;br /&gt;
}&lt;br /&gt;
div.portlet div.pBody ul li:hover,&lt;br /&gt;
div.portlet div.pBody ul li a:hover {&lt;br /&gt;
	 background-color:#eebbbb;&lt;br /&gt;
	 border:1px solid white;&lt;br /&gt;
}&lt;br /&gt;
#p-gratipay.portlet div.pBody ul li,&lt;br /&gt;
#p-gratipay.portlet div.pBody ul li a,&lt;br /&gt;
#p-navigation.portlet div.pBody ul li,&lt;br /&gt;
#p-navigation.portlet div.pBody ul li a {&lt;br /&gt;
	 color:#ffffff;&lt;br /&gt;
	 text-shadow:0px 0px 4px #331111;&lt;br /&gt;
	 line-height:22px;&lt;br /&gt;
	 font-size:20px;&lt;br /&gt;
	 font-weight:bold;&lt;br /&gt;
}&lt;br /&gt;
#p-tb.portlet div.pBody ul li,&lt;br /&gt;
#p-tb.portlet div.pBody ul li a,&lt;br /&gt;
#p-local.portlet div.pBody ul li,&lt;br /&gt;
#p-local.portlet div.pBody ul li a,&lt;br /&gt;
#p-extras.portlet div.pBody ul li,&lt;br /&gt;
#p-extras.portlet div.pBody ul li a,&lt;br /&gt;
#p-calendar.portlet div.pBody ul li,&lt;br /&gt;
#p-calendar.portlet div.pBody ul li a {&lt;br /&gt;
	 color:#ffffff;&lt;br /&gt;
	 text-shadow:0px 0px 4px #331111;&lt;br /&gt;
	 line-height:16px;&lt;br /&gt;
	 font-size:14px;&lt;br /&gt;
	 font-weight:bold;&lt;br /&gt;
}&lt;br /&gt;
#p-gratipay.portlet div.pBody ul li ul li.local-submenu, &lt;br /&gt;
#p-gratipay.portlet div.pBody ul li ul li.local-submenu a {&lt;br /&gt;
   line-height:14px;&lt;br /&gt;
   font-size:12px;&lt;br /&gt;
   margin-left: 12px;&lt;br /&gt;
}&lt;br /&gt;
#p-gratipay.portlet div.pBody ul li ul li.local-submenu a {&lt;br /&gt;
   margin-left: 0px;&lt;br /&gt;
   border-left: 1px;&lt;br /&gt;
   border-right: 1px;&lt;br /&gt;
}&lt;br /&gt;
#p-gratipay.portlet div.pBody li:hover {&lt;br /&gt;
   background-color: inherit;&lt;br /&gt;
   border: 1px solid transparent;&lt;br /&gt;
}&lt;br /&gt;
#p-tb.portlet div.pBody ul li {&lt;br /&gt;
	 margin-bottom: 1px;&lt;br /&gt;
}&lt;br /&gt;
#p-extras.portlet, #p-gratipay.portlet {&lt;br /&gt;
	 margin-bottom: 0px;&lt;br /&gt;
}&lt;br /&gt;
#p-navigation.portlet div.pBody ul li a:hover,&lt;br /&gt;
#p-tb.portlet div.pBody ul li a:hover,&lt;br /&gt;
#p-local.portlet div.pBody ul li a:hover,&lt;br /&gt;
#p-extras.portlet div.pBody ul li a:hover,&lt;br /&gt;
#p-gratipay.portlet div.pBody ul li a:hover,&lt;br /&gt;
#p-calendar.portlet div.pBody ul li a:hover {&lt;br /&gt;
	 text-decoration:none;&lt;br /&gt;
}&lt;br /&gt;
*/&lt;br /&gt;
button#collaboerate {&lt;br /&gt;
	 margin-left:7px;&lt;br /&gt;
	 width: 125px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-search .pBody {&lt;br /&gt;
   padding: 0px;&lt;br /&gt;
   text-align: left;&lt;br /&gt;
}&lt;br /&gt;
#searchInput:focus,&lt;br /&gt;
#searchGoButton:focus {&lt;br /&gt;
   width: 105px;&lt;br /&gt;
}&lt;br /&gt;
#searchInput:focus + input {&lt;br /&gt;
   display: inline-block;&lt;br /&gt;
}&lt;br /&gt;
#searchInput {&lt;br /&gt;
   margin-left: 5px;&lt;br /&gt;
   display: inline-block;&lt;br /&gt;
   width: 135px;&lt;br /&gt;
}&lt;br /&gt;
#mw-searchButton {&lt;br /&gt;
   display: none;&lt;br /&gt;
}&lt;br /&gt;
#searchGoButton {&lt;br /&gt;
   display: none;&lt;br /&gt;
   border: 0px;&lt;br /&gt;
   margin-left: 0px;&lt;br /&gt;
   margin-right: 0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Wikipedia styles ;) */&lt;br /&gt;
&lt;br /&gt;
/* Default styling for HTML elements */&lt;br /&gt;
dfn {&lt;br /&gt;
    font-style: inherit;  /* Reset default styling for &amp;lt;dfn&amp;gt; */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Main page fixes */&lt;br /&gt;
#interwiki-completelist {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
body.page-Main_Page #ca-delete {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
body.page-Main_Page #mp-topbanner {&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Edit window toolbar */&lt;br /&gt;
#toolbar {&lt;br /&gt;
    height: 22px;&lt;br /&gt;
    margin-bottom: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Highlight data points in the info action if specified in the URL */&lt;br /&gt;
body.action-info :target {&lt;br /&gt;
    background: #DEF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make the list of references smaller */&lt;br /&gt;
ol.references,&lt;br /&gt;
div.reflist,&lt;br /&gt;
div.refbegin {&lt;br /&gt;
    font-size: 90%;            /* Default font-size */&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
div.refbegin-100 {&lt;br /&gt;
    font-size: 100%;           /* Option for normal fontsize in {{refbegin}} */&lt;br /&gt;
}&lt;br /&gt;
div.reflist ol.references {&lt;br /&gt;
    font-size: 100%;           /* Reset font-size when nested in div.reflist */&lt;br /&gt;
    list-style-type: inherit;  /* Enable custom list style types */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Highlight clicked reference in blue to help navigation */&lt;br /&gt;
ol.references li:target,&lt;br /&gt;
sup.reference:target,&lt;br /&gt;
span.citation:target {&lt;br /&gt;
    background-color: #DEF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Ensure refs in table headers and the like aren't bold or italic */&lt;br /&gt;
sup.reference {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow hidden ref errors to be shown by user CSS */&lt;br /&gt;
span.brokenref {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for citations (CSS3). Breaks long urls, etc., rather than overflowing box */&lt;br /&gt;
.citation {&lt;br /&gt;
    word-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For linked citation numbers and document IDs, where&lt;br /&gt;
   the number need not be shown on a screen or a handheld,&lt;br /&gt;
   but should be included in the printed version */&lt;br /&gt;
@media screen, handheld {&lt;br /&gt;
    .citation .printonly {&lt;br /&gt;
        display: none;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Reset top margin for lists embedded in columns */&lt;br /&gt;
div.columns {&lt;br /&gt;
    margin-top: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
div.columns dl,&lt;br /&gt;
div.columns ol,&lt;br /&gt;
div.columns ul {&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Avoid list items from breaking between columns */&lt;br /&gt;
div.columns li,&lt;br /&gt;
div.columns dd dd {&lt;br /&gt;
    -webkit-column-break-inside: avoid;&lt;br /&gt;
    page-break-inside: avoid;&lt;br /&gt;
    break-inside: avoid-column;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for [[Template:Flowlist]] that Lets lists flow around floating objecs */&lt;br /&gt;
.flowlist ul {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
    margin-left: 0;&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
}&lt;br /&gt;
.flowlist ol {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
    margin-left: 0;&lt;br /&gt;
    padding-left: 3.2em;&lt;br /&gt;
}&lt;br /&gt;
.flowlist dl {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for horizontal lists (separator following item).&lt;br /&gt;
   IE8-specific classes are assigned in [[MediaWiki:Common.js/IEFixes.js]].&lt;br /&gt;
   @source mediawiki.org/wiki/Snippets/Horizontal_lists&lt;br /&gt;
   @revision 6 (2014-05-09)&lt;br /&gt;
   @author [[User:Edokter]]&lt;br /&gt;
 */&lt;br /&gt;
.hlist dl,&lt;br /&gt;
.hlist ol,&lt;br /&gt;
.hlist ul {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
/* Display list items inline */&lt;br /&gt;
.hlist dd,&lt;br /&gt;
.hlist dt,&lt;br /&gt;
.hlist li {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
/* Display nested lists inline */&lt;br /&gt;
.hlist.inline,&lt;br /&gt;
.hlist.inline dl,&lt;br /&gt;
.hlist.inline ol,&lt;br /&gt;
.hlist.inline ul,&lt;br /&gt;
.hlist dl dl, .hlist dl ol, .hlist dl ul,&lt;br /&gt;
.hlist ol dl, .hlist ol ol, .hlist ol ul,&lt;br /&gt;
.hlist ul dl, .hlist ul ol, .hlist ul ul {&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
/* Generate interpuncts */&lt;br /&gt;
.hlist dt:after {&lt;br /&gt;
    content: &amp;quot;: &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd:after,&lt;br /&gt;
.hlist li:after {&lt;br /&gt;
    content: &amp;quot; Â· &amp;quot;;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd:last-child:after,&lt;br /&gt;
.hlist dt:last-child:after,&lt;br /&gt;
.hlist li:last-child:after {&lt;br /&gt;
    content: none;&lt;br /&gt;
}&lt;br /&gt;
/* For IE8 */&lt;br /&gt;
.hlist dd.hlist-last-child:after,&lt;br /&gt;
.hlist dt.hlist-last-child:after,&lt;br /&gt;
.hlist li.hlist-last-child:after {&lt;br /&gt;
    content: none;&lt;br /&gt;
}&lt;br /&gt;
/* Add parentheses around nested lists */&lt;br /&gt;
.hlist dd dd:first-child:before, .hlist dd dt:first-child:before, .hlist dd li:first-child:before,&lt;br /&gt;
.hlist dt dd:first-child:before, .hlist dt dt:first-child:before, .hlist dt li:first-child:before,&lt;br /&gt;
.hlist li dd:first-child:before, .hlist li dt:first-child:before, .hlist li li:first-child:before {&lt;br /&gt;
    content: &amp;quot; (&amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd dd:last-child:after, .hlist dd dt:last-child:after, .hlist dd li:last-child:after,&lt;br /&gt;
.hlist dt dd:last-child:after, .hlist dt dt:last-child:after, .hlist dt li:last-child:after,&lt;br /&gt;
.hlist li dd:last-child:after, .hlist li dt:last-child:after, .hlist li li:last-child:after {&lt;br /&gt;
    content: &amp;quot;) &amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
/* For IE8 */&lt;br /&gt;
.hlist dd dd.hlist-last-child:after, .hlist dd dt.hlist-last-child:after, .hlist dd li.hlist-last-child:after,&lt;br /&gt;
.hlist dt dd.hlist-last-child:after, .hlist dt dt.hlist-last-child:after, .hlist dt li.hlist-last-child:after,&lt;br /&gt;
.hlist li dd.hlist-last-child:after, .hlist li dt.hlist-last-child:after, .hlist li li.hlist-last-child:after {&lt;br /&gt;
    content: &amp;quot;) &amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
/* Put ordinals in front of ordered list items */&lt;br /&gt;
.hlist ol {&lt;br /&gt;
    counter-reset: listitem;&lt;br /&gt;
}&lt;br /&gt;
.hlist ol &amp;gt; li {&lt;br /&gt;
    counter-increment: listitem;&lt;br /&gt;
}&lt;br /&gt;
.hlist ol &amp;gt; li:before {&lt;br /&gt;
    content: &amp;quot; &amp;quot; counter(listitem) &amp;quot; &amp;quot;;&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd ol &amp;gt; li:first-child:before,&lt;br /&gt;
.hlist dt ol &amp;gt; li:first-child:before,&lt;br /&gt;
.hlist li ol &amp;gt; li:first-child:before {&lt;br /&gt;
    content: &amp;quot; (&amp;quot; counter(listitem) &amp;quot; &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Unbulleted lists */&lt;br /&gt;
.plainlist ul {&lt;br /&gt;
    line-height: inherit;&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
.plainlist ul li {&lt;br /&gt;
    margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Default style for navigation boxes */&lt;br /&gt;
.navbox {                     /* Navbox container style */&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    margin: auto;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
.navbox-inner,&lt;br /&gt;
.navbox-subgroup {&lt;br /&gt;
    width: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox-group,&lt;br /&gt;
.navbox-title,&lt;br /&gt;
.navbox-abovebelow {&lt;br /&gt;
    padding: 0.25em 1em;      /* Title, group and above/below styles */&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
th.navbox-group {             /* Group style */&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: right;&lt;br /&gt;
}&lt;br /&gt;
.navbox,&lt;br /&gt;
.navbox-subgroup {&lt;br /&gt;
    background: #fdfdfd;      /* Background color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-list {&lt;br /&gt;
    line-height: 1.8em;&lt;br /&gt;
    border-color: #fdfdfd;    /* Must match background color */&lt;br /&gt;
}&lt;br /&gt;
.navbox th,&lt;br /&gt;
.navbox-title {&lt;br /&gt;
    background: #ccccff;      /* Level 1 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-abovebelow,&lt;br /&gt;
th.navbox-group,&lt;br /&gt;
.navbox-subgroup .navbox-title {&lt;br /&gt;
    background: #ddddff;      /* Level 2 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-subgroup .navbox-group,&lt;br /&gt;
.navbox-subgroup .navbox-abovebelow {&lt;br /&gt;
    background: #e6e6ff;      /* Level 3 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-even {&lt;br /&gt;
    background: #f7f7f7;      /* Even row striping */&lt;br /&gt;
}&lt;br /&gt;
.navbox-odd {&lt;br /&gt;
    background: transparent;  /* Odd row striping */&lt;br /&gt;
}&lt;br /&gt;
table.navbox + table.navbox {  /* Single pixel border between adjacent navboxes */&lt;br /&gt;
    margin-top: -1px;          /* (doesn't work for IE6, but that's okay)       */&lt;br /&gt;
}&lt;br /&gt;
.navbox .hlist td dl,&lt;br /&gt;
.navbox .hlist td ol,&lt;br /&gt;
.navbox .hlist td ul,&lt;br /&gt;
.navbox td.hlist dl,&lt;br /&gt;
.navbox td.hlist ol,&lt;br /&gt;
.navbox td.hlist ul {&lt;br /&gt;
    padding: 0.125em 0;       /* Adjust hlist padding in navboxes */&lt;br /&gt;
}&lt;br /&gt;
ol + table.navbox,&lt;br /&gt;
ul + table.navbox {&lt;br /&gt;
    margin-top: 0.5em;        /* Prevent lists from clinging to navboxes */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Default styling for Navbar template */&lt;br /&gt;
.navbar {&lt;br /&gt;
    display: inline;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
.navbar ul {&lt;br /&gt;
    display: inline;&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.navbar li {&lt;br /&gt;
    word-spacing: -0.125em;&lt;br /&gt;
}&lt;br /&gt;
.navbar.mini li span {&lt;br /&gt;
  font-variant: small-caps;&lt;br /&gt;
}&lt;br /&gt;
/* Navbar styling when nested in infobox and navbox */&lt;br /&gt;
.infobox .navbar {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox .navbar {&lt;br /&gt;
    display: block;&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox-title .navbar {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-right: 0.5em;&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 'show'/'hide' buttons created dynamically by the CollapsibleTables javascript&lt;br /&gt;
   in [[MediaWiki:Common.js]] are styled here so they can be customised. */&lt;br /&gt;
.collapseButton {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-left: 0.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: right;&lt;br /&gt;
    width: auto;&lt;br /&gt;
}&lt;br /&gt;
/* In navboxes, the show/hide button balances the vÂ·dÂ·e links&lt;br /&gt;
   from [[Template:Navbar]], so they need to be the same width. */&lt;br /&gt;
.navbox .collapseButton {&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for JQuery makeCollapsible, matching that of collapseButton */&lt;br /&gt;
.mw-collapsible-toggle {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: right;&lt;br /&gt;
}&lt;br /&gt;
.navbox .mw-collapsible-toggle {&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Infobox template style */&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infobox caption {&lt;br /&gt;
    font-size: 125%;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.infobox td,&lt;br /&gt;
.infobox th {&lt;br /&gt;
    vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered {&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered td,&lt;br /&gt;
.infobox.bordered th {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered .borderless td,&lt;br /&gt;
.infobox.bordered .borderless th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.sisterproject {&lt;br /&gt;
    width: 20em;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.standard-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
}&lt;br /&gt;
.infobox.standard-talk.bordered td,&lt;br /&gt;
.infobox.standard-talk.bordered th {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* styles for bordered infobox with merged rows */&lt;br /&gt;
.infobox.bordered .mergedtoprow td,&lt;br /&gt;
.infobox.bordered .mergedtoprow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-right: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.bordered .mergedrow td,&lt;br /&gt;
.infobox.bordered .mergedrow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-right: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styles for geography infoboxes, eg countries,&lt;br /&gt;
   country subdivisions, cities, etc.            */&lt;br /&gt;
.infobox.geography {&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    line-height: 1.2em;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography  td,&lt;br /&gt;
.infobox.geography  th {&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    padding: 0.4em 0.6em 0.4em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
.infobox.geography .mergedtoprow td,&lt;br /&gt;
.infobox.geography .mergedtoprow th {&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    padding: 0.4em 0.6em 0.2em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .mergedrow td,&lt;br /&gt;
.infobox.geography .mergedrow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    padding: 0 0.6em 0.2em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .mergedbottomrow td,&lt;br /&gt;
.infobox.geography .mergedbottomrow th {&lt;br /&gt;
    border-top: 0;&lt;br /&gt;
    border-bottom: 1px solid #aaa;&lt;br /&gt;
    padding: 0 0.6em 0.4em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .maptable td,&lt;br /&gt;
.infobox.geography .maptable th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Normal font styling for table row headers with scope=&amp;quot;row&amp;quot; tag */&lt;br /&gt;
.wikitable.plainrowheaders th[scope=row] {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Lists in data cells are always left-aligned */&lt;br /&gt;
.wikitable td ul,&lt;br /&gt;
.wikitable td ol,&lt;br /&gt;
.wikitable td dl {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
}&lt;br /&gt;
/* ...unless they also use the hlist class */&lt;br /&gt;
.wikitable.hlist td ul,&lt;br /&gt;
.wikitable.hlist td ol,&lt;br /&gt;
.wikitable.hlist td dl {&lt;br /&gt;
    text-align: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Icons for medialist templates [[Template:Listen]],&lt;br /&gt;
   [[Template:Multi-listen_start]], [[Template:Video]],&lt;br /&gt;
   [[Template:Multi-video_start]] */&lt;br /&gt;
div.listenlist {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/4/47/Sound-icon.svg&amp;quot;) no-repeat scroll 0 0 transparent;&lt;br /&gt;
    background-size: 30px;&lt;br /&gt;
    padding-left: 40px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Fix for hieroglyphs specificality issue in infoboxes ([[Bugzilla:41869]]) */&lt;br /&gt;
table.mw-hiero-table td {&lt;br /&gt;
    vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style rules for media list templates */&lt;br /&gt;
div.medialist {&lt;br /&gt;
    min-height: 50px;&lt;br /&gt;
    margin: 1em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    background-position: top left;&lt;br /&gt;
    background-repeat: no-repeat;&lt;br /&gt;
}&lt;br /&gt;
div.medialist ul {&lt;br /&gt;
    list-style-type: none;&lt;br /&gt;
    list-style-image: none;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
div.medialist ul li {&lt;br /&gt;
    padding-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
div.medialist ul li li {&lt;br /&gt;
    font-size: 91%;&lt;br /&gt;
    padding-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Change the external link icon to an Adobe icon for all PDF files&lt;br /&gt;
   in browsers that support these CSS selectors, like Mozilla and Opera */&lt;br /&gt;
div#content a[href$=&amp;quot;.pdf&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.pdf?&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.pdf#&amp;quot;].external,&lt;br /&gt;
div#content a[href$=&amp;quot;.PDF&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.PDF?&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.PDF#&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href$=&amp;quot;.pdf&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.pdf?&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.pdf#&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href$=&amp;quot;.PDF&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.PDF?&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.PDF#&amp;quot;].external {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif&amp;quot;) no-repeat right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-right: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Change the external link icon to an Adobe icon anywhere the PDFlink class&lt;br /&gt;
   is used (notably Template:PDFlink). This works in IE, unlike the above. */&lt;br /&gt;
div#content span.PDFlink a,&lt;br /&gt;
div#mw_content span.PDFlink a {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif&amp;quot;) no-repeat right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-right: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Content in columns with CSS instead of tables ([[Template:Columns]]) */&lt;br /&gt;
div.columns-2 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 50%;&lt;br /&gt;
    min-width: 300px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-3 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 33.3%;&lt;br /&gt;
    min-width: 200px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-4 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 25%;&lt;br /&gt;
    min-width: 150px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-5 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 20%;&lt;br /&gt;
    min-width: 120px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Messagebox templates */&lt;br /&gt;
.messagebox {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    width: 80%;&lt;br /&gt;
    margin: 0 auto 1em auto;&lt;br /&gt;
    padding: .2em;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.merge {&lt;br /&gt;
    border: 1px solid #c0b8cc;&lt;br /&gt;
    background-color: #f0e5ff;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.cleanup {&lt;br /&gt;
    border: 1px solid #9f9fff;&lt;br /&gt;
    background-color: #efefff;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.standard-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
    margin: 4px auto;&lt;br /&gt;
}&lt;br /&gt;
/* For old WikiProject banners inside banner shells. */&lt;br /&gt;
.mbox-inside .standard-talk,&lt;br /&gt;
.messagebox.nested-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    margin: 2px 0;&lt;br /&gt;
    padding: 2px;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.small {&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 85%;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 1em 1em;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.small-talk {&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 85%;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 1em 1em;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
    background: #F8EABA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */&lt;br /&gt;
th.mbox-text, td.mbox-text {   /* The message body cell(s) */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 0.25em 0.9em;     /* 0.9em left/right */&lt;br /&gt;
    width: 100%;               /* Make all mboxes the same width regardless of text length */&lt;br /&gt;
}&lt;br /&gt;
td.mbox-image {                /* The left image cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0 2px 0.9em;  /* 0.9em left, 0px right */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
td.mbox-imageright {           /* The right image cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0.9em 2px 0;  /* 0px left, 0.9em right */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
td.mbox-empty-cell {           /* An empty narrow cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    width: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Article message box styles */&lt;br /&gt;
table.ambox {&lt;br /&gt;
    margin: 0 10%;                  /* 10% = Will not overlap with other elements */&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #1e90ff;  /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
    background: #fbfbfb;&lt;br /&gt;
}&lt;br /&gt;
table.ambox + table.ambox {      /* Single border between stacked boxes. */&lt;br /&gt;
    margin-top: -1px;&lt;br /&gt;
}&lt;br /&gt;
.ambox th.mbox-text,&lt;br /&gt;
.ambox td.mbox-text {            /* The message body cell(s) */&lt;br /&gt;
    padding: 0.25em 0.5em;       /* 0.5em left/right */&lt;br /&gt;
}&lt;br /&gt;
.ambox td.mbox-image {           /* The left image cell */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0 2px 0.5em;    /* 0.5em left, 0px right */&lt;br /&gt;
}&lt;br /&gt;
.ambox td.mbox-imageright {      /* The right image cell */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0.5em 2px 0;    /* 0px left, 0.5em right */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ambox-notice {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #1e90ff;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-speedy {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;                   /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-delete {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-content {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-style {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-move {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-protection {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Image message box styles */&lt;br /&gt;
table.imbox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 3px solid #1e90ff;    /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
    background: #fbfbfb;&lt;br /&gt;
}&lt;br /&gt;
.imbox .mbox-text .imbox {  /* For imboxes inside imbox-text cells. */&lt;br /&gt;
    margin: 0 -0.5em;       /* 0.9 - 0.5 = 0.4em left/right.        */&lt;br /&gt;
    display: block;         /* Fix for webkit to force 100% width.  */&lt;br /&gt;
}&lt;br /&gt;
.mbox-inside .imbox {       /* For imboxes inside other templates.  */&lt;br /&gt;
    margin: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.imbox-notice {&lt;br /&gt;
    border: 3px solid #1e90ff;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-speedy {&lt;br /&gt;
    border: 3px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-delete {&lt;br /&gt;
    border: 3px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-content {&lt;br /&gt;
    border: 3px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-style {&lt;br /&gt;
    border: 3px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-move {&lt;br /&gt;
    border: 3px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-protection {&lt;br /&gt;
    border: 3px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-license {&lt;br /&gt;
    border: 3px solid #88a;       /* Dark gray */&lt;br /&gt;
    background: #f7f8ff;          /* Light gray */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-featured {&lt;br /&gt;
    border: 3px solid #cba135;    /* Brown-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Category message box styles */&lt;br /&gt;
table.cmbox {&lt;br /&gt;
    margin: 3px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #DFE8FF;    /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.cmbox-notice {&lt;br /&gt;
    background: #D8E8FF;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-speedy {&lt;br /&gt;
    margin-top: 4px;&lt;br /&gt;
    margin-bottom: 4px;&lt;br /&gt;
    border: 4px solid #b22222;    /* Red */&lt;br /&gt;
    background: #FFDBDB;          /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-delete {&lt;br /&gt;
    background: #FFDBDB;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-content {&lt;br /&gt;
    background: #FFE7CE;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-style {&lt;br /&gt;
    background: #FFF9DB;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-move {&lt;br /&gt;
    background: #E4D8FF;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-protection {&lt;br /&gt;
    background: #EFEFE1;    /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Other pages message box styles */&lt;br /&gt;
table.ombox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #aaa;       /* Default &amp;quot;notice&amp;quot; gray */&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ombox-notice {&lt;br /&gt;
    border: 1px solid #aaa;       /* Gray */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-speedy {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-delete {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-content {&lt;br /&gt;
    border: 1px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-style {&lt;br /&gt;
    border: 1px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-move {&lt;br /&gt;
    border: 1px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-protection {&lt;br /&gt;
    border: 2px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Talk page message box styles */&lt;br /&gt;
table.tmbox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #c0c090;    /* Default &amp;quot;notice&amp;quot; gray-brown */&lt;br /&gt;
    background: #f8eaba;&lt;br /&gt;
}&lt;br /&gt;
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The &amp;quot;mediawiki&amp;quot; class ensures that */&lt;br /&gt;
    margin: 2px 0;               /* this declaration overrides other styles (including mbox-small above)   */&lt;br /&gt;
    width: 100%;                 /* For Safari and Opera */&lt;br /&gt;
}&lt;br /&gt;
.mbox-inside .tmbox.mbox-small { /* &amp;quot;small&amp;quot; tmboxes should not be small when  */&lt;br /&gt;
    line-height: 1.5em;          /* also &amp;quot;nested&amp;quot;, so reset styles that are   */&lt;br /&gt;
    font-size: 100%;             /* set in &amp;quot;mbox-small&amp;quot; above.                */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.tmbox-speedy {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-delete {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-content {&lt;br /&gt;
    border: 2px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-style {&lt;br /&gt;
    border: 2px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-move {&lt;br /&gt;
    border: 2px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-protection,&lt;br /&gt;
table.tmbox-notice {&lt;br /&gt;
    border: 1px solid #c0c090;    /* Gray-brown */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Disambig and set index box styles */&lt;br /&gt;
table.dmbox {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.9em 1em;&lt;br /&gt;
    border-top: 1px solid #ccc;&lt;br /&gt;
    border-bottom: 1px solid #ccc;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Footer and header message box styles */&lt;br /&gt;
table.fmbox {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #f9f9f9;     /* Default &amp;quot;system&amp;quot; gray */&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-system {&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-warning {&lt;br /&gt;
    border: 1px solid #bb7070;  /* Dark pink */&lt;br /&gt;
    background: #ffdbdb;        /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-editnotice {&lt;br /&gt;
    background: transparent;&lt;br /&gt;
}&lt;br /&gt;
/* Div based &amp;quot;warning&amp;quot; style fmbox messages. */&lt;br /&gt;
div.mw-warning-with-logexcerpt,&lt;br /&gt;
div.mw-lag-warn-high,&lt;br /&gt;
div.mw-cascadeprotectedwarning,&lt;br /&gt;
div#mw-protect-cascadeon {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    border: 1px solid #bb7070;&lt;br /&gt;
    background: #ffdbdb;&lt;br /&gt;
    padding: 0.25em 0.9em;&lt;br /&gt;
}&lt;br /&gt;
/* Div based &amp;quot;system&amp;quot; style fmbox messages.&lt;br /&gt;
   Used in [[MediaWiki:Readonly lag]]. */&lt;br /&gt;
div.mw-lag-warn-normal,&lt;br /&gt;
div.fmbox-system {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
    padding: 0.25em 0.9em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* These mbox-small classes must be placed after all other&lt;br /&gt;
   ambox/tmbox/ombox etc classes. &amp;quot;body.mediawiki&amp;quot; is so&lt;br /&gt;
   they override &amp;quot;table.ambox + table.ambox&amp;quot; above. */&lt;br /&gt;
body.mediawiki table.mbox-small {   /* For the &amp;quot;small=yes&amp;quot; option. */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 4px 0 4px 1em;&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
body.mediawiki table.mbox-small-left {   /* For the &amp;quot;small=left&amp;quot; option. */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 4px 1em 4px 0;&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for compact ambox */&lt;br /&gt;
/* Hide the images */&lt;br /&gt;
.compact-ambox table .mbox-image,&lt;br /&gt;
.compact-ambox table .mbox-imageright,&lt;br /&gt;
.compact-ambox table .mbox-empty-cell {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
/* Remove borders, backgrounds, padding, etc. */&lt;br /&gt;
.compact-ambox table.ambox {&lt;br /&gt;
    border: none;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
    margin: 0 0 0 1.6em !important;&lt;br /&gt;
    padding: 0 !important;&lt;br /&gt;
    width: auto;&lt;br /&gt;
    display: block;&lt;br /&gt;
}&lt;br /&gt;
body.mediawiki .compact-ambox table.mbox-small-left {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
    width: auto;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
/* Style the text cell as a list item and remove its padding */&lt;br /&gt;
.compact-ambox table .mbox-text {&lt;br /&gt;
    padding: 0 !important;&lt;br /&gt;
    margin: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
.compact-ambox table .mbox-text-span {&lt;br /&gt;
    display: list-item;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    list-style-type: square;&lt;br /&gt;
    list-style-image: url(//bits.wikimedia.org/skins/common/images/bullet.gif);&lt;br /&gt;
}&lt;br /&gt;
.skin-vector .compact-ambox table .mbox-text-span {&lt;br /&gt;
    list-style-type: circle;&lt;br /&gt;
    list-style-image: url(//bits.wikimedia.org/skins/vector/images/bullet-icon.png)&lt;br /&gt;
}&lt;br /&gt;
/* Allow for hiding text in compact form */&lt;br /&gt;
.compact-ambox .hide-when-compact {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Remove default styles for [[MediaWiki:Noarticletext]]. */&lt;br /&gt;
div.noarticletext {&lt;br /&gt;
    border: none;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide (formatting) elements from screen, but not from screenreaders */&lt;br /&gt;
.visualhide {&lt;br /&gt;
    position: absolute;&lt;br /&gt;
    left: -10000px;&lt;br /&gt;
    top: auto;&lt;br /&gt;
    width: 1px;&lt;br /&gt;
    height: 1px;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Bold save button */&lt;br /&gt;
#wpSave {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* class hiddenStructure is defunct. See [[Wikipedia:hiddenStructure]] */&lt;br /&gt;
.hiddenStructure {&lt;br /&gt;
    display: inline !important;&lt;br /&gt;
    color: #f00;&lt;br /&gt;
    background-color: #0f0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* suppress missing interwiki image links where #ifexist cannot&lt;br /&gt;
   be used due to high number of requests see .hidden-redlink on&lt;br /&gt;
   [[m:MediaWiki:Common.css]] */&lt;br /&gt;
.check-icon a.new {&lt;br /&gt;
    display: none;&lt;br /&gt;
    speak: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Removes underlines from certain links */&lt;br /&gt;
.nounderlines a,&lt;br /&gt;
.IPA a:link, .IPA a:visited {&lt;br /&gt;
    text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Standard Navigationsleisten, aka box hiding thingy&lt;br /&gt;
   from .de.  Documentation at [[Wikipedia:NavFrame]]. */&lt;br /&gt;
div.NavFrame {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 4px;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    font-size: 95%;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame + div.NavFrame {&lt;br /&gt;
    border-top-style: none;&lt;br /&gt;
    border-top-style: hidden;&lt;br /&gt;
}&lt;br /&gt;
div.NavPic {&lt;br /&gt;
    background-color: #fff;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 2px;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame div.NavHead {&lt;br /&gt;
    height: 1.6em;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    background-color: #ccf;&lt;br /&gt;
    position: relative;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame p,&lt;br /&gt;
div.NavFrame div.NavContent,&lt;br /&gt;
div.NavFrame div.NavContent p {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
div.NavEnd {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    line-height: 1px;&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
a.NavToggle {&lt;br /&gt;
    position: absolute;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    right: 3px;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hatnotes and disambiguation notices */&lt;br /&gt;
.rellink,&lt;br /&gt;
.dablink,&lt;br /&gt;
.hatnote {&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
.rellink i,&lt;br /&gt;
.dablink i,&lt;br /&gt;
.hatnote i {&lt;br /&gt;
    font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
div.rellink,&lt;br /&gt;
div.dablink,&lt;br /&gt;
div.hatnote {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow transcluded pages to display in lists rather than a table.&lt;br /&gt;
   Compatible in Firefox; incompatible in IE6. */&lt;br /&gt;
.listify td    { display: list-item; }&lt;br /&gt;
.listify tr    { display: block; }&lt;br /&gt;
.listify table { display: block; }&lt;br /&gt;
&lt;br /&gt;
/* Geographical coordinates defaults. See [[Template:Coord/link]]&lt;br /&gt;
   for how these are used. The classes &amp;quot;geo&amp;quot;, &amp;quot;longitude&amp;quot;, and&lt;br /&gt;
   &amp;quot;latitude&amp;quot; are used by the [[Geo microformat]]. */&lt;br /&gt;
.geo-default, .geo-dms, .geo-dec  { display: inline; }&lt;br /&gt;
.geo-nondefault, .geo-multi-punct { display: none; }&lt;br /&gt;
.longitude, .latitude             { white-space: nowrap; }&lt;br /&gt;
&lt;br /&gt;
/* When &amp;lt;div class=&amp;quot;nonumtoc&amp;quot;&amp;gt; is used on the table of contents,&lt;br /&gt;
   the ToC will display without numbers */&lt;br /&gt;
.nonumtoc .tocnumber {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.nonumtoc #toc ul,&lt;br /&gt;
.nonumtoc .toc ul {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
    margin: .3em 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
.hlist.nonumtoc #toc ul ul,&lt;br /&gt;
.hlist.nonumtoc .toc ul ul {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow limiting of which header levels are shown in a TOC;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;toclimit-3&amp;quot;&amp;gt;, for instance, will limit to&lt;br /&gt;
   showing ==headings== and ===headings=== but no further&lt;br /&gt;
   (as long as there are no =headings= on the page, which&lt;br /&gt;
   there shouldn't be according to the MoS). */&lt;br /&gt;
.toclimit-2 .toclevel-1 ul,&lt;br /&gt;
.toclimit-3 .toclevel-2 ul,&lt;br /&gt;
.toclimit-4 .toclevel-3 ul,&lt;br /&gt;
.toclimit-5 .toclevel-4 ul,&lt;br /&gt;
.toclimit-6 .toclevel-5 ul,&lt;br /&gt;
.toclimit-7 .toclevel-6 ul {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for Template:Quote */&lt;br /&gt;
blockquote.templatequote {&lt;br /&gt;
     margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
blockquote.templatequote div.templatequotecite {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* User block messages */&lt;br /&gt;
div.user-block {&lt;br /&gt;
    padding: 5px;&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
    border: 1px solid #A9A9A9;&lt;br /&gt;
    background-color: #FFEFD5;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Prevent line breaks in silly places:&lt;br /&gt;
   1) Where desired&lt;br /&gt;
   2) Links when we don't want them to&lt;br /&gt;
   3) Bold &amp;quot;links&amp;quot; to the page itself&lt;br /&gt;
   4) Ref tags with group names &amp;lt;ref group=&amp;quot;Note&amp;quot;&amp;gt; --&amp;gt; &amp;quot;[Note 1]&amp;quot; */&lt;br /&gt;
.nowrap,&lt;br /&gt;
.nowraplinks a,&lt;br /&gt;
.nowraplinks .selflink,&lt;br /&gt;
sup.reference a {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
/* But allow wrapping where desired: */&lt;br /&gt;
.wrap,&lt;br /&gt;
.wraplinks a {&lt;br /&gt;
    white-space: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For template documentation */&lt;br /&gt;
.template-documentation {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 1em 0 0 0;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background-color: #ecfcf4;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Inline divs in ImageMaps (code borrowed from de.wiki) */&lt;br /&gt;
.imagemap-inline div {&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Increase the height of the image upload box */&lt;br /&gt;
#wpUploadDescription {&lt;br /&gt;
    height: 13em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Minimum thumb width */&lt;br /&gt;
.thumbinner {&lt;br /&gt;
    min-width: 100px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Makes the background of a framed image white instead of gray.&lt;br /&gt;
   Only visible with transparent images. */&lt;br /&gt;
div.thumb .thumbimage {&lt;br /&gt;
    background-color: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The backgrounds for galleries. */&lt;br /&gt;
div#content .gallerybox div.thumb {&lt;br /&gt;
    /* Light gray padding */&lt;br /&gt;
    background-color: #F9F9F9;&lt;br /&gt;
}&lt;br /&gt;
/* Put a chequered background behind images, only visible if they have transparency.&lt;br /&gt;
   '.filehistory a img' and '#file img:hover' are handled by MediaWiki core (as of 1.19) */&lt;br /&gt;
.gallerybox .thumb img {&lt;br /&gt;
    background: #fff url(//bits.wikimedia.org/skins/common/images/Checker-16x16.png) repeat;&lt;br /&gt;
}&lt;br /&gt;
/* But not on articles, user pages, portals or with opt-out. */&lt;br /&gt;
.ns-0 .gallerybox .thumb img,&lt;br /&gt;
.ns-2 .gallerybox .thumb img,&lt;br /&gt;
.ns-100 .gallerybox .thumb img,&lt;br /&gt;
.nochecker .gallerybox .thumb img {&lt;br /&gt;
    background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Prevent floating boxes from overlapping any category listings,&lt;br /&gt;
   file histories, edit previews, and edit [Show changes] views. */&lt;br /&gt;
#mw-subcategories, #mw-pages, #mw-category-media,&lt;br /&gt;
#filehistory, #wikiPreview, #wikiDiff {&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.rtl #mw-articlefeedbackv5, body.rtl #mw-articlefeedback {&lt;br /&gt;
    display: block;   /* Override inline block mode */&lt;br /&gt;
    margin-bottom: 1em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: right;     /* Clear any info boxes that stick out */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;     /* Prevents margin collapsing */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Selectively hide headers in WikiProject banners */&lt;br /&gt;
.wpb .wpb-header             { display: none; }&lt;br /&gt;
.wpbs-inner .wpb .wpb-header { display: block; }     /* for IE */&lt;br /&gt;
.wpbs-inner .wpb .wpb-header { display: table-row; } /* for real browsers */&lt;br /&gt;
.wpbs-inner .wpb-outside     { display: none; }      /* hide things that should only display outside shells */&lt;br /&gt;
&lt;br /&gt;
/* Styling for Abuse Filter tags */&lt;br /&gt;
.mw-tag-markers {&lt;br /&gt;
    font-family:sans-serif;&lt;br /&gt;
    font-style:italic;&lt;br /&gt;
    font-size:90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide stuff meant for accounts with special permissions. Made visible again in&lt;br /&gt;
   [[MediaWiki:Group-sysop.css]], [[MediaWiki:Group-accountcreator.css]],&lt;br /&gt;
   [[MediaWiki:Group-templateeditor.css]] and [[Mediawiki:Group-autoconfirmed.css]]. */&lt;br /&gt;
.sysop-show,&lt;br /&gt;
.accountcreator-show,&lt;br /&gt;
.templateeditor-show,&lt;br /&gt;
.autoconfirmed-show {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Hide the redlink generated by {{Editnotice}},&lt;br /&gt;
 * this overrides the &amp;quot;.sysop-show { display: none; }&amp;quot; above that applies&lt;br /&gt;
 * to the same link as well.&lt;br /&gt;
 *&lt;br /&gt;
 * See [[bugzilla:43013]].&lt;br /&gt;
 */&lt;br /&gt;
.ve-ui-mwNoticesPopupTool-item .editnotice-redlink {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Remove bullets when there are multiple edit page warnings */&lt;br /&gt;
ul.permissions-errors &amp;gt; li {&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
}&lt;br /&gt;
ul.permissions-errors {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* No linewrap on the labels of the login/signup page */&lt;br /&gt;
body.page-Special_UserLogin .mw-label label,&lt;br /&gt;
body.page-Special_UserLogin_signup .mw-label label {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Pie chart test: Transparent borders */&lt;br /&gt;
.transborder {&lt;br /&gt;
    border: solid transparent;&lt;br /&gt;
}&lt;br /&gt;
* html .transborder {  /* IE6 */&lt;br /&gt;
    border: solid #000001;&lt;br /&gt;
    filter: chroma(color=#000001);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for updated markers on watchlist, history and recent/related changes.&lt;br /&gt;
   Bullets are handled in skin-specific stylesheets. */&lt;br /&gt;
.updatedmarker {&lt;br /&gt;
    background-color: transparent;&lt;br /&gt;
    color: #006400;&lt;br /&gt;
}&lt;br /&gt;
li.mw-changeslist-line-watched .mw-title,&lt;br /&gt;
table.mw-changeslist-line-watched .mw-title,&lt;br /&gt;
table.mw-enhanced-watch .mw-enhanced-rctime {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Generic class for Times-based serif, texhtml class for inline math */&lt;br /&gt;
.times-serif,&lt;br /&gt;
span.texhtml {&lt;br /&gt;
    font-family: &amp;quot;Nimbus Roman No9 L&amp;quot;, &amp;quot;Times New Roman&amp;quot;, Times, serif;&lt;br /&gt;
    font-size: 118%;&lt;br /&gt;
}&lt;br /&gt;
span.texhtml {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
span.texhtml span.texhtml {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Disable kerning, and enable tabular and lining display for digits.&lt;br /&gt;
   This causes most common fonts to display digits as if they were monospace. */&lt;br /&gt;
.digits,&lt;br /&gt;
.texhtml {&lt;br /&gt;
    -moz-font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;;&lt;br /&gt;
    -webkit-font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;;&lt;br /&gt;
    font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Fix so &amp;lt;syntaxhighlight&amp;gt; tags and .css and .js pages get normal text size.&lt;br /&gt;
   [[Bugzilla:26204]]. See also [[Wikipedia:Typography#The monospace 'bug']] */&lt;br /&gt;
div.mw-geshi div,&lt;br /&gt;
div.mw-geshi div pre,&lt;br /&gt;
span.mw-geshi,&lt;br /&gt;
pre.source-css,&lt;br /&gt;
pre.source-javascript,&lt;br /&gt;
pre.source-lua {&lt;br /&gt;
    font-family: monospace, Courier !important;&lt;br /&gt;
    -moz-tab-size: 4;&lt;br /&gt;
    -o-tab-size: 4;&lt;br /&gt;
    tab-size: 4;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Fix styling of transcluded prefindex tables */&lt;br /&gt;
table#mw-prefixindex-list-table,&lt;br /&gt;
table#mw-prefixindex-nav-table {&lt;br /&gt;
    width: 98%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For portals, added 2011-12-07 -bv&lt;br /&gt;
   On wide screens, show these as two columns&lt;br /&gt;
   On narrow and mobile screens, let them collapse into a single column */&lt;br /&gt;
.portal-column-left {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 50%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 49%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-left-wide {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 60%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right-narrow {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 39%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-left-extra-wide {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 70%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right-extra-narrow {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 29%;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 800px) {&lt;br /&gt;
    /* Decouple the columns on narrow screens */&lt;br /&gt;
    .portal-column-left,&lt;br /&gt;
    .portal-column-right,&lt;br /&gt;
    .portal-column-left-wide,&lt;br /&gt;
    .portal-column-right-narrow,&lt;br /&gt;
    .portal-column-left-extra-wide,&lt;br /&gt;
    .portal-column-right-extra-narrow {&lt;br /&gt;
        float: inherit;&lt;br /&gt;
        width: inherit;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For announcements */&lt;br /&gt;
#bodyContent .letterhead {&lt;br /&gt;
    background-image:url('//upload.wikimedia.org/wikipedia/commons/e/e0/Tan-page-corner.png');&lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    padding: 2em;&lt;br /&gt;
    background-color: #faf9f2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Tree style lists */&lt;br /&gt;
.treeview ul {&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
.treeview li {&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    list-style-type: none;&lt;br /&gt;
    list-style-image: none;&lt;br /&gt;
    zoom: 1; /* BE KIND TO IE6 */;&lt;br /&gt;
}&lt;br /&gt;
.treeview li li {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/f/f2/Treeview-grey-line.png&amp;quot;) no-repeat 0 -2981px;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 20px;&lt;br /&gt;
    text-indent: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
.treeview li li.lastline {&lt;br /&gt;
    background-position: 0 -5971px&lt;br /&gt;
}&lt;br /&gt;
.treeview li.emptyline &amp;gt; ul {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-left: -1px;&lt;br /&gt;
}&lt;br /&gt;
.treeview li.emptyline &amp;gt; ul &amp;gt; li:first-child {&lt;br /&gt;
    background-position: 0 9px&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* hidden sortkey for tablesorter */&lt;br /&gt;
td .sortkey,&lt;br /&gt;
th .sortkey {&lt;br /&gt;
    display: none;&lt;br /&gt;
    speak: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make it possible to hide checkboxes in &amp;lt;inputbox&amp;gt; */&lt;br /&gt;
.inputbox-hidecheckboxes form .inputbox-element {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide charinsert base for those not using the gadget */&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* work-around for [[bugzilla:23965]] (Kaltura advertisement) */&lt;br /&gt;
.k-player .k-attribution {&lt;br /&gt;
    visibility: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* [[MediaZilla:35337]] */&lt;br /&gt;
@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 1.5dppx) {&lt;br /&gt;
        #p-logo a {&lt;br /&gt;
                background-image: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Wikipedia-logo-v2-en.svg/204px-Wikipedia-logo-v2-en.svg.png&amp;quot;) !important;&lt;br /&gt;
                background-size: 136px auto;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {&lt;br /&gt;
        #p-logo a {&lt;br /&gt;
                background-image: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Wikipedia-logo-v2-en.svg/270px-Wikipedia-logo-v2-en.svg.png&amp;quot;) !important;&lt;br /&gt;
                background-size: 135px auto;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=MediaWiki:Common.css&amp;diff=9955</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=MediaWiki:Common.css&amp;diff=9955"/>
		<updated>2016-02-25T11:53:56Z</updated>

		<summary type="html">&lt;p&gt;Matt: attempts to normalize css changes for Vector skin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
table.blue_lines tr:nth-child(2n+0),tr.blue_lines:nth-child(2n+0){&lt;br /&gt;
  background-color: #EEEEFF;&lt;br /&gt;
}&lt;br /&gt;
table.blue_lines tr:nth-child(2n+1),tr.blue_lines:nth-child(2n+1){&lt;br /&gt;
  background-color: #CCCCFF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/******************&lt;br /&gt;
   GREEN BACKGROUND&lt;br /&gt;
 ******************/&lt;br /&gt;
&lt;br /&gt;
body {&lt;br /&gt;
   /*&lt;br /&gt;
   background-image: -webkit-gradient(linear,left top, right bottom, color-stop(0,#4e3b2e), color-stop(0.75,#c1b0af));&lt;br /&gt;
   background-image: -webkit-linear-gradient(left top, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
   background-image: -moz-linear-gradient(left top, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
   background-image: -ms-linear-gradient(left top, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
   background-image: -o-linear-gradient(left top, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
   background-image: linear-gradient(to bottom right, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
   */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/******************&lt;br /&gt;
   ANNOYING BLINKER&lt;br /&gt;
 ******************/&lt;br /&gt;
&lt;br /&gt;
.annoying {&lt;br /&gt;
	width: 112px;&lt;br /&gt;
	margin-top: 10px;&lt;br /&gt;
	margin-bottom:10px;&lt;br /&gt;
	margin-left: 5px;&lt;br /&gt;
	margin-right: 0px;&lt;br /&gt;
	padding: 10px;&lt;br /&gt;
	border-radius: 8px;&lt;br /&gt;
	font-size: 13px;&lt;br /&gt;
	line-height: 13px;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align:center;&lt;br /&gt;
	color: yellow;&lt;br /&gt;
	border: 2px solid yellow;&lt;br /&gt;
	background-color: red;&lt;br /&gt;
	-webkit-animation: blinker 8s linear infinite;&lt;br /&gt;
	-moz-animation: blinker 8s linear infinite;&lt;br /&gt;
	-o-animation: blinker 8s linear infinite;&lt;br /&gt;
	animation: blinker 8s linear infinite;&lt;br /&gt;
}&lt;br /&gt;
.annoying-money {&lt;br /&gt;
	font-size: 30px;&lt;br /&gt;
	line-height: 26px;&lt;br /&gt;
}&lt;br /&gt;
@-webkit-keyframes blinker { 50% { color: red; border: 2px solid red; background-color: yellow; } }&lt;br /&gt;
@-moz-keyframes blinker { 50% { color: red; border: 2px solid red; background-color: yellow; } }&lt;br /&gt;
@-o-keyframes blinker { 50% { color: red; border: 2px solid red; background-color: yellow; } }&lt;br /&gt;
@keyframes blinker { 50% { color: red; border: 2px solid red; background-color: yellow; } }&lt;br /&gt;
&lt;br /&gt;
/******************&lt;br /&gt;
   NAVBAR STYLINGS&lt;br /&gt;
 ******************/&lt;br /&gt;
&lt;br /&gt;
#p-personal.portlet a[href] {&lt;br /&gt;
	 color:#ffffff;&lt;br /&gt;
	 text-shadow:0px 0px 3px #D04040;&lt;br /&gt;
}&lt;br /&gt;
#p-personal.portlet div.pBody ul li a {&lt;br /&gt;
   border: 1px solid transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div#footer,&lt;br /&gt;
#p-search.portlet h3,&lt;br /&gt;
#p-navigation.portlet h3,&lt;br /&gt;
#p-tb.portlet h3,&lt;br /&gt;
#p-extras.portlet h3,&lt;br /&gt;
#p-local.portlet h3,&lt;br /&gt;
#p-gratipay.portlet h3,&lt;br /&gt;
#p-calendar.portlet h3 {&lt;br /&gt;
	 display:none;&lt;br /&gt;
	 visibility:hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
div.portlet div.pBody{&lt;br /&gt;
	 padding:0px;&lt;br /&gt;
	 margin:0px;&lt;br /&gt;
	 background-color: transparent;&lt;br /&gt;
	 border:0px;&lt;br /&gt;
}&lt;br /&gt;
div.portlet div.pBody ul{&lt;br /&gt;
	 list-style:none outside none;&lt;br /&gt;
	 margin:0px;&lt;br /&gt;
	 margin-left:4px;&lt;br /&gt;
	 padding:0px;&lt;br /&gt;
}&lt;br /&gt;
div.portlet div.pBody ul li {&lt;br /&gt;
	 margin-bottom: 3px;&lt;br /&gt;
	 overflow:hidden;&lt;br /&gt;
	 white-space:nowrap;&lt;br /&gt;
	 border:1px solid transparent;&lt;br /&gt;
}&lt;br /&gt;
div.portlet div.pBody ul li:hover,&lt;br /&gt;
div.portlet div.pBody ul li a:hover {&lt;br /&gt;
	 background-color:#eebbbb;&lt;br /&gt;
	 border:1px solid white;&lt;br /&gt;
}&lt;br /&gt;
#p-gratipay.portlet div.pBody ul li,&lt;br /&gt;
#p-gratipay.portlet div.pBody ul li a,&lt;br /&gt;
#p-navigation.portlet div.pBody ul li,&lt;br /&gt;
#p-navigation.portlet div.pBody ul li a {&lt;br /&gt;
	 color:#ffffff;&lt;br /&gt;
	 text-shadow:0px 0px 4px #331111;&lt;br /&gt;
	 line-height:22px;&lt;br /&gt;
	 font-size:20px;&lt;br /&gt;
	 font-weight:bold;&lt;br /&gt;
}&lt;br /&gt;
#p-tb.portlet div.pBody ul li,&lt;br /&gt;
#p-tb.portlet div.pBody ul li a,&lt;br /&gt;
#p-local.portlet div.pBody ul li,&lt;br /&gt;
#p-local.portlet div.pBody ul li a,&lt;br /&gt;
#p-extras.portlet div.pBody ul li,&lt;br /&gt;
#p-extras.portlet div.pBody ul li a,&lt;br /&gt;
#p-calendar.portlet div.pBody ul li,&lt;br /&gt;
#p-calendar.portlet div.pBody ul li a {&lt;br /&gt;
	 color:#ffffff;&lt;br /&gt;
	 text-shadow:0px 0px 4px #331111;&lt;br /&gt;
	 line-height:16px;&lt;br /&gt;
	 font-size:14px;&lt;br /&gt;
	 font-weight:bold;&lt;br /&gt;
}&lt;br /&gt;
#p-gratipay.portlet div.pBody ul li ul li.local-submenu, &lt;br /&gt;
#p-gratipay.portlet div.pBody ul li ul li.local-submenu a {&lt;br /&gt;
   line-height:14px;&lt;br /&gt;
   font-size:12px;&lt;br /&gt;
   margin-left: 12px;&lt;br /&gt;
}&lt;br /&gt;
#p-gratipay.portlet div.pBody ul li ul li.local-submenu a {&lt;br /&gt;
   margin-left: 0px;&lt;br /&gt;
   border-left: 1px;&lt;br /&gt;
   border-right: 1px;&lt;br /&gt;
}&lt;br /&gt;
#p-gratipay.portlet div.pBody li:hover {&lt;br /&gt;
   background-color: inherit;&lt;br /&gt;
   border: 1px solid transparent;&lt;br /&gt;
}&lt;br /&gt;
#p-tb.portlet div.pBody ul li {&lt;br /&gt;
	 margin-bottom: 1px;&lt;br /&gt;
}&lt;br /&gt;
#p-extras.portlet, #p-gratipay.portlet {&lt;br /&gt;
	 margin-bottom: 0px;&lt;br /&gt;
}&lt;br /&gt;
#p-navigation.portlet div.pBody ul li a:hover,&lt;br /&gt;
#p-tb.portlet div.pBody ul li a:hover,&lt;br /&gt;
#p-local.portlet div.pBody ul li a:hover,&lt;br /&gt;
#p-extras.portlet div.pBody ul li a:hover,&lt;br /&gt;
#p-gratipay.portlet div.pBody ul li a:hover,&lt;br /&gt;
#p-calendar.portlet div.pBody ul li a:hover {&lt;br /&gt;
	 text-decoration:none;&lt;br /&gt;
}&lt;br /&gt;
*/&lt;br /&gt;
button#collaboerate {&lt;br /&gt;
	 margin-left:7px;&lt;br /&gt;
	 width: 125px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#p-search .pBody {&lt;br /&gt;
   padding: 0px;&lt;br /&gt;
   text-align: left;&lt;br /&gt;
}&lt;br /&gt;
#searchInput:focus,&lt;br /&gt;
#searchGoButton:focus {&lt;br /&gt;
   width: 105px;&lt;br /&gt;
}&lt;br /&gt;
#searchInput:focus + input {&lt;br /&gt;
   display: inline-block;&lt;br /&gt;
}&lt;br /&gt;
#searchInput {&lt;br /&gt;
   margin-left: 5px;&lt;br /&gt;
   display: inline-block;&lt;br /&gt;
   width: 135px;&lt;br /&gt;
}&lt;br /&gt;
#mw-searchButton {&lt;br /&gt;
   display: none;&lt;br /&gt;
}&lt;br /&gt;
#searchGoButton {&lt;br /&gt;
   display: none;&lt;br /&gt;
   border: 0px;&lt;br /&gt;
   margin-left: 0px;&lt;br /&gt;
   margin-right: 0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Wikipedia styles ;) */&lt;br /&gt;
&lt;br /&gt;
/* Default styling for HTML elements */&lt;br /&gt;
dfn {&lt;br /&gt;
    font-style: inherit;  /* Reset default styling for &amp;lt;dfn&amp;gt; */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Main page fixes */&lt;br /&gt;
#interwiki-completelist {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
body.page-Main_Page #ca-delete {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
body.page-Main_Page #mp-topbanner {&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Edit window toolbar */&lt;br /&gt;
#toolbar {&lt;br /&gt;
    height: 22px;&lt;br /&gt;
    margin-bottom: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Highlight data points in the info action if specified in the URL */&lt;br /&gt;
body.action-info :target {&lt;br /&gt;
    background: #DEF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make the list of references smaller */&lt;br /&gt;
ol.references,&lt;br /&gt;
div.reflist,&lt;br /&gt;
div.refbegin {&lt;br /&gt;
    font-size: 90%;            /* Default font-size */&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
div.refbegin-100 {&lt;br /&gt;
    font-size: 100%;           /* Option for normal fontsize in {{refbegin}} */&lt;br /&gt;
}&lt;br /&gt;
div.reflist ol.references {&lt;br /&gt;
    font-size: 100%;           /* Reset font-size when nested in div.reflist */&lt;br /&gt;
    list-style-type: inherit;  /* Enable custom list style types */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Highlight clicked reference in blue to help navigation */&lt;br /&gt;
ol.references li:target,&lt;br /&gt;
sup.reference:target,&lt;br /&gt;
span.citation:target {&lt;br /&gt;
    background-color: #DEF;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Ensure refs in table headers and the like aren't bold or italic */&lt;br /&gt;
sup.reference {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow hidden ref errors to be shown by user CSS */&lt;br /&gt;
span.brokenref {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for citations (CSS3). Breaks long urls, etc., rather than overflowing box */&lt;br /&gt;
.citation {&lt;br /&gt;
    word-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For linked citation numbers and document IDs, where&lt;br /&gt;
   the number need not be shown on a screen or a handheld,&lt;br /&gt;
   but should be included in the printed version */&lt;br /&gt;
@media screen, handheld {&lt;br /&gt;
    .citation .printonly {&lt;br /&gt;
        display: none;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Reset top margin for lists embedded in columns */&lt;br /&gt;
div.columns {&lt;br /&gt;
    margin-top: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
div.columns dl,&lt;br /&gt;
div.columns ol,&lt;br /&gt;
div.columns ul {&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Avoid list items from breaking between columns */&lt;br /&gt;
div.columns li,&lt;br /&gt;
div.columns dd dd {&lt;br /&gt;
    -webkit-column-break-inside: avoid;&lt;br /&gt;
    page-break-inside: avoid;&lt;br /&gt;
    break-inside: avoid-column;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for [[Template:Flowlist]] that Lets lists flow around floating objecs */&lt;br /&gt;
.flowlist ul {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
    margin-left: 0;&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
}&lt;br /&gt;
.flowlist ol {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
    margin-left: 0;&lt;br /&gt;
    padding-left: 3.2em;&lt;br /&gt;
}&lt;br /&gt;
.flowlist dl {&lt;br /&gt;
    overflow-x: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for horizontal lists (separator following item).&lt;br /&gt;
   IE8-specific classes are assigned in [[MediaWiki:Common.js/IEFixes.js]].&lt;br /&gt;
   @source mediawiki.org/wiki/Snippets/Horizontal_lists&lt;br /&gt;
   @revision 6 (2014-05-09)&lt;br /&gt;
   @author [[User:Edokter]]&lt;br /&gt;
 */&lt;br /&gt;
.hlist dl,&lt;br /&gt;
.hlist ol,&lt;br /&gt;
.hlist ul {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
/* Display list items inline */&lt;br /&gt;
.hlist dd,&lt;br /&gt;
.hlist dt,&lt;br /&gt;
.hlist li {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
/* Display nested lists inline */&lt;br /&gt;
.hlist.inline,&lt;br /&gt;
.hlist.inline dl,&lt;br /&gt;
.hlist.inline ol,&lt;br /&gt;
.hlist.inline ul,&lt;br /&gt;
.hlist dl dl, .hlist dl ol, .hlist dl ul,&lt;br /&gt;
.hlist ol dl, .hlist ol ol, .hlist ol ul,&lt;br /&gt;
.hlist ul dl, .hlist ul ol, .hlist ul ul {&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
/* Generate interpuncts */&lt;br /&gt;
.hlist dt:after {&lt;br /&gt;
    content: &amp;quot;: &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd:after,&lt;br /&gt;
.hlist li:after {&lt;br /&gt;
    content: &amp;quot; Â· &amp;quot;;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd:last-child:after,&lt;br /&gt;
.hlist dt:last-child:after,&lt;br /&gt;
.hlist li:last-child:after {&lt;br /&gt;
    content: none;&lt;br /&gt;
}&lt;br /&gt;
/* For IE8 */&lt;br /&gt;
.hlist dd.hlist-last-child:after,&lt;br /&gt;
.hlist dt.hlist-last-child:after,&lt;br /&gt;
.hlist li.hlist-last-child:after {&lt;br /&gt;
    content: none;&lt;br /&gt;
}&lt;br /&gt;
/* Add parentheses around nested lists */&lt;br /&gt;
.hlist dd dd:first-child:before, .hlist dd dt:first-child:before, .hlist dd li:first-child:before,&lt;br /&gt;
.hlist dt dd:first-child:before, .hlist dt dt:first-child:before, .hlist dt li:first-child:before,&lt;br /&gt;
.hlist li dd:first-child:before, .hlist li dt:first-child:before, .hlist li li:first-child:before {&lt;br /&gt;
    content: &amp;quot; (&amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd dd:last-child:after, .hlist dd dt:last-child:after, .hlist dd li:last-child:after,&lt;br /&gt;
.hlist dt dd:last-child:after, .hlist dt dt:last-child:after, .hlist dt li:last-child:after,&lt;br /&gt;
.hlist li dd:last-child:after, .hlist li dt:last-child:after, .hlist li li:last-child:after {&lt;br /&gt;
    content: &amp;quot;) &amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
/* For IE8 */&lt;br /&gt;
.hlist dd dd.hlist-last-child:after, .hlist dd dt.hlist-last-child:after, .hlist dd li.hlist-last-child:after,&lt;br /&gt;
.hlist dt dd.hlist-last-child:after, .hlist dt dt.hlist-last-child:after, .hlist dt li.hlist-last-child:after,&lt;br /&gt;
.hlist li dd.hlist-last-child:after, .hlist li dt.hlist-last-child:after, .hlist li li.hlist-last-child:after {&lt;br /&gt;
    content: &amp;quot;) &amp;quot;;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
/* Put ordinals in front of ordered list items */&lt;br /&gt;
.hlist ol {&lt;br /&gt;
    counter-reset: listitem;&lt;br /&gt;
}&lt;br /&gt;
.hlist ol &amp;gt; li {&lt;br /&gt;
    counter-increment: listitem;&lt;br /&gt;
}&lt;br /&gt;
.hlist ol &amp;gt; li:before {&lt;br /&gt;
    content: &amp;quot; &amp;quot; counter(listitem) &amp;quot; &amp;quot;;&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.hlist dd ol &amp;gt; li:first-child:before,&lt;br /&gt;
.hlist dt ol &amp;gt; li:first-child:before,&lt;br /&gt;
.hlist li ol &amp;gt; li:first-child:before {&lt;br /&gt;
    content: &amp;quot; (&amp;quot; counter(listitem) &amp;quot; &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Unbulleted lists */&lt;br /&gt;
.plainlist ul {&lt;br /&gt;
    line-height: inherit;&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
.plainlist ul li {&lt;br /&gt;
    margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Default style for navigation boxes */&lt;br /&gt;
.navbox {                     /* Navbox container style */&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    margin: auto;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
.navbox-inner,&lt;br /&gt;
.navbox-subgroup {&lt;br /&gt;
    width: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox-group,&lt;br /&gt;
.navbox-title,&lt;br /&gt;
.navbox-abovebelow {&lt;br /&gt;
    padding: 0.25em 1em;      /* Title, group and above/below styles */&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
th.navbox-group {             /* Group style */&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: right;&lt;br /&gt;
}&lt;br /&gt;
.navbox,&lt;br /&gt;
.navbox-subgroup {&lt;br /&gt;
    background: #fdfdfd;      /* Background color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-list {&lt;br /&gt;
    line-height: 1.8em;&lt;br /&gt;
    border-color: #fdfdfd;    /* Must match background color */&lt;br /&gt;
}&lt;br /&gt;
.navbox th,&lt;br /&gt;
.navbox-title {&lt;br /&gt;
    background: #ccccff;      /* Level 1 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-abovebelow,&lt;br /&gt;
th.navbox-group,&lt;br /&gt;
.navbox-subgroup .navbox-title {&lt;br /&gt;
    background: #ddddff;      /* Level 2 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-subgroup .navbox-group,&lt;br /&gt;
.navbox-subgroup .navbox-abovebelow {&lt;br /&gt;
    background: #e6e6ff;      /* Level 3 color */&lt;br /&gt;
}&lt;br /&gt;
.navbox-even {&lt;br /&gt;
    background: #f7f7f7;      /* Even row striping */&lt;br /&gt;
}&lt;br /&gt;
.navbox-odd {&lt;br /&gt;
    background: transparent;  /* Odd row striping */&lt;br /&gt;
}&lt;br /&gt;
table.navbox + table.navbox {  /* Single pixel border between adjacent navboxes */&lt;br /&gt;
    margin-top: -1px;          /* (doesn't work for IE6, but that's okay)       */&lt;br /&gt;
}&lt;br /&gt;
.navbox .hlist td dl,&lt;br /&gt;
.navbox .hlist td ol,&lt;br /&gt;
.navbox .hlist td ul,&lt;br /&gt;
.navbox td.hlist dl,&lt;br /&gt;
.navbox td.hlist ol,&lt;br /&gt;
.navbox td.hlist ul {&lt;br /&gt;
    padding: 0.125em 0;       /* Adjust hlist padding in navboxes */&lt;br /&gt;
}&lt;br /&gt;
ol + table.navbox,&lt;br /&gt;
ul + table.navbox {&lt;br /&gt;
    margin-top: 0.5em;        /* Prevent lists from clinging to navboxes */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Default styling for Navbar template */&lt;br /&gt;
.navbar {&lt;br /&gt;
    display: inline;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
.navbar ul {&lt;br /&gt;
    display: inline;&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
.navbar li {&lt;br /&gt;
    word-spacing: -0.125em;&lt;br /&gt;
}&lt;br /&gt;
.navbar.mini li span {&lt;br /&gt;
  font-variant: small-caps;&lt;br /&gt;
}&lt;br /&gt;
/* Navbar styling when nested in infobox and navbox */&lt;br /&gt;
.infobox .navbar {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox .navbar {&lt;br /&gt;
    display: block;&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
.navbox-title .navbar {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-right: 0.5em;&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 'show'/'hide' buttons created dynamically by the CollapsibleTables javascript&lt;br /&gt;
   in [[MediaWiki:Common.js]] are styled here so they can be customised. */&lt;br /&gt;
.collapseButton {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-left: 0.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: right;&lt;br /&gt;
    width: auto;&lt;br /&gt;
}&lt;br /&gt;
/* In navboxes, the show/hide button balances the vÂ·dÂ·e links&lt;br /&gt;
   from [[Template:Navbar]], so they need to be the same width. */&lt;br /&gt;
.navbox .collapseButton {&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for JQuery makeCollapsible, matching that of collapseButton */&lt;br /&gt;
.mw-collapsible-toggle {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: right;&lt;br /&gt;
}&lt;br /&gt;
.navbox .mw-collapsible-toggle {&lt;br /&gt;
    width: 6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Infobox template style */&lt;br /&gt;
.infobox {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    color: black;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
    padding: 0.2em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
.infobox caption {&lt;br /&gt;
    font-size: 125%;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.infobox td,&lt;br /&gt;
.infobox th {&lt;br /&gt;
    vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered {&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered td,&lt;br /&gt;
.infobox.bordered th {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
.infobox.bordered .borderless td,&lt;br /&gt;
.infobox.bordered .borderless th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.sisterproject {&lt;br /&gt;
    width: 20em;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.standard-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
}&lt;br /&gt;
.infobox.standard-talk.bordered td,&lt;br /&gt;
.infobox.standard-talk.bordered th {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* styles for bordered infobox with merged rows */&lt;br /&gt;
.infobox.bordered .mergedtoprow td,&lt;br /&gt;
.infobox.bordered .mergedtoprow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-right: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.bordered .mergedrow td,&lt;br /&gt;
.infobox.bordered .mergedrow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-right: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styles for geography infoboxes, eg countries,&lt;br /&gt;
   country subdivisions, cities, etc.            */&lt;br /&gt;
.infobox.geography {&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    line-height: 1.2em;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography  td,&lt;br /&gt;
.infobox.geography  th {&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    padding: 0.4em 0.6em 0.4em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
.infobox.geography .mergedtoprow td,&lt;br /&gt;
.infobox.geography .mergedtoprow th {&lt;br /&gt;
    border-top: 1px solid #aaa;&lt;br /&gt;
    padding: 0.4em 0.6em 0.2em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .mergedrow td,&lt;br /&gt;
.infobox.geography .mergedrow th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    padding: 0 0.6em 0.2em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .mergedbottomrow td,&lt;br /&gt;
.infobox.geography .mergedbottomrow th {&lt;br /&gt;
    border-top: 0;&lt;br /&gt;
    border-bottom: 1px solid #aaa;&lt;br /&gt;
    padding: 0 0.6em 0.4em 0.6em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infobox.geography .maptable td,&lt;br /&gt;
.infobox.geography .maptable th {&lt;br /&gt;
    border: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Normal font styling for table row headers with scope=&amp;quot;row&amp;quot; tag */&lt;br /&gt;
.wikitable.plainrowheaders th[scope=row] {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Lists in data cells are always left-aligned */&lt;br /&gt;
.wikitable td ul,&lt;br /&gt;
.wikitable td ol,&lt;br /&gt;
.wikitable td dl {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
}&lt;br /&gt;
/* ...unless they also use the hlist class */&lt;br /&gt;
.wikitable.hlist td ul,&lt;br /&gt;
.wikitable.hlist td ol,&lt;br /&gt;
.wikitable.hlist td dl {&lt;br /&gt;
    text-align: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Icons for medialist templates [[Template:Listen]],&lt;br /&gt;
   [[Template:Multi-listen_start]], [[Template:Video]],&lt;br /&gt;
   [[Template:Multi-video_start]] */&lt;br /&gt;
div.listenlist {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/4/47/Sound-icon.svg&amp;quot;) no-repeat scroll 0 0 transparent;&lt;br /&gt;
    background-size: 30px;&lt;br /&gt;
    padding-left: 40px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Fix for hieroglyphs specificality issue in infoboxes ([[Bugzilla:41869]]) */&lt;br /&gt;
table.mw-hiero-table td {&lt;br /&gt;
    vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style rules for media list templates */&lt;br /&gt;
div.medialist {&lt;br /&gt;
    min-height: 50px;&lt;br /&gt;
    margin: 1em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    background-position: top left;&lt;br /&gt;
    background-repeat: no-repeat;&lt;br /&gt;
}&lt;br /&gt;
div.medialist ul {&lt;br /&gt;
    list-style-type: none;&lt;br /&gt;
    list-style-image: none;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
div.medialist ul li {&lt;br /&gt;
    padding-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
div.medialist ul li li {&lt;br /&gt;
    font-size: 91%;&lt;br /&gt;
    padding-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Change the external link icon to an Adobe icon for all PDF files&lt;br /&gt;
   in browsers that support these CSS selectors, like Mozilla and Opera */&lt;br /&gt;
div#content a[href$=&amp;quot;.pdf&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.pdf?&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.pdf#&amp;quot;].external,&lt;br /&gt;
div#content a[href$=&amp;quot;.PDF&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.PDF?&amp;quot;].external,&lt;br /&gt;
div#content a[href*=&amp;quot;.PDF#&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href$=&amp;quot;.pdf&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.pdf?&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.pdf#&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href$=&amp;quot;.PDF&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.PDF?&amp;quot;].external,&lt;br /&gt;
div#mw_content a[href*=&amp;quot;.PDF#&amp;quot;].external {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif&amp;quot;) no-repeat right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-right: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Change the external link icon to an Adobe icon anywhere the PDFlink class&lt;br /&gt;
   is used (notably Template:PDFlink). This works in IE, unlike the above. */&lt;br /&gt;
div#content span.PDFlink a,&lt;br /&gt;
div#mw_content span.PDFlink a {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif&amp;quot;) no-repeat right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-right: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Content in columns with CSS instead of tables ([[Template:Columns]]) */&lt;br /&gt;
div.columns-2 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 50%;&lt;br /&gt;
    min-width: 300px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-3 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 33.3%;&lt;br /&gt;
    min-width: 200px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-4 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 25%;&lt;br /&gt;
    min-width: 150px;&lt;br /&gt;
}&lt;br /&gt;
div.columns-5 div.column {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 20%;&lt;br /&gt;
    min-width: 120px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Messagebox templates */&lt;br /&gt;
.messagebox {&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background-color: #f9f9f9;&lt;br /&gt;
    width: 80%;&lt;br /&gt;
    margin: 0 auto 1em auto;&lt;br /&gt;
    padding: .2em;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.merge {&lt;br /&gt;
    border: 1px solid #c0b8cc;&lt;br /&gt;
    background-color: #f0e5ff;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.cleanup {&lt;br /&gt;
    border: 1px solid #9f9fff;&lt;br /&gt;
    background-color: #efefff;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.standard-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
    margin: 4px auto;&lt;br /&gt;
}&lt;br /&gt;
/* For old WikiProject banners inside banner shells. */&lt;br /&gt;
.mbox-inside .standard-talk,&lt;br /&gt;
.messagebox.nested-talk {&lt;br /&gt;
    border: 1px solid #c0c090;&lt;br /&gt;
    background-color: #f8eaba;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    margin: 2px 0;&lt;br /&gt;
    padding: 2px;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.small {&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 85%;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 1em 1em;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
.messagebox.small-talk {&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 85%;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: both;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0 0 1em 1em;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
    background: #F8EABA;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */&lt;br /&gt;
th.mbox-text, td.mbox-text {   /* The message body cell(s) */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 0.25em 0.9em;     /* 0.9em left/right */&lt;br /&gt;
    width: 100%;               /* Make all mboxes the same width regardless of text length */&lt;br /&gt;
}&lt;br /&gt;
td.mbox-image {                /* The left image cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0 2px 0.9em;  /* 0.9em left, 0px right */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
td.mbox-imageright {           /* The right image cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0.9em 2px 0;  /* 0px left, 0.9em right */&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}&lt;br /&gt;
td.mbox-empty-cell {           /* An empty narrow cell */&lt;br /&gt;
    border: none;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    width: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Article message box styles */&lt;br /&gt;
table.ambox {&lt;br /&gt;
    margin: 0 10%;                  /* 10% = Will not overlap with other elements */&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #1e90ff;  /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
    background: #fbfbfb;&lt;br /&gt;
}&lt;br /&gt;
table.ambox + table.ambox {      /* Single border between stacked boxes. */&lt;br /&gt;
    margin-top: -1px;&lt;br /&gt;
}&lt;br /&gt;
.ambox th.mbox-text,&lt;br /&gt;
.ambox td.mbox-text {            /* The message body cell(s) */&lt;br /&gt;
    padding: 0.25em 0.5em;       /* 0.5em left/right */&lt;br /&gt;
}&lt;br /&gt;
.ambox td.mbox-image {           /* The left image cell */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0 2px 0.5em;    /* 0.5em left, 0px right */&lt;br /&gt;
}&lt;br /&gt;
.ambox td.mbox-imageright {      /* The right image cell */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding: 2px 0.5em 2px 0;    /* 0px left, 0.5em right */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ambox-notice {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #1e90ff;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-speedy {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;                   /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-delete {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-content {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-style {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-move {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.ambox-protection {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    border-left: 10px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Image message box styles */&lt;br /&gt;
table.imbox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 3px solid #1e90ff;    /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
    background: #fbfbfb;&lt;br /&gt;
}&lt;br /&gt;
.imbox .mbox-text .imbox {  /* For imboxes inside imbox-text cells. */&lt;br /&gt;
    margin: 0 -0.5em;       /* 0.9 - 0.5 = 0.4em left/right.        */&lt;br /&gt;
    display: block;         /* Fix for webkit to force 100% width.  */&lt;br /&gt;
}&lt;br /&gt;
.mbox-inside .imbox {       /* For imboxes inside other templates.  */&lt;br /&gt;
    margin: 4px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.imbox-notice {&lt;br /&gt;
    border: 3px solid #1e90ff;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-speedy {&lt;br /&gt;
    border: 3px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-delete {&lt;br /&gt;
    border: 3px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-content {&lt;br /&gt;
    border: 3px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-style {&lt;br /&gt;
    border: 3px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-move {&lt;br /&gt;
    border: 3px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-protection {&lt;br /&gt;
    border: 3px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-license {&lt;br /&gt;
    border: 3px solid #88a;       /* Dark gray */&lt;br /&gt;
    background: #f7f8ff;          /* Light gray */&lt;br /&gt;
}&lt;br /&gt;
table.imbox-featured {&lt;br /&gt;
    border: 3px solid #cba135;    /* Brown-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Category message box styles */&lt;br /&gt;
table.cmbox {&lt;br /&gt;
    margin: 3px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #DFE8FF;    /* Default &amp;quot;notice&amp;quot; blue */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.cmbox-notice {&lt;br /&gt;
    background: #D8E8FF;    /* Blue */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-speedy {&lt;br /&gt;
    margin-top: 4px;&lt;br /&gt;
    margin-bottom: 4px;&lt;br /&gt;
    border: 4px solid #b22222;    /* Red */&lt;br /&gt;
    background: #FFDBDB;          /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-delete {&lt;br /&gt;
    background: #FFDBDB;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-content {&lt;br /&gt;
    background: #FFE7CE;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-style {&lt;br /&gt;
    background: #FFF9DB;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-move {&lt;br /&gt;
    background: #E4D8FF;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.cmbox-protection {&lt;br /&gt;
    background: #EFEFE1;    /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Other pages message box styles */&lt;br /&gt;
table.ombox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #aaa;       /* Default &amp;quot;notice&amp;quot; gray */&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ombox-notice {&lt;br /&gt;
    border: 1px solid #aaa;       /* Gray */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-speedy {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-delete {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-content {&lt;br /&gt;
    border: 1px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-style {&lt;br /&gt;
    border: 1px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-move {&lt;br /&gt;
    border: 1px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.ombox-protection {&lt;br /&gt;
    border: 2px solid #bba;       /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Talk page message box styles */&lt;br /&gt;
table.tmbox {&lt;br /&gt;
    margin: 4px 10%;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    border: 1px solid #c0c090;    /* Default &amp;quot;notice&amp;quot; gray-brown */&lt;br /&gt;
    background: #f8eaba;&lt;br /&gt;
}&lt;br /&gt;
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The &amp;quot;mediawiki&amp;quot; class ensures that */&lt;br /&gt;
    margin: 2px 0;               /* this declaration overrides other styles (including mbox-small above)   */&lt;br /&gt;
    width: 100%;                 /* For Safari and Opera */&lt;br /&gt;
}&lt;br /&gt;
.mbox-inside .tmbox.mbox-small { /* &amp;quot;small&amp;quot; tmboxes should not be small when  */&lt;br /&gt;
    line-height: 1.5em;          /* also &amp;quot;nested&amp;quot;, so reset styles that are   */&lt;br /&gt;
    font-size: 100%;             /* set in &amp;quot;mbox-small&amp;quot; above.                */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.tmbox-speedy {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
    background: #fee;             /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-delete {&lt;br /&gt;
    border: 2px solid #b22222;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-content {&lt;br /&gt;
    border: 2px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-style {&lt;br /&gt;
    border: 2px solid #f4c430;    /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-move {&lt;br /&gt;
    border: 2px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
table.tmbox-protection,&lt;br /&gt;
table.tmbox-notice {&lt;br /&gt;
    border: 1px solid #c0c090;    /* Gray-brown */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Disambig and set index box styles */&lt;br /&gt;
table.dmbox {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.9em 1em;&lt;br /&gt;
    border-top: 1px solid #ccc;&lt;br /&gt;
    border-bottom: 1px solid #ccc;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Footer and header message box styles */&lt;br /&gt;
table.fmbox {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #f9f9f9;     /* Default &amp;quot;system&amp;quot; gray */&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-system {&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-warning {&lt;br /&gt;
    border: 1px solid #bb7070;  /* Dark pink */&lt;br /&gt;
    background: #ffdbdb;        /* Pink */&lt;br /&gt;
}&lt;br /&gt;
table.fmbox-editnotice {&lt;br /&gt;
    background: transparent;&lt;br /&gt;
}&lt;br /&gt;
/* Div based &amp;quot;warning&amp;quot; style fmbox messages. */&lt;br /&gt;
div.mw-warning-with-logexcerpt,&lt;br /&gt;
div.mw-lag-warn-high,&lt;br /&gt;
div.mw-cascadeprotectedwarning,&lt;br /&gt;
div#mw-protect-cascadeon {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    border: 1px solid #bb7070;&lt;br /&gt;
    background: #ffdbdb;&lt;br /&gt;
    padding: 0.25em 0.9em;&lt;br /&gt;
}&lt;br /&gt;
/* Div based &amp;quot;system&amp;quot; style fmbox messages.&lt;br /&gt;
   Used in [[MediaWiki:Readonly lag]]. */&lt;br /&gt;
div.mw-lag-warn-normal,&lt;br /&gt;
div.fmbox-system {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 0.2em 0;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background: #f9f9f9;&lt;br /&gt;
    padding: 0.25em 0.9em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* These mbox-small classes must be placed after all other&lt;br /&gt;
   ambox/tmbox/ombox etc classes. &amp;quot;body.mediawiki&amp;quot; is so&lt;br /&gt;
   they override &amp;quot;table.ambox + table.ambox&amp;quot; above. */&lt;br /&gt;
body.mediawiki table.mbox-small {   /* For the &amp;quot;small=yes&amp;quot; option. */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 4px 0 4px 1em;&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
body.mediawiki table.mbox-small-left {   /* For the &amp;quot;small=left&amp;quot; option. */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 4px 1em 4px 0;&lt;br /&gt;
    width: 238px;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    font-size: 88%;&lt;br /&gt;
    line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Style for compact ambox */&lt;br /&gt;
/* Hide the images */&lt;br /&gt;
.compact-ambox table .mbox-image,&lt;br /&gt;
.compact-ambox table .mbox-imageright,&lt;br /&gt;
.compact-ambox table .mbox-empty-cell {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
/* Remove borders, backgrounds, padding, etc. */&lt;br /&gt;
.compact-ambox table.ambox {&lt;br /&gt;
    border: none;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
    margin: 0 0 0 1.6em !important;&lt;br /&gt;
    padding: 0 !important;&lt;br /&gt;
    width: auto;&lt;br /&gt;
    display: block;&lt;br /&gt;
}&lt;br /&gt;
body.mediawiki .compact-ambox table.mbox-small-left {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
    width: auto;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
/* Style the text cell as a list item and remove its padding */&lt;br /&gt;
.compact-ambox table .mbox-text {&lt;br /&gt;
    padding: 0 !important;&lt;br /&gt;
    margin: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
.compact-ambox table .mbox-text-span {&lt;br /&gt;
    display: list-item;&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    list-style-type: square;&lt;br /&gt;
    list-style-image: url(//bits.wikimedia.org/skins/common/images/bullet.gif);&lt;br /&gt;
}&lt;br /&gt;
.skin-vector .compact-ambox table .mbox-text-span {&lt;br /&gt;
    list-style-type: circle;&lt;br /&gt;
    list-style-image: url(//bits.wikimedia.org/skins/vector/images/bullet-icon.png)&lt;br /&gt;
}&lt;br /&gt;
/* Allow for hiding text in compact form */&lt;br /&gt;
.compact-ambox .hide-when-compact {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Remove default styles for [[MediaWiki:Noarticletext]]. */&lt;br /&gt;
div.noarticletext {&lt;br /&gt;
    border: none;&lt;br /&gt;
    background: transparent;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide (formatting) elements from screen, but not from screenreaders */&lt;br /&gt;
.visualhide {&lt;br /&gt;
    position: absolute;&lt;br /&gt;
    left: -10000px;&lt;br /&gt;
    top: auto;&lt;br /&gt;
    width: 1px;&lt;br /&gt;
    height: 1px;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Bold save button */&lt;br /&gt;
#wpSave {&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* class hiddenStructure is defunct. See [[Wikipedia:hiddenStructure]] */&lt;br /&gt;
.hiddenStructure {&lt;br /&gt;
    display: inline !important;&lt;br /&gt;
    color: #f00;&lt;br /&gt;
    background-color: #0f0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* suppress missing interwiki image links where #ifexist cannot&lt;br /&gt;
   be used due to high number of requests see .hidden-redlink on&lt;br /&gt;
   [[m:MediaWiki:Common.css]] */&lt;br /&gt;
.check-icon a.new {&lt;br /&gt;
    display: none;&lt;br /&gt;
    speak: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Removes underlines from certain links */&lt;br /&gt;
.nounderlines a,&lt;br /&gt;
.IPA a:link, .IPA a:visited {&lt;br /&gt;
    text-decoration: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Standard Navigationsleisten, aka box hiding thingy&lt;br /&gt;
   from .de.  Documentation at [[Wikipedia:NavFrame]]. */&lt;br /&gt;
div.NavFrame {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 4px;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
    border-collapse: collapse;&lt;br /&gt;
    font-size: 95%;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame + div.NavFrame {&lt;br /&gt;
    border-top-style: none;&lt;br /&gt;
    border-top-style: hidden;&lt;br /&gt;
}&lt;br /&gt;
div.NavPic {&lt;br /&gt;
    background-color: #fff;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 2px;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: left;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame div.NavHead {&lt;br /&gt;
    height: 1.6em;&lt;br /&gt;
    font-weight: bold;&lt;br /&gt;
    background-color: #ccf;&lt;br /&gt;
    position: relative;&lt;br /&gt;
}&lt;br /&gt;
div.NavFrame p,&lt;br /&gt;
div.NavFrame div.NavContent,&lt;br /&gt;
div.NavFrame div.NavContent p {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
div.NavEnd {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    line-height: 1px;&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
a.NavToggle {&lt;br /&gt;
    position: absolute;&lt;br /&gt;
    top: 0;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    right: 3px;&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
    font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hatnotes and disambiguation notices */&lt;br /&gt;
.rellink,&lt;br /&gt;
.dablink,&lt;br /&gt;
.hatnote {&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
.rellink i,&lt;br /&gt;
.dablink i,&lt;br /&gt;
.hatnote i {&lt;br /&gt;
    font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
div.rellink,&lt;br /&gt;
div.dablink,&lt;br /&gt;
div.hatnote {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow transcluded pages to display in lists rather than a table.&lt;br /&gt;
   Compatible in Firefox; incompatible in IE6. */&lt;br /&gt;
.listify td    { display: list-item; }&lt;br /&gt;
.listify tr    { display: block; }&lt;br /&gt;
.listify table { display: block; }&lt;br /&gt;
&lt;br /&gt;
/* Geographical coordinates defaults. See [[Template:Coord/link]]&lt;br /&gt;
   for how these are used. The classes &amp;quot;geo&amp;quot;, &amp;quot;longitude&amp;quot;, and&lt;br /&gt;
   &amp;quot;latitude&amp;quot; are used by the [[Geo microformat]]. */&lt;br /&gt;
.geo-default, .geo-dms, .geo-dec  { display: inline; }&lt;br /&gt;
.geo-nondefault, .geo-multi-punct { display: none; }&lt;br /&gt;
.longitude, .latitude             { white-space: nowrap; }&lt;br /&gt;
&lt;br /&gt;
/* When &amp;lt;div class=&amp;quot;nonumtoc&amp;quot;&amp;gt; is used on the table of contents,&lt;br /&gt;
   the ToC will display without numbers */&lt;br /&gt;
.nonumtoc .tocnumber {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
.nonumtoc #toc ul,&lt;br /&gt;
.nonumtoc .toc ul {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
    margin: .3em 0 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
}&lt;br /&gt;
.hlist.nonumtoc #toc ul ul,&lt;br /&gt;
.hlist.nonumtoc .toc ul ul {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Allow limiting of which header levels are shown in a TOC;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;toclimit-3&amp;quot;&amp;gt;, for instance, will limit to&lt;br /&gt;
   showing ==headings== and ===headings=== but no further&lt;br /&gt;
   (as long as there are no =headings= on the page, which&lt;br /&gt;
   there shouldn't be according to the MoS). */&lt;br /&gt;
.toclimit-2 .toclevel-1 ul,&lt;br /&gt;
.toclimit-3 .toclevel-2 ul,&lt;br /&gt;
.toclimit-4 .toclevel-3 ul,&lt;br /&gt;
.toclimit-5 .toclevel-4 ul,&lt;br /&gt;
.toclimit-6 .toclevel-5 ul,&lt;br /&gt;
.toclimit-7 .toclevel-6 ul {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for Template:Quote */&lt;br /&gt;
blockquote.templatequote {&lt;br /&gt;
     margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
blockquote.templatequote div.templatequotecite {&lt;br /&gt;
    line-height: 1.5em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    text-align: left;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 1.6em;&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* User block messages */&lt;br /&gt;
div.user-block {&lt;br /&gt;
    padding: 5px;&lt;br /&gt;
    margin-bottom: 0.5em;&lt;br /&gt;
    border: 1px solid #A9A9A9;&lt;br /&gt;
    background-color: #FFEFD5;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Prevent line breaks in silly places:&lt;br /&gt;
   1) Where desired&lt;br /&gt;
   2) Links when we don't want them to&lt;br /&gt;
   3) Bold &amp;quot;links&amp;quot; to the page itself&lt;br /&gt;
   4) Ref tags with group names &amp;lt;ref group=&amp;quot;Note&amp;quot;&amp;gt; --&amp;gt; &amp;quot;[Note 1]&amp;quot; */&lt;br /&gt;
.nowrap,&lt;br /&gt;
.nowraplinks a,&lt;br /&gt;
.nowraplinks .selflink,&lt;br /&gt;
sup.reference a {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
/* But allow wrapping where desired: */&lt;br /&gt;
.wrap,&lt;br /&gt;
.wraplinks a {&lt;br /&gt;
    white-space: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For template documentation */&lt;br /&gt;
.template-documentation {&lt;br /&gt;
    clear: both;&lt;br /&gt;
    margin: 1em 0 0 0;&lt;br /&gt;
    border: 1px solid #aaa;&lt;br /&gt;
    background-color: #ecfcf4;&lt;br /&gt;
    padding: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Inline divs in ImageMaps (code borrowed from de.wiki) */&lt;br /&gt;
.imagemap-inline div {&lt;br /&gt;
    display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Increase the height of the image upload box */&lt;br /&gt;
#wpUploadDescription {&lt;br /&gt;
    height: 13em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Minimum thumb width */&lt;br /&gt;
.thumbinner {&lt;br /&gt;
    min-width: 100px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Makes the background of a framed image white instead of gray.&lt;br /&gt;
   Only visible with transparent images. */&lt;br /&gt;
div.thumb .thumbimage {&lt;br /&gt;
    background-color: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The backgrounds for galleries. */&lt;br /&gt;
div#content .gallerybox div.thumb {&lt;br /&gt;
    /* Light gray padding */&lt;br /&gt;
    background-color: #F9F9F9;&lt;br /&gt;
}&lt;br /&gt;
/* Put a chequered background behind images, only visible if they have transparency.&lt;br /&gt;
   '.filehistory a img' and '#file img:hover' are handled by MediaWiki core (as of 1.19) */&lt;br /&gt;
.gallerybox .thumb img {&lt;br /&gt;
    background: #fff url(//bits.wikimedia.org/skins/common/images/Checker-16x16.png) repeat;&lt;br /&gt;
}&lt;br /&gt;
/* But not on articles, user pages, portals or with opt-out. */&lt;br /&gt;
.ns-0 .gallerybox .thumb img,&lt;br /&gt;
.ns-2 .gallerybox .thumb img,&lt;br /&gt;
.ns-100 .gallerybox .thumb img,&lt;br /&gt;
.nochecker .gallerybox .thumb img {&lt;br /&gt;
    background: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Prevent floating boxes from overlapping any category listings,&lt;br /&gt;
   file histories, edit previews, and edit [Show changes] views. */&lt;br /&gt;
#mw-subcategories, #mw-pages, #mw-category-media,&lt;br /&gt;
#filehistory, #wikiPreview, #wikiDiff {&lt;br /&gt;
    clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.rtl #mw-articlefeedbackv5, body.rtl #mw-articlefeedback {&lt;br /&gt;
    display: block;   /* Override inline block mode */&lt;br /&gt;
    margin-bottom: 1em;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    clear: right;     /* Clear any info boxes that stick out */&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    float: right;     /* Prevents margin collapsing */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Selectively hide headers in WikiProject banners */&lt;br /&gt;
.wpb .wpb-header             { display: none; }&lt;br /&gt;
.wpbs-inner .wpb .wpb-header { display: block; }     /* for IE */&lt;br /&gt;
.wpbs-inner .wpb .wpb-header { display: table-row; } /* for real browsers */&lt;br /&gt;
.wpbs-inner .wpb-outside     { display: none; }      /* hide things that should only display outside shells */&lt;br /&gt;
&lt;br /&gt;
/* Styling for Abuse Filter tags */&lt;br /&gt;
.mw-tag-markers {&lt;br /&gt;
    font-family:sans-serif;&lt;br /&gt;
    font-style:italic;&lt;br /&gt;
    font-size:90%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide stuff meant for accounts with special permissions. Made visible again in&lt;br /&gt;
   [[MediaWiki:Group-sysop.css]], [[MediaWiki:Group-accountcreator.css]],&lt;br /&gt;
   [[MediaWiki:Group-templateeditor.css]] and [[Mediawiki:Group-autoconfirmed.css]]. */&lt;br /&gt;
.sysop-show,&lt;br /&gt;
.accountcreator-show,&lt;br /&gt;
.templateeditor-show,&lt;br /&gt;
.autoconfirmed-show {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Hide the redlink generated by {{Editnotice}},&lt;br /&gt;
 * this overrides the &amp;quot;.sysop-show { display: none; }&amp;quot; above that applies&lt;br /&gt;
 * to the same link as well.&lt;br /&gt;
 *&lt;br /&gt;
 * See [[bugzilla:43013]].&lt;br /&gt;
 */&lt;br /&gt;
.ve-ui-mwNoticesPopupTool-item .editnotice-redlink {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Remove bullets when there are multiple edit page warnings */&lt;br /&gt;
ul.permissions-errors &amp;gt; li {&lt;br /&gt;
    list-style: none none;&lt;br /&gt;
}&lt;br /&gt;
ul.permissions-errors {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* No linewrap on the labels of the login/signup page */&lt;br /&gt;
body.page-Special_UserLogin .mw-label label,&lt;br /&gt;
body.page-Special_UserLogin_signup .mw-label label {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Pie chart test: Transparent borders */&lt;br /&gt;
.transborder {&lt;br /&gt;
    border: solid transparent;&lt;br /&gt;
}&lt;br /&gt;
* html .transborder {  /* IE6 */&lt;br /&gt;
    border: solid #000001;&lt;br /&gt;
    filter: chroma(color=#000001);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Styling for updated markers on watchlist, history and recent/related changes.&lt;br /&gt;
   Bullets are handled in skin-specific stylesheets. */&lt;br /&gt;
.updatedmarker {&lt;br /&gt;
    background-color: transparent;&lt;br /&gt;
    color: #006400;&lt;br /&gt;
}&lt;br /&gt;
li.mw-changeslist-line-watched .mw-title,&lt;br /&gt;
table.mw-changeslist-line-watched .mw-title,&lt;br /&gt;
table.mw-enhanced-watch .mw-enhanced-rctime {&lt;br /&gt;
    font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Generic class for Times-based serif, texhtml class for inline math */&lt;br /&gt;
.times-serif,&lt;br /&gt;
span.texhtml {&lt;br /&gt;
    font-family: &amp;quot;Nimbus Roman No9 L&amp;quot;, &amp;quot;Times New Roman&amp;quot;, Times, serif;&lt;br /&gt;
    font-size: 118%;&lt;br /&gt;
}&lt;br /&gt;
span.texhtml {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
span.texhtml span.texhtml {&lt;br /&gt;
    font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Disable kerning, and enable tabular and lining display for digits.&lt;br /&gt;
   This causes most common fonts to display digits as if they were monospace. */&lt;br /&gt;
.digits,&lt;br /&gt;
.texhtml {&lt;br /&gt;
    -moz-font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;;&lt;br /&gt;
    -webkit-font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;;&lt;br /&gt;
    font-feature-settings: &amp;quot;lnum&amp;quot;, &amp;quot;tnum&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Fix so &amp;lt;syntaxhighlight&amp;gt; tags and .css and .js pages get normal text size.&lt;br /&gt;
   [[Bugzilla:26204]]. See also [[Wikipedia:Typography#The monospace 'bug']] */&lt;br /&gt;
div.mw-geshi div,&lt;br /&gt;
div.mw-geshi div pre,&lt;br /&gt;
span.mw-geshi,&lt;br /&gt;
pre.source-css,&lt;br /&gt;
pre.source-javascript,&lt;br /&gt;
pre.source-lua {&lt;br /&gt;
    font-family: monospace, Courier !important;&lt;br /&gt;
    -moz-tab-size: 4;&lt;br /&gt;
    -o-tab-size: 4;&lt;br /&gt;
    tab-size: 4;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Fix styling of transcluded prefindex tables */&lt;br /&gt;
table#mw-prefixindex-list-table,&lt;br /&gt;
table#mw-prefixindex-nav-table {&lt;br /&gt;
    width: 98%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For portals, added 2011-12-07 -bv&lt;br /&gt;
   On wide screens, show these as two columns&lt;br /&gt;
   On narrow and mobile screens, let them collapse into a single column */&lt;br /&gt;
.portal-column-left {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 50%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 49%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-left-wide {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 60%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right-narrow {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 39%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-left-extra-wide {&lt;br /&gt;
    float: left;&lt;br /&gt;
    width: 70%;&lt;br /&gt;
}&lt;br /&gt;
.portal-column-right-extra-narrow {&lt;br /&gt;
    float: right;&lt;br /&gt;
    width: 29%;&lt;br /&gt;
}&lt;br /&gt;
@media only screen and (max-width: 800px) {&lt;br /&gt;
    /* Decouple the columns on narrow screens */&lt;br /&gt;
    .portal-column-left,&lt;br /&gt;
    .portal-column-right,&lt;br /&gt;
    .portal-column-left-wide,&lt;br /&gt;
    .portal-column-right-narrow,&lt;br /&gt;
    .portal-column-left-extra-wide,&lt;br /&gt;
    .portal-column-right-extra-narrow {&lt;br /&gt;
        float: inherit;&lt;br /&gt;
        width: inherit;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For announcements */&lt;br /&gt;
#bodyContent .letterhead {&lt;br /&gt;
    background-image:url('//upload.wikimedia.org/wikipedia/commons/e/e0/Tan-page-corner.png');&lt;br /&gt;
    background-repeat:no-repeat;&lt;br /&gt;
    padding: 2em;&lt;br /&gt;
    background-color: #faf9f2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Tree style lists */&lt;br /&gt;
.treeview ul {&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
}&lt;br /&gt;
.treeview li {&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    list-style-type: none;&lt;br /&gt;
    list-style-image: none;&lt;br /&gt;
    zoom: 1; /* BE KIND TO IE6 */;&lt;br /&gt;
}&lt;br /&gt;
.treeview li li {&lt;br /&gt;
    background: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/f/f2/Treeview-grey-line.png&amp;quot;) no-repeat 0 -2981px;&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    padding-left: 20px;&lt;br /&gt;
    text-indent: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
.treeview li li.lastline {&lt;br /&gt;
    background-position: 0 -5971px&lt;br /&gt;
}&lt;br /&gt;
.treeview li.emptyline &amp;gt; ul {&lt;br /&gt;
    /* @noflip */&lt;br /&gt;
    margin-left: -1px;&lt;br /&gt;
}&lt;br /&gt;
.treeview li.emptyline &amp;gt; ul &amp;gt; li:first-child {&lt;br /&gt;
    background-position: 0 9px&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* hidden sortkey for tablesorter */&lt;br /&gt;
td .sortkey,&lt;br /&gt;
th .sortkey {&lt;br /&gt;
    display: none;&lt;br /&gt;
    speak: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Make it possible to hide checkboxes in &amp;lt;inputbox&amp;gt; */&lt;br /&gt;
.inputbox-hidecheckboxes form .inputbox-element {&lt;br /&gt;
    display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide charinsert base for those not using the gadget */&lt;br /&gt;
#editpage-specialchars {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* work-around for [[bugzilla:23965]] (Kaltura advertisement) */&lt;br /&gt;
.k-player .k-attribution {&lt;br /&gt;
    visibility: hidden;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* [[MediaZilla:35337]] */&lt;br /&gt;
@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 1.5dppx) {&lt;br /&gt;
        #p-logo a {&lt;br /&gt;
                background-image: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Wikipedia-logo-v2-en.svg/204px-Wikipedia-logo-v2-en.svg.png&amp;quot;) !important;&lt;br /&gt;
                background-size: 136px auto;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {&lt;br /&gt;
        #p-logo a {&lt;br /&gt;
                background-image: url(&amp;quot;//upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Wikipedia-logo-v2-en.svg/270px-Wikipedia-logo-v2-en.svg.png&amp;quot;) !important;&lt;br /&gt;
                background-size: 135px auto;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=MediaWiki:Monobook.css&amp;diff=9954</id>
		<title>MediaWiki:Monobook.css</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=MediaWiki:Monobook.css&amp;diff=9954"/>
		<updated>2016-02-25T11:24:54Z</updated>

		<summary type="html">&lt;p&gt;Matt: Created page with &amp;quot;body {    background-image: -webkit-gradient(linear,left top, right bottom, color-stop(0,#4e3b2e), color-stop(0.75,#c1b0af));    background-image: -webkit-linear-gradient(left...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;body {&lt;br /&gt;
   background-image: -webkit-gradient(linear,left top, right bottom, color-stop(0,#4e3b2e), color-stop(0.75,#c1b0af));&lt;br /&gt;
   background-image: -webkit-linear-gradient(left top, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
   background-image: -moz-linear-gradient(left top, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
   background-image: -ms-linear-gradient(left top, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
   background-image: -o-linear-gradient(left top, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
   background-image: linear-gradient(to bottom right, #4e3b2e 0%, #c1b0af 75%);&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=New_Member_Script&amp;diff=9861</id>
		<title>New Member Script</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=New_Member_Script&amp;diff=9861"/>
		<updated>2015-12-31T04:13:47Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Get them a (temporary) keycard? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questions we can ask prospective members at meetings!&lt;br /&gt;
&lt;br /&gt;
== Primary Questions: ==&lt;br /&gt;
=== PROMPT: There are no wrong answers ===&lt;br /&gt;
=== Would you like to ''very briefly'' introduce yourself? ===&lt;br /&gt;
=== What brings you to sudo room? ===&lt;br /&gt;
=== What do you want to hack or learn at sudo room (if you know)? ===&lt;br /&gt;
=== What do you want to share or teach at sudo room (if you know)? ===&lt;br /&gt;
=== What's your plan to abolish sexual violence, police brutality and white supremacy? in 10 words or less ===&lt;br /&gt;
=== What's your plan to end the anthropocene extinction, world hunger, global warming and global inequality? in 10 words or less ===&lt;br /&gt;
=== What's your plan to ensure freedom and privacy of communication for all? in 10 words or less ===&lt;br /&gt;
=== expectations ===&lt;br /&gt;
Sudo Room is part of the omni commons and as such, we take the omni commons [https://omnicommons.org/wiki/Statement_of_Solidarity statement of solidarity] and [https://omnicommons.org/wiki/Safer_Space_Policy safer space policy] seriously. These policies include expected codes of conduct and the consequences of unacceptable behavior. As a member, you are expected to both act according to the code of conduct and also to be a part of acting to counter unacceptable behavior (we don't let mistreatment slide). Is this going to be a problem for you?&lt;br /&gt;
&lt;br /&gt;
Ideally this should include the group going over the statement of solidarity and the expected behavior and consequences of unexpected behavior section of the safer space policy to make sure the person understands what's expected of them.&lt;br /&gt;
=== Have you ever been banned, asked to take a break, or similar, from a hackerspace or any other collective? ===&lt;br /&gt;
&lt;br /&gt;
=== What are the best ways to contact you? ===&lt;br /&gt;
=== What is your schedule like? Do you have particular times that you think you'll be around? You should check out our regular events! ===&lt;br /&gt;
&lt;br /&gt;
== Afterwards ==&lt;br /&gt;
=== Get them set up to pay membership dues on [https://sudoroom.org/humans sudo-humans] ===&lt;br /&gt;
=== Give them Wordpress, Wiki accounts. ===&lt;br /&gt;
=== Subscribe them to mailing list(s). ===&lt;br /&gt;
=== Ask if they require any exceptions, such as early (temporary) access? ===&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=User_talk:Punchy&amp;diff=9847</id>
		<title>User talk:Punchy</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=User_talk:Punchy&amp;diff=9847"/>
		<updated>2015-12-17T04:57:40Z</updated>

		<summary type="html">&lt;p&gt;Matt: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''Sudo Room''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Matt|Matt]] ([[User talk:Matt|talk]]) 20:57, 16 December 2015 (PST)&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=User:Punchy&amp;diff=9846</id>
		<title>User:Punchy</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=User:Punchy&amp;diff=9846"/>
		<updated>2015-12-17T04:57:40Z</updated>

		<summary type="html">&lt;p&gt;Matt: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;techie scumbag; i want to bring about a hivemind and the internet is a good place to start&lt;br /&gt;
&lt;br /&gt;
50 words or bust space delim s d s d s d s d s d s d s d s d s d s d s d s d s d s&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=User_talk:Robb&amp;diff=9845</id>
		<title>User talk:Robb</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=User_talk:Robb&amp;diff=9845"/>
		<updated>2015-12-17T04:56:17Z</updated>

		<summary type="html">&lt;p&gt;Matt: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''Sudo Room''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Matt|Matt]] ([[User talk:Matt|talk]]) 20:56, 16 December 2015 (PST)&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=User:Robb&amp;diff=9844</id>
		<title>User:Robb</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=User:Robb&amp;diff=9844"/>
		<updated>2015-12-17T04:56:17Z</updated>

		<summary type="html">&lt;p&gt;Matt: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;i like to hack on all the things i like to hack on when i hack on the things that i always like to hack on unless all the things i like to hack on are already being hacked on by someone else who likes to hack on all the things and there is a dnh note on the thing i would normally like to hack on.&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=User_talk:Noffle&amp;diff=9843</id>
		<title>User talk:Noffle</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=User_talk:Noffle&amp;diff=9843"/>
		<updated>2015-12-17T04:56:03Z</updated>

		<summary type="html">&lt;p&gt;Matt: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''Sudo Room''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Matt|Matt]] ([[User talk:Matt|talk]]) 20:56, 16 December 2015 (PST)&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=User:Noffle&amp;diff=9842</id>
		<title>User:Noffle</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=User:Noffle&amp;diff=9842"/>
		<updated>2015-12-17T04:56:03Z</updated>

		<summary type="html">&lt;p&gt;Matt: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I will totally fill this in at a later point in time that is not right now. Pinky swear. No, really.&lt;br /&gt;
Again: I will totally fill this in at a later point in time that is not right now. Pinky swear. No, really.&lt;br /&gt;
Again: I will totally fill this in at a later point in time that is not right now. Pinky swear. No, really.&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Meetings&amp;diff=9841</id>
		<title>Meetings</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Meetings&amp;diff=9841"/>
		<updated>2015-12-16T19:23:07Z</updated>

		<summary type="html">&lt;p&gt;Matt: pre-sorts notes for 2011, 2012 and 2013&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Sudo Room Meeting April 17, 2013.jpg|thumb|right|April 2013 Meeting]]&lt;br /&gt;
Sudoroom's official meetings are every Wednesday at 7pm, or sometimes as late as 7:30. They are bureaucratic, sometimes fun, and usually more functional than rumored. We try to handle conflicts respectfully.&lt;br /&gt;
&lt;br /&gt;
== Etherpad ==&lt;br /&gt;
&lt;br /&gt;
We keep our agenda on an etherpad. The etherpad is projected on a big screen for everyone to see. Anyone who knows the URL can collaboratively edit it on their laptop. After the meeting, its contents are copied to our wiki - that's how we keep record. Then we clear it for the next meeting and people can add items throughout the week. Ideally someone posts a summary to the mailing list, but that doesn't always happen.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, in the past our etherpad has caught the attention of online troll dens who like to overwhelm it and make it unusable. For this reason, we don't post the address online. Sorry! These addresses had been used in the past, and are obsolete:&lt;br /&gt;
* https://pad.riseup.net/p/sudoroom&lt;br /&gt;
* https://pad.riseup.net/p/sudoroommeeting&lt;br /&gt;
&lt;br /&gt;
== Archive == &lt;br /&gt;
&lt;br /&gt;
Each old meeting gets its own page, and we link to them here.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable collapsible&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Past Meeting Notes&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-type=&amp;quot;isoDate&amp;quot; | date&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | comments&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-12-30|2015-12-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-12-23|2015-12-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-12-16|2015-12-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-12-09|2015-12-09]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-12-02|2015-12-02]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-11-25|2015-11-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-11-18|2015-11-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-11-11|2015-11-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-11-04|2015-11-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-10-28|2015-10-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-10-21|2015-10-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-10-14|2015-10-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-10-07|2015-10-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-30|2015-09-30]]&lt;br /&gt;
| Insufficient critical mass&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-23|2015-09-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-16|2015-09-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-09|2015-09-09]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-02|2015-09-02]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-08-26|2015-08-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2015-08-19&lt;br /&gt;
| nobody showed up&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-08-12|2015-08-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-08-05|2015-08-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-07-29|2015-07-29]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-07-22|2015-07-22]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-07-15|2015-07-15]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-07-08|2015-07-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-07-01|2015-07-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-06-24|2015-06-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-06-17|2015-06-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-06-10|2015-06-10]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-06-03|2015-06-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-05-27|2015-05-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-05-20|2015-05-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-05-13|2015-05-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-05-06|2015-05-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-29|2015-04-29]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-22|2015-04-22]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-15|2015-04-15]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-08|2015-04-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-01|2015-04-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-03-25|2015-03-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-03-18|2015-03-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-03-11|2015-03-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-03-04|2015-03-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-02-25|2015-02-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-02-18|2015-02-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-02-11|2015-02-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-02-04|2015-02-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-01-28|2015-01-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-01-21|2015-01-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-01-14|2015-01-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-01-07|2015-01-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-31|2014-12-31]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-24|2014-12-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-17|2014-12-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-10|2014-12-10]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-03|2014-12-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-11-26|2014-11-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-11-19|2014-11-19]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-11-12|2014-11-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-11-05|2014-11-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-29|2014-10-29]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-27|2014-10-27]]&lt;br /&gt;
| Board of Directors Meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-22|2014-10-22]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-15|2014-10-15]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-08|2014-10-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-01|2014-10-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-09-24|2014-09-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-09-17|2014-09-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-09-10|2014-09-10]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-09-03|2014-09-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-08-27|2014-08-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-08-20|2014-08-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-08-13|2014-08-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-08-06|2014-08-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-30|2014-07-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-23|2014-07-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-16|2014-07-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-09|2014-07-09]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-02|2014-07-02]]&lt;br /&gt;
| First meeting in our new space @ 4799 Shattuck!&lt;br /&gt;
|-&lt;br /&gt;
| 2014-06-25&lt;br /&gt;
| big moving day, no meeting notes&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-06-18|2014-06-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-06-11|2014-06-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-06-04|2014-06-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-05-28|2014-05-28]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-05-21|2014-05-21]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-05-14|2014-05-14]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-05-07|2014-05-07]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-30|2014-04-30]]&lt;br /&gt;
| Joint mtg w/ [http://counterculturelabs.org/ CCL]&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-23|2014-04-23]]&lt;br /&gt;
| Joint mtg w/ [http://counterculturelabs.org/ CCL]&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-16|2014-04-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-09|2014-04-09]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-02|2014-04-02]]&lt;br /&gt;
| mostly reboot&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-03-26|2014-03-26]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-03-19|2014-03-19]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-03-12|2014-03-12]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-03-05|2014-03-05]]&lt;br /&gt;
| Special edition on reboot&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-02-26|2014-02-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-02-19|2014-02-19]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-02-12|2014-02-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-02-05|2014-02-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-29|2014-01-29]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-22|2014-01-22]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-15|2014-01-15]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-08|2014-01-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-01|2014-01-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-12-25|2013-12-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-12-18|2013-12-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-12-11|2013-12-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-12-04|2013-12-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-11-27|2013-11-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-11-20|2013-11-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-11-13|2013-11-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-11-06|2013-11-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-10-30|2013-10-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-10-23|2013-10-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-10-16|2013-10-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-10-02|2013-10-02]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-09-25|2013-09-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-09-18|2013-09-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-09-11|2013-09-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-09-04|2013-09-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-08-28|2013-08-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-08-21|2013-08-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-08-14|2013-08-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-08-07|2013-08-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-30|2013-07-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-24|2013-07-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-17|2013-07-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-10|2013-07-10]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-03|2013-07-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-06-26|2013-06-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-06-19|2013-06-19]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-06-12|2013-06-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-06-05|2013-06-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-29|2013-05-29]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-22|2013-05-22]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-15|2013-05-15]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-08|2013-05-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-01|2013-05-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-04-24|2013-04-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-04-17|2013-04-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-04-11|2013-04-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-04-03|2013-04-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-03-27|2013-03-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2013-03-20&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-03-13|2013-03-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-03-06|2013-03-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-02-27|2013-02-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-02-20|2013-02-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-02-13|2013-02-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-02-06|2013-02-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-30|2013-01-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-23|2013-01-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-16|2013-01-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-09|2013-01-09]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-02|2013-01-02]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-26-2012 Meetup|2012-12-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-19-2012 Meetup|2012-12-19]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-12-2012 Meetup|2012-12-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-05-2012 Meetup|2012-12-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/11-28-2012 Meetup|2012-11-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/11-21-2012 Meetup|2012-11-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/11-14-2012 Meetup|2012-11-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/11-7-2012 Meetup|2012-11-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-31-2012 Meetup|2012-10-31]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-24-2012 Meetup|2012-10-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-17-2012 Meetup|2012-10-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-10-2012 Meetup|2012-10-10]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-03-2012 Meetup|2012-10-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/09-26-2012 Meetup|2012-09-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/09-19-2012 Meetup|2012-09-19]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/09-12-2012 Meetup|2012-09-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/09-05-2012 Meetup|2012-09-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/08-29-2012 Meetup|2012-08-29]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/08-22-2012 Meetup|2012-08-22]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/08-13-2012 Meetup|2012-08-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/08-08-2012 Meetup|2012-08-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/08-01-2012 Meetup|2012-08-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/07-25-2012 Meetup|2012-07-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/07-18-2012 Meetup|2012-07-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/07-11-2012 Meetup|2012-07-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/07-04-2012 Meetup|2012-07-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/06-27-2012 Meetup|2012-06-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/06-20-2012 Meetup|2012-06-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/06-13-2012 Meetup|2012-06-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/06-06-2012 Meetup|2012-06-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/05-30-2012 Meetup|2012-05-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/05-23-2012 Meetup|2012-05-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/05-16-2012 Meetup|2012-05-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2012-05-09&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-05-02&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/04-25-2012 Meetup|2012-04-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2012-04-18&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-04-11&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-04-04&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-03-28&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-03-21&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-03-14&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-03-07&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-02-29&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/02-22-2012 Meetup|2012-02-22]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2012-02-15&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-02-08&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/02-01-2011 Meetup|2012-02-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/01-25-2011 Meetup|2012-01-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/01-18-2011 Meetup|2012-01-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/01-11-2011 Meetup|2012-01-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/01-04-2011 Meetup|2012-01-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-28-2011 Meetup|2011-12-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-21-2011 Meetup|2011-12-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-14-2011 Meetup|2011-12-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-07-2011 Meetup|2011-12-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/First Wed Meetup|2011-11-30]]&lt;br /&gt;
| @ Cafe Mediterraneum&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/Initial Meeting| Initial Meeting]]&lt;br /&gt;
| 2011-11-18, 12pm @ Actual Cafe&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:SudoRoom Organization]][[Category:Meetings]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Meeting_Notes_2015-12-09&amp;diff=9840</id>
		<title>Meeting Notes 2015-12-09</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Meeting_Notes_2015-12-09&amp;diff=9840"/>
		<updated>2015-12-16T17:43:53Z</updated>

		<summary type="html">&lt;p&gt;Matt: adds notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sudoroom Weekly Meeting Wednesday December 9, 2015&lt;br /&gt;
&lt;br /&gt;
==intros==&lt;br /&gt;
name, pronoun, icebreaker&lt;br /&gt;
Icebreaker question:&lt;br /&gt;
    How certain are you about where you will be in a year from now? Try to answer in a percentage if you want.&lt;br /&gt;
* Lesley, they/them or whatever, 10%&lt;br /&gt;
* Rob, he/him, 0%&lt;br /&gt;
* Dante, he/him, 20%&lt;br /&gt;
* Ben, he/him, 69%&lt;br /&gt;
* Sam, he/him, *draws hyperbolic distribution*&lt;br /&gt;
* Matt, he/him / whatevah, 50%&lt;br /&gt;
* remote-jenny, she, not.&lt;br /&gt;
&lt;br /&gt;
==announcements==&lt;br /&gt;
&lt;br /&gt;
* Omni is out of money. How do we make rent next month? Please answer in the form of currency.&lt;br /&gt;
* Fundraising / Buy the Building Working Group is meeting with our prospective private lender on Friday.&lt;br /&gt;
&lt;br /&gt;
==new members==&lt;br /&gt;
https://sudoroom.org/wiki/New_Member_Script&lt;br /&gt;
&lt;br /&gt;
=== Ben ===&lt;br /&gt;
* questions &amp;amp; stuff&lt;br /&gt;
* Passes for now, will think about membership at noisebridge (close to werk) &amp;amp; sudo (close to holm) and come back later ;D&lt;br /&gt;
&lt;br /&gt;
=== pondering ===&lt;br /&gt;
* Kwaku, Gracie &amp;amp; Micolah are now members!&lt;br /&gt;
* 11/18 morgan applied, pondering ends 12/16&lt;br /&gt;
* 12/02 max applied, pondering ends 12/30&lt;br /&gt;
&lt;br /&gt;
== money ==&lt;br /&gt;
* dec rent, quarterly insurance, and nov utilities have been paid ($2000 + $283 + $385 = $2668)&lt;br /&gt;
* $2,078.39 in our account, + $96 transferring from paypal = $2,172.39&lt;br /&gt;
* Nov Stripe income: $1345 (39 members)&lt;br /&gt;
* Nov Paypal income: $550 (2 members + $102.35/wk from Gratipay)&lt;br /&gt;
* Goal: ~$7500 (3 months reserve) in the bank&lt;br /&gt;
* The Internet Federal Credit Union is closing :( so we need to open a new account somewhere and transfer funds. Both Omni and sudoroom have accounts with Western Federal Credit Union, propose we move there.&lt;br /&gt;
&lt;br /&gt;
== proposals ==&lt;br /&gt;
&lt;br /&gt;
===Move to Western Federal Credit Union===&lt;br /&gt;
&lt;br /&gt;
Straw-poll: 6 - 0 - 0 (yes - no - abstain) &amp;quot;down with the archive&amp;quot; ;P&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=New_Member_Script&amp;diff=9752</id>
		<title>New Member Script</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=New_Member_Script&amp;diff=9752"/>
		<updated>2015-09-17T03:36:43Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Are you a cop? A federal agent? An undercover cop? An undercover cat? */ adds informant&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questions we can ask prospective members at meetings!&lt;br /&gt;
&lt;br /&gt;
== Primary Questions: ==&lt;br /&gt;
=== PROMPT: There are no wrong answers ===&lt;br /&gt;
=== Would you like to ''briefly'' introduce yourself? ===&lt;br /&gt;
=== How did you find sudo room? ===&lt;br /&gt;
=== Why do you want to be a sudo room member? ===&lt;br /&gt;
=== What do you want to hack or learn at sudo room? ===&lt;br /&gt;
=== What do you want to share with or teach at sudo room? ===&lt;br /&gt;
=== What's your plan to abolish sexual violence, police brutality and white supremacy? in 10 words or less ===&lt;br /&gt;
=== What's your plan to end the anthropocene extinction, world hunger, global warming and global inequality? in 10 words or less ===&lt;br /&gt;
=== What's your plan to ensure freedom and privacy of communication for all? in 10 words or less ===&lt;br /&gt;
=== What do you know about sudo room's [[Articles_of_Association#Values|values]]? ===&lt;br /&gt;
=== What do you know about sudo room's [https://sudoroom.org/mediawiki/index.php?title=Sudoroom&amp;amp;offset=&amp;amp;limit=500&amp;amp;action=history history]? ===&lt;br /&gt;
=== What do you know about the Omni Commons' [https://omnicommons.org/wiki/Statement_of_Solidarity statement of solidarity]? ===&lt;br /&gt;
=== What do you know about the Omni Commons' [https://omnicommons.org/wiki/Safer_Space_Policy safer space policy]? ===&lt;br /&gt;
=== Have you ever been banned from a hackerspace or any other collective? ===&lt;br /&gt;
=== Are you a cop? An informant? A federal agent? An undercover cop? An undercover cat? ===&lt;br /&gt;
&lt;br /&gt;
=== What makes you happy? ===&lt;br /&gt;
&lt;br /&gt;
== Optional Questions ==&lt;br /&gt;
=== What's 20 + 3? (this is not a trap) ===&lt;br /&gt;
=== Can you please tell me what is in the captcha? ===&lt;br /&gt;
&lt;br /&gt;
== Afterwards ==&lt;br /&gt;
=== Get them set up to pay membership dues on [https://sudoroom.org/humans sudo-humans] ===&lt;br /&gt;
=== Give them Wordpress, Wiki accounts. ===&lt;br /&gt;
=== Subscribe them to mailing list(s). ===&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Meetings&amp;diff=9746</id>
		<title>Meetings</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Meetings&amp;diff=9746"/>
		<updated>2015-09-11T10:24:12Z</updated>

		<summary type="html">&lt;p&gt;Matt: creates links to sept meeting notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Sudo Room Meeting April 17, 2013.jpg|thumb|right|April 2013 Meeting]]&lt;br /&gt;
Sudoroom's official meetings are every Wednesday at 7pm, or sometimes as late as 7:30. They are bureaucratic, sometimes fun, and usually more functional than rumored. We try to handle conflicts respectfully.&lt;br /&gt;
&lt;br /&gt;
== Etherpad ==&lt;br /&gt;
&lt;br /&gt;
We keep our agenda on an etherpad. The etherpad is projected on a big screen for everyone to see. Anyone who knows the URL can collaboratively edit it on their laptop. After the meeting, its contents are copied to our wiki - that's how we keep record. Then we clear it for the next meeting and people can add items throughout the week. Ideally someone posts a summary to the mailing list, but that doesn't always happen.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, in the past our etherpad has caught the attention of online troll dens who like to overwhelm it and make it unusable. For this reason, we don't post the address online. Sorry! These addresses had been used in the past, and are obsolete:&lt;br /&gt;
* https://pad.riseup.net/p/sudoroom&lt;br /&gt;
* https://pad.riseup.net/p/sudoroommeeting&lt;br /&gt;
&lt;br /&gt;
== Archive == &lt;br /&gt;
&lt;br /&gt;
Each old meeting gets its own page, and we link to them here.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable collapsible&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot;| Past Meeting Notes&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-type=&amp;quot;isoDate&amp;quot; | date&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | comments&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-30|2015-09-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-23|2015-09-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-16|2015-09-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-09|2015-09-09]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-09-02|2015-09-02]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-08-26|2015-08-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2015-08-19&lt;br /&gt;
| nobody showed up&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-08-12|2015-08-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-08-05|2015-08-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2015-07-29|2015-07-29]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-07-22|2015-07-22]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-07-15|2015-07-15]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-07-08|2015-07-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-07-01|2015-07-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-06-24|2015-06-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-06-17|2015-06-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-06-10|2015-06-10]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-06-03|2015-06-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-05-27|2015-05-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-05-20|2015-05-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-05-13|2015-05-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-05-06|2015-05-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-29|2015-04-29]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-22|2015-04-22]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-15|2015-04-15]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-08|2015-04-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-04-01|2015-04-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-03-25|2015-03-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-03-18|2015-03-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-03-11|2015-03-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-03-04|2015-03-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-02-25|2015-02-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-02-18|2015-02-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-02-11|2015-02-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-02-04|2015-02-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-01-28|2015-01-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-01-21|2015-01-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-01-14|2015-01-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2015-01-07|2015-01-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-31|2014-12-31]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-24|2014-12-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-17|2014-12-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-10|2014-12-10]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-12-03|2014-12-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-11-26|2014-11-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-11-19|2014-11-19]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-11-12|2014-11-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-11-05|2014-11-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-29|2014-10-29]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-27|2014-10-27]]&lt;br /&gt;
| Board of Directors Meeting&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-22|2014-10-22]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-15|2014-10-15]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-08|2014-10-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-10-01|2014-10-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-09-24|2014-09-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-09-17|2014-09-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-09-10|2014-09-10]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-09-03|2014-09-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-08-27|2014-08-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-08-20|2014-08-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-08-13|2014-08-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-08-06|2014-08-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-30|2014-07-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-23|2014-07-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-16|2014-07-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-09|2014-07-09]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-07-02|2014-07-02]]&lt;br /&gt;
| First meeting in our new space @ 4799 Shattuck!&lt;br /&gt;
|-&lt;br /&gt;
| 2014-06-25&lt;br /&gt;
| big moving day, no meeting notes&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-06-18|2014-06-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-06-11|2014-06-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting_Notes_2014-06-04|2014-06-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-05-28|2014-05-28]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-05-21|2014-05-21]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-05-14|2014-05-14]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-05-07|2014-05-07]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-30|2014-04-30]]&lt;br /&gt;
| Joint mtg w/ [http://counterculturelabs.org/ CCL]&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-23|2014-04-23]]&lt;br /&gt;
| Joint mtg w/ [http://counterculturelabs.org/ CCL]&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-16|2014-04-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-09|2014-04-09]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-04-02|2014-04-02]]&lt;br /&gt;
| mostly reboot&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-03-26|2014-03-26]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-03-19|2014-03-19]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-03-12|2014-03-12]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-03-05|2014-03-05]]&lt;br /&gt;
| Special edition on reboot&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-02-26|2014-02-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-02-19|2014-02-19]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-02-12|2014-02-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-02-05|2014-02-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-29|2014-01-29]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-22|2014-01-22]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-15|2014-01-15]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-08|2014-01-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2014-01-01|2014-01-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-12-25|2013-12-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-02|2013-01-02]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-09|2013-01-09]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-16|2013-01-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-23|2013-01-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-01-30|2013-01-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-02-06|2013-02-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-02-13|2013-02-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-02-20|2013-02-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-02-27|2013-02-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-03-06|2013-03-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-03-13|2013-03-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2013-03-20&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-03-27|2013-03-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-04-03|2013-04-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-04-11|2013-04-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-04-17|2013-04-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-04-24|2013-04-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-01|2013-05-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-08|2013-05-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-15|2013-05-15]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-22|2013-05-22]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-05-29|2013-05-29]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-06-05|2013-06-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-06-12|2013-06-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-06-19|2013-06-19]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-06-26|2013-06-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-03|2013-07-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-10|2013-07-10]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-17|2013-07-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-24|2013-07-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-07-30|2013-07-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-08-07|2013-08-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-08-14|2013-08-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-08-21|2013-08-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-08-28|2013-08-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-09-04|2013-09-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-09-11|2013-09-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-09-18|2013-09-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-09-25|2013-09-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-10-02|2013-10-02]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-10-16|2013-10-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-10-23|2013-10-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-10-30|2013-10-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-11-06|2013-11-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-11-13|2013-11-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-11-20|2013-11-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-11-27|2013-11-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-12-04|2013-12-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-12-11|2013-12-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Meeting Notes 2013-12-18|2013-12-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/01-04-2011 Meetup|2012-01-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/01-11-2011 Meetup|2012-01-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/01-18-2011 Meetup|2012-01-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/01-25-2011 Meetup|2012-01-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/02-01-2011 Meetup|2012-02-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2012-02-08&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-02-15&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/02-22-2012 Meetup|2012-02-22]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2012-02-29&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-03-07&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-03-14&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-03-21&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-03-28&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-04-04&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-04-11&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-04-18&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/04-25-2012 Meetup|2012-04-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 2012-05-02&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| 2012-05-09&lt;br /&gt;
| no notes?&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/05-16-2012 Meetup|2012-05-16]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/05-23-2012 Meetup|2012-05-23]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/05-30-2012 Meetup|2012-05-30]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/06-06-2012 Meetup|2012-06-06]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/06-13-2012 Meetup|2012-06-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/06-20-2012 Meetup|2012-06-20]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/06-27-2012 Meetup|2012-06-27]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/07-04-2012 Meetup|2012-07-04]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/07-11-2012 Meetup|2012-07-11]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/07-18-2012 Meetup|2012-07-18]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/07-25-2012 Meetup|2012-07-25]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/08-01-2012 Meetup|2012-08-01]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/08-08-2012 Meetup|2012-08-08]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo_room/08-13-2012_Meetup|2012-08-13]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/08-22-2012 Meetup|2012-08-22]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/08-29-2012 Meetup|2012-08-29]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/09-05-2012 Meetup|2012-09-05]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/09-12-2012 Meetup|2012-09-12]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/09-19-2012 Meetup|2012-09-19]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/09-26-2012 Meetup|2012-09-26]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-03-2012 Meetup|2012-10-03]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-10-2012 Meetup|2012-10-10]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-17-2012 Meetup|2012-10-17]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-24-2012 Meetup|2012-10-24]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/10-31-2012 Meetup|2012-10-31]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-07-2011 Meetup|2011-12-07]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-14-2011 Meetup|2011-12-14]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-21-2011 Meetup|2011-12-21]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/12-28-2011 Meetup|2011-12-28]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/First Wed Meetup|2011-11-30]]&lt;br /&gt;
| @ Cafe Mediterraneum&lt;br /&gt;
|-&lt;br /&gt;
| [[Sudo room/Initial Meeting| Initial Meeting]]&lt;br /&gt;
| 2011-11-18, 12pm @ Actual Cafe&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:SudoRoom Organization]][[Category:Meetings]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Hack_Meet&amp;diff=9731</id>
		<title>Hack Meet</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Hack_Meet&amp;diff=9731"/>
		<updated>2015-08-29T17:37:17Z</updated>

		<summary type="html">&lt;p&gt;Matt: creates page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To host a bay area Hack Meeting, to support a positive, creative, solidarity culture in the bay area hacker community and beyond.&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Lockers&amp;diff=9728</id>
		<title>Lockers</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Lockers&amp;diff=9728"/>
		<updated>2015-08-27T06:33:03Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Locker Options */ adds estimates of income&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sudo Room has many lockers now!&lt;br /&gt;
&lt;br /&gt;
=Protocol=&lt;br /&gt;
&lt;br /&gt;
# A Sudo Room member qualifies for a locker if:&lt;br /&gt;
#* The member is in good standing (see [[Articles of Association]])&lt;br /&gt;
#* The member contributes a regular fee for use of the locker ([[Lockers#Locker Options|described below]])&lt;br /&gt;
#* The locker in question is not already in use by another member that qualifies as described above.&lt;br /&gt;
#* The member submits a request for a locker at a regular sudo room meeting.&lt;br /&gt;
# Exceptions to this protocol are made by consensus at a regular sudo room meeting.&lt;br /&gt;
&lt;br /&gt;
==Locker Options==&lt;br /&gt;
&lt;br /&gt;
* '''yellow''' (0/10 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$10'''&amp;lt;/span&amp;gt; / mo&lt;br /&gt;
** 19.5&amp;quot; x 15.5&amp;quot; x 14&amp;quot; = '''4231.5 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 2.45 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;br /&gt;
* '''gold''' (1/6 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$15'''&amp;lt;/span&amp;gt; / mo&lt;br /&gt;
** 16.5&amp;quot; x 12&amp;quot; x 35&amp;quot; = '''6930 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 4 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;br /&gt;
* '''green''' (5/6 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$20'''&amp;lt;/span&amp;gt; / mo&lt;br /&gt;
** 16.5&amp;quot; x 16&amp;quot; x 29.5&amp;quot; = '''8260 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 4.78 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;br /&gt;
* '''beige''' (7/10 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$10'''&amp;lt;/span&amp;gt; / mo&lt;br /&gt;
** Sum of beige = '''5635 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 3.25 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;br /&gt;
** &amp;quot;|&amp;quot; part of &amp;quot;L&amp;quot; - 17.5&amp;quot; x 4.5&amp;quot; x 42&amp;quot; = 3307.5 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 1.9 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
** &amp;quot;_&amp;quot; part of &amp;quot;L&amp;quot; - 5.5&amp;quot; x 17.5&amp;quot; x 6&amp;quot; = 577.5 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 0.33 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
** footlocker part - 17.5&amp;quot; x 10&amp;quot; x 10&amp;quot; = 1750.0 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 1 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Estimates of Locker Income===&lt;br /&gt;
&lt;br /&gt;
* At current usage, sudo room should receive:&lt;br /&gt;
** (1*15) + (5*20) + (7*10) = '''$185 / month'''&lt;br /&gt;
* At capacity, sudo room should be able to receive:&lt;br /&gt;
** (10*15) + (6*15) + (6*20) + (10*10) = '''$460 / month'''&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Lockers&amp;diff=9727</id>
		<title>Lockers</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Lockers&amp;diff=9727"/>
		<updated>2015-08-27T06:04:36Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Locker Options */ re-arranges beige sizes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sudo Room has many lockers now!&lt;br /&gt;
&lt;br /&gt;
=Protocol=&lt;br /&gt;
&lt;br /&gt;
# A Sudo Room member qualifies for a locker if:&lt;br /&gt;
#* The member is in good standing (see [[Articles of Association]])&lt;br /&gt;
#* The member contributes a regular fee for use of the locker ([[Lockers#Locker Options|described below]])&lt;br /&gt;
#* The locker in question is not already in use by another member that qualifies as described above.&lt;br /&gt;
#* The member submits a request for a locker at a regular sudo room meeting.&lt;br /&gt;
# Exceptions to this protocol are made by consensus at a regular sudo room meeting.&lt;br /&gt;
&lt;br /&gt;
==Locker Options==&lt;br /&gt;
&lt;br /&gt;
* '''yellow''' (0/10 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$10'''&amp;lt;/span&amp;gt; / mo&lt;br /&gt;
** 19.5&amp;quot; x 15.5&amp;quot; x 14&amp;quot; = '''4231.5 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 2.45 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;br /&gt;
* '''gold''' (1/6 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$15'''&amp;lt;/span&amp;gt; / mo&lt;br /&gt;
** 16.5&amp;quot; x 12&amp;quot; x 35&amp;quot; = '''6930 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 4 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;br /&gt;
* '''green''' (5/6 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$20'''&amp;lt;/span&amp;gt; / mo&lt;br /&gt;
** 16.5&amp;quot; x 16&amp;quot; x 29.5&amp;quot; = '''8260 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 4.78 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;br /&gt;
* '''beige''' (7/10 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$10'''&amp;lt;/span&amp;gt; / mo&lt;br /&gt;
** Sum of beige = '''5635 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 3.25 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;br /&gt;
** &amp;quot;|&amp;quot; part of &amp;quot;L&amp;quot; - 17.5&amp;quot; x 4.5&amp;quot; x 42&amp;quot; = 3307.5 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 1.9 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
** &amp;quot;_&amp;quot; part of &amp;quot;L&amp;quot; - 5.5&amp;quot; x 17.5&amp;quot; x 6&amp;quot; = 577.5 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 0.33 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
** footlocker part - 17.5&amp;quot; x 10&amp;quot; x 10&amp;quot; = 1750.0 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 1 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Lockers&amp;diff=9726</id>
		<title>Lockers</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Lockers&amp;diff=9726"/>
		<updated>2015-08-27T05:44:06Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Locker Options */ adds rate of paymnet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sudo Room has many lockers now!&lt;br /&gt;
&lt;br /&gt;
=Protocol=&lt;br /&gt;
&lt;br /&gt;
# A Sudo Room member qualifies for a locker if:&lt;br /&gt;
#* The member is in good standing (see [[Articles of Association]])&lt;br /&gt;
#* The member contributes a regular fee for use of the locker ([[Lockers#Locker Options|described below]])&lt;br /&gt;
#* The locker in question is not already in use by another member that qualifies as described above.&lt;br /&gt;
#* The member submits a request for a locker at a regular sudo room meeting.&lt;br /&gt;
# Exceptions to this protocol are made by consensus at a regular sudo room meeting.&lt;br /&gt;
&lt;br /&gt;
==Locker Options==&lt;br /&gt;
&lt;br /&gt;
* '''yellow''' (0/10 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$10'''&amp;lt;/span&amp;gt; / mo&lt;br /&gt;
** 19.5&amp;quot; x 15.5&amp;quot; x 14&amp;quot; = '''4231.5 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 2.45 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;br /&gt;
* '''gold''' (1/6 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$15'''&amp;lt;/span&amp;gt; / mo&lt;br /&gt;
** 16.5&amp;quot; x 12&amp;quot; x 35&amp;quot; = '''6930 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 4 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;br /&gt;
* '''green''' (5/6 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$20'''&amp;lt;/span&amp;gt; / mo&lt;br /&gt;
** 16.5&amp;quot; x 16&amp;quot; x 29.5&amp;quot; = '''8260 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 4.78 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;br /&gt;
* '''beige''' (7/10 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$10'''&amp;lt;/span&amp;gt; / mo&lt;br /&gt;
** &amp;quot;|&amp;quot; part of &amp;quot;L&amp;quot; - 17.5&amp;quot; x 4.5&amp;quot; x 42&amp;quot; = 3307.5 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 1.9 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
** &amp;quot;_&amp;quot; part of &amp;quot;L&amp;quot; - 5.5&amp;quot; x 17.5&amp;quot; x 6&amp;quot; = 577.5 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 0.33 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
** footlocker part - 17.5&amp;quot; x 10&amp;quot; x 10&amp;quot; = 1750.0 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 1 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
** Sum of beige = '''5635 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 3.25 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Lockers&amp;diff=9725</id>
		<title>Lockers</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Lockers&amp;diff=9725"/>
		<updated>2015-08-27T05:43:19Z</updated>

		<summary type="html">&lt;p&gt;Matt: creates page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sudo Room has many lockers now!&lt;br /&gt;
&lt;br /&gt;
=Protocol=&lt;br /&gt;
&lt;br /&gt;
# A Sudo Room member qualifies for a locker if:&lt;br /&gt;
#* The member is in good standing (see [[Articles of Association]])&lt;br /&gt;
#* The member contributes a regular fee for use of the locker ([[Lockers#Locker Options|described below]])&lt;br /&gt;
#* The locker in question is not already in use by another member that qualifies as described above.&lt;br /&gt;
#* The member submits a request for a locker at a regular sudo room meeting.&lt;br /&gt;
# Exceptions to this protocol are made by consensus at a regular sudo room meeting.&lt;br /&gt;
&lt;br /&gt;
==Locker Options==&lt;br /&gt;
&lt;br /&gt;
* '''yellow''' (0/10 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$10'''&amp;lt;/span&amp;gt;&lt;br /&gt;
** 19.5&amp;quot; x 15.5&amp;quot; x 14&amp;quot; = '''4231.5 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 2.45 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;br /&gt;
* '''gold''' (1/6 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$15'''&amp;lt;/span&amp;gt;&lt;br /&gt;
** 16.5&amp;quot; x 12&amp;quot; x 35&amp;quot; = '''6930 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 4 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;br /&gt;
* '''green''' (5/6 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$20'''&amp;lt;/span&amp;gt;&lt;br /&gt;
** 16.5&amp;quot; x 16&amp;quot; x 29.5&amp;quot; = '''8260 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 4.78 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;br /&gt;
* '''beige''' (7/10 in use) - &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''$10'''&amp;lt;/span&amp;gt;&lt;br /&gt;
** &amp;quot;|&amp;quot; part of &amp;quot;L&amp;quot; - 17.5&amp;quot; x 4.5&amp;quot; x 42&amp;quot; = 3307.5 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 1.9 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
** &amp;quot;_&amp;quot; part of &amp;quot;L&amp;quot; - 5.5&amp;quot; x 17.5&amp;quot; x 6&amp;quot; = 577.5 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 0.33 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
** footlocker part - 17.5&amp;quot; x 10&amp;quot; x 10&amp;quot; = 1750.0 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 1 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;&lt;br /&gt;
** Sum of beige = '''5635 in&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; ~ 3.25 ft&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;'''&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Network&amp;diff=9453</id>
		<title>Network</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Network&amp;diff=9453"/>
		<updated>2015-06-20T04:46:37Z</updated>

		<summary type="html">&lt;p&gt;Matt: /* Addresses */ adds item&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;
| 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.8&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| the 3d printer desktop computer&lt;br /&gt;
| [[User:Yar|yar]]&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;
| 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>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Board&amp;diff=9364</id>
		<title>Board</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Board&amp;diff=9364"/>
		<updated>2015-04-16T07:41:42Z</updated>

		<summary type="html">&lt;p&gt;Matt: updates board members list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We're required as a California corporation to have a Board, but it's not REALLY a Board. It's an anti-board. '''''WE FLIPPED THE BOARD!'''''&lt;br /&gt;
&lt;br /&gt;
==Members==&lt;br /&gt;
&lt;br /&gt;
[[User:hol|Hol G]], [[User:tunabananas|Jenny R]], Julio R, Liberty M, [[User:juul|Marc J]] [treasurer], [[User:mk30|Marina K]], [[User:matt|Matt S]], [[User:Romyilano|Romy]], Troy M, Scott E, Lesley B&lt;br /&gt;
&lt;br /&gt;
Total: 11 (odd)&lt;br /&gt;
&lt;br /&gt;
[[File:Hands Working Together Make the Craft Light.jpg|thumb|light crafting]]&lt;br /&gt;
&lt;br /&gt;
===Former Members===&lt;br /&gt;
&lt;br /&gt;
[[User:anca|Anca M]], [[User:Maximilianklein|Max K]], Naomi M&lt;br /&gt;
&lt;br /&gt;
==Responsibilities==&lt;br /&gt;
This section is still under construction! ''See what we're working on at [[Board/FAQs|Board/FAQs]]''&lt;br /&gt;
&lt;br /&gt;
Generally, the board members carry certain responsibilities, including:&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
In particular, there are several tasks that require regular attention:&lt;br /&gt;
&lt;br /&gt;
* File a Statement of Information once every two years - $25&lt;br /&gt;
*: Form: Form SI-100 (Statement of Information)&lt;br /&gt;
*: Due Date: Biennially before the end of the calendar month during which the original Articles of Incorporation were filed, but no sooner than the immediately preceding 5 calendar months.&lt;br /&gt;
*: Information: (916) 657-5448&lt;br /&gt;
*: Web Site: www.ss.ca.gov                               &lt;br /&gt;
** https://businessfilings.sos.ca.gov/&lt;br /&gt;
** more info: http://www.hurwitassociates.com/l_s_annual_ca.php&lt;br /&gt;
&lt;br /&gt;
* Renewal Registration&lt;br /&gt;
*: California Attorney General                                 &lt;br /&gt;
*: Form: Form RRF-1 &lt;br /&gt;
*: Due Date: 4 Â½ months after end of fiscal year&lt;br /&gt;
*: Information: (916) 445-2021&lt;br /&gt;
*: Web Site: ag.ca.gov/charities&lt;br /&gt;
*: Filing Fee: $0-$300 (depending on revenues)     &lt;br /&gt;
*: Note: If gross receipts or total assets over $25,000, include IRS Form 990, 990-EZ or 990-PF.&lt;br /&gt;
** Charitable corporations organized and operated primarily as hospitals, educational institutions, or religious organizations are exempt from filing.                                                 &lt;br /&gt;
&lt;br /&gt;
[[File:Board of Directors.jpg|thumb|may the Board never get bored...]]&lt;br /&gt;
&lt;br /&gt;
* File annually with the IRS&lt;br /&gt;
*: Form: Annual Return Form 990&lt;br /&gt;
*: Due Date: 4 Â½ months after end of fiscal year&lt;br /&gt;
*: Internal Revenue Service  &lt;br /&gt;
*: Information: (800) 829-1040&lt;br /&gt;
*: Forms: (800) 829-3676&lt;br /&gt;
*: Web Site: www.irs.gov/charities&lt;br /&gt;
*: Filing Fee: $0                                       &lt;br /&gt;
** Public Charities: Please note that, along with the new Form 990, the IRS has instituted a &amp;quot;phase-in&amp;quot; period to allow organizations time to adjust to  the new form. For a detailed &amp;quot;phase-in&amp;quot; chart, please refer to the IRS website to determine which form to file (Form 990, Form 990-EZ or Form 990-N).                                                                                                              Private Foundations: Submit Form 990PF, regardless of revenues.    &lt;br /&gt;
&lt;br /&gt;
* File with the California Franchise Tax Board                               &lt;br /&gt;
*: Note: For a general discussion of the California Franchise Tax  Board's requirements for exempt organizations, please refer to their Exempt Organizations publication.&lt;br /&gt;
*# Form: Form 199 or 199N (California e-Postcard)&lt;br /&gt;
*#: Due Date: 4 Â½ months after end of fiscal year&lt;br /&gt;
*#: Phone: (916) 845-4171&lt;br /&gt;
*#: Web Site: www.ftb.ca.gov&lt;br /&gt;
*#: Filing Fee: $0-25 (Form 199 Only, form 199N is free)    &lt;br /&gt;
*#: Notes: Some organizations may be exempt from this filing depending on  the type of organization.  Refer to the Franchise Tax Board's website  for details.  &lt;br /&gt;
*# Form: Form 109 (Exempt Organization Business Income Tax Return)&lt;br /&gt;
*#: Due Date: 4 Â½ months after end of fiscal year&lt;br /&gt;
*#: Phone: (916) 845-4171&lt;br /&gt;
*#: Web Site: www.ftb.ca.gov&lt;br /&gt;
*#: Filing Fee: $0                                                        &lt;br /&gt;
*#: Note: This filing is required only if the organiztion derived more than $1,000 in gross unrelated business income.     &lt;br /&gt;
&lt;br /&gt;
* http://www.hurwitassociates.com/l_s_annual_ca.php&lt;br /&gt;
&lt;br /&gt;
==Protocol==&lt;br /&gt;
* Plan is to only meet during official sudo room meetings, simply requiring that we have board members show up (enough for quorum).&lt;br /&gt;
* No need to meet separately, unless a particular circumstance requires it.&lt;br /&gt;
* Get things done but keep things interesting through movement, art and entertainment like meeting nude at Korean bathhouses in San Leandro&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
* Sudo Room has incorporated with the state of California as a Nonprofit Public Benefit Corporation organized for public and charitable purposes&lt;br /&gt;
** Followed these instructions http://www.sos.ca.gov/business/be/filing-tips-corp.htm#artsnp&lt;br /&gt;
** The specific purpose of this corporation is to promote and encourage scientific, technical, engineering and artistic skills through individual projects, social collaboration, and education. In the context of these purposes, the corporation shall engage in scientific, charitable and educational activities within the meaning of Section 501(c)(3) of the Internal Revenue Code.&lt;br /&gt;
&lt;br /&gt;
==Dissolution Strategies==&lt;br /&gt;
&lt;br /&gt;
* https://encrypted.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=california%20state%20non-profit%20corporation%20board%20of%20directors&amp;amp;source=web&amp;amp;cd=5&amp;amp;cad=rja&amp;amp;ved=0CFUQFjAE&amp;amp;url=http%3A%2F%2Fag.ca.gov%2Fcharities%2Fpublications%2Fdissolving.pdf&amp;amp;ei=DgScUo66FNHloAScxIDAAQ&amp;amp;usg=AFQjCNHYcR3rzCECMDGg5nkXGSeMsixQpQ&amp;amp;sig2=llAvzkUzWx688pZitZzULA&amp;amp;bvm=bv.57155469,d.cGU&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* Relevant section of California Corporate Code http://www.leginfo.ca.gov/cgi-bin/displaycode?section=corp&amp;amp;group=05001-06000&amp;amp;file=5210-5215&lt;br /&gt;
[[Category:SudoRoom Organization]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=Deep_Flush&amp;diff=9289</id>
		<title>Deep Flush</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=Deep_Flush&amp;diff=9289"/>
		<updated>2015-03-05T06:47:49Z</updated>

		<summary type="html">&lt;p&gt;Matt: creates gallery of flyer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Flyers==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;nolines&amp;quot;&amp;gt;&lt;br /&gt;
File:Deep flush cleaning party raster.png|raster (.png)&lt;br /&gt;
File:Print deep flush cleaning party.pdf|printable (.pdf)&lt;br /&gt;
File:Deep_flush_cleaning_party_inkscape.svg|inkscape (.svg)&lt;br /&gt;
File:Deep flush cleaning party.svg|plain svg (.svg)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
	<entry>
		<id>https://sudoroom.org/mediawiki/index.php?title=File:Deep_flush_cleaning_party_raster.png&amp;diff=9288</id>
		<title>File:Deep flush cleaning party raster.png</title>
		<link rel="alternate" type="text/html" href="https://sudoroom.org/mediawiki/index.php?title=File:Deep_flush_cleaning_party_raster.png&amp;diff=9288"/>
		<updated>2015-03-05T06:44:25Z</updated>

		<summary type="html">&lt;p&gt;Matt: User created page with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{tn|1=Deep flush cleaning party}}&lt;br /&gt;
|date=2015-03-04 22:43:40&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Matt|Matt]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other_versions=&lt;br /&gt;
|other_fields=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-3.0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Uploaded with UploadWizard]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>
	</entry>
</feed>