No connection after install to Edimax EW-7478APC

Hi all, I'm new around here so forgive me if I'm missing something obvious. It's 6am and I'm 12 hours into failing, I think it's time I asked for help :wink:

TL;DR can't SSH no IP address to hit, pls help.

I've installed OpenWRT to this new AP (because the stock firmware left a lot to be desired), following the instructions to reset to factory defaults and upload via the web interface, and after the device reboots there's no network connection to SSH into it. The AP isn't attempting to obtain an address via DHCP (ran packet capture on the server), and I've tried connecting with a workstation connected directly with hardcoded addresses in the 192.168.1.1/24 and 192.168.2.1/24 networks (I saw doco with either 1 or 2 as the third octet so I tried both), as well as the last address/network it had prior to the install (since the thing seems to retain a lot of settings through the install). I've done each of those on each of the ethernet ports (in case only one was actually active). No joy. It's negotiating the ethernet connection to the correct 1Gbps but I'm not seeing any ethernet traffic at all.

I'm honestly not sure if the firmware is simply not working or if I'm doing it wrong, but I'm starting to think it's the former.

Any advice would be appreciated.

For the record and future searchers, there aren't instructions recovering the original firmware, so here they are in TL;DR form:
Configure the workstation to have IP 192.168.1.11, subnet mask 255.0.0.0 (/8), gateway 192.168.1.6
Disconnect power to the AP, hold the reset button in, and connect the power. You'll see the LEDs light and start flashing, then release the reset button. All of the LEDs will light up solid when it's ready. It will stay that way for over 20 minutes, no rush!
Follow the TFTP recovery instructions from there, ie:
tftp 192.168.1.6 69
connect 192.168.1.6 69
binary
put <path to file with fixed perms/owner>
It will give you a message telling you how many bytes it transferred
Wait patiently. It'll reboot by itself and be normal out-of-the-Edimax-box any minute.

I have no clue about the device and it's specific clips to get openwrt on it. So I can only provide general help nothing specific.

Your description sounds to me that the device is bricked and flash failed as you cannot obtain any IP.

You have two options:
Try to flash back original firmware or openwrt firmware again (if possible).

First I would try if edimax.setup can still be reached.

In the description there is a passage:

Download the sysupgrade.bin file.
Power on the access point and connect to it via wifi as explained in the access point's original manual: the SSID of the WiFi is edimax.setup, which is not encrypted and the address to browse to is http:edimax.setup, the default user name is admin and the password is 1234. If you do not want to follow the normal setup of the router via the setup assistant as described in the manual, you can directly go with your browser to http://192.168.2.1/index.asp. In the routers main menu, go to the upgrade page and upload the downloaded sysupgrade image onto the router.
1 Like

Thanks for the advice. I've tried both. I'm actually wondering how many times I can flash and re-flash it before I'm wearing the ROM thin. Probably a lot, but I'm mildly paranoid :wink:

Flashing back to the original firmware is successful but takes me back to the original firmware which is marginally better than a brick....marginally :wink: Still, it's nice to know I can get it back to scratch. Once I took it back the first time (it's been a few now) I reset it as per that quote, just to be doubly sure, and there's no change.

Since the device seems to retain settings even through the firmware installation, I'm actually wondering if resetting it to defaults is part of the problem. Perhaps if I had it setup as a router, it'd actually have an IP address configured.... Then again, it isn't trying to set one as a DHCP client, so it's a stretch.

Flashing openwrt works in the same way as described above when installed via the web interface. I figured it was a failure to upload but having done it via TFTP I'm less confident of that and suspect it's more likely the firmware itself. It is a snapshot after all, so I expected some issues, but nothing this bad...

edimax.setup is gone, that name referenced an IP assigned by my network's DHCP server and that address is not responding and there's no new lease taken from that server (or even attempted to, there's no traffic, not even ARP)

When the OpenWRT firmware is installed, I get the power LED and the wireless LED, so I had hoped there would be a wifi network available, but no joy there either.

As often you need. I know units <10 years still running heavily flashed the first years of their usage. But you never know it for sure (overall quality, faulty flas batch, etc).

Sorry I can't help much with flashing this specific unit.
Are you flashing over GUI or commandline on the device?

Maybe using the mtd approach mentioned in the wiki will help you out.

Oh well it's nice to know I can keep pushing it around for a while yet, thanks for putting my mind at ease there.

I've tried both the GUI and uploading via TFTP. Sadly I never get a chance to use mtd since I never get anything with a shell.

@kobi I hope you don't mind that I tag you here, it's just that as far as I can tell you're the person who made the wiki entry and are one of very few who's had this device working. Help me Kobi Wan Kenobi you're my only hope.

For what it's worth, I've done a fair bit of C on embedded devices (mostly factory automation and some phones) and am not averse to opening the thing up, and have old machines around with serial ports if it comes to that (although JTAG is out of my price point right now). I'm very keen to get this thing working, especially if I can help to get it in mainline instead of snapshots for the benefit of all, and I feel like I have the general experience to make it happen, but I'm a noob to OpenWRT so I may need a little direction.

As you can revert without any issue every time I would assume that the firmware is faulty. Maybe there is a bug in recent builds. You could try older builds if available. For me the wiki site looks like copy and paste with generic stuff without any device specific hints for the device itself. :confused:

That's what I'm thinking - there haven't been any patches of any significance since the device was working for others (circa July 19 so 1 year ago), at least specific to this device - so I guess what's happened is that something not specific to this particular device (eg a kernel module or whatever) was updated and that broke this particular device but it went unnoticed.

Trouble is, it's only supported on snapshots and as best I can tell they're all lost every night, so I guess I'd need to build from the old source?

Edit: Just for future reference for search engine travellers - this device has a great deal in common with its older sibling, and much of what applies to that, applies to this... so if the documentation is sparse, you can try to fill in the gaps with this: https://openwrt.org/toh/edimax/edimax_br-6478ac_v2

Your device link is wrong. This should be the right device (according to your topic):
https://openwrt.org/toh/edimax/edimax_ew-7478apc

This is possible. But I'm unsure if it is worth to do for a 4MB flash size device.

https://openwrt.org/supported_devices

DO NOT BUY DEVICES WITH 4MB FLASH / 32MB RAM if you intend to flash an up-to-date and secure OpenWrt version (18.06 or later) onto it! See 4/32 warning for details.

1) 4/32 devices do not have sufficient resources (flash and/or RAM) to provide secure and reliable operation. See OpenWrt on 4/32 devices what you can do now.

2) OpenWrt support for 4/32 devices will end after 2019. After 19.07, no further OpenWrt images will be built for 4/32 devices. See OpenWrt on 4/32 devices what you can do now.

It could be simple a size/RAM problem which is not recognized by an developer because nobody is using and/or reporting bugs for this old devices anymore.

EDIT:

NVM ... I was thinking that flash size is limited. But it has 8MB flash size. So forget about above.

EDIT2:

Is this release working (it is not a snapshot, it is a recent release from may)?

https://downloads.openwrt.org/releases/19.07.3/targets/ramips/mt7620/

If not you could try to make a bug report here: https://bugs.openwrt.org/

It's OK I've been using the doco you linked. That other link is the for the older model which is practically the same, which has a lot in common with the 7478, so some of the documentation at that other link can be handy. It's actually part of how I managed to figure out the recovery process.

I see what you mean about the flash size. I had actually read that page already, but misinterpreted it - when I read 4/32 I read is at 'both 4 flash and 32 ram' rather than 'either 4 flash or 32 ram or both'.... Perhaps that page could do with more definitive wording?

But as far as I can tell from here it's an 8/64MB device... I think?

I got the tag and am just now testing by going back to the stock firmware and then installing OpenWRT from scratch.
The device has 64MB ram and 8GB flash. This is what happens on the serial console when you start recovering the OEM firmware:


U-Boot 1.1.3 (Feb 24 2015 - 13:04:02)

Board: Ralink APSoC DRAM:  64 MB
relocate_code Pointer at: 83fb4000
enable ephy clock...done. rf reg 29 = 5
SSC disabled.
spi_wait_nsec: 29 
spi device id: c2 20 17 c2 20 (2017c220)
find flash: MX25L6405D  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Flash has 64MBit
raspi_read: from:30000 len:1000 
raspi_read: from:30000 len:1000 
============================================ 
Ralink UBoot Version: 4.1.2.0
-------------------------------------------- 
ASIC 7620_MP (Port5<->GigaSW)
DRAM component: 512 Mbits DDR, width 16    <<<<<<<<<<<<<<<< RAM in bits
DRAM bus: 16 bit
Total memory: 64 MBytes                                  <<<<<<<<<<<<<<<< RAM in bytes
Flash component: SPI Flash
Date:Feb 24 2015  Time:13:04:02
============================================ 
icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768 

 ##### The CPU freq = 580 MHZ #### 
 estimate memory size =64 Mbytes
#Reset_MT7530

Please choose the operation: 
   1: Load system code to SDRAM via TFTP. 
   2: Load system code then write to Flash via TFTP. 
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   5: Load ucos code to SDRAM via TFTP Client. 
   7: Load Boot Loader code then write to Flash via Serial. 
   9: Load Boot Loader code then write to Flash via TFTP. 

raspi_read: from:40028 len:6 

   
5: System Load Boot Loader | F/W  then write to Flash via TFTP Client. 
 Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N)
 Please Input new ones /or Ctrl-C to discard
        Input device IP (192.168.2.81)  Input server IP (192.168.2.89)  Input Linux Kernel filename (ramdisk2.bin) 
 netboot_common, argc= 3 

 NetTxPacket = 0x83FE6180 

 KSEG1ADDR(NetTxPacket) = 0xA3FE6180 

 NetLoop,call eth_halt ! 

 NetLoop,call eth_init ! 
Trying Eth0 (10/100-M)

 Waitting for RX_DMA_BUSY status Start... done


 ETH_STATE_ACTIVE!! 
(NetLoop 408) bd->bi_enetaddr = 00:00:aa:bb:cc:dd
(NetLoop 409) NetOurEther = 00:00:aa:bb:cc:dd
Select server or client model: 1/2
server model start
SERVER IP address : 192.168.1.6 port:69
Load address: 0x80a00000
Loading: *

1 Like

Hmmm, just some obvious checks at this point:
After installation of OpenWRT, you have connected it to your laptop/computer with an ethernet cable in one of the YELLOW ports, right? The blue one is wan and OpenWRT does not allow you to connect from that one to the router via ssh by default. Also the IP address of your laptop is e.g. 192.168.1.2 and you are connecting to the router with ssh 192.192.168.1, right?

Thanks so much for looking into this.

Yes I used the yellow ports (tried each of them as well as the blue one, just in case I was doing it wrong) and tried 192.168.1.1 (among others), to no avail. Thanks for checking, now I know those are the correct settings I will not waste time trying others :slight_smile:

OK. So there seems to be a problem with the yellow ethernet port 4 under OpenWRT (now?). Could you try the one marked 1. Also try to plug the ethernet cable in and out once from port 1 after booting.

I can confirm this: Yellow port 4 does not work with the latest snapshot, however if you connect your laptop to port 1 and boot the router connecting to it at 192.168.1.1 should work, no need to unplug/plug the cable.

Sadly I'm getting 'no route to host'. Just to be sure, by port 1 you mean the one closest to the USB port?

Yes, port 1 is the one closest to the USB port. Ports 2 and 3 also work. Port 4 does not, it is somewhat special on the MT7620 chip and probably the settings are not correct. When it boots I see on the serial:

[    1.237760] libphy: Fixed MDIO Bus: probed
[    1.255601] gsw: setting port4 to ephy mode <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
[    1.279938] libphy: mdio: probed
[    1.286418] mtk_soc_eth 10100000.ethernet: using fixed link parameters
[    1.299548] mtk_soc_eth 10100000.ethernet: loaded mt7620 driver
[    1.312004] mtk_soc_eth 10100000.ethernet eth0: mediatek frame engine at 0xb0100000, irq 5
[    1.329036] rt2880_wdt 10000120.watchdog: Initialized

Can you check whether the ethernet comes up at all, i.e. what is the link status of the ethernet connection between the router and your laptop?

It's detecting the link and auto-negotiating to 1000/Full.

I'll install tcpdump on this laptop and see if there's ARP (or any other) traffic now.

What you can also try is to install the openwrt sysupgrade image via the OEM recovery procedure. I just tested that and it works. When you put the image in your tftp client, just select the openwrt sysupgrade file and it will work. However, you need to wait at least 10 minutes for the first boot, because I can see that OpenWRT needs to clean the jffs2 file-system which takes some time. On the console I see during this:

<3 minutes of the following messages>
[  172.149411] jffs2: Further such events for this erase block will not be printed
[  172.172352] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00271000: 0x73eb instead
[  172.191282] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00271004: 0xa50f instead
[  172.210464] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00271008: 0x5c71 instead
[  172.229547] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0027100c: 0xe1c8 instead
[  172.248629] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00271010: 0xcb83 instead
[  172.267753] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00271014: 0x87a1 instead
[  172.286883] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00271018: 0xb1c2 instead
[  172.305976] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0027101c: 0x567d instead
[  172.325057] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00271020: 0x97f2 instead
[  172.344138] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00271024: 0x82d7 instead
[  172.363059] jffs2: Further such events for this erase block will not be printed
[  172.602335] jffs2: notice: (1226) jffs2_build_xattr_subsystem: complete building xattr subsystem, 13 of xdatum (2 unchecked, 11 orphan) and 20 of xref (11 dead, 0 orphan) found.
[  172.916799] overlayfs: upper fs does not support tmpfile.
[  176.556388] random: crng init done



BusyBox v1.31.1 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r13600-9a477b833a
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:/# ifconfig
br-lan    Link encap:Ethernet  HWaddr 74:DA:38:A7:CF:93  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fdba:8501:55e5::1/60 Scope:Global
          inet6 addr: fe80::76da:38ff:fea7:cf93/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:2306 (2.2 KiB)

eth0      Link encap:Ethernet  HWaddr 74:DA:38:A7:CF:93  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:4908 (4.7 KiB)
          Interrupt:5 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:96 errors:0 dropped:0 overruns:0 frame:0
          TX packets:96 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6528 (6.3 KiB)  TX bytes:6528 (6.3 KiB)