When EasyBox 803A Meets OpenWRT

Update
29.Aug.2017 Update Dropbox download link

I have bought a second-hand EasyBox for only 10 EUR, since it seems to be supported by OpenWRT. After a long time waiting, the OpenWRT can run on it. There is a WiKi with detailed info about EasyBox 803A, but the installation is not well described. Therefore I write this tutorial to show how to flash the OpenWRT into EasyBox 803A. Some steps are directly copied from the WiKi in order to make this tutorial easier to follow.

Note: All the required files can be found here.

Special thanks to Matti Laakso for his U-Boot and instruction in the OpenWRT forum

Step 1: Connect the serial port

  1. plug in USB2serial adapter
  2. power on the device
  3. hurry press 3x space bar
  4. type an exclamation mark (!) to enter the administration mode
Press Space Bar 3 times to enter command mode ...123
Yes, Enter command mode ...


[DANUBE Boot]:!

Enter Administrator Mode !

======================
 [#] Set Serial Number
 [2] Use Normal Firmware
 [3] Use ART-Testing Firmware
 [9] Taggle ART Firmware Enable/Disable
 [A] Set MAC Address
 [E] Erase Flash
 [G] Run Runtime Code
 [H] Set Options
 [M] Upload to Memory
 [P] Print Boot Params
 [R] Read from Memory
 [T] Memory Test
 [U] Upload to Flash
 [V] Set Board Version
 [W] Write to Memory
 [Y] Go to Memory
 [Z] Dump DDR Ram Register
 [0] Primary = Image 0
 [1] Primary = Image 1
======================

[DANUBE Boot]:

Step 3: Upload U-Boot via serial port

  1. choose [M] Upload to Memory at default address 0x80002000
  2. send openwrt-lantiq-arv752dpw22_brn-u-boot.img via XMODEM protocol
  3. choose [M] Upload to Memory again at another address 0x80500000 and record the size of U-boot file, i.e., 0x0002d4e4
  4. send openwrt-lantiq-arv752dpw22_nor-u-boot.img via XMODEM protocol
  5. get to the console via terminal again and type [Return]
  6. choose [Y] Go to Memory to default address 0x80002000
[DANUBE Boot]:Y

Go to Memory Address: (default:0x80002000) : 0x
Jump to address 0x80002000 ...


U-Boot 2010.03 (Sep 29 2012 - 18:24:13)

Board: ARV752DPW22
SoC: Danube/Twinpass/Vinax-VE V1.5, DDR Speed 166 MHz, CPU Speed 333 MHz
DRAM:  64 MB
Flash:  8 MB
*** Warning - bad CRC, using default environment

Net:   bring up ebu gpio
initializing ar8216 switch... initialized
lq_cpe_eth
Hit any key to stop autoboot:  0
Wrong Image Format for bootm command
ERROR: can't get kernel image!
Failed to execute bootcmd (maybe invalid u-boot environment?), starting httpd to update firmware...
starting httpd server from server 192.168.1.1
http start
..........................................................................

Step 4: Flash U-Boot

  • Check CRC of the U-Boot in the RAM
ARV752DPW22 # crc32 0x80500000 0x0002D4E4
  • Switch off the protection of certain flash blocks
ARV752DPW22 # protect off 0xB0000000 0xB002FFFF
  • Erase flash blocks
ARV752DPW22 # erase 0xB0000000 0xB002FFFF
  • Copy U-Boot from RAM to flash
ARV752DPW22 # cp.b 0x80500000 0xB0000000 0x2D4E4
  • Switch on the protection of flash blocks
ARV752DPW22 # protect on 0xB0000000 0xB002FFFF
  • Reset the U-Boot and the new bootloader will work
ARV752DPW22 # reset

Step 5: Flash OpenWRT

  • Connect EasyBot 803A with a PC via ethernet canble
  • Set the PC IP address same with the environment variable serverip shown in printenv
  • Download OpenWRT image from the zip or latest OpenWRT 14.07 via TFTP and record the size of it, i.e., 0x480004
ARV752DPW22 # tftp openwrt-lantiq-xway-ARV752DPW22-squashfs.image
Using ltq-eth device
TFTP from server 192.168.1.2; our IP address is 192.168.1.1
Filename 'openwrt-lantiq-xway-ARV7510PW22-squashfs.image'.
Load address: 0x81000000
Loading: #################################################################
 #################################################################
 #################################################################
 #################################################################
 ##############################################################
 1.8 MiB/s
done
Bytes transferred = 4718596 (480004 hex)
  • Erase flash blocks
ARV752DPW22 # erase 0xB0040000 0xB04CFFFF
  • Copy OpenWRT image from RAM to flash
ARV752DPW22 # cp.b 0x81000000 0xB0040000 0x480004
  • Reset the U-Boot and the OpenWRT will boot automatically
ARV752DPW22 # reset

Step 6: Adjust WiFi issue

When console generates the log, you may notice that RT3572 can not load its firmware properly.

[   16.460000] ieee80211 phy0: rt2x00lib_request_eeprom_file: Info - Loading EEPROM data from 'RT2860.eeprom'.
[   16.512000] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 3572, rev 0223 detected
[   16.520000] ieee80211 phy0: rt2800_init_eeprom: Error - Invalid RF chipset 0x000a detected
[   16.528000] ieee80211 phy0: rt2x00lib_probe_dev: Error - Failed to allocate device
  • You need run below command in the Linux console
dd if=/dev/mtdblock5 of=/lib/firmware/RT2860.eeprom bs=2 skip=520 count=256 conv=swab
  • Reboot the Linux and have FUN 🙂

Reference

  1. https://forum.openwrt.org/viewtopic.php?pid=223479#p223479
  2. http://wiki.openwrt.org/toh/astoria/arv752dpw22

6 thoughts on “When EasyBox 803A Meets OpenWRT

  1. Hello, thank you very much for the article. Could you please re-upload the needed files? Link to Dropbox has expired. Greetings.

  2. Hi, the dropbox link in this article is died. Could you please upload the Easybox 803A fils again. I have trouble with u-boot and i need a proper one. Thank you!

  3. Luci GUI does not show Wireless settings option. /etc/config/ directory has no ‘wireless’ folder.
    Using openwrt-15.05.1-lantiq-xway-ARV752DPW22 now. I have verified the address 0xb07f0000. There is a mac id between address b07f0010 and b07f0020.
    Also tried to reset the router configuration using the LuCI. The problem still persists.
    Can you please help?

    • Until now I did not tested with 15.05. I will try when I have time.
      Why there is no wireless folder in /etc/config/. I guess the initialization of wireless module is not successed. I suggest you can check that whether the wirless driver is installed. Whether the wirless module is initialized successed. Using ‘logread’ to get some more information.

Leave a comment