TP-Link 1900 ONHUB wont boot with a USB flash connected

Folks
I see an unusual behavior with my TP-Link 1900 ONHUB, that wont boot if it has any USB flash storage attached to it. I wanted to use this USB for SAMBA4 share inside the network. Once it is removed and power cycled, it boots fine.

I have tested this with bot GPT and MS-DOS partition tables on USB.
I have also tested FAT, EXT4, and BTRFS and it just does not go past the blinking lights on the USB.

Is there a work around besides not using the USB port for any storage?

Appreciate help.

I think you can just leave OpenWrt on the USB and run it from there "like when you installed it"
and allocate remaining room for another partition to share

In my layman terms, the first boot is always from USB even if the boot flag is not set on the device?

And, the USB drive, as per instructions will have the factory image and not the regular image. And, then how we can upgrade etc etc.

They could have done their recover better like hold down button to boot on USB
but they didn't they just boot on USB if there, even fall back to Flash would have worked
but they didn't do it that way

the Factory image is the normal image but blank configuration
and the image you copy to internal flash anyway
so it's the normal running OpenWrt and usable

in early versions there was a problem, it would randomly boot off USB or Flash
not sure if this is still the case, but erasing flash would stop this

but if you leave the Flash size partition on the USB as is
and add the rest of the room as another partition

I can't see why upgrades won't work
they should not erase The Master Boot Record "keep your other partition info"
but it's worth checking but just doing a sysupgrade to make sure

This is quiet a commendable accomplishment even with USB glitch.
If we make sda1 of 512MB dd the factory image to it and then keep sda2 as data store, it might work? And, when we upgrade the versions, this 512 MB sda1 will keep the upper lower overlay and behave just like nand or other flash do...

Umm.. Yeah it should..

I think the 4GB file system that it now has would not then be used unless we mount in the /etc/config/fstab.

Fun... I will try it.

Something is not making sense to me, so I'll note how I see it to work
you need a USB stick or HDD bigger then the flash, lest use 32G as an example
copy over the factory image
this should create a drive with a 1st partition the same size as the internal flash
I would just add another to use up the leftover space 12G in this case
so the original partition acts same as the flash would
this would reduce complications with sysupgrades and recovery options

1 Like

I will test this out and report.

I had a quick go to see if it all worked here
but I had forgotten that you need to push the debug button after beep to boot from USB
so I don't think this is workable

Hi Lucky

So, during the boot sequence the router will try and boot from USB if a device is present there but actually not boot since it is waiting for a manual intervention of pushing a debug button?

Make the USB port redundant. Not a big loss but still an interesting discovery.

I wonder what would it do if I plugged in a wifi or a blue tooth dongle or a printer to the USB.

Anil

It is a bit disappointing, I never got much into it after finding out it was only USB 2
I can't find it at the moment, but there was a way of changing boot flags in the EEPROM
it was on the form here but can't eve think of a search term to look it up
i think it was about removing the boot beep etc

you could try other devices print server would be ok
I would not be surprised that it already has Bluetooth in it
I think it had all sorts inside never activated

Ummm...It has a speaker 3w (Sort of Amazon echo style, I suspect). It has a bluetooth, zigbee chip and USB 3.0

But we are using as a gateway and so a lot of those items are not that critical and distracting!! LOL.

I gave it a quick try. I just does not like any USB device in it at boot. After boot, it will accept whatever you give it there.

I was using mine as asterisk VoIP server has lots of ram & flash
would be good for firewall/ AdBlock also

1 Like

Interesting. You were using asterisk on openwrt? That, for me, is unique way to use the openwrt. Although I realize that it is a linux system under the wrapper openwrt.

Asterisk is just another routing protocol
it's fine for simple home applications
we no longer have fixed phone lines here
but for making 2 sip connections ring your phone
or more than 1 phone to a sip connection
I have a mini pc doing my routing and asterisk etc atm
pc was eases way to route 1G internet connection
routers are setup as dump access points for wifi

1 Like

The Onhub can only run OpenWrt by using developer mode. So it will always probe USB as part of the developer mode boot sequence. Unfortunately that makes it difficult / impossible to have something plugged in permanently. Once the router has booted OpenWrt / linux takes control of the USB port and it will work fine. More info can be found in the original forum post about the device:

https://forum.openwrt.org/t/onhub-tp-link-tgr1900-future-support/17899

Depends on how far you want to go, but this is what I was thinking of
there maybe options for booting here

You might have a point there. If you get the crossystem tool working, you might try running crossystem dev_default_boot to see what it says. If it says usb, then maybe you can get things working by crossystem dev_default_boot=disk.

I don't remember what the defaults are at the moment, and IIRC, I tweaked my own systems already to use disk.

1 Like

Hmm, my systems use disk, but this issue occurs for me regardless of whether it's set to disk or usb. I'm thinking maybe the stock bootloader isn't respecting that setting properly. It wouldn't be surprising, with such an old bootloader, and considering this (developer mode) isn't the production use case.

On the other hand, I'm not seeing the issue reported here with non-USB-disks:

I can boot with WiFi dongles, USB hubs, and Ethernet dongles attached. I wonder if maybe there's a bootloader update/fix involved, and some of you don't have it? Here's my firmware version, in case anyone gets crossystem running and wants to compare:

# crossystem ro_fwid fwid; echo
Google_Storm.6315.40.0 Google_Storm.6315.91.0

I have a spare unused, but flashed with openwrt, device.

If you'd give me a pointer, i can try it. It is not listed in the system >> software area.

Anil