Making a network for a friend -- did I miss anything?

mach_kernel

Administrator
Dec 26, 2019
23
23
3
New York City
github.com
A buddy of mine was complaining about his wifi being slow, so we decided to set about a project to set up the network at his house. We are trying to keep costs very low. I want to document what we've done thus far and see if anyone has suggestions!

Service: Verizon FiOS 1gbit symmetrical

Needs
  • Lots of clients. Many gadgets + IoT stuff everywhere
  • Several people gaming at once
  • Strong wifi signal everywhere (5GHz and 2.4 for legacy devices and a surprisingly large amount of the IoT stuff with old NICs)
  • Guest networks
  • NAS
  • VPN but only for brief remote access, not for constant use
Equipment decided
Total: $145

--

Flashing the MR18s

OpenWRT shows that if we're lucky, these can be flashed via UART by using the serial console to send it a command to pull firmware from a TFTP server on your LAN. However, you might be running firmware that is too new, which gives you a really stupid error message that we will see in a little bit. The observant will have noticed that this has gone poorly after seeing "JTAG" on our parts list. But I digress.


Setting up

The above adapter is a PL2303 with drivers for everything available here: http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=229&pcid=41 Mac users have Serial app, which has its own userland drivers, but it will not give you the tty device that you need. After installing you should be able to attach by doing:

Bash:
screen /dev/tty.usbserial 115200
Wiring

It seems that the whole thing can start if you also connect VCC. Do not connect VCC with PoE plugged in or you may damage your USB port.

GND
TX
RX
VCC

1582855553695.png


Attempt 1

Looks like we can see it booting:

Code:
__________________sri____________________
944x BootROM Ver. (asic) 1.0 [Nov  8 2011 13:42:57]
_________________________________________
find_hif: bootstrap = 0x31c58
Nand Flash init
hdr: [0xbd000400 : 0xbd000400 : 0x6fb4 : 0xe5c86b84]
nand_load_fw: read 13 pages
nand_load_fw: 0x10000 0x800 0xbd000bf0
nand_load_fw: 0x20000 0x800 0xbd0013f0
nand_load_fw: 0x30000 0x800 0xbd001bf0
nand_load_fw: 0x40000 0x800 0xbd0023f0
nand_load_fw: 0x50000 0x800 0xbd002bf0
nand_load_fw: 0x60000 0x800 0xbd0033f0
nand_load_fw: 0x70000 0x800 0xbd003bf0
nand_load_fw: 0x80000 0x800 0xbd0043f0
nand_load_fw: 0x90000 0x800 0xbd004bf0
nand_load_fw: 0xa0000 0x800 0xbd0053f0
nand_load_fw: 0xb0000 0x800 0xbd005bf0
nand_load_fw: 0xc0000 0x800 0xbd0063f0
nand_load_fw: 0xd0000 0x800 0xbd006bf0
f/w 0 read complete, jumping to 0xbd000400



Meraki Atheros LinuxLoader MR18 built Jan 31 2014 15:53:22
qca955x_init_ddr ok
test_memory ok
D-cache size: 64K
I-cache size: 32K
init_dram_uncached ok
init_icache ok
init_dcache ok
enable_caches ok
test_memory ok
nand_flash_init ok
loading fw at 256
hdr: [0x8e73ed8a : 0x400 : 0x16fee8 ]
part1: Copying image to memory ... ...........
done.
part1: Checking sha1 (from 0x80060000 length 1507048) ... match
part1: sha1 calculated: 3f387c516d74dd96356e306e69763365853d075a
starting stage2
decompressing embedded kernel image 0x81c024f0(0x16d9d9)
got osize 446134
.....................done
starting linux
[    0.000000] Linux version 3.4.113-meraki-ar7100 (jenkins@dal248.meraki.com) (gcc version 4.8.3 (GCC) ) #4 Wed Dec 11 15:43:47 PST 2019
Let's try to see if the ODM command works:

Code:
<Meraki> odm
UNRECOGNIZED COMMAND LOGGED TO CLOUD SERVERS.
<Meraki> odm help
UNRECOGNIZED COMMAND LOGGED TO CLOUD SERVERS.
<Meraki> ^CWARNING! THIS CONSOLE IS LOGGED! UNAUTHORIZED ACCESS FORBIDDEN!
<Meraki> ^C^CWARNING! THIS COWARNING! THIS CONSOLE IS LOGGED! UNAUTHORIZED ACCESS FORBIDDEN!
Nope! Looks like our firmware is too new. Sunk cost fallacy says we have to make these $60 dollars work. Time to do a bad job soldering some wires on:

1582855928240.png

1582855974404.png


Stay tuned for figuring out how to shoehorn the USBJTAGNT configuration into OpenOCD!
 

Attachments

  • Like
Reactions: Elf

Elf

Storybook / Retired, ex-staff
Feb 4, 2019
792
252
63
Mountain West (US)
Whenever WiFi is slow it's worth taking a peek at the spectrum. The signal from the AP may be strong, but in urban areas the interference may also be strong.

Turn off the APs and take a look around with something like inSSIDer.

Also remember that on 2.4GHz there are basically only 3 usable channels: 1, 6, and 11. Anything else will overlap, causing interference. For example if you put one AP on CH 1 and one on CH 4, they would both be interfering with each other.

Put each AP on a different one of those channels. If other people are using that channel or anything in between, they will be talking over you, causing retransmissions / packet loss -> low throughput.
 

mach_kernel

Administrator
Dec 26, 2019
23
23
3
New York City
github.com
Whenever WiFi is slow it's worth taking a peek at the spectrum. The signal from the AP may be strong, but in urban areas the interference may also be strong.

Turn off the APs and take a look around with something like inSSIDer.

Also remember that on 2.4GHz there are basically only 3 usable channels: 1, 6, and 11. Anything else will overlap, causing interference. For example if you put one AP on CH 1 and one on CH 4, they would both be interfering with each other.

Put each AP on a different one of those channels. If other people are using that channel or anything in between, they will be talking over you, causing retransmissions / packet loss -> low throughput.
I'm going to try this out on my local network; I always leave the channel settings to auto thinking that some routers look at radio performance or try to choose a 'best fit'. Is that true or is that a placebo for whatever defaults the manufacturer chooses?

Insofar as OpenOCD -- we have some updates. Cleared my scrollback so no logs, but it seems that I am doing something wrong wiring the 14 pin JTAG from the Meraki to my 10 pin JTAG. I know some things need to be NC but I can't seem to figure it out.

Pinout from my USB BLASTER: https://www.sunrom.com/p/altera-usb-blaster-byteblaster-ii-cpld-fpga-download-cable-jtag-chain-debugger
Pinout from Meraki: https://openwrt.org/docs/guide-user/hardware/debrick.ath79.using.jtag

I also can't tell if my soldering is shit so I bought a clip off of eBay for $6 that will allow me to use the 14pin connector without doing my shoddy solder jobs.
 

Elf

Storybook / Retired, ex-staff
Feb 4, 2019
792
252
63
Mountain West (US)
I'm going to try this out on my local network; I always leave the channel settings to auto thinking that some routers look at radio performance or try to choose a 'best fit'. Is that true or is that a placebo for whatever defaults the manufacturer chooses?
Most of them do try to autoselect, however how good that is can vary wildly. And sometimes there is simply nothing good to autoselect because of how noisy it is! :)
 

cx01

New member
Apr 16, 2020
1
0
1
I'm going to try this out on my local network; I always leave the channel settings to auto thinking that some routers look at radio performance or try to choose a 'best fit'. Is that true or is that a placebo for whatever defaults the manufacturer chooses?

Insofar as OpenOCD -- we have some updates. Cleared my scrollback so no logs, but it seems that I am doing something wrong wiring the 14 pin JTAG from the Meraki to my 10 pin JTAG. I know some things need to be NC but I can't seem to figure it out.

Pinout from my USB BLASTER: https://www.sunrom.com/p/altera-usb-blaster-byteblaster-ii-cpld-fpga-download-cable-jtag-chain-debugger
Pinout from Meraki: https://openwrt.org/docs/guide-user/hardware/debrick.ath79.using.jtag

I also can't tell if my soldering is shit so I bought a clip off of eBay for $6 that will allow me to use the 14pin connector without doing my shoddy solder jobs.

Hi

the OpenWRT wiki has been updated for this device to flash via JTAG port using a Raspberry Pi

https://openwrt.org/toh/meraki/mr18/jtag

I used this method as my device also unable to flash via older methods
 

Cisco kid

New member
May 24, 2020
1
0
1
Holy moly! I have a Raspberry Pi handy with all the fixins and even bought one of these. Will try this evening and report back!
I am in the same boat as you with my MR18. Tried to flash with openocd on a Raspberry Pi unsuccessfully, did you have any luck?
I also have the "USB Blaster" USB JTAG in your photos, did you have any success flashing it with that?
 

stall

New member
Jul 18, 2020
1
0
1
Usb blaster (altera clone), works with openocd.
Connect only
TDI TDO TMS TCK nTRST + 1 GDN.
I used male / female dupon cables without any soldering.
 

mach_kernel

Administrator
Dec 26, 2019
23
23
3
New York City
github.com
I am in the same boat as you with my MR18. Tried to flash with openocd on a Raspberry Pi unsuccessfully, did you have any luck?
I also have the "USB Blaster" USB JTAG in your photos, did you have any success flashing it with that?
As is usual, this is the kind of project that sits on the side until I find time for it again. I was not able to do it with the Raspberry Pi, but I was able to do it with the Altera USB Blaster. Here is a procedure:

  • OS doesn't matter as long as you have the correct drivers
    • *nix: any libftdi is fine
    • Windows: The default WHCQ (or whatever Windows calls their certified drivers) Altera blaster driver will install when you PnP. Use Zadig to replace the driver with WinUSB (https://zadig.akeo.ie/). Find a Windows build of OpenOCD (https://gnutoolchains.com/arm-eabi/openocd/). I have verified the procedure to work the same in both places
  • Wiring
    • OpenOCD will have a log message that says "read all zeros". This means that your wiring is off and you need to revisit your connection.
    • nTRST is the square contact pad. All of the pins you need are on the bottom row
    • If you have connection troubles
The rest of the procedure should work as-is. It's not very reliable. It took me 6 tries on my Meraki before the kernel gave a full boot. Make sure to clear the registers. Halt, clear, resume a few times will get it booting. Best of luck to all of you, and finally this signals the end of the project!
 
  • Like
Reactions: Elf

About us

  • Silicon Graphics User Group (SGUG) is a community for users, developers, and admirers of Silicon Graphics (SGI) products. We aim to be a friendly hobbyist community for discussing all aspects of SGIs, including use, software development, the IRIX Operating System, and troubleshooting, as well as facilitating hardware exchange.

User Menu