Problem With WRT54GL Router

Home » CentOS » Problem With WRT54GL Router
CentOS 18 Comments

I have a curious problem with an old WRT54GL router, which I use as a WiFi access point on my LAN:

Internet->ADSL modem->CentOS-7 computer->WRT54GL router

The router has always had a slight problem of losing connection every so often –
it used to be every couple of days, but recently it has become much more often.

My cure was always to disconnect the power from the router for 10 seconds or so, and then re-connect it.

Recently I discovered that running the following script on the CentOS computer seems to solve the problem (for a while)

sudo systemctl restart dhcpd
sudo systemctl restart network
sudo systemctl restart shorewall

(I suspect the first, dhcpd, is irrelevant.)

Incidentally, I am able to ping laptops on the LAN
(but not the other way round)
even when the router is in its “bad” state.

I wonder if anyone has had a similar experience, and can offer advice?

I don’t like to examine the internals of the router, in case it stops working altogether. I’m planning on getting another router (N protocol), so it is not a very serious matter –
I’m just puzzled by it.

Timothy Murphy
e-mail: gayleard /at/ School of Mathematics, Trinity College, Dublin 2, Ireland

18 thoughts on - Problem With WRT54GL Router

  • I had a similar problem with the same router.

    I created a cronjob in the webinterface, that it was rebooted once a day. After that, the router was more stable.

  • Chris wrote:

    How did you reboot the router, as a matter of interest. Is there any of doing this from an ethernet-connected computer?

  • I have to say that though I hear other people speak of their routers needing frequent rebooting, I’ve never had such a problem, though I have to admit that I’ve only ever owned two routers.

    The first of th em was a WRT54GL, and it ran fine. It would run for months, and only get rebooted after a power failure, or when changing things in its UI that required it reboot. I ran the factory firmware for a year or two then switched over to DD-WRT, and again never saw that kind of problem.

    Just wondering if you’ve ever done a firmware update? sometimes even the manufacturer will issue a bug fix firmware update, shocking as that may seem! :)

    After five or six years, it suddenly decided it didn’t want to retain any of my settings across a reboot, and it was a huge pain to reset all the settings I had made, without notice, whenever it decided to drop them all. So I bought an ASUS RT-N16 and put the Linksys aside for a while.

    Subsequently, someone else I knew needed a router for guest network access, and I fired up the WRT54GL and reinstalled latest Linksys firmware and it has been running fine ever since (couple of years, more or less).

    Wish I could offer some actual help! :)

  • Don’t you mean:

    Internet->ADSL modem-> WRT54GL router -> CentOS computer


    Yeah, I’ve had this problem with my android phone connecting to my home-brewed access point (a Raspberry Pi with wifi dongle and running Raspbian, a Debian derivative). The problem I was having however– what I discovered from pinging the router from the phone over several-minute periods– was that increasing numbers of packets were being dropped, so many that android would eventually declare that the connection was lost.

    So you might want to try pinging the router… continuously for ten minutes at a time to see if packets are being dropped, as this can lead to a “connection lost” error message.

    This problem was resolved after some software on the phone was upgraded and the phone was rebooted… at least I haven’t had the same problem now for several months. I can’t say which of those two actions fixed the problem as I did both at effectively the same time.

    The odd thing was that I never had a connection problem between the phone and a variety of other access points– public APs. This might have been because the phone was never connected to them for days on end like it often was to my home AP (the RPi). So the “connection loss”
    might have been due to bad code which only very gradually led to packet loss, then to increasing packet loss, and that to Connection Lost.

    Did you switch to dd-wrt *after* heartbleed was fixed?

    I’d agree with this, especially considering heartbleed. And for-profit companies normally don’t expend resources (which reduce profits) to issue software updates without good reason– “business reasons”.

  • ken wrote:

    Do you mean a Linksys update, or WRT update?
    I don’t think there has been a Linksys update for years. I’ve never tried updating WRT, is it possible?

  • Both (as each is relevant to a different situation), although of course the term “business reasons” obviously doesn’t apply to dd-wrt.

    From what I’ve read on the dd-wrt forums, some of its distributions contain code which is vulnerable to heartbleed, so you might want to check the version installed on your router.

    As far as I know, the only way to update this firmware is to get an updated version of it and install it on top of (overwriting) the previous firmware version in pretty much the same way as you installed dd-wrt on top of the commercial firmware that came with the router. In short, you’re just doing the install again with a newer firmware version.

  • Well, I think it wasn’t the genuine firmware, but dd-wrt. There’s a cronjob menu in the webinterface and you can also edit them by telnet.

  • Chris wrote:

    Thanks for your response. But have you actually done this?
    If so, could you be a bit more explicit, please?

    I was just looking at my dd-wrt router’s web-page, and I see that Remote Access is disabled in Administration=>Management. Probably that is why I don’t seem able to access it with telnet;
    and even if I could do, I’m not sure I would know how to edit a file with telnet …

    When I have a little time, I must read up on dd-wrt’s documentation.

  • Remote Access means that you (or anyone else who knows the password)
    can log in to the router from the WAN, i.e., the outside as compared to your LAN or inside, of the router and do whatever they want. It is safest to always leave that as disabled if you don’t have some overriding reason to allow it.

    Been a while since I’ve used dd-wrt, so I don’t swear this is full truth, but I think there are options in the UI for enabling or disabling telnet and/or SSH. The default settings (if you haven’t changed ’em) ought to be enabled for telnet and disabled for SSH, but of course you can change
    ’em to suit your needs.

  • Yes, I’d agree with all of that. Unless there’s a compelling reason for accessing the router when you’re away from its LAN, it’s much safer to leave Remote Access disabled.

    SSH is much more secure than telnet, so it’s better to disable telnet and enable, and use, ssh.

  • Timothy Murphy wrote:
    cronjob menu in the webinterface and you can also edit them by telnet. even if I could do, I’m not sure I would know

    ??? You don’t edit files with vi?

    Also, enable ssh, verify that it works, then disable telnet. And, if you’re not worried about connecting from random locations, but only from inside your internal network, you can block outside remote access.

    dd-wrt’s “documentation”? It’s as accurate as any other documentation that’s been desultorily, in someone’s spare time, updated over the last 10
    years, and old and obsolete info not deleted….

    mark “take your cmts re emacs to alt.religion.editors”

  • Can you describe from 0 what the network looks like?
    What are you using the WRT54GL for? as a AP? as a ROUTER?
    What device is the PPPOE connection initiator?
    Did you tried to use static IP address instead of dhcp?
    Can you access the device interface?

    What actually the DD-WRT gives you that the basic firmware do not?(a side question)

    Thanks, Eliezer


  • Also, is this an old WRT54GL from several years ago, or is it the new model they’re selling now? They’re probably different, and I
    recall reading somewhere recently that the reviewer (whoever it was)
    didn’t think the new one was very good. Sorry, I have no more specifics than that.

  • Eliezer Croitoru wrote:

    As an Access Point:

    Internet -> Modem -> CentOS-7 server -> WRT54GL

    Dhcp is running on the server, not the WRT56GL.

    I’m not quite sure what you mean by “the device interface”. I can access the WRT54GL’s web-page, and modify it if I wish.

    I’ve no idea; the router was already running dd-wrt when I acquired it.

  • Fred Smith wrote:

    It’s several years old. Actually, I have two of them, on different servers. One is in another country, so I reluctant to play with it too much.

    I’ve never really looked into the dd-wrt software;
    I hope to study the documentation fairly soon.

  • wrote:

    I do edit files with vi.

    But you said “There’s a cronjob menu in the webinterface and you can also edit them by telnet”, which I took to mean edit the crontab files with telnet.

  • Then now I am a bit confused. You wrote that the router has a slight problem.

    The router can be the CentOS machine or the WRT54GL, choose please

    If you can access the WRT54GL device web page the issue is in another level.

    Where do you have the issue??
    – – on machines behind the WRT54GL?
    – – on the CentOS server?

    What ping has to say about the status of the connection between the WIFI clients and the server? and the WRT54GL?
    (I was reading the first post and didn’t got it yet)

    Since the three dhcpd\network\shorewall do resolve the issues it can be more then one problem.

    You can get the output of:
    iptables-save ip link ip addr dmesg

    I would also look at the basic system logs to see if there are any hints about the issue.

    I had a similar issue with a CentOS 6 not long ago and the NIC was going up and down. When I replaced to newer kernel it got fixed.
    (tested couple times over a very long period)

    What nic are you using there? Is there any switch over there between the WRT54GL and the Server?

    Thanks, Eliezer


  • Eliezer Croitoru wrote:

    I would not refer to a computer as a router just because it is running dhcpd. I was referring to the WRT54GL, as I think was obvious since I said “my WRT54GL router”.

    The problem with this device is that it sometimes loses WiFi connection. Many other people with this router have said the same thing.

    On the laptops and other devices (camera, TV, smart phones)
    behind the router. The CentOS server continues to work. And I can access the router web-page from the server. That is why I was asking if there is any way of getting the server to “wake up” the router.

    Actually, I can still ping the router (from the server)
    even when it has lost WiFi connection.

    The problem is in the router. Everything else works fine. Also the problem is easily solved by disconnecting and re-connecting the router. The difficulty with this is that the machine is in another country.

    There is nothing relevant in /var/log/messages on the server. On laptops and phones there are the messages one would expect –
    eg NetworkManager says at great length that it has lost connection.

    The server is an HP MicroServer, The ethernet card on the router link is Broadcom NetXtreme BCM5723
    (according to lspci).