Unable to flash (vanilla) OpenWRT on AR300M


As there’s no vanilla OpenWRT images, I’ve build myself one, using the code from GitHub - domino-team/openwrt-cc: openwrt CC with Domino/GL patches and as result I got the openwrt-ar71xx-nand-gl-ar300m-ubi.img.

Sadly, I am not able to flash it. The Stock WebUI does not work with ubi images, when I rebooted it to the uboot’s WebUI it did not worked either (actually, even the stock ubi image did not worked). I’ve got connection reset by peer from the browser. I’ve also tried to do it with curl, thinking that my browser is broken, but I also got ‘curl: (56) Recv failure: Connection reset by peer’

So the question is, how can I get vanilla OpenWRT running on AR300M?

Also, do the openwrt-cc repo have the scripts that will reset the uboot’s boot count to 0, preventing from running into NOR every three reboots?

And last question, can you guys please publish the .config of your OpenWRT builds along the firmware on GL.iNet download center? That would help a lot, for people who want just fully working builds, but customize them a bit (like in my case, drop all the LuCI/any other webui).


I encountered the same thing… You need to enable the LuCl web frontend in menuconfig. Unless you do that you’ll be stuck with only command line access to the router.

Only-commandline access is what I want, I do not want to have any UI as the UI hardly support wireless client modes and so on. Currently I cannot flash the .ubi.img over the Uboot WebUI as as soon as I choose the image, it dies with ‘reset by peer’ in firefox and via curl.

I also failed to google how to use uboot console, over usb-uart, to flash the nor/nand firmware, if anyone have the details, please share.

In case more details is needed, this is how curl acts when I try to update firmware via uboot web interface

% curl -v -F firmware='@openwrt-ar71xx-nand-gl-ar300m-ubi.img' * Trying * TCP_NODELAY set * Connected to ( port 80 (#0) > POST /index.html HTTP/1.1 > Host: > User-Agent: curl/7.50.3 > Accept: */* > Content-Length: 8388841 > Expect: 100-continue > Content-Type: multipart/form-data; boundary=------------------------751226350f96bd5f > * Done waiting for 100-continue * Recv failure: Connection reset by peer * Curl_http_done: called premature == 1 * Closing connection 0 curl: (56) Recv failure: Connection reset by peer

I ordered the usb-ART converter, so if possible, I’d like to knew how to flash the nor and nand images using tftp + uboot command interface.

Thanks in advance.

  1. When you upgrade from our stock web UI, use the file with .rar in the name, don’t use .img. The firmware will not accept it. If you force to upgrade using shell, the device will brick.
  1. When you upgrade from uboot webUI, use the one with .img in its name. Don’t use the .rar one. Don’t use windows, use Linux or Mac. Sorry for this. The Connection reset by peer is caused by windows.

  2. When you use our repo (yes, you are) the firmware will reset the count to 0 everytime to ensure you will boot into nand, not Nor

  3. I can share the .config, but it is not working for most of the people, as we have a lot of pre-configured files and scripts as well. The .config file just choose the packages but don’t ensure the firmware works.

In regards to “4”, I think you’re going to find that this is what people are actually asking for.

There’s a myriad of packages. Too many to realistically keep track of and OpenWRT/LEDE doesn’t fully and properly keep track of dependencies.

It’d be a great framework, if you could click “make me a router” and then have it select the right stuff. OE and LTIB do this sort of thing in the large. You need to know PRECISELY what you’re doing and what you’re wanting for you to even make a valid build…if it’s building it right (which, sadly, is two differing things like you observed…)

In the end, we kind of halfway need the package set you’re choosing for the firmware you guys are building- which needs a .config of sorts defined for the stuff that’s not related to the GLi UI that goes into the stock firmwares.

As an example…everything rocks on the stock firmware on my GL-AR300M…save for the fact that it doesn’t work with my QMI based 4G dongle. Doesn’t see it, etc. even though a Cradlepoint from AGES ago does. Was going to forego the nice UI and use the raw “advanced” LEDE build and make it work or get it to where I could honestly finish the deal on my own.

Simple, right? Especially for someone that builds Embedded Linux stuff as his day job for the last 20+ years (There’s a SOLID hint there…)

Wrong. 12th build. 12th fail. There’s entirely too many moving parts for anyone except someone that KNOWS OpenWRT like the back of his hand to deal with. There’s no dependencies to help you make a valid pairing of packaging. There’s no metadata out there to TELL you you can’t pick <X> and without all the piece parts, it just simply won’t work.

A little help for the people that don’t have to or choose to live this stuff would be graciously accepted and appreciated.

I will think what we can do to make compiling the firmware easier.

But it is NOT simple. When moving to LEDE we found that all our UI don’t work at all. There are some code need to compile again and we spend quite a lot of time to debug. You cannot easily change the firmware with customization. Every time we release a firmware, we compile thousands of times and test.


Well, I was just asking for the baseline set of packages as a .config or similar that let someone produce a build of what you’re building without the easy UI. It’d also make for baselining your full builds a bit easier.

All of this just hammers home that OpenWRT and even LEDE is much, much more fragile than LTIB or OpenEmbedded. Thing is, none of them have all the recipe sets gelled as a layer for you to work with (Else I’d be just working with that instead of pestering you. :D) I’ll check into where things are on OE and if they’ve got machine defs added for your targets or not.