So, I've read this entire thread 3 times. I can tell something INCREDIBLY
COOL has happened. But even though I'm fairly familiar with the mesh
project and general networking stuffs, the part I can't figure out is...
...WTF HAPPEN?
Can somebody have another crack at that tl;dr summary? :P
-Pete
[[User|Peteforsyth]]
On Wed, Mar 26, 2014 at 6:53 PM, mattsenate(a)gmail.com
<mattsenate(a)gmail.com>wrote;wrote:
Thanks to this hack, we should be able to use a
noisebridge-donated lot of
~200 sparky routers for
https://peoplesopen.net/
Cheers!
// Matt
----- Reply message -----
From: "Adrian Chadd" <adrian.chadd(a)gmail.com>
To: "mesh(a)lists.sudoroom.org" <mesh(a)lists.sudoroom.org>
Subject: [Mesh] So, about those Meraki Sparky boards
Date: Wed, Mar 26, 2014 18:34
A little drinking at Noisebridge and some poking from JC got me
thinking about the Sparky boards. So I came up to Sudo and worked with
Marc to figure it out.
The TL;DR version: It's an AR2317 and you have a watchdog timer, but
it doesn't actually reset the unit. It just posts an interrupt. It
turns out GPIO6 is the "pat to stop it resetting" line.
So, the details:
I first did "help" at the redboot prompt. I found "bdshow", which is
the "Atheros board info."
RedBoot> bdshow
name: Meraki Outdoor 1.0
magic: 35333131
cksum: 2a1b
rev: 10
major: 1
minor: 0
pciid: 0013
wlan0: yes 00:18:0a:50:7b:ae
wlan1: no 00:00:00:00:00:00
enet0: yes 00:18:0a:50:7b:ae
enet1: no 00:00:00:00:00:00
uart0: yes
sysled: no, gpio 0
factory: no, gpio 0
serclk: internal
cpufreq: calculated 184000000 Hz
sysfreq: calculated 92000000 Hz
memcap: disabled
watchdg: disabled (WARNING: for debugging only!)
serialNo: Q2AJYS5XMYZ8
Watchdog Gpio pin: 6
secret number: e2f019a200ee517e30ded15cdbd27ba72f9e30c8
.. hm. Watchdog GPIO pin 6? What's that?
After manually checking out the watchdog registers via 'x', we
discovered that it would count down to 0 and not reset.
So, hm. Maybe the GPIO 6 wire is actually the right thing to pat. And
yes, the board doesn't reset when you pat GPIO 6.
Board: ap61
RAM: 0x80000000-0x82000000, [0x8003ddd0-0x80fe1000] available
FLASH: 0xa8000000 - 0xa87e0000, 128 blocks of 0x00010000 bytes each.
== Executing boot script in 2.000 seconds - enter ^C to abort
^C
RedBoot> # set direction of gpio6 to out
RedBoot> mfill -b 0xb1000098 -l 4 -p 0x00000043
RedBoot> x -b 0xb1000098
B1000098: 00 00 00 43 00 00 00 00 00 00 00 00 00 00 00 03
|...C............|
B10000A8: FF EF F7 B9 7D DF 5F FF 00 00 00 00 00 00 00 00
|....}._.........|
RedBoot> # pat gpio6 - set it high, then low.
RedBoot> mfill -b 0xb1000090 -l 4 -p 0x00000042
RedBoot> mfill -b 0xb1000090 -l 4 -p 0x00000002
.. then I manually did this every minute or so.
RedBoot>
RedBoot> mfill -b 0xb1000090 -l 4 -p 0x00000042
RedBoot> mfill -b 0xb1000090 -l 4 -p 0x00000002
RedBoot> mfill -b 0xb1000090 -l 4 -p 0x00000042
RedBoot> mfill -b 0xb1000090 -l 4 -p 0x00000002
.. so, the solution here seems to be to "set gpio6 to be output", then
"pat it every 60 seconds."
-a
_______________________________________________
mesh mailing list
mesh(a)lists.sudoroom.org
https://lists.sudoroom.org/listinfo/mesh
_______________________________________________
sudo-discuss mailing list
sudo-discuss(a)lists.sudoroom.org
https://lists.sudoroom.org/listinfo/sudo-discuss