The Zyxel AMG1302-T10B...

Smart ISPs (Like Fuel Broadband - free plug, though God knows why!) are giving away the Zyxel AMG1302-T10B for FREE.

Imag of The Zyxel AMG1302-T10B on a white background This is an IPv6 capable N-Class (300Mb/s) ADSL modem / 4-port router with all the usual goodies (as well as a few neat extras). It's not Gigabit on the Ethernet side, so you will probably want to use it solely as a modem, routing the data to an decent OpenWRT box or similar to handle the faster home networking (LAN) side.

And did I mention that it is IPv6 capable! More than can be said for Fuel Broadband.

The Command Line Interface (CLI) looks interesting, being a hybrid of a traditional router API on top of a nice Linux back-end. But where is the manual? Here we go again...

Note: This page is notes, started 2015-6-4, the day I received this Zyxel in the post. Some is non-linear, everything is in progress, my main goal being to get the important information out there, as well as create a place we can dump updates and info, discoveries, tricks, tips and such-like.

Intro..

Not a lot is known about this router. OpenWRT doesn't have a firmware for it. There is no CLI Manual anywhere (so far). The source code is also missing (it's Linux in there) for now. Legally speaking, this must change soon - keep an eye on this page for updates.

Tweaking

Image of a PuTTY (actually, KiTTY) login to the Zyxel_AMG1302-T10B shell via telnet, with a list files and directories in the root.

The web interface is actually fairly comprehensive and decently laid out. Most of the things you will need to achieve can be done there.

Some of it is not so good. Adding static DHCP leases, for one, is dreadful. They should take a look at OpenWRT. Fortunately, I don't use my modem for providing IP addresses, so I won't have to suffer it. There will be a way to accomplish from the shell, no doubt..

Telnet in (you get more commands in a telnet session than an SSH session, so it makes sense to use telnet, at least inside your local network) and you get a Linux shell..

The available commands:

	CAdecoder       dd              igmpproxy       ping6           tcci
	ConfigFilter    delgroup        inadyn          portbindcmd     tce
	EmappS          deluser         inetd           ppp_monitor     tcwdog
	\[              dhcp6c          init            pppcmd          test
	ac              dhcp6s          insmod          pppd            tftp
	acl             dhcpdetector    ip              pppoe-relay     tftpd
	addgroup        dhcrelay        ip6tables       pppstat         top
	adduser         dirname         ipcs            ps              tr069
	adslcmd         dmesg           iptables        ptmcmd          tr69
	adslstat        dnsmasq         iwpriv          pwd             traceroute
	algcmd          dropbear        kill            qoscmd          traceroute6
	arp             ebtables        killall         radvd           true
	ash             echo            klogd           reboot          udhcpc
	ated            ecmh            ln              ripd            udhcpd
	atmcmd          email4log       login           rm              umount
	autoFwUpgrade   env             ls              rmdir           uname
	awk             ethcmd          lsmod           rmmod           uptime
	basename        expr            maceui          route           usleep
	bftpd           ez-ipupdate     mailsend        rt2860apd       utelnetd
	boa             false           md5             run-parts       vah
	br2684ctl       firewallcmd     mdev            sed             vahcmd
	brasinfo        free            mkdir           sh              vconfig
	brctl           freeMemory      more            sleep           w
	busybox         ftpget          mount           smuxctl         wan
	cat             ftpput          mtd             snmpd           wc
	cfg_manager     ftpset          mtr             sys             wget
	chmod           getty           mv              syscmd          wlan
	cp              grep            netstat         sysctl          wlancmd
	cpu             head            nslookup        sysdiagd        wscd
	crond           hostname        ntpclient       syslogd         yes
	cut             hw_nat          passwd          taskset         zebra
	cwmpcmd         ifconfig        pidof           tc
	date            igmp            ping            tcapi

As you can see, we are dealing with a hybrid of a traditional router configuration API over a Linux+busybox base. This is interesting in many ways.

Most importantly, it means that Zyxel will have to produce the source code for this beastie some time soon, meaning that OpenWRT et al will get to dump a tarball on it some time in the future. Happy days!

Sadly, some of the commands don't work in the way we expect. Many commands look similar or identical to other, known router commands, but operate completely differently, or have different syntax.

But some work fine..

How to significantly increase your ADSL Line Speed..

This is the first thing I needed to hack. My old modem (a D-Link DSL-2680) had a comprehensive command line interface where one could tweak all sorts of things. By tweaking the Signal-To-Noise ratio on your ADSL line, you can increase your upload speed slightly and your download speed significantly.

At my old residence, a few miles rom the exchange, the default settings got me around 6Mb/s. By tweaking the Signal-To-Noise ratio offset, I could get over 8.5Mb/s. Not bad.

In my current residence, a mile from the exchange, the default settings get me 8.5Mb/s. My tweaked router increases my line speed to over 15Mb/s! That's almost double!

Here's how to do it in a Zyxel AMG1302-T10B (and in the D-Link!)..

wan dmt2 set snrmoffset <NUMBER> <NUMBER>
wan adsl reset

After a minute or two, your line will resync and your speed will shoot up. Technically, you could probably do wan down, set snr, wan up; but I like to reset it each time.

The tricky part is deciding what to use for <NUMBER>. Basically, you multiply the Gain (in dB) by 512 and then deduct 1792. The defaults are usually 1024, or something equally silly (a number that caters for all users, no matter how far they are from the exchange, I guess).

I recommend you start with perhaps 3072, and work up from there. Run a few broadband speed tests after each wan reset and keep increasing the number until your ping time shoots up or transfers become erratic (loads of errors would also be seen in your router's system info page).

This close to the exchange, I can set a 15db gain before the line starts to crap out, which is 5888. 16dB on a dry day! Once you find the number, you set-and-forget..

Except you don't..

For now, I have no way of setting this permanently, meaning that if the router gets rebooted, the command would have to be executed again. There is no autoexec.net, as found in other similar routers and I haven't had time to experiment with other methods.

Until I get a CLI Reference or someone gives me a heads-up, I'll be using A.R.S.E to send the command, so it's reduced to a single click on my Windows desktop.

An ARSE script to set the SNR might look like this..

	wan dmt2 set snrmoffset 5888 5888
	wan adsl reset

Goodbye Zyxel AMG1302-T10B..

Since writing this, and after much email wrangling, I finally received confirmation that there is, in fact, no way to set this permantly. Bummer.

So that's where this page ends. The Zyxel is still a decent wee router for the price (free), but until these sorts of hacks can be set-and-forgotten-about, my interest in hacking this particular device is lost.

for now..

;o)

Welcome to corz.org!

I'm always messing around with the back-end.. See a bug? Wait a minute and try again. Still see a bug? Mail Me!