Asus WL-500W

From DD-WRT Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 21:27, 5 November 2009 (edit)
Masterman (Talk | contribs)
(Partition the Disk)
← Previous diff
Revision as of 21:30, 5 November 2009 (edit) (undo)
Masterman (Talk | contribs)
(Configure the Printer from a Windows/Linux Client)
Next diff →
Line 57: Line 57:
== Configure the Printer from a Windows/Linux Client == == Configure the Printer from a Windows/Linux Client ==
 +
 +If planning to use both a printer and take advantage of the USB storage support with the awesome advantages of Optware, go to [http://www.dd-wrt.com/wiki/index.php/Optware%2C_the_Right_Way THIS] link. The below information is still useful though even after following the link!
 +
 +
 +
*From Windows, go to Control Panel, Printers, Add Printer *From Windows, go to Control Panel, Printers, Add Printer
*Choose Local, create new port Standard TCP/IP Port *Choose Local, create new port Standard TCP/IP Port
Line 65: Line 70:
*Manually select the printer from list or select Have Disk to add a new printer driver *Manually select the printer from list or select Have Disk to add a new printer driver
*Note: On Vista, many newer HP Deskjet printers can be set to HP Deskjet 990c since no Vista drivers are available from HP. *Note: On Vista, many newer HP Deskjet printers can be set to HP Deskjet 990c since no Vista drivers are available from HP.
- 
== Print Services == == Print Services ==

Revision as of 21:30, 5 November 2009

Contents

ASUS WL500W

Introduction

This How To is intended to walk someone through configuring a basic USB printer and a USB storage device on their ASUS WL-500W router. The majority of the information comes from the other ASUS WL500 series Wiki's as well as other websites. There are great USB how to articles on the DD-WRT wiki, so if what is listed in this how-to does not suit your needs, search the Wiki and the Forums! And remember Google is your freind!

Firmware

A fresh firmware flash is highly recommended as well as a clearing of the NVRAM. Starting from a clean slate will provide the smallest chance of encountering a random problem as these units can be some-what temperamental. Flash your WL500W router with either the latest DD-WRT Mega firmware (v24 SP2 or later) or the Eko DD-WRT NEWD/NEWD2 Big, or even a mini USB release that includes full USB support in a mini firmware package. Why bother with the reduced functionality of a mini build when this router has 8MB flash?

There are several advantages. The mini is a fraction of the size, yet provides the vast majority of the functionality of the larger builds. For this small sacrifice, you get a much more lean and efficient setup, including...

  • A nearly 5.0MB JFFS2 partition
  • Nearly 90% free system memory on a fully configured system
  • Full USB support, easily enabled from the web GUI (just like Mega)
  • Faster, leaner (Merely observational, but noteworthy)


IMPORTANT

Consider the following or you run the risk of BRICKING your router:

Brainslayers mega flash size - 7.33MB

Eko's Big Flash size - 5.9MB

Now, the error only occurs when JFFS2 is enabled and the router reboots, so you are safe if you DONT enable JFFS2.

Total available JFFS2 size for BS's build is 640KB which overwhelms the kernel and causes a panic. Even using a storage device with the command mount -o bind /mnt/jffs /jffs will still cause a kernel panic.

Eko's JFFS2 partition size is 1640KB+, allowing much more room.

I tested this on BS's 12996,12874 and 12533 builds and partially bricked my router several times. (A simple power disconnect for 30 secs will allow it to recover)

Eko's build however works flawlessly AND provides the SAME features (except for connection warning) as BS's.

One thing I am still unsure of is why this particular model Asus router is subject to this bug, but in the mean time, I suggest using Eko's Big build until the dev's can work it out..

Initial Prep

  1. Complete your standard WAN, LAN, DHCP configuration so that your router has working Internet access
    Note: This guide will not explain these details, since they are very well documented elsewhere
  2. Under Services, enable:
    Secure Shell (SSHd)
    Telnet (optional, select this if you have no idea how to connect to an SSH server)
    USB modules which you need (Core USB support, UHCI, OHCI, USB 2.0, USB Storage, ext2/ext3, FAT, USB Printing, Automatic drive mount)

For example, if you only want to install Optware packages on 2.0 device you can enable : Core USB support, USB 2.0, USB Storage, ext2/ext3 FS support

  • Save & then Apply Settings
  • Under Administration > Management:
  • Enable JFFS2 Support
  • Clean JFFS2
  • Save & then Apply Settings
  • Reboot Router

NOTE If attempting to use USB storage with multiple partitions for /opt , /jffs , /mnt, do NOT enable JFFS2. Once the USB storage is configured, JFFS will reside on the mounted drive partition.

Configure the Printer from a Windows/Linux Client

If planning to use both a printer and take advantage of the USB storage support with the awesome advantages of Optware, go to THIS link. The below information is still useful though even after following the link!


  • From Windows, go to Control Panel, Printers, Add Printer
  • Choose Local, create new port Standard TCP/IP Port
  • Set Device Type to TCP/IP
  • For Hostname or IP field, set to router IP (default is 192.168.1.1)
  • On Vista, do not query printer for driver
  • On next screen, click custom
  • Manually select the printer from list or select Have Disk to add a new printer driver
  • Note: On Vista, many newer HP Deskjet printers can be set to HP Deskjet 990c since no Vista drivers are available from HP.

Print Services

Make sure it is enabled under the Services->USB tab. If it isn't select it, click save, wait 10 secs, then click apply. This will reboot your router. Also make sure Automatic Drive Mount is enabled.

  • In the drop down menu, you have three choices. /mnt /opt /jffs. You will need to select /jffs for the Print server to work, as well as clicking Apply Settings.
  • Plug the USB cord into the router, give it a few seconds and it should recognize. If not, your configuration settings are incorrect, or you do not have a build that is V24 sp2 or later.

The following link will assist with any problems:

(keep in mind that it was composed before SP2, and is for the 520gU, which doesn't matter, but will offer the old-school way of setting it up/diagnosing problems) http://wl520gu.googlepages.com/

Adding USB Storage

This section will be dedicated to both a USB flash drive and other USB storage devices such as hard disks. It is also recommended that the drive be formatted/partitioned to a Linux format (ext2/3). You may use FAT or FAT32, but not only will throughput speeds be slowed down, file sizes are a problem (FAT32 is limited to 4GB file sizes), and you will not be able to use optware or Linux swap. The following is HIGHLY technical and even those with alot of experience may have problems. It takes alot of time and patience to make this work properly and in the fashion you want it to. For novice users, I recommend just sticking to the basics until you understand what really is at play here.

Step 1 is to create partitions and file systems on your USB storage device on another system. A Linux PC is preferred, because you can easily partition flash drives as well as create ext2/ext3 file systems which are much more compatible with DD-WRT. NTFS support is currently (as offsep.15 2009) still in the developmental stage. You can download a bootable Linux distro called Ubuntu http://www.ubuntu.com/ to easily format the storage device.

You must partition and format your drive somewhere other than your router. DD-WRT does not include the commands necessary to perform these functions. Use a Linux boot CD like Knoppix or Ubuntu on your computer. Restart your computer so it boots from the Linux CD.

After Linux boots, connect your USB disk drive.

  • Open a terminal window so you can issue Linux commands.
  • Use the command "sudo su -" to become root.
  • Find out what Linux named your USB disk with the command dmesg | more You're looking for a set of messages that include the name and a description of your hard disk drive.

One line will say SCSI device sd? For the remainder of this text, replace sd? with the name of your disk. Here's an example of what you're looking for (in this case it's a HDD)

scsi0 : SCSI emulation for USB Mass Storage devices
Vendor: WD        Model: 1600BEV External  Rev: 1.05
Type:   Direct-Access                      ANSI SCSI revision: 02
Attached scsi disk sdb at scsi0, channel 0, id 0, lun 0
SCSI device sdb: 312581808 512-byte hdwr sectors (160042 MB)

Partition the Disk

See THIS for a much more detailed set of instructions and a list of features. If you are new to DD-WRT, the above link will provide you with a more "I just want it to work" approach.



Using the command fdisk /dev/sd? You will be creating three partitions:

  • sd?1 - the /opt partition, where Optware will reside.
  • sd?2 - the swap partition, where Linux will swap jobs.
  • sd?3 - the /jffs partition
  • sd?4 - the data partition, which you will share via Samba or FTP.

NOTE The ? are the drive letters Linux assigns. You will need to determine which one is correct by issuing the command dmesg | more (Hit enter to continue readout)

It's important to understand everyone's disk drive configuration will be different. If your drive is 40 GB or smaller, use the smaller set of partition sizes below. If your drive is

over 40 GB, you can use the larger set of partition sizes.

Disk 40 GB or less


  • /opt 256 megabytes
  • swap 32 megabytes
  • /jffs 128 megabytes
  • data remainder of the disk

Disk greater than 40 GB


  • /opt 512 megabytes
  • swap 64 megabytes
  • /jffs 256 megabytes
  • data remainder of the disk

Now, to get started

Remember, you MUST be logged in as root using the sudo su - command!

This is an example for a USB HDD. Note: The USB HDD MUST be self powered. You can get by this by using a powered hub if using something like a portable HDD

Also, to prevent the HDD from spinning down, go here http://www.dd-wrt.com/wiki/index.php/USB_storage#Prevent_Harddisk_Spindown

Code (the ? are the drive letters, make sure you choose the correct one!) The bold texts are the commands

# fdisk /dev/sd?
Command (m for help): p 
Disk /dev/sd?: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes
Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-621, default 1):<HIT ENTER>
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-621, default 621): +256M <HIT ENTER>
Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (197-621, default 197):<HIT ENTER>
Using default value 197
Last cylinder or +size or +sizeM or +sizeK (197-621, default 621): +64M <HIT ENTER>
Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (197-621, default 197):<HIT ENTER>
Using default value 621
Last cylinder or +size or +sizeM or +sizeK (197-621, default 621): +128M <HIT ENTER>
Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 4
First cylinder (197-621, default 197):<HIT ENTER>
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (197-621, default 621): <HIT ENTER>
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)      
Command (m for help): p
Disk /dev/sd?: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes
Device Boot    Start       End    Blocks   Id  System
/dev/sd?1   *         1       196    395104+  83  Linux
/dev/sd?2           197       262    133056   82  Linux swap
/dev/sd?3           263       458    395136   83  Linux
Command (m for help): w

If you get a message saying that the current table is in use and will be executed on next reboot, then do it! Make SURE though that you open a terminal, do a sudo su - followed by an fdisk /dev/sd? and type p as this will verify the partition table

Format the opt and data partitions, and prepare the swap partition

# mke2fs -j -m 1 -L Optware /dev/sd?1

mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Filesystem label=Optware
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
122112 inodes, 243964 blocks
12198 blocks (5.00%) reserved for the super user
First data block=0
8 block groups
32768 blocks per group, 32768 fragments per group
15264 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Writing inode tables: done
Writing superblocks and filesystem accounting information: done

# mke2fs -j -m 1 -L Shared /dev/sd?3

mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Filesystem label=Shared
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
122112 inodes, 243964 blocks
12198 blocks (5.00%) reserved for the super user
First data block=0
8 block groups
32768 blocks per group, 32768 fragments per group
15264 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Writing inode tables: done
Writing superblocks and filesystem accounting information: done

# mke2fs -j -m 1 -L Data /dev/sd?4

mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Filesystem label=Data
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
122112 inodes, 243964 blocks
12198 blocks (5.00%) reserved for the super user
First data block=0
8 block groups
32768 blocks per group, 32768 fragments per group
15264 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Writing inode tables: done
Writing superblocks and filesystem accounting information: done


# mkswap /dev/sd?2

Now your disk drive is partitioned and formatted for Linux! If you are a windows user, you can either proceed (recommended) using Linux (Ubuntu comes with FireFox already installed) or shut down the Linux distro you used, and make sure the boot disk pops out, as you wll need to get back to windows.

Connecting the Drive to your Router

1. You should have the JFFS file system enabled on your router. On the DD-WRT web GUI screen, the Administration/Management tab contains this option in an area labeled JFFS2 Support. Enable both options and reboot your router. After it reboots, the first option (JFFS2) will remain enabled and the second option (Clean JFFS2) will be disabled.

2. On the DD-WRT web GUI screen, on the Services tab enable the options for:

  • Core USB support
  • USB 2.0 support
  • USB storage support
  • ext2/ext3 File System support

2.1 From the DD-WRT web GUI screen, on the Administration/Management tab, scroll to the bottom and click on Reboot Router.

3. After a minute, start a terminal session to your router or use a program like PuTTY.

4. Disconnect the disk from your computer and connect it to your router.

  • Windows users, you must install a third party linux driver to be able to read the contents of the drive

5. In the terminal session, use the command dmesg | more to insure your disk drive is recognized. Here's an example of what it should look like on a USB HDD

SCSI subsystem driver Revision: 1.00
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
Journalled Block Device driver loaded
hub.c: new USB device 00:03.1-1, assigned address 2
hub.c: USB hub found
hub.c: 4 ports detected
usb.c: registered new driver usblp
printer.c: v0.13: USB Printer Device Class driver
hub.c: new USB device 00:03.1-1.3, assigned address 3
scsi0 : SCSI emulation for USB Mass Storage devices
Vendor: WD        Model: 1600BEV External  Rev: 1.05
Type:   Direct-Access                      ANSI SCSI revision: 02
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sda: 312581808 512-byte hdwr sectors (160042 MB)
Partition check:
/dev/scsi/host0/bus0/target0/lun0: p1 p2 p3
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 3

6. Change to the directory /dev/scsi/host0/bus0/target0/lun0 (Flash drives, use this: /dev/discs/disc0/disc) and list the files there. There should be one entry for the hard disk drive, and one for each of the three disk partitions

# cd /dev/scsi/host0/bus0/target0/lun0
# ls -la
drwxr-xr-x    1 root     root            0 Jan  1 00:00 .
drwxr-xr-x    1 root     root            0 Jan  1 00:00 ..
brw-------    1 root     root       8,   0 Jan  1 00:00 disc
brw-------    1 root     root       8,   1 Jan  1 00:00 part1
brw-------    1 root     root       8,   2 Jan  1 00:00 part2
brw-------    1 root     root       8,   2 Jan  1 00:00 part3

7. Change to the JFFS2 directory, and create directories for mounting the disk partition

# cd /jffs
# mkdir mnt
# mkdir mnt/disk1

8. Test mount your new opt and data partitions. In the terminal window, issue these commands (Flash drives, use this: /dev/discs/disc0/disc /part?)

# mount /dev/scsi/host0/bus0/target0/lun0/part1 /opt
# mount /dev/scsi/host0/bus0/target0/lun0/part3 /jffs/mnt/disk1
# mount
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro)
none on /dev type devfs (rw)
proc on /proc type proc (rw)
ramfs on /tmp type ramfs (rw)
/dev/mtdblock/4 on /jffs type jffs2 (rw)
/dev/scsi/host0/bus0/target0/lun0/part3 on /jffs/mnt/disk1 type ext3 (rw)
/dev/scsi/host0/bus0/target0/lun0/part1 on /opt type ext3 (rw)

9. On the DD-WRT web GUI screen, on the Administration/Commands tab, click the Edit button, then enter your disk mount commands (Flash drives, use this: /dev/discs/disc0/disc /part?)

sleep 20 && mount /dev/scsi/host0/bus0/target0/lun0/part1 /opt
sleep 20 && mount /dev/scsi/host0/bus0/target0/lun0/part3 /jffs/mnt/disk1

Click on Save Startup to store the commands. Your terminal session will be disconnected.

10. From the DD-WRT web GUI screen, on the Administration/Management tab, scroll to the bottom and click on Reboot Router.

11. After a minute, restart your terminal session and issue the mount command again. You should see both of your disk partitions mounted, even after the router has rebooted.

# mount
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro)
none on /dev type devfs (rw)
proc on /proc type proc (rw)
ramfs on /tmp type ramfs (rw)
/dev/mtdblock/4 on /jffs type jffs2 (rw)
/dev/scsi/host0/bus0/target0/lun0/part3 on /jffs/mnt/disk1 type ext3 (rw)
/dev/scsi/host0/bus0/target0/lun0/part1 on /opt type ext3 (rw)

Check under the USB tab, and look at the disk info part. Everything should be there.

Example for a USB Flash Drive with only a data and swap partition.

--- /dev/discs/disc0/disc
Block device, size 7.465 GiB (8015314944 bytes)
DOS/MBR partition map
Partition 1: 7.009 GiB (7526098944 bytes, 14699412 sectors from 63)
Type 0x83 (Linux)
Ext3 file system
UUID BC30D9C0-1CEB-4BD0-A3D8-48641B26A8F0 (DCE, v4)
Volume size 7.461 GiB (8011386880 bytes, 1955905 blocks of 4 KiB)
Partition 2: 462.8 MiB (485291520 bytes, 947835 sectors from 14699475)
Type 0x82 (Linux swap / Solaris)
Blank disk/medium
Status: Mounted on /mnt

INSTALLING OPTWARE ON YOUR DISK

OLD Method, see Fraters optware below

After JFFS is enabled and disk partitions are mounting, you can download and install the Optware packages that provide more Linux functionality to the router. These will be installed onto the hard disk drive, NOT on the router itself. Remember the /opt directory on your router actually resides on the disk drive.

1. Use the command ipkg update to update your ipkg repositories

# ipkg update 
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages ...
Connecting to ipkg.nslu2-linux.org[140.211.166.82]:80 
Packages             100% |**********************************************|   259 KB 00:00:00 ETA
Done.

2. Now download the Optware installation script from the web to the /tmp directory

# wget http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh -O - | tr -d '\r' > /tmp/optware-install.sh

3. Execute the Optware installation script you just downloaded. It will take some time to download and configure everything, so verify it starts running, then take a break and come back in ten or fifteen minutes.

# sh /tmp/optware-install.sh
Checking system config ...
Using 192.168.1.1 as default gateway.
Using the following nameserver(s):
nameserver 192.168.1.30
Warning: local nameserver is different than gateway!
Check config or enter:
sed -i s/192.168.*/192.168.1.1/ /tmp/resolv.conf
to correct this.
Installing package uclibc-opt_0.9.28-13_mipsel.ipk ...
Connecting to ipkg.nslu2-linux.org[140.211.166.82]:80
uclibc-opt_0.9.28-12 100% |***********************************************|   832 KB 00:00:00 ETA
Updating /opt/etc/ld.so.cache
/opt/sbin/ldconfig: can't create /opt/etc/ld.so.cache~ (No such file or directory)
Installing package ipkg-opt_0.99.163-9_mipsel.ipk ...
Connecting to ipkg.nslu2-linux.org[140.211.166.82]:80
ipkg-opt_0.99.163-9_ 100% |***********************************************| 75896    00:00:00ETA
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages.gz
Inflating http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages.gz
Updated list of available packages in /opt/lib/ipkg/lists/optware
Successfully terminated.
Installing uclibc-opt (0.9.28-12) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/uclibc-opt_0.9.28-12_mipsel.ipk
package uclibc-opt suggests installing ipkg-opt
Configuring uclibc-opt
Updating /opt/etc/ld.so.cache
Successfully terminated.
Installing ipkg-opt (0.99.163-9) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/ipkg-opt_0.99.163-9_mipsel.ipk
Configuring ipkg-opt
Successfully terminated.

This will take an enormous amount of time if you didn't follow the above manual drive mount procedures, and will write to the router JFFS flash, which is NOT good

4. Now install the busybox packages including links for busybox commands

# /opt/bin/ipkg-opt install busybox-base
# /opt/bin/ipkg-opt install busybox
# /opt/bin/ipkg-opt install busybox-links

5. In your terminal session, update your default executable PATH to look for the new Optware software before the DD-WRT software

# export PATH=/opt/bin:/opt/sbin:${PATH}

Installing Frater's Optware

  • This is still a Work in Progress, so this Wiki will be updated/modified frequently

This is the latest, greatest and easiest way to enable Optware on your Router. It is recommended that you have a router with USB capable storage. Also, you wont be needing JFFS2, so DISABLE it.


There are several methods of doing this. Once you have all your partitions set on the external device, add this to your Start-up script in

  1. Administration->Commands:

Startup (make sure you install to the/opt partition. Replace the ? with the appropriate number!)

sleep 10 && mount -t ext3 /dev/scsi/host0/bus0/target0/lun0/part? /opt &
n=1
while [ ! -d /opt/etc/init.d ] ; do
 sleep 3
 [ $n -gt 30 ] && break
 let n+=1
done
/opt/etc/init.d/optS

Click Save Startup

Shutdown

/opt/etc/init.d/optK

Click Save Shutdown

Give the router a minute or two and reboot.


Alternative (easiest):

Web Interface Method:

Go to Services->USB. Enable USB Core support, USB 2.0 Support, USB Printer Support, USB Storage Support, Ext2/3 support, FAT (optional) File System Support and Automatic Drive Mount.

Next, once the drive and partitions are recognized, Select /opt from the Drop-down menu. Click Apply settings (your router will reboot)

NOTE This may be easier, but the initial Command Line method is much more reliable!


Do the following (you will need to login to you router via SSH or Telnet):

First issue these commands to ensure /opt is mounted:

root@Asus:~# mount
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro)
none on /dev type devfs (rw)
proc on /proc type proc (rw)
ramfs on /tmp type ramfs (rw)
devpts on /proc/bus/usb type usbfs (rw)
/dev/scsi/host0/bus0/target0/lun0/part3 on /opt type ext3 (rw)
root@Asus:~#



Here's just a little sample of my output. Yours will not look like this yet.


root@Asus:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
rootfs                5.0M  5.0M     0 100% /
/dev/root             5.0M  5.0M     0 100% /
/dev/scsi/host0/bus0/target0/lun0/part3
                     259M  213M   44M  83% /opt
/dev/scsi/host0/bus0/target0/lun0/part4
                     293G  6.7G  284G   3% /mnt
/dev/scsi/host0/bus0/target0/lun0/part1
                      69M  5.6M   63M   9% /jffs
root@Asus:~#


Enter the following commands into Busybox/Telnet


wget -O /tmp/prep_optware http://wd.mirmana.com/prep_optware 

sh /tmp/prep_optware

This will load all the necessary optware and supporting scripts I (frater) wrote from the ground up.


This will take about 20 mins depending on your connection and your router CPU clock. Close your Web Interface as this consumes precious memory and CPU resources


Services that will be installed:


bash instead of shell in busybox (LFS support)
services running as other users than root
vim with proper terminal support
automounting and unmounting of partitions
hotmount
pre-configured samba
transmission with watchdog
reverse proxy featuring pound
service tool
Network printing


Once everything has completed, type reboot into either the BusyBox/Telnet Shell or through the Web Interface.


BusyBox/Telnet Commands:


The commands are:

service - show all services (enabled/disabled)
service <service name> - if "status" is supported it will run the service-script with "status" asparameter. 
service <service name> on - Enable the script (chmod +x  /opt/etc/init.d/S<servicescript>)
service <service name> off - Disable the script (chmod -x  /opt/etc/init.d/S<servicescript>)
service <service name> <parameter> - Run the script with the parameter.

Examples:

service
service pound
service pound off
service pound on
service pound stop


service automount start - mount all partitions
service automount stop - umount all partitions instead of the one to /opt
service automount status - show all partitions
service automount unmount <partition|mountpoint> - unmount that partition and remove it fromautomount
service automount nomount <partition> - Do not automount this partition
service automount nonomount <partition> - remove this partition from the nomount list


Useful scripts

mount
fdisk -l
blkid
df -h
cat /tmp/fdisk
cat /tmp/blkid
cat /opt/etc/automount
cat /opt/etc/nomount 
lsusb

ACTIVATING SWAP

OLD method. Fraters Optware automatically mounts your Swap

1. Insure the swap partition is formatted correctly by using the Optware busybox mkswap command

# /opt/bin/busybox mkswap /dev/scsi/host0/bus0/target0/lun0/part2

2. Use the free command to verify your swap space is active

# free
             total         used         free       shared      buffers
Mem:        13048        12564          484            0          908
Swap:        72252            0        72252
Total:        85300        12564        72736

3. Using the DD-WRT web GUI screen, go to the Administration/Commands screen, and click 'Edit'. Add the busybox swapon command below everything else so swap will be enabled whenever the router reboots. Click on Save Startup to save your startup commands. Your terminal session will be disconnected

/opt/bin/busybox swapon /dev/scsi/host0/bus0/target0/lun0/part2

4. Using the DD-WRT web GUI screen, go to the Administration/Management tab, scroll to the bottom, and click on Reboot Router

5. After a minute, restart your terminal session, and use the free command again. This verifies your swap space is activated whenever the router reboots

INSTALLING SAMBA

1. Using the terminal session, use the Optware ipkg-opt command to update your repository, remove any Samba packages installed with Optware, then download and install the Samba software

# /opt/bin/ipkg-opt update 
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages.gz
Inflating http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages.gz
Updated list of available packages in /opt/lib/ipkg/lists/optware
Successfully terminated.
# /opt/bin/ipkg-opt remove samba
# /opt/bin/ipkg-opt install samba2

2. Samba uses a default Linux user name of nobody but DD-WRT doesn't provide this user name by default. The workaround is to add this user to the DD-WRT user/password file every time the router reboots.

3. Using the DD-WRT web GUI screen, go to the Administration/Commands screen. Add the following command to the bottom of your startup commands

echo "nobody:*:65534:65534:nobody:/var:/bin/false" >>/tmp/etc/passwd

4. Using the DD-WRT web GUI screen, go to the Administration/Management tab, scroll to the bottom, and click on Reboot Router'

5. After a minute, restart your terminal session, and check the user/password file to insure the nobody user has been added following a reboot

# grep nobody /tmp/etc/passwd
nobody:*:65534:65534:nobody:/var:/bin/false

6. Create a shared data directory on your hard disk drive

# cd /jffs/mnt/disk1
# mkdir share
# chmod 777 share


7. Edit the Samba configuration file to add this share at the bottom of the file

# cd /opt/etc/samba
# cat >>smb.conf  <<EOF
[disk1]
   comment = DD-WRT shared disk
   path = /jffs/mnt/disk1/share
   public = yes
   writable = yes
   printable = no
   create mask = 0666
EOF


8. Edit the Samba configuration file to:

8.1) change the default workgroup name. Yours should match whatever is on all your other computers.

8.2) Define the range of IP addresses allowed

8.3) Announce itself on your network


# vi smb.conf
[global]
# workgroup = NT-Domain-Name or Workgroup-Name
  workgroup = MyWorkgroupName
# server string is the equivalent of the NT Description field
  server string = DD-WRT Samba Server
# This option is important for security. It allows you to restrict
# connections to machines which are on your local network. 
  hosts allow = 192.168.1.  127.
# Cause this host to announce itself to local subnets here
  remote announce = 192.168.1.255
:wq
#


9. Test the Samba configuration by manually starting the two Samba daemons

# /opt/sbin/nmbd -D
# /opt/sbin/smbd -D


10. From your computer, browse your network. Go to the address bar, enter two back-slashes followed by the IP address of your router and press ENTER. You should see your shared disk drive

\\192.168.1.1

11. If you can see the drive, create a test directory and a test file within that directory from your computer.

12. Using the DD-WRT web GUI screen, go to the Administration/Commands screen. Add the following command to the bottom of your startup commands

/opt/etc/init.d/S80samba start


13. Using the DD-WRT web GUI screen, go to the Administration/Management tab, scroll to the bottom, and click on Reboot Router

14. After a minute, browse your network again to insure the drive is shared after the router reboots

ALL THE STARTUP COMMANDS

When you're finished, your router startup commands should look something like this

sleep 20 && mount /dev/scsi/host0/bus0/target0/lun0/part1 /opt
sleep 20 && mount /dev/scsi/host0/bus0/target0/lun0/part3 /jffs/mnt/disk1
sleep 20 && /opt/bin/busybox swapon /dev/scsi/host0/bus0/target0/lun0/part2
echo "nobody:*:65534:65534:nobody:/var:/bin/false" >>/tmp/etc/passwd
/opt/etc/init.d/S80samba start


All data was copied and modified from http://forums.slickdeals.net/showthread.php?p=14205147#post14205147