There are guides and HowTos explaining how to flash this router with OpenWRT. A UART USB-to-TTL cable is a must to flashing.
Here is a recap for all the steps.
1. backup your routers original firmware and wifi calibaration data.
2. flash the bootloader u-boot.
3. from u-boot, we will issue commands to download and install OpenWRT into the flash.
1. Backup your router's firmware & WiFi calibration data
You will need a Serial Communication software like Putty, CuteCom or Screen installed on Linux.
Then need to get BrnDumper from here. (Works reliably on a 32bits Linux)
Connect your UART cable.
Open Terminal and issue:
screen /dev/ttyUSB0 115200
Power up your router
when text starts showing up on Terminal, hit spacebar 3 times
then hit ! and quit screen
now open another Terminal Tab/Window and run brndumper as follow:
sudo ./brndumper --port=/dev/ttyUSB0
and do a full dump and a Wifi calib data dump.
from $b0000000 to $b0400000 -> full dump
from $b03F0000 to $b0400000 -> wifi calib data dump
it's going to take approx 30mins.
2. flash the bootloader u-boot
when it finishes, power off the router. Start CuteCom or a Serial Comm software capable of sending files using XModem and change its Input Mode to "No Line End".
Power on the router. When the text starts showing up hit spacebar 3 times then hit respectively:
Then send u-boot file via XModem
When it's done restart the router
3. Installing OpenWRT from u-boot
Install a TFTP Server. Download either of these OpenWRT images, rename it to ARV4518PW-squashfs.image and put it into tftp folder.
- OpenWRT 12.09 for ARV4518 (valid for R01A and R01)
- OpenWRT 14.07 for ARV4518 valid for hardware revision R01A
- OpenWRT 14.07 for ARV4518 valid for hardware revision R01
Note: these images are custom compiled and patched to fix Wifi on 12.09 and let them fit well on the 4MB of flash while having extra drivers (USB2, Ext4, USB Storage) and still have enough free space to do other things.
Connect a network cable to the router, set a static ip like, i.e:
ifconfig eth0 192.168.144.100 netmask 255.255.255.0 up
the ip address 192.168.144.100 came from the output values of printenv which you can issue from CuteCom.
From CuteCom issue:
setenv kernel_addr 0xb0020000
when it finish, issue: