USB Devices in Linux
Helpful Links:
Linux USB Home Page
http://www.linux-usb.org/
The mother of all Linux USB sites/information. If in doubt, go here.
Linux USB devices drivers status
http://www.linux-usb.org/devices.html
The official status of devices and their drivers from the USB developers themselves. Generally devices are "classed" together (eg. "keyboards" supported; "cpia webcams" experimental(; sometimes the most popular model/brand is singled out.
Wiki-like site on functionality of specific USB devices in Linux
http://www.qbik.ch/usb/devices
This is the place to find out about other users' experiences with the USB device you are considering purchasing (or, whoops! already bought that and can't get it to work!)
USB device configuration HOWTO's
http://www.linux-usb.org/USB-guide/c122.html
Go here to find out the general way to get a device type working. It has the nitty-gritty on configuring your USB keyboard or digital camera, but not necessarily this or that particular model.
Linux USB Subsystem Guide
http://www.linux-usb.org/USB-guide/book1.html
The official USB Guide for Linux. Some of the above links are, in fact, just subsections of this document, which also includes more low-level information (eg. the USB kernel architecture, USB hardware design, etc.)
How to get the demo'd devices working in 30 seconds or less
First, the USB hardware on the motherboard must be enabled:
modprobe usbcore
modprobe usb-uhci or "usb-ohci" or "uhci" as the case may be
Now your system is ready to accept and run USB devices- all you have to do is get the individual device drivers loaded.
USB Keyboard
modprobe hid
modprobe input
modprobe keybdev
The keyboard should now work. There is one gotchya though in my experience: be sure to enable USB keyboard/mouse support in your CMOS and plug the keyboard into the "root" controller of the motherboard, rather than into a secondary mobo controller or an external hub. If you don't do these two things, your keyboard will probably work after Linux is fully booted, but you may not be able to enter your mobo's CMOS or change settings at the Lilo prompt, etc..
USB Mouse
mkdir /dev/input first time only - make the inputdev section
mknod /dev/input/mice c 13 63 first time only - make the mousedev node
modprobe hid
modprobe input
modprobe mousedev
The mouse is now working, just point gpm and/or X to the new device node by changing the device file pointer to /dev/input/mice in their respective config files (traditional ps/2 mice are usually pointed to either /dev/psaux and serial mice to /dev/ttyS0 or /dev/ttyS1; often the "true" mousedev node is symlinked to /dev/mouse).
For examples:
--- /etc/gpm.conf ---
device=/dev/input/mice
responsiveness=
repeat_type=
type=autops2
append=""
sample_rate=
--- mouse section of /etc/X11/XF86Config-4 ---
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
EndSection
Zoom Webcam
modprobe cpia this should find your webcam and install the proper v4l drivers as well
The camera is now functional- just start up your favorite v4l/webcam software (eg. camstream, gnomemeeting, or xawtv)
SMC and D-Link NICS
modprobe pegasus
Now just configure according to your distro's preferred method (eg. /sbin/ifconfig command on slack, or edit /etc/sysconfig/network-scripts/ifconfig-eth? on Redhat and friends, or /etc/network/interfaces on Debian and friends). NOTE: from experience I can tell you that the Netgear USB NIC (EA 101) uses the "kawasaki" chipset (kaweth.o module) and as of 2.4.16 simply does not work, and Netgear does not seem to provide their own drivers. Too bad; their PCI nics are longtime Linux-crowd favorites. Pegasus chipset devices seem to work very well- the SMC USB NIC served Internet traffic to my home lan for months without a hiccup, and the D-Link HUB+NIC has run on a workstation on and off with no problems. Both perform surprisingly well at high bandwidth.
D-Link Hub
The hub portion of the D-Link HUB+NIC needs no special driver- it should work out of the box, as should almost any USB hub (there are some exceptions; check the user's reports at qbik.ch if unsure).
Iomega Zip-250 USB
mkdir /zipdrive create a mount point; this could be anywhere you like
modprobe usb-storage
mount -t vfat /dev/sd?4 /zipdrive
Iomega USB drives, like their parallel port ancestors, are emulated as scsi devices in Linux. For some unknown reason, the yahoo at the factory who formats the disks partitions them to be the fourth partition (thus /dev/sd?4 rather than /dev/sd?1).
Sony Digital Video Camera
mkdir /sonycam again, first time only; could be anywhere
modprobe storage
mount -t vfat /dev/sd?1 /sonycam
Most camera devices (not streaming or webcam devices) are simply accessed as scsi filesystems... just like the zipdrive above as a matter of fact. The factory workers are a little smart at Sony: /dev/sd?1.
Lexmark Z23/Z33 USB Printer
modprobe printer
For this particular printer, you must also download and install a proprietary driver from lexmark.com. This may not be the case for your USB printer- try the old HPIII/4/5 emulation trick.