Can't flash Linksys 6350 v4: Invalid Firmware File

I assumed this process would be simple if I followed the wiki found here but I'm having an issue.

I downloaded and manually updated the Linksys firmware to 4.0.4.207984. It was an .img file.
I hit Choose File, selected the downloaded Factory .bin file, https://downloads.openwrt.org/snapshots/targets/ramips/mt7621/openwrt-ramips-mt7621-linksys_ea6350-v4-squashfs-factory.bin
and hit start. I promptly get this error:
image
I've read in a few topics, namely here that this person seems to have successfully flashed his router: Original firmware overwrites OpenWrt every reboot

I'm at a loss for what I'm doing wrong here, the instruction seems to be that I should flash it from the Linksys GUI, is there another method? Does the file type matter? I noticed the OEM is a .img.
Any help would be appreciated, thanks.

Try tftp. If this device is similar to the ea6300, it has a tftp server that runs early in the boot cycle. Setup your network config with a static ip (for example: 192.168.1.10 subnet mask 255.255.255.0) and run a persistent ping to 192.168.1.1 - watch for a ttl = 100 briefly in the boot process. When that happens, you need to put the file from your computer to the router. Be sure to use binary mode and have the command ready to start at a click or a single button press since you only have a 2-3 seconds to initiate the tftp transfer.

Is there a guide to this?
I'm not experienced with networking tasks. Looking up information on my own, but anything supplemental would help.

Hrm...
Well, I tried two different things I found information on. I followed this as a method to try doing it manually: https://www.worldwidewebs.com.au/billing/knowledgebase/471/Fixing-a-Bricked-Linksys-Router-after-Flashing.html
I've run into an error with the command prompt where, after entering the commands, it just tells me Connect request failed. Don't know why.

I then tried using Tftpd64 but it just hangs at block #0 when I set it up as I found instructed here:


Changing the port doesn't seem to matter.

I don't know how to do this on Windows, but I can tell you that you need a tftp client, not a server. On the Mac and Linux, you simply open a terminal window and type the following command from the terminal:

tftp

that will open up the tftp client... then you enter the following:

connect 192.168.1.1
bin
put <filename>

(where obviously < filename > gets replaced with the filename of the firmware image you are trying to send).

Well, from what I understood the program I was using in the screen shot is a client, but I don't know what does and doesn't qualify. It said client on the tab I was in. Either way, already went the route of trying through a terminal, I enabled tftp through the Windows control panel in programs since it's disabled by default and ran tftp commands through command prompt (looks like: tftp -i 192.168.1.1 PUT {filename}), but as I stated in the last post, I just get a Connect request failed error. I tried a few more times to no avail. I did however notice the tftp64 program/client/server/whatever has a logviewer and saw this when I tried using the Put command through there again.

As far as I know the file isn't in use by another process. Not sure if there's a way to check. Either way it's starting to seem like I'm heading down a dead end, just wish I knew how the other guy seemingly got it to work.

based on the log, it does not appear to me that you've got a proper tftp client running (or maybe it is simultaneously running a client + server).

The clues here are the fact that a connection was received from 192.168.1.10, and then a write request was made for the file.
The situation should be that this is putting a file from your computer and sending to 192.168.1.1 (which does not appear in the log at all).

Further, the error that the file is being used by another process is probably because the application is actually trying to read and write the same file at the same time.

tftpd64 is shown as a tftp server, so you don't want to use it unless you can guarantee that you have disabled the server function.

And, per my earlier instructions, you should have a static IP address on your computer (192.168.1.10 will work, subnet 255.255.255.0) and you need a persistent ping to 192.168.1.1. When you boot the router, you should see a few pings returned (typically with ttl=100) and then it will stop, and then come back later when it is fully booted. So you need to be watching for this to happen and put the file immediately when the first set of pings are returned. (I often look at this once or twice to get a feel for the timing, then do it again when I'm ready to put the file).

Also, I didn't mention this before, but it can be important... make sure your wifi is disabled and that there are no other network connections for anything except for your computer <-> 6350.

Blockquote
And, per my earlier instructions, you should have a static IP address on your computer

Yep, was taken care of before I posted here.
image

Blockquote
you need a persistent ping to 192.168.1.1

Blockquote
Also, I didn't mention this before, but it can be important... make sure your wifi is disabled

Well, my wifi wasn't disconnected, that was definitely causing problems. It was giving me successful pings, likely connected via the wifi. After disabling the wifi, I can no longer ping the modem via 192.168.1.1, just gives me time out errors. I can ping 192.168.1.10 but I'm going to guess that's not helpful. This might be stupid on my part but I'm assuming I can ping a modem without internet connection as long as I'm connected to a LAN port via ethernet. Either way, I'm still getting connection time out errors but that makes more sense to me now that I'm seeing my system can't ping the modem via a LAN connection. If I need to have it connected to the internet via Ethernet to make this work I'm at a dead end due to how my set up is.

You absolutely must be connected to the linksys router via Ethernet. There should be an Ethernet connection linking your computer to your linksys router and there should be no other network connections to either device. You do not need internet connectivity for this operation.

You will need Ethernet anyway, since openwrt has the WiFi disabled by default.

Do you have an Ethernet connection on your computer?

1 Like

Blockquote
You absolutely must be connected to the linksys router via Ethernet. There should be an Ethernet connection linking your computer to your linksys router

Blockquote
as long as I'm connected to a LAN port via ethernet

Blockquote
Do you have an Ethernet connection on your computer?

Yes.

Blockquote
You will need Ethernet anyway, since openwrt has the WiFi disabled by default.

It doesn't matter what openwrt has as default if I can't ping the router, let alone install the firmware on it.
My concern was if this needed an internet connection to function (PC -> router -> modem). I have no way of reasonably connecting to the modem from where my office is located (not the router, I can physically connect to the router fine). So it currently looks like (PC -> router), where -> is an ethernet cable. Regardless, if internet isn't necessary then this is a non-issue. Either way, I'm still getting a time out error when I try pinging the router with its assigned IP while connected to a LAN port between the PC and router.

Are you getting any ping responses at all from the moment you apply power to the time it is fully booted?