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
Meshers,
I've just launched a meetup group for anyone in the Los Angeles area who
wants to get involved in our local mesh movement. People of all experience
levels and skill sets are welcome.
Join us: http://meetup.com/lamesh and forward this to anyone who might be
interested!
Best,
Jeremy
Hey folks,
I'm going to be testing a hypothesis tonight:
Instead of coming to the meeting I'm going to try to spend that time
working on the mesh project I've assigned myself. I haven't been that
good at getting my work done while at sudo, so I'm going to give this
approach a shot. I really want to get this exit node captive portal
thing DONE!
I'll be on IRC and I'll keep an eye on the etherpad.
Have a good one,
Max
Hey everyone,
Thought some of you might be interested in this conference call regarding
community owned ISPs, happening this Thursday. The speakers have mostly
worked with municipally owned networks, but I think a lot of the lessons
would transfer to a consumer-coop ISP. Here are details:
http://www.communitymatters.org/event/community-broadband-networks
Been a pleasure getting to know the crew in SudoRoom, and look forward to
seeing where things are at when I'm back this summer. And hopefully I'll
find people excited about getting People's Open Net up and running in North
Carolina by then. Keep on Meshing!
Jacob