TechInfoDepot:DD-WRT/USB

See also: USB Storage or USB Printer Sharing

USB support
Of the Supported Devices, just a few support USB. These include the:


 * ASUS WL-500g Premium V.1 (German) and ASUS WL-500g Premium V.2
 * Asus WL-500W
 * Asus WL-520GU and various devices in this same series
 * Asus RT-N16
 * Buffalo WZR-HP-G300NH
 * D-Link DIR-330
 * D-Link DIR-632
 * Linksys WRTSL54GS
 * Linksys WRT350N
 * Linksys WRT600N
 * Linksys WRT610N Versions v1 and v2

Some versions of dd-wrt have USB support built in and can be enabled via the web-GUI, but all versions of dd-wrt can have USB enabled by installing the required kernel modules to JFFS, then using a startup script to mount individual devices. See USB storage for instructions and example scripts.

The cost of USB-capable network routers starts at $45 for the Asus WL-520gU (as of September 23, 2009), depending on capability, but the ability to add external hardware easily makes these far more powerful units.

USB devices
The various USB options include: The availability of external storage and peripherals makes a greater number of packages, including audio and multimedia, potentially usable from these otherwise-tiny devices.
 * Network-attached storage including flash memories, hard discs, floppy discs and CD/DVD-ROM devices. These can be shared across a LAN using Samba; an external hard drive also provides plentiful swap space for use as virtual memory.
 * Printer Sharing; as either a pass-through driver ([p910nd] - for printers not supported directly by embedded Linux or those needing proprietary manufacturers' drivers) or CUPS (for fully Linux-supported printers only)
 * CD recording; the Optware packages provide cdrtools: common low-level CD recording tools such as cdrecord and mkisofs.
 * Local network sharing of supported scanner models using SANE drivers; these may be accessed from Linux desktop PC's or (through third-party utilities like SaneTwain) even from Windows PC's.
 * Cellular Phone/USB Modem as WAN connection for acm.o driver compartible USB devices

Multimedia
There are a number of Optware packages designed to handle audio or to convert multimedia data from one format to another. USB audio hardware is becoming more commonplace due to its use with Voice over IP softphone applications, and the "video 4 linux" project has done much toward making analogue video capture and webcam devices operate with the Linux desktop. It would appear that, once USB support is available, many packages are available to be tested on the embedded Linux platform.

Getting video back out, however, is no easy task.

One device which may be of interest is a USB hard drive enclosure with a built-in media player, such as the Mediasonic HM2-U2TV or others like it. Install a laptop HDD into this tiny device, connect it to your USB-aware router as network-attached storage and load it with images, audio and video files. Unplug it and connect it to your PAL or NTSC TV monitor as a self-contained media playback device. Note that the media player is deactivated whenever the USB interface is connected.

Another possible combination: a Dreambox DM500 (dream-multimedia-tv.de) and a NAS-capable Linux router on the same network. The DM500's are Linux-based digital TV units (they do not tune analogue signals). Having no built-in USB or storage, these depend on network-attached storage elsewhere on the LAN in order to provide PVR-like capabilities. Pair these with a Linux-based router such as the Asus WL-700GE (which has a built-in 160GB HDD) or any of the USB-capable devices (which interface to USB hard drives) and video can be stored and displayed without relying on access to desktop PC's and without going to the higher-end Dreambox DM7000 series (which offers built-in HDD, USB, keyboard and flash memory support, but at double the price - a hefty premium to pay).

Multifunction devices
Multifunction printers (a printer and scanner in one unit, resembling a small photocopier) may be supported, depending on model. These may be treated as the individual portions - a printer and a scanner - although even an otherwise-incompatible device will normally allow just the printer portion to be used on a strictly pass-through basis through p910d even if none of the other capabilities are supported.

USB telephone-style handsets may or may not be Linux-compatible, with low-end models being more likely to be recognized as some Linux-compatible combination (typically a standard USB sound card with perhaps a USB human interface device as the keypad). Higher-end devices often are locked to one provider by being tightly-integrated to Windows-specific drivers and/or the Skype softphone application, rendering them useless. For instance, the Linksys CIT200 is useless outside Windows, while the far lower-end Skype SK04 is a relatively-standard USB device which may be worth testing in a Linux environment.

Laptop "USB docking stations" typically provide some combination of a USB hub, an extra network interface, audio, serial/parallel ports, keyboard and mouse. Their compatibility varies depending on model; it may be necessary to determine which drivers are installed by manufacturer-supplied Windows discs for each of the individual peripherals in these bundled units and check availability of corresponding existing embedded Linux drivers before considering these for use. Some may work, some most certainly don't. Unfortunately, USB to SVGA interfaces in these packages are currently very proprietary and in no way Linux compatible - the one key stumbling block preventing a USB-aware network-storage device such as Linksys' NSLU2 or a USB-aware router from being expanded to be a small but complete self-contained embedded Linux computer system.

USB drivers
These drivers may be installed to JFFS using ipkg and then loaded (using insmod) from a startup script to enable USB support.

As of dd-wrt v.24-final the Mega version has built-in USB support.
 * In the web-GUI select: tab: Services -> tab: Services --> section: USB Support

For v.24 versions with built-in USB support, using ipkg will retrieve the ipkg files from the default Openwrt WhiteRussian feed. These drivers may not work correctly with v24 which uses a more recent version of the Linux 2.4 kernel. An alternative is to see the forum post here. An archive is attached in the first post that contains some file system, usb, and usb serial drivers not included in the usb enabled versions of DD-WRT. These drivers need to be copied to JFFS or a USB storage device and loaded (using insmod) from a startup script to enable these devices. NOTE: Some dd-wrt images have no common filesystems support (ext2/ext3/ntfs/vfat), primilarly images for devices with tiny amount of flash (4MB or less) so you have no ability to mount USB drive natively. If your JFFS allows this, you can store fs modules there otherwise you can use trick Mounting USB drive without located onboard fs modules if your system has USB support.

File System: hfs.o (Apple HFS file system support) hfsplus.o (Apple HFS+ (Extended HFS) file system support) nfs.o (NFS file system support w/ NFSv3 client support) nfsd.o (NFS server support w/ NFSv3 client support) ntfs.o (NTFS file system support w/ NTFS write support)

USB Extension: acm.o (Modem (CDC ACM) support) hid.o (Human Interface Device (full HID) support w/ /dev/hiddev raw HID device support) scanner.o (USB Scanner support)

USB To Serial: belkin_sa.o (Belkin and Peracom Single Port Serial Driver) cyberjack.o (REINER SCT cyberJack pinpad/e-com chipcard reader) digi_acceleport.o (Digi International AccelePort USB Serial Driver) empeg.o (Empeg empeg-car Mark I/II Driver) ftdi_sio.o (FTDI Single Port Serial Driver) io_edgeport.o (Inside Out Edgeport Serial Driver) io_ti.o (Inside Out Edgeport Serial Driver (TI devices)) ipaq.o (Compaq iPAQ / HP Jornada / Casio EM500 Driver) ir-usb.o (IR Dongle Serial Driver) keyspan.o (Keyspan USA-xxx Serial Driver w/ 28,28X,28XA,28XB,19,18X,19W,19QW,19QI,MPR,49W,49WLC) keyspan_pda.o (Keyspan PDA Single Port Serial Driver) kl5kusb105.o (KL5KUSB105 (Palmconnect) Driver) kobil_sct.o (UKOBIL chipcard reader) mct_u232.o (MCT Single Port Serial Driver) omninet.o (ZyXEL omni.net LCD Plus Driver) pl2303.o (Prolific 2303 Single Port Serial Driver) usbserial.o (USB Serial Converter support w/ USB Generic Serial Driver) visor.o (Handspring Visor / Palm m50x / Sony Clie Driver) whiteheat.o (ConnectTech WhiteHEAT Serial Driver)

For other versions of DD-WRT load the following modules:

USB base drivers: kmod-usb-core -- Kernel Support for USB kmod-usb-ohci -- Kernel driver for OHCI USB controllers kmod-usb-uhci -- Kernel driver for UHCI USB controllers kmod-usb-uhci-iv -- Kernel driver for Intel/VIA UHCI USB controllers kmod-usb2 -- Kernel driver for USB2 controllers kmod-usb-acm -- Kernel modules for USB ACM (Abstract Control Model) support

Storage:

Also read USB storage for more on USB Storage. As of dd-wrt v.24-final the Mega version has built-in USB storage support.

kmod-usb-storage -- Kernel modules for USB storage support kmod-ext2 -- Kernel modules for EXT2 filesystem support kmod-ext3 -- Kernel modules for EXT3 filesystem support kmod-vfat -- Kernel modules for VFAT filesystem support

Serial ports: kmod-usb-serial -- Kernel Support for USB-to-Serial converters kmod-usb-serial-belkin -- Kernel Support for Belkin USB-to-Serial converters kmod-usb-serial-ftdi -- Kernel Support for FTDI USB-to-Serial converters kmod-usb-serial-mct-u232 -- Kernel Support for Magic Control Technology USB-to-Serial converters kmod-usb-serial-pl2303 -- Kernel Support for Prolific PL2303 USB-to-Serial converters kmod-usb-serial-visor -- Kernel Support for Handspring Visor / Palm m50x / Sony Clie

Audio:
 * See http://sokrates.mimuw.edu.pl/~sebek/openwrt/ - some drivers exist but these are not part of the base 2.4.x distribution. Proper sound-core and kmod-usb-audio support is provided once the newer 2.6 kernel is used. While some OpenWrt versions are beginning to support 2.6 kernels, as of Oct'97 Broadcom wireless still isn't working with the newer kernel.

Printer and multifunction: Also see USB printer sharing for more on USB printer support. As of dd-wrt v.24-final the Mega version has built-in USB printer support.

kmod-usb-printer -- Kernel modules for USB Printer support kmod-usb-scanner -- Kernel modules for USB Scanner support kmod-videodev -- Video For Linux (webcam/video capture) kernel support

Bluetooth: kmod-bluetooth -- Bluetooth stack kernel modules kmod-bluetooth-bfusb -- Bluetooth HCI BlueFRITZ! USB driver kmod-bluetooth-hciuart -- Bluetooth HCI UART driver kmod-bluetooth-hciusb -- Bluetooth HCI USB driver kmod-bluetooth-hcivhci -- Bluetooth Virtual HCI device driver

USB modems:
 * One example here Cellular Phone/USB Modem as WAN connection
 * General listing as of 04/04/09 .v24 SP2: 3G / 3.5G about 3G/3.5G UMTS/HSDPA/HSUPA/CDMA2000(EVO)