Micro-plus

From DD-WRT Wiki

Revision as of 18:35, 7 March 2011 by Martin76 (Talk | contribs)
Jump to: navigation, search

Contents


Description

Micro-plus is a version of dd-wrt micro originally created for debugging purposes, on devices having only 2MB of flash memory. It has enhanced Busybox functionality, such as an expanded shell prompt, tab completion, and ls and top commands, each of which had been stripped from the normal micro version. There is also a version of Micro-plus with SSH support.


Can my device run micro-plus?

4MB+ flash can run it no problem. But the focus is on devices having only 2MB flash:

The only 2MB devices which currently have the ability to run micro-plus must have a small CFE (bootloader) of 128K in size. You can check if your router is capable by doing the following:

  1. Do a CFE backup (using the normal v24 micro build of dd-wrt). Save it somewhere safe!
    • If the size of your downloaded cfe.bin is 128K, you can safely flash micro-plus and enjoy the benefits.
    • DO NOT flash micro-plus if your cfe.bin is larger than 128K (most are actually 256K) or if your CFE backup somehow fails with zero bytes in size!


Where to download it?

Micro-plus is currently not an official release of the stable tree, but with your help, we hope to make it so. For now, you can find it in downloads/others/eko/v24_TNG directory. It is built by Eko, a lead dd-wrt developer.


Here are the contents of the micro plus ssh (note that "ls" and "top" you get _ONLY_ with the "plus" version of the firmware). With the standard "micro" version you can login into the router via telnet, you get your "ash" prompt but neither of "ls", "cat", "more" exists. Therefore, go for the "plus" if you want to do something on the router.

root@asus520gc:/usr/bin# ls -la /usr/bin
drwxr-xr-x    2 root     root          531 Jan  1  2009 .
drwxr-xr-x    6 root     root           55 Jan  1  2009 ..
lrwxrwxrwx    1 root     root           17 Jan  1  2009 [ -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 [[ -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 awk -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 basename -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 clear -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 cmp -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 cut -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 dc -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 dirname -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 du -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 env -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 expr -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 find -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 free -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 ftpget -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 ftpput -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 head -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 hexdump -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 id -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 install -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 killall -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 less -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 logger -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 md5sum -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 mesg -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 mkfifo -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 nc -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 nohup -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 nslookup -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 printf -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 reset -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 rx -> ../../bin/busybox
lrwxrwxrwx    1 root     root           23 Jan  1  2009 scp -> /usr/sbin/dropbearmulti
lrwxrwxrwx    1 root     root           17 Jan  1  2009 sort -> ../../bin/busybox
lrwxrwxrwx    1 root     root           23 Jan  1  2009 ssh -> /usr/sbin/dropbearmulti
lrwxrwxrwx    1 root     root           17 Jan  1  2009 strings -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 tail -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 tee -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 telnet -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 test -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 time -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 top -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 tr -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 traceroute -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 tty -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 uniq -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 uptime -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 uudecode -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 uuencode -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 wget -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 which -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 whoami -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 xargs -> ../../bin/busybox
lrwxrwxrwx    1 root     root           17 Jan  1  2009 yes -> ../../bin/busybox
root@asus520gc:/usr/bin# ls -la /usr/sbin
drwxr-xr-x    2 root     root          502 Jan  1  2009 .
drwxr-xr-x    6 root     root           55 Jan  1  2009 ..
-rwxr-xr-x    1 root     root        23991 Jan  1  2009 brctl
lrwxrwxrwx    1 root     root           17 Jan  1  2009 chroot -> ../../bin/busybox
-rwxr-xr-x    1 root     root        25687 Jan  1  2009 cron
lrwxrwxrwx    1 root     root           23 Jan  1  2009 dbclient -> /usr/sbin/dropbearmulti
-rwxr-xr-x    1 root     root         4287 Jan  1  2009 dhcp_lease_time
-rwxr-xr-x    1 root     root         8415 Jan  1  2009 dhcp_release
-rwxr-xr-x    1 root     root        24003 Jan  1  2009 dhcpfwd
-rwxr-xr-x    1 root     root       129347 Jan  1  2009 dnsmasq
lrwxrwxrwx    1 root     root           23 Jan  1  2009 dropbear -> /usr/sbin/dropbearmulti
lrwxrwxrwx    1 root     root           23 Jan  1  2009 dropbearconvert -> /usr/sbin/dropbearmulti
lrwxrwxrwx    1 root     root           23 Jan  1  2009 dropbearkey -> /usr/sbin/dropbearmulti
-rwxr-xr-x    1 root     root       287427 Jan  1  2009 dropbearmulti
-rwxr-xr-x    1 root     root         3303 Jan  1  2009 dumpleases
-rwxr-xr-x    1 root     root        73543 Jan  1  2009 httpd
-rwxr-xr-x    1 root     root        20995 Jan  1  2009 igmprt
-rwxr-xr-x    1 root     root        34635 Jan  1  2009 inadyn
-rwxr-xr-x    1 root     root       129983 Jan  1  2009 ip
-rwxr-xr-x    1 root     root       128047 Jan  1  2009 iptables
lrwxrwxrwx    1 root     root           18 Jan  1  2009 iptables-restore -> /usr/sbin/iptables
-rwxr-xr-x    1 root     root        99523 Jan  1  2009 nas
lrwxrwxrwx    1 root     root            3 Jan  1  2009 nas4not -> nas
lrwxrwxrwx    1 root     root            3 Jan  1  2009 nas4wds -> nas
-rwxr-xr-x    1 root     root         4311 Jan  1  2009 ntpclient
-rwxr-xr-x    1 root     root         3583 Jan  1  2009 nvram
-rwxr-xr-x    1 root     root       237959 Jan  1  2009 pppd
-rwxr-xr-x    1 root     root        11139 Jan  1  2009 radius-client
-rwxr-xr-x    1 root     root          118 Jan  1  2009 radiusallow
-rwxr-xr-x    1 root     root          108 Jan  1  2009 radiusdisallow
-rwxr-xr-x    1 root     root         4306 Jan  1  2009 svqos
-rwxr-xr-x    1 root     root         4616 Jan  1  2009 svqos2
-rwxr-xr-x    1 root     root       141695 Jan  1  2009 tc
lrwxrwxrwx    1 root     root           17 Jan  1  2009 telnetd -> ../../bin/busybox
-rwxr-xr-x    1 root     root        20179 Jan  1  2009 udhcpc
-rwxr-xr-x    1 root     root        24363 Jan  1  2009 udhcpd
-rwxr-xr-x    1 root     root        66523 Jan  1  2009 upnp
-rwxr-xr-x    1 root     root        34003 Jan  1  2009 wl
-rwxr-xr-x    1 root     root        27211 Jan  1  2009 wlconf
-rwxr-xr-x    1 root     root        12899 Jan  1  2009 wol
-rwxr-xr-x    1 root     root        16711 Jan  1  2009 wrt-radauth
root@asus520gc:/usr/bin#
# ls -la /var/log        
drwxr-xr-x    1 root     root            0 Jan  1  2000 .
drwxr-xr-x    1 root     root            0 Jan  1  2000 ..
-rw-r--r--    1 root     root            0 Jan  1  1970 messages
root@asus520gc:/usr/bin# ps   
  PID USER       VSZ STAT COMMAND
    1 root      1372 S    /sbin/init noinitrd 
    2 root         0 SW   [keventd]
    3 root         0 RWN  [ksoftirqd_CPU0]
    4 root         0 SW   [kswapd]
    5 root         0 SW   [bdflush]
    6 root         0 SW   [kupdated]
    9 root         0 SW   [mtdblockd]
   81 root      1368 S    resetbutton 
  124 root      1056 S    telnetd 
  128 root      2032 S    httpd -p 80 
  134 root       776 S    dnsmasq --conf-file=/tmp/dnsmasq.conf 
  229 root       672 S    cron 
  235 root      1364 S    ttraff 
  338 root       660 S    udhcpd /tmp/udhcpd.conf 
  361 root      1364 S    process_monitor 
  549 root      1364 S    wland 
  552 root       668 S    udhcpc -i vlan1 -p /var/run/udhcpc.pid -s /tmp/udhcpc -H asus520gc 
  579 root      1084 S    -sh 
  818 root      1060 R    ps 
root@asus520gc:/usr/bin#

Devices known to support a 128K CFE

Please add any dd-wrt compatible device you found to support a 128K CFE:

Brand Model Hardware revision FCC-ID Flash size Status "linux" partition*
Asus WL-520gC - MSQWL520GUGC 2MB micro-plus confirmed -
Belkin F5D7230-4 v1444 K7SF5D72304 2MB micro-plus confirmed -
Belkin F5D7230-4 v2000 K7SF5D7234A 2MB SF micro-plus confirmed -
Buffalo WHR-G125 N/A FDI-09101584-0 4MB not restricted 0x00020000
Linksys WRH54G v1.0 Q87-WRH54G 2MB micro-plus confirmed -
Linksys WRT54G v5.0 Q87-WRT54GV5 2MB CFE Compressor Gv5.x/6.x required

micro-plus-ssh confirmed

-
Linksys WRT54G v6.0  ? 2MB CFE Compressor Gv5.x/6.x required

micro-plus-ssh confirmed

-
Linksys WRT54G v7.2  ? 2MB CFE Compressor Gv8.x required -
Linksys WRT54G v8.1 Q87-WRT54V81 2MB micro-plus confirmed -
Linksys WRT54G2 v1 Q87-WRT54G2V1 2MB vxworks prep and killer required -
Netgear WG602 v4 PY3WG602V4 2MB micro-plus confirmed -
USRobotics USR5461 - IXM-RTGBR02 2MB micro-plus confirmed -
  • SF = Serial Flash. You must use special SF build of dd-wrt micro/micro-plus on units having 2MB serial flash.
  • The "linux" partition starting at 128K (0x00020000) may leave extra JFFS space compared to units having a 256K CFE. To determine the address, use the dmesg command (4MB+ flash required).


Additional info regarding the Micro Plus project