1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Some Thoughts on a Replacement NAS200 Firmware

Discussion in 'Cisco/Linksys Network Storage Devices' started by dsc68, May 15, 2008.

  1. dsc68

    dsc68 Addicted to LI Member

    There have been a few comments scattered around regarding developing a replacement firmware for the NAS200. I thought it might be an idea to have a collective think about what we would like to achieve before doing too much work.

    I can see two possible paths to take:

    1. Enhance the existing Linksys firmware to add additional capabilities - like what Jac has done with his initial efforts.


    2. Develop a completely new firmware from the ground up

    The new firmware path has some attractions in that the Linksys firmware does have some limitations and it is not entirely open source. Adding capabilities involves a few kludges to work around the limitations so it isn't going to be a 'standard environment'.

    However the low power of the NAS200's processor really does limit what is is suitable for. For anything that requires any amount of processing, a NSLU2 is much more suitable. Apart from having internal HDD support there isn't much advantage in using a NAS200 over a NSLU2. In this case, enhancing the Linksys firmware to add capabilities that enhance its usefulness as a NAS/Mediaserver would appear to be a more effective use of our time.

  2. jac_goudsmit

    jac_goudsmit Super Moderator Staff Member Member

    I think my answer is: both. By using small steps.

    I think it's important to prioritize the possibility of running applications and/or kernels from harddisk so that we (the enthousiast firmware writers) don't wear out our flash memory by having to flash over and over. Running stuff from harddisk is the first thing that got implemented in my Jac0 firmware and it's a high priority for the generic solution.

    Another thought I had is that we should make it possible to flash the firmware without using the web interface. The code that Linksys added to ecos allows this, but the ecos command line makes it too easy to brick the device (a "flash" command will do this without warning. Very bad!). There is code to accept upgrades over the network similar to what the NSLU2 does, but the update program from the NSLU2 project doesn't work because it doesn't recognize the hardware ID. I want to make it much more difficult to brick the box and I want to make it possible to do all firmware hacks without having to open the box and void the warranty. It's possible to get an ecos prompt with telnet so a serial port is not needed either.

    I kinda have the following in mind:

    1. Create a repository that contains the original versions of all the software in the Linksys firmware, i.e. the original Linux 2.6.19 kernel, the original busybox etc.
    2. Check in the Linksys source code from the public R62 source tarball, that way we can see what changes were made by Linksys
    3. Modify busybox so Telnet works
    4. Add Dropbear to source tree so SSH works
    5. Modify boot scripts similar to my Jac0 firmware so that it's possible to automatically start software from harddisk (e.g. Twonky)
    6. Modify ecos so that it's not so easy to brick the NAS by typing "flash" or something; modify the NSLU2 update program so it works with NAS200
    7. Make kexec work so it's possible to chain-boot to another kernel from anywhere the Linksys kernel can get it, and/or change ecos/redboot to boot from network or harddisk.
    8. Make unionfs (or AUFS) work so that it's easier to update root filesystem

    I'm not sure yet about the priority that we should assign to the last 3 steps, it depends on the feedback we get in this forum. I guess they can all be worked on simultaneously.

    Once we can boot from harddisk or network, we can do anything. Wanna boot the R71 firmware from an image on harddisk? Sure. An Unslung or OpenWRT ported to NAS200? Yep. Interested in FreeNAS? Should be possible. Gentoo? Debian? Yes and yes.

    I've finished step 2 in my generic solution and I'll probably build an initial release this weekend. Watch this forum for announcements.

    I also want to try some hardware hacking to see if the box is underclocked and/or can be overclocked (obviously this is not possible without voiding the warranty). The documentation indicates 150MHz is possible and the Bogomips reading indicates that the current speed may be 100MHz instead of 133. It would also be cool if someone figured out if it's possible to install more RAM; there's space on the PCB but there are probably more parts missing than just the memory chip.


Share This Page