TFTP Problems, trying to de-brick xiaomi mi router 3g

Hey there, while trying to install Open WRT I bricked my router somehow.

The Kernel panics and reboots.

I am following this instruction to debrick.

I am running a tftp server on Windows with Tftpd64 (I verified with an Ubuntu VM that the server is working correctly)

When selecting option2 in u-boot I get this output:

You choosed 2
                                                                              0


2: System Load Linux Kernel then write to Flash via TFTP.
 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.31.1) ==:192.168.31.1
        Input server IP (192.168.31.100) ==:192.168.31.100
        Input Linux Kernel filename () ==:kernel0.bin

 NetTxPacket = 0x8FFE4040

 KSEG1ADDR(NetTxPacket) = 0xAFFE4040

 NetLoop,call eth_halt !

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

 Waitting for RX_DMA_BUSY status Start... done


 ETH_STATE_ACTIVE!!
TFTP from server 192.168.31.100; our IP address is 192.168.31.1
Filename 'kernel0.bin'.

 TIMEOUT_COUNT=10,Load address: 0x80100000
Loading: checksum bad
checksum bad
Got ARP REPLY, set server/gtwy eth addr (f8:0d:ac:23:3b:b5)
Got it
T T T

why does it say checksum bad? is there a bigger problem?

Out of curiosity I sniffed in wireshark: I can see tftp read requests, but the server seems to simply never reply. I also checked firewall rules and it should be ok.

what else could I look into?

Thanks in advance.

what does the tftpd64 log say ?

not say it's your problem but
for tftp on windows I have used "SolarWinds-TFTP-Server"
works well with easy to see whats going on

Nothing there is no log there.

When tftp´ing from Ubuntu, it creates logs. But there are no logs when the router tries to tftp

@Lucky1 Ok will try with that. However, I already tried like 3 different Tftp programms like tftpd64, pumpkin, etc. None worked, always the same result

and you're sure the tftpd64 default interface (NIC) doesn't get reset back to 127.0.0.1 during the router (re)boot ?

Yeah I noticed, it does reset after a few minutes to 127.0.0.1...

I thought I can prevent that by setting the setting "Bind Server" to 192.168.31.100 - did not help either

other then windows firewall witch you seem to have already checked
I fined just disable it white testing quick and dirty but works

you need to put some kind of dumb network switch between the PC and the router, then tftpd64 won't notice the port dip on the router side.

1 Like

@Lucky1 Well problem is that it is a managed work PC, I have local admin rights, but firewall is managed by policy so I can add rules but not completely disable it.

My private PC all do not have LAN ports anymore... I also have a RPi laying around here, so if it is really the Firewall I can try with that. But I kinda doubt it, since it works flawlessly with an Ubuntu VM

@frolic What kind of network switch? I have none here, is it obligatory or is there a way to do this without having to buy a switch?

Thanks!

anything with at least two ethernet ports, since you're using static IP, it only needs to be able to move the packets.

it's recommended, but I've always managed without one ...

So what would you suggest to try, before buying a switch?

Regards

you need to figure out why the 3g isn't requesting the file.

I'd start by testing all ethernet ports.

I eventually gave up on Windows, took a RPi and it worked like a charm!

Now I will reinstall Open WRT, hopefully without bricking the Router again :slight_smile:

Thank you!

2 Likes

congrats!

interesting, never ever had any issues with win/tftpd64, but then again, I seldom flash devices using that combo.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.