NAS firmware
This is a firmware for those who want to share out their usb hard drive over local network. Setting up a NAS like a pro has never been easier thanks to configuration-free ftp, nfs. Pre-configured WiFi HotSpot (AP) allows any wifi devices/clients to access files on the usb disk instantly and better still those wifi devices/clients will be able to surf the internet or access resources on the local home network at the same time. This is all done without any messing around configuration files on WR703N, no file to edit, no commend line to type.
Ever dreaming of access files out and about? No problem. OpenVPN server/client with lzo compression support is build in. Due to security reasons I dare not to pre-configure openvpn for you. Please head to openwrt's excellent wiki for setting up openvpn.
This firmware requires minimal configuration but do read through the rest of this post before try it out!!!!
Requirements:
* A router that has dhcp support that is connected to your home local network (Any out of shelf router bought recently should do)
* Ethernet cable with one end connected to the lan port of the above router and the other end connected to the lan port of WR703N
* usb 2.0 hard disk (formatted as a single ext3 partition preferable but not necessary)
* 5V usb power adapter. You will need a power adapter with sufficient current to power your hard disk. Personally I am using one 5V 1.0A power adapter and usb hard drive works fine.
Flash the firmware:
Get version 28854-1229 (aka The big Squeeze) firmware from here http://xbox-remote.googlecode.com/files … actory.bin
Flash it with the usual way either with web upgrade if you are using original firmware or mtd command if you are using openwrt.
First Boot:
The first time you boot WR703N after you flashed the firmware please make sure the usb hard disk is disconnected from WR703N till the router is initialised, i.e. steady blue LED. After you have steady blue LED open the following address http://nas/ using your web browser. You should see a system information page. If everything goes all right you can then plug in your usb hard disk. If your hard disk is formatted as a single ext3 partition then you don't need to do anything otherwise please head to the "How to format usb disk" section.
Configure network/wifi client the easy way
See my post here for details on how to switch between 3 predefined network profile and among other things like enable wifi client.
How to format usb disk:
Make sure you have copied out all files from your usb hard disk as this process will destroy any existing partition and file system on your usb hard disk. This process cannot be undone.
Open the following link http://nas/cgi-bin/webif/power-format.sh from your web browser and following the instruction. When all done it will automatically reboot WR703N. The time it takes for the format process varies. It takes less than 1 minute to format a slow usb 2.0 memory stick.
How to access files within local network
After the router is initialised, i.e. steady blue LED, with usb hard disk connected, you can access files on the usb hard disk using any ftp client pointing to ftp://nas/ with
username: root
password: root
If your hard disk have multiple partitions they will be automatically mounted on folder disk-xy where "x" will be letters staring from a and "y" will be the number of that partition. For example to access the 2nd partition you can just navigate into folder disk-a2.
CD/DVD-ROM will be mounted on folder cdrom-y where "y" will be the number of that cd/dvd-rom starts from "0". For example, the first cd/dvd-rom will be mounted on cdrom-0.
FTP Clients
If you are using windows you can try NetDrive or ExpanDrive which can mount any ftp server as a windows drive which hides away the ftp bits therefore make files on the usb drive available to any software that does not have ftp support.
Modern Linux distribution like Ubuntu has excellent ftp support and you should not have any problem with ftp using default file manager, for example with nautilus working on ftp is no different than working on a local disk.
Android user should try ES File Explorer which has very good ftp support.
XBMC (the ultimate media player) does support ftp protocol natively.
NFS Clients
To access nfs all you need to do is pointing the nfs client to nas:/mnt/sda1. Linux supports nfs natively and you should be able to find quite a few windows clients as well. The latest XBMC across all platforms should support nfs natively.
Due to limited CPU power the nfs write throughout is not as good as I expected even though it beats the read throughout of many commercial nas selling twice the price. I would recommend using ftp to upload really big files.
WiFi HotSpot (AP) access
The WiFi HotSpot is pre-configured to
SSID: NAS-xxxx
KEY: UEC7wzdu
where xxxx refers the last 4 digits of the device's mac address which is printed on the back of WR703N. Make sure your wifi client support 11G or 11N WPA/WPA2 protocol.
Multiple Wan/Uplinks and USB Tethering Support
If your mobile phone supports usb tethering then you can use WR703N to share out your mobile phone's internet via the built in AP. It cannot be easier!! Just plug in the usb cable and enable the usb tethering option on your mobile and off you go.
I know that quite a lot phones nowadays can do wifi tethering but remember the wifi chip inside is not as good as the one inside WR703N. It will dramatically reduce the battery of the mobile phone. By using usb tethering you removed all the problems and besides you can charge your mobile phone at the same time.
Multiple wan is enabled by default for all wan/uplink interfaces.
Compatibility
I would really like it to work with every single usb hard disk out there. But in reality some works better. I noticed that one of my usb-ide converter (USB to Parallel-ATA bridge made by sunplus) keeps disconnecting under heavy uploading (writing) via ftp. I have't found out why but its likely to do with kernel module that shipped with openwrt. If you experienced similar problems I would suggest swap another usb (adapter) hard disk to see any difference.
Some nice pictures
Q & A
Q: What's the performance like?
A: With ftp and a 2.5 inch usb 2.0 hard disk I can achieve around 10MB/s read and 9MB/s write throughput. CPU is a bit tight at maximum transfer rate. I can get similar read throughput with nfs but only 6.5MB/s write throughput possibly because of the limited CPU power.
Q: Why not samba? FTP is really ancient
A: Samba is not really designed for embedded environment like WR703N. Samba is huge and slow. With the same hardware I can only achieve 7MB/s read and 6MB/s write throughput.
Q: Can I use it to stream 1080p HD videos?
A: You certainly can. But be aware that maximum bitrate you can stream probably will be capped to 80Mbps which is probably the hard limit of 100Mbps network.
Q: Can I just unplug the usb hard disk whenever I feel like?
A: Absolutely not!! If you unplug the usb hard disk without proper unmount process then expect missing/corrupted file/folders, unable to access them via ftp (i.e. empty ftp folder) and kidnapped by aliens :). If you really need to unplug the usb hard disk you should go to http://nas/cgi-bin/webif/status-usb.sh and click unmount for all mounted partition. You should only attempt to unplug it after the unmount process is done for each and every partition though most likely only /dev/sda1.
Q: How do I found out status of my usb hard disk, like available space?
A: Open this link http://nas/cgi-bin/webif/status-basic.sh and look for /dev/sda1 and it will till you free space (in KiB) and total space in (KiB) for your usb hard disk
Q: Can I use opkg install additional packages?
A: In short no. All packages are cherry picked and only the needed bits ended up in this firmware. 4MB flash really makes it challenging to squeeze everything you need inside.
Q: Do you offer warranty?
A: This is a hobby project and no warranty is offered.
Q: How can I use nfs?
A: All you need to is mount openwrt-nas:/mnt
Q: What's the root password?
A: The root password is "root" without quote.
Q: Does this firmware support 3G modem?
A: No. I don't have any 3G modem. However usb tethering (via mobile phone) is supported since firmware version 28854-1229.
Q: Do you have a full list of the features of this firmware?
A: The changes I made are too many to list. Most important features include but not limited to
* configuration free ftp, nfs
* support EFI GUID partition in addition to dos partition
* authentication-free web server
* automatic mount usb hard disk with ext2/3, (v)fat, ntfs file system
* usb cd/dvd-rom with ISO9660, Joliet and UDF disk support
* added loop module so you could mount iso images on WR703N and possibly share it out via ftp/nfs.
* can format the disk from web page
* all nfs, ftp process will be restarted when hard disk umounted using the web page
* pre-configured network, wifi and network sharing on wifi AP works out of box
* openvpn with ssl and lzo support build in
* support usb 1.1/2.0 hard disk
* multiple wan/uplinks support with usb tethering
* usb printer support
* easy to use web gui to switch most common network profiles
Q: What packages are installed?
A: Full list of packages
base-files
base-files-network
block-mount
busybox
crda
dnsmasq
dropbear
e2fsprogs
haserl
hotplug2
ip
iptables
iptables-mod-conntrack
iptables-mod-conntrack-extra
iptables-mod-ipopt
iptables-mod-nat
iw
kernel
kmod-ath
kmod-ath9k
kmod-ath9k-common
kmod-button-hotplug
kmod-cfg80211
kmod-crypto-aes
kmod-crypto-arc4
kmod-crypto-core
kmod-fs-exportfs
kmod-fs-ext3
kmod-fs-isofs
kmod-fs-nfs-common
kmod-fs-nfsd
kmod-fs-ntfs
kmod-fs-udf
kmod-fs-vfat
kmod-input-core
kmod-input-gpio-buttons
kmod-input-gpio-keys-polled
kmod-input-polldev
kmod-ipt-conntrack
kmod-ipt-conntrack-extra
kmod-ipt-core
kmod-ipt-ipopt
kmod-ipt-nat
kmod-ipt-nathelper
kmod-leds-gpio
kmod-lib-crc16
kmod-lib-crc-itu-t
kmod-loop
kmod-mac80211
kmod-nls-base
kmod-nls-utf8
kmod-scsi-cdrom
kmod-scsi-core
kmod-tun
kmod-usb2
kmod-usb-core
kmod-usb-net
kmod-usb-net-cdc-ether
kmod-usb-net-rndis
kmod-usb-ohci
kmod-usb-printer
kmod-usb-storage
libblkid
libc
libcom
libext2fs
libgcc
libip4tc
liblzo
libnl-tiny
libpthread
librpc
librt
libuci
libuuid
libwrap
libxtables
mtd
nfs-kernel-server
openvpn
opkg
p910nd
portmap
resize2fs
restorefactory
swconfig
tune2fs
uci
uhttpd
vsftpd
webif
wireless-tools
wpad-mini
Q: When I try "mount_root" under fail safe I saw some error messages like this. What's wrong?
root@(none):/# mount_root
/sbin/mount_root: line 1: pi_include: not found
/sbin/mount_root: line 1: pi_include: not found
/sbin/mount_root: line 1: set_jffs_mp: not found
/sbin/mount_root: line 1: determine_root_device: not found
/sbin/mount_root: line 1: can't create /.extroot.md5sum: Read-only file system
switching to jffs2
A: Nothing to worry about. The mount_root command tries to load every scripts under /lib/preinit/ and 50_determine_usb_root which comes from extra-root does not like to be loaded that way, that's all. It should mount jffs2 partition just fine.
(Last edited by s7mx1 on 2 Jan 2012, 15:46)