DualWan+speedmod+PPTPVPN


maybe some of the chinese forum members can help with the translation.
even google translation is better than nothing
 
Latest Dual Wan 1.28.0526 for MIPSR1/MIPSR2 translated to english.

I did my best to translate China to English, should be better then google translate. You are welcome to correct and fix the translation better.

1. Get http://dl.dropbox.com/u/2880566/tomato_dual_1.28.0526.7z or from dualwan.cn website.
2. Flash it
3. Enable JFFS/USB or something where you can save files.
4. Upload http://dl.dropbox.com/u/2880566/tomato-dualwan-final-eng.zip to some folder on router.
5. Edit cn.to.eng.sh and correct the $engfiles path
6. Run it, you could save it under "Scripts -> Firewall"
7. Done, Dual Wan/transmission Web Interface is converted to English.

If someone know's how to make custom flash with those files, tell me or do it :)
 
If you have access to the source code, we can compile it with the translation. But so far zd takes code from others, but does not give back in the spirit of GPL.
 
Also, a warning, I have just finished trying this on my spare router (the translation works fine), and Avira guard just popped up saying it has found 35 files infected with Worm /vb.ay2 (google for info).

mstombs - your warning appears to be correct. Anyone playing with this stuff, be very careful.
 
No i don't have the source code but it's still should be a posible to modify the .trx file and change old /www/ files to those what are translated. I did just translate the .asp files and .js files. About your avira warning about virus i have no idea why. They are just clean .asp/.js files what are translated from China to English. I did just use mount --bind /jffs/wwwext/ /www/ and service httpd restart to change the language. Works totally fine on my router.

Here is screenshots from all categories to show how it's looks like: http://www.dropbox.com/gallery/2880566/1/eng translation?h=8e4c9c

All tomato orginal texts are taken from it and only translation is made to new text coded by that dualwan guy.
You could just add it under: Administration -> Scripts -> /jffs/cn.to.eng.sh and it will automaticly convert to English.

Virustotal:
http://www.virustotal.com/file-scan...a31fde6bd2c62ed5b9e5cd997f27c1d71f-1296231149
Result:
0/ 43 (0.0%)

http://www.virustotal.com/file-scan...7eb6cdcad0b857f13edac63392ad5d18c3-1296231319
Result:
0/ 43 (0.0%)
 
You can modify the trx using the "Firmware Mod kit" on a Linux PC, but certain www files are checked using an md5sum and the router crashes if not the same as that stored in file.dig .
 
I did look about that MD5 Checksum think:
Check is located under/sbin/rc file.

Code:
.text:00408F0C                 .globl verify_firmware_checksum
.text:00408F0C verify_firmware_checksum:                # CODE XREF: .text:004094A8p
.text:00408F0C                                          # DATA XREF: .text:004094A0o ...
.text:00408F0C
.text:00408F0C var_498         = -0x498
.text:00408F0C var_490         = -0x490
.text:00408F0C var_450         = -0x450
.text:00408F0C var_410         = -0x410
.text:00408F0C var_10          = -0x10
.text:00408F0C var_C           = -0xC
.text:00408F0C var_8           = -8
.text:00408F0C
.text:00408F0C                 li      $gp, 0x53674
.text:00408F14                 addu    $gp, $t9
.text:00408F18                 addiu   $sp, -0x4A8
.text:00408F1C                 sw      $ra, 0x4A8+var_8($sp)
.text:00408F20                 sw      $s1, 0x4A8+var_C($sp)
.text:00408F24                 sw      $s0, 0x4A8+var_10($sp)
.text:00408F28                 sw      $gp, 0x4A8+var_498($sp)
.text:00408F2C                 la      $a0, 0x430000
.text:00408F30                 la      $a1, 0x430000
.text:00408F34                 la      $t9, f_write_string
.text:00408F38                 move    $a3, $0
.text:00408F3C                 addiu   $a0, (aVarTmp68b39c1e - 0x430000)  # "/var/tmp/68b39c1ea7"
.text:00408F40                 addiu   $a1, (a68b39c1ea70f2c - 0x430000)  # "68b39c1ea70f2cfa50af5a854287ab44\n"
.text:00408F44                 jalr    $t9 ; f_write_string
.text:00408F48                 move    $a2, $0
.text:00408F4C                 lw      $gp, 0x4A8+var_498($sp)
.text:00408F50                 la      $a2, 0x430000
.text:00408F54                 la      $t9, snprintf
.text:00408F58                 addiu   $s0, $sp, 0x4A8+var_410
.text:00408F5C                 addiu   $a2, (aCdWwwMd5sumAbo - 0x430000)  # "cd /www\nmd5sum about.asp basic-network."...
.text:00408F60                 li      $a1, 0x400
.text:00408F64                 jalr    $t9 ; snprintf
.text:00408F68                 move    $a0, $s0
.text:00408F6C                 lw      $gp, 0x4A8+var_498($sp)
.text:00408F70                 la      $t9, system
.text:00408F74                 jalr    $t9 ; system
.text:00408F78                 move    $a0, $s0
.text:00408F7C                 lw      $gp, 0x4A8+var_498($sp)
.text:00408F80                 la      $a0, 0x430000
.text:00408F84                 la      $t9, f_read_string
.text:00408F88                 addiu   $s1, $sp, 0x4A8+var_490
.text:00408F8C                 addiu   $a0, (aWwwFile_dig - 0x430000)  # "/www/file.dig"
.text:00408F90                 move    $a1, $s1
.text:00408F94                 jalr    $t9 ; f_read_string
.text:00408F98                 li      $a2, 0x20
.text:00408F9C                 lw      $gp, 0x4A8+var_498($sp)
.text:00408FA0                 la      $a0, 0x430000
.text:00408FA4                 la      $t9, f_read_string
.text:00408FA8                 addiu   $s0, $sp, 0x4A8+var_450
.text:00408FAC                 move    $a1, $s0
.text:00408FB0                 li      $a2, 0x20
.text:00408FB4                 jalr    $t9 ; f_read_string
.text:00408FB8                 addiu   $a0, (aVarTmp68b39c_0 - 0x430000)  # "/var/tmp/68b39c1ea8"
.text:00408FBC                 lw      $gp, 0x4A8+var_498($sp)
.text:00408FC0                 la      $a0, 0x430000
.text:00408FC4                 la      $t9, system
.text:00408FC8                 jalr    $t9 ; system
.text:00408FCC                 addiu   $a0, (aRmVarTmp68b39c - 0x430000)  # "rm /var/tmp/68b39c1ea8\n"
.text:00408FD0                 lw      $gp, 0x4A8+var_498($sp)
.text:00408FD4                 la      $t9, check_wanup
.text:00408FD8                 jalr    $t9 ; check_wanup
.text:00408FDC                 li      $a0, 1
.text:00408FE0                 bnez    $v0, loc_408FFC
.text:00408FE4                 lw      $gp, 0x4A8+var_498($sp)
.text:00408FE8                 la      $t9, check_wanup
.text:00408FEC                 jalr    $t9 ; check_wanup
.text:00408FF0                 li      $a0, 2
.text:00408FF4                 beqz    $v0, loc_409048
.text:00408FF8                 lw      $gp, 0x4A8+var_498($sp)
.text:00408FFC
.text:00408FFC loc_408FFC:                              # CODE XREF: verify_firmware_checksum+D4j
.text:00408FFC                 la      $t9, strcmp
.text:00409000                 move    $a0, $s1
.text:00409004                 jalr    $t9 ; strcmp
.text:00409008                 move    $a1, $s0
.text:0040900C                 beqz    $v0, loc_409048
.text:00409010                 lw      $gp, 0x4A8+var_498($sp)
.text:00409014                 la      $t9, get_uptime
.text:00409018                 jalr    $t9 ; get_uptime
.text:0040901C                 nop
.text:00409020                 lw      $gp, 0x4A8+var_498($sp)
.text:00409024                 la      $t9, sleep
.text:00409028                 jalr    $t9 ; sleep
.text:0040902C                 andi    $a0, $v0, 0xFF
.text:00409030                 lw      $gp, 0x4A8+var_498($sp)
.text:00409034                 la      $t9, kill
.text:00409038                 li      $a0, 1
.text:0040903C                 jalr    $t9 ; kill
.text:00409040                 li      $a1, 3
.text:00409044                 lw      $gp, 0x4A8+var_498($sp)
.text:00409048
.text:00409048 loc_409048:                              # CODE XREF: verify_firmware_checksum+E8j
.text:00409048                                          # verify_firmware_checksum+100j
.text:00409048                 lw      $ra, 0x4A8+var_8($sp)
.text:0040904C                 lw      $s1, 0x4A8+var_C($sp)
.text:00409050                 lw      $s0, 0x4A8+var_10($sp)
.text:00409054                 jr      $ra
.text:00409058                 addiu   $sp, 0x4A8
.text:00409058  # End of function verify_firmware_checksum
.rodata:00436E1C aCdWwwMd5sumAbo:.ascii "cd /www\n"       # DATA XREF: verify_firmware_checksum+50o
.rodata:00436E1C                 .ascii "md5sum about.asp basic-network.asp status-overview.asp status"
.rodata:00436E1C                 .ascii "-devices.asp status-data.jsx qos-settings.asp forward-basic.a"
.rodata:00436E1C                 .ascii "sp admin-access.asp admin-upgrade.asp logo1.gif | md5sum >> /"
.rodata:00436E1C                 .ascii "var/tmp/68b39c1ea7\n"
.rodata:00436E1C                 .ascii "md5sum /var/tmp/68b39c1ea7 > /var/tmp/68b39c1ea8\n"
.rodata:00436E1C                 .ascii "rm  /var/tmp/68b39c1ea7\n"<0>
.rodata:00436F38 aWwwFile_dig:   .ascii "/www/file.dig"<0>

Should be easy to modify it little bit with hex editor and skip the stupid check. I will see if i can patch it successfully and build it pack to .trx
Dunno why he tries to prevent it getting translated it to English. Well what ever i will patch it anyway. This firmware has a lot features what i need for my usage.

Code:
Orignal:
00008FF0  02 00 04 24 14 00 40 10 10 00 BC 8F 14 82 99 8F  ...$..@...¼..‚™.
00009000  21 20 20 02 09 F8 20 03 21 28 00 02 0E 00 40 10  !  ..ø .!(......
.text:00408FFC loc_408FFC:                              # CODE XREF: verify_firmware_checksum+D4j
.text:00408FFC                 la      $t9, strcmp
.text:00409000                 move    $a0, $s1
.text:00409004                 jalr    $t9 ; strcmp
.text:00409008                 move    $a1, $s0
.text:0040900C                 beqz    $v0, loc_409048

Patched:
00008FF0  02 00 04 24 14 00 40 10 10 00 BC 8F 14 82 99 8F  ...$..@...¼..‚™.
00009000  21 20 20 02 09 F8 20 03 21 28 00 02 0E 00 00 10  !  ..ø .!(......
.text:00408FFC loc_408FFC:                              # CODE XREF: verify_firmware_checksum+D4j
.text:00408FFC                 la      $t9, strcmp
.text:00409000                 move    $a0, $s1
.text:00409004                 jalr    $t9 ; strcmp
.text:00409008                 move    $a1, $s0
.text:0040900C                 b       loc_409048

Link for patched/translated to eng version of MIPSR2-8M:
http://dl.dropbox.com/u/2880566/tomato-K26USB-1.28.0526-MIPSR2-8M.zip

Tested with my router:
Model Asus RT-N16
CPU Broadcom BCM4716 chip rev 1 pkg 10
CPU frequency 480MHz
Flash capacity 32MB
Work's perfectly.

If someone need's i can patch it to MIPSR1 and to those smaller flash versions but i can't confirm it will work becouse i have no router where to test it.
 
So, this mean we're close to getting working pptp VPN server (with gui)? :D anyone able to extract, & write a mod tutorial??
(of course dual wan is sweet too!!)
 
Tomato DualWan English Version
---------------------------------
Translated using Tomato NDUSB files and google translate/brains.
If you can offer better translation for new features of dualwan firmware please do it.

Patched: /sbin/rc to allow modifying the /www/ files.

Changed files: /www/* and /usr/share/transmission/index.html


www-orginal-tomatodualwan-china: Orginal www files for translation usage.
www-orginal-tomato-eng: Orginal Tomato NDUSB www files for translation usage.
www-translated-tomatodualwan-eng: Tomato DualWan translated to english for translation usage.

Confirmed to work:

tomato-K26USB-1.28.0526-MIPSR2-8M-eng.trx
Tested with:
Model Asus RT-N16
CPU Broadcom BCM4716 chip rev 1 pkg 10
CPU frequency 480MHz
Flash capacity 32MB

tomato-K26USB-1.28.0526-MIPSR1-8M-eng.trx
Tested with:
Model Asus WL-500gP v2
CPU Broadcom BCM5354
CPU frequency 240MHz
Flash capacity 8MB

tomato-K26-1.28.0526-MIPSR1-4M-eng.trx
Tested with:
Model Linksys WRT54G/GS/GL
CPU Broadcom BCM5352 chip rev 0 pkg 2
CPU frequency 200MHz
Flash capacity 4MB

For those who want improve translating: http://dl.dropbox.com/u/2880566/tomato-firmware-building-tools.tar.gz
just extract with tar -zxvf and change tomato-firmware/www-translated-tomatodualwan-eng files. and run tomato-firmware/build.sh
firmwares will be created at: tomato-firmware/firmwares/. You could just copy them and flash.


DL Link: http://dl.dropbox.com/u/2880566/tomato-dualwan-final-eng.zip
Last Update For translation: 2011-01-30 12:02:47


Screenshots: http://www.dropbox.com/gallery/2880566/1/eng translation?h=8e4c9c
 
I have read this post (and many other similar) from the beginning to the end, and I must say thanks to everyone who has helped and contributed and not given up. Been quite a while patiently waiting for a usable version. It appears it is finally here, but I have not yet tried it myself, I am just a bit unsure of how to...I have an Asus WL520GU, only 4MB flash, I remember seeing on the dualwan page that for this router I needed to use the ND.trx version....
Can anyone tell me if this is still true? Can I just use the 4MB version included with latdna's file?

Thank you in advance for your thoughts.
 
i've been testing this firmware (tomato-K26-1.28.0526-MIPSR1-4M-eng.trx) for a day, quite satisfied with the qos, limiting inbound traffic is now work flawlessly. thx for translations, latdna.
 
thank you for your quick reply, Toastman, would you happen to know if there is a way to set rules, for say my web server. It needs to be on my dsl line, because port 80 is open. But then torrents and nzb's need to be on cable because of MUCH greater speed. I would like to load balance, but my web server is priority number one. It's a shame cable is so fast but blocks ports. Thanks again.
 

Back
Top