Homehub5 DSL doesn't always seem to init the DSL modem

I have a couple of HomeHub 5's running Openwrt bought off ebay.

One of them I've noticed doesn't always seem to init the DSL modem when it's powercycled / Rebooted.

Tried loading a newer DSL firmware but still same issue, last time it happened I ssh'd in and executed a /etc/init.d/dsl_control restart which bought it to life, doesn't seem to matter if I change the DSL settings or not.

Modem state ends up in L3 - No Power / Line State: DOWN [0x200: silent]

Not sure if the other one has the same problem as haven't had it long enough yet to find out (It worked when I plugged it in).

Once the modem decides to work it seems stable, it's just getting it to start in the first place that seems a bit problematic, not sure if it's a hardware issue or just a timing issue so was wondering if anyone else had seen this problem.

The troublesome router was on 19.07.4 but I recently upgraded it to 19.07.5


Interesting one of the DSL firmware's that doesn't sync at all on one of the homehub's works fine on the other one, Both lines connect to the same DSLAM and have the same VDSL profile so that's a little odd. Wonder if it's a hardware revision or maybe one of the modems is a bit iffy.

More likely hardware damage of an individual device, the modem hardware tends to get rather warm and these devices usually run for years.

same issue with tplink td-w8970 (same dsl hardware), dsl connection is rock solid, but if i reboot for an upgrade, power loss, whatever most of the time the dsl line restart correctly but some times just doesn't and stay in "no power" forever until a reboot/power cycle (19.07.5). also if i unplug and re-plug the dsl cable it will not resyc, i must try to /etc/init.d/dsl_control restart or reboot/power cycle. there was another thread on this:

If someones feeling brave they can try this script, I'm by no means an expect in bash/ash but I think it will work, the idea being to cron it.

It seemed to kick the modem when the line was unplugged, that said I only tried a couple times because if I keep re-syncing my line I'm liable to incur the wraith of the telcos overzealous dynamic line management system and have my broadbnad speed reduced. (It may increase the N/M or change settings due to the number of re-syncs)

 DSLSTATE=$(/etc/init.d/dsl_control status | /bin/grep -o silent)
 if [ "$DSLSTATE" == "silent" ]
 sleep 15
 echo "dsl line silent"
 echo "dsl line doing something"
 echo "aborting... nothing more for me to do, DSL modem doesn't need kicking"
 exit 0
echo "Dsl line still silent"
echo "giving the DSL modem a kick"
/etc/init.d/dsl_control restart

Edit: Script update

Sadly, few days ago I had to give up on using it once and for all, since it didn't feel reliable in a couple of real-need occasions (not reconnecting on the first - the first! - unplugging/replugging attempt after weeks of uptime).
I wouldn't know how to investigate it further, or maybe it's just something damaged like @slh says... who knows...

Hi, iirc I didn't try a dsl_control restart. Does the script actually work? It will take some time until I can experiment with the BT modem again... It was enough for now :smiley:

Script can be improved, it doesn't need to check the state 4 times if it's synced, I'll update it.



What it should do is query the DSL modem status and look for the word silent (which is shown if the DSL line is down, not trying to sync.etc) if it finds the word silent it will increment a counter and sleep 15s

If after the counter reaches 4 the state is still silent it will try restarting the DSL modem.

Note the script is not clever enough to know the cause of the line being silent so if the line has died or someone has unplugged it then it will just constantly restart the DSL modem everytime it's run.

I've added it to the cron on my HH5's to run every 5mins so far i've not noticed any issues.