FAQ for the USBAT-02 Linux driver

FAQ - General

Can I contribute?

Yes, you can!
There is a lot of useful stuff. Contact Mike Gibson to receive the specifications of SCM. Check the "links" page for all kind of interesting sources.

When will the driver be included in the kernel?

Hard to say. The good news is that recently (April 2004) Daniel (Gentoo developer) adopted the project to get the driver ready for kernel 2.6. The driver will be backported for 2.4 kernels afterwards.

Any help for testing and maybe developing, is welcome and will help to speed up the process.

FAQ - Building / compiling the driver

Where are the SCSI files? I see a broken link!

When you untar the source the is a symbolic link that should point to the directory of the kernel sources of the SCSI driver:

/usr/src/linux/drivers/scsi
So, you need to have the kernel sources installed and the kernel sources should be in /usr/src/linux. With Redhat distributions a
cd /usr/src; ln -s linux-2.4 linux
will do. You can also change the symlink in your usbat-02 directory of course ;-)

FAQ - Using the driver

How do I know which /dev/??? I should mount?

The logfile can be your friend. If you do a

tail -f /var/log/messages
before you connect the device, you can see messages like
	kernel hub.c: USB new device connect on bus1/2/3, assigned device number 43
	kernel scsi1 : SCSI emulation for USB Mass Storage devices
	kernel   Vendor: SCM       Model: SCM USBAT-02/ZIO  Rev:
	0005
	kernel   Type:   Direct-Access                      ANSI
	SCSI revision: 02
	kernel Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
	kernel SCSI device sda: 126465 512-byte hdwr sectors (65
	MB)
	kernel sda: Write Protect is off
	kernel  sda:<7>usb-storage: queuecommand() called
	kernel  sda1
		
So, in this case the device that should be mounted is "/dev/sda1".

There is no scsi device (sda1 or whatever) in the logfile. What is wrong?

In some cases, the device will show up as a generic scsi device instead of a normal scsi disc. In this case you will have to load sd_mod before loading usb-storage. (Thanks to Darin Smith).

Why do I have to "insmod" the usb-storage driver manually? Can't it be done automagically?

If the driver has made it to the kernel, you won't have to do a thing, but we are not that far yet. Nevertheless, there is a way to achieve this. Thanks to Robert Hamersky who gave us the tip.

	First copy the usb-storage.o in a directory which is not in the modul-path 
	(modprobe -c|grep path) i.e. /usr/local/modules

	Second add the following line to /etc/modules.conf
	alias block-major-8 /usr/local/modules/usb-storage.o

	Third set up a proper mount line in /etc/fstab
	/dev/sda1  /mnt/usbcf  auto  defaults,user,noauto,showexec,umask=022  0  0

	Now the usb-storage module is loaded exactly at the moment when you type
	mount /mnt/usbcf
	

Help, I can only mount the device as root!

Put a line in your /etc/fstab, like:

	/dev/sda1  /mnt/usbcf  auto  defaults,user,noauto,showexec,umask=022  0  0
	
(change /dev/sda1 by the right /dev/xxx). The "user" options allows "simple" users to mount the device.

Help, I can not umount the device!

Probablye the mounted device is in use. You can check this with the "lsof" command:

		lsof /mnt/usbcf
		
Replace /mnt/usbcf by the directory you use. Closing the application or doing a cd command will do the trick...

Even after reading the FAQ and de README's, I still have questions. What should I do?

Drop the question on the mailinglist.

FAQ - Development