BeOS SCSI interface module for USB mass storage devices
Introduction
This module is designed to support ... TODO
NOTE that |
I have one small request for you - if you tried this driver
and it works -
PLEASE e-mail me the information about your USB mass storage device and
results of your
experiments. This information is very interesting for me and helps in
improvement
this module! Thank you for co-operation! |
NOTE that |
If you definetily have the some kind of USB mass storage
device but this driver didn't
help you - see section "Unknown devices" below for instructions. |
NOTE that |
If you are using BeOS version R5 and have not applied BeOS.USB.patches
- you need to update your system with those patches to be able to work
with this driver. Unfortunately the USB stack in plain R5 system
has very serious problems. |
What's new:
Version: |
History: |
0.1.0-dev-0 |
very first "development" release. |
1. Installation
2. Uninstallation
3. Problems
- System
crash with this module. Reboot and press "Space"
during load. In boot menu select "Disable user add-ons" and continue
boot. Uninstall driver and reboot again into normal mode. Write me an
e-mail about this problem.
4. "Unknown" devices
If you have something, that looks like USB
mass storage device and tried it with this module but have no success -
download
usb device info tool and use it to get required information.
- Unplug all USB devices and hubs from your PC.
- Go into Terminal and run the following command: ls -alR
/dev/bus/usb You should see something
like this:
$ ls -alR /dev/bus/usb/
/dev/bus/usb:
total 0
drw-r--r-- 1 walther users 0 May 31 23:16 .
drw-r--r-- 1 walther users 0 Jun 1 2003 ..
drw-r--r-- 1 walther users 0 May 31 23:16 0
drw-r--r-- 1 walther users 0 May 31 23:16 1
crw-r--r-- 1 walther users 0, 0 May 31 23:16 unload
/dev/bus/usb/0:
total 0
drw-r--r-- 1 walther users 0 May 31 23:16 .
drw-r--r-- 1 walther users 0 May 31 23:16 ..
crw-r--r-- 1 walther users 0, 0 May 31 23:16 hub
/dev/bus/usb/1:
total 0
drw-r--r-- 1 walther users 0 May 31 23:16 .
drw-r--r-- 1 walther users 0 May 31 23:16 ..
crw-r--r-- 1 walther users 0, 0 May 31 23:16 hub
- Note this information.
- Now plug your USB device into PC and run ls -alR
/dev/bus/usb/ again.
You'll get something slightly different:
$ ls -alR /dev/bus/usb/
/dev/bus/usb:
total 0
drw-r--r-- 1 walther users 0 May 31 23:16 .
drw-r--r-- 1 walther users 0 Jun 1 2003 ..
drw-r--r-- 1 walther users 0 May 31 23:16 0
drw-r--r-- 1 walther users 0 May 31 23:16 1
crw-r--r-- 1 walther users 0, 0 May 31 23:16 unload
/dev/bus/usb/0:
total 0
drw-r--r-- 1 walther users 0 May 31 23:16 .
drw-r--r-- 1 walther users 0 May 31 23:16 ..
crw-r--r-- 1 walther users 0, 0 May 31 23:16 hub
/dev/bus/usb/1:
total 0
drw-r--r-- 1 walther users 0 May 31 23:16 .
drw-r--r-- 1 walther users 0 May 31 23:16 ..
crw-r--r-- 1 walther users 0, 0 May 31 23:16 hub
$
- Compare this results with previous one and look for file,
that appeared. This file is your "unknown" USB device.
- Unpack downloaded usb_dev_info command and run it with full path
to file appeared in
the second listing. For my sample I should run:
usb_dev_info /dev/bus/usb/0/1
I'll get the following:
$ usb_dev_info /dev/bus/usb/0/1
[Device]
Class .................. 0
Subclass ............... 0
Protocol ............... 0
Vendor ID .............. 0x08ec
Product ID ............. 0x0011
Version ................ 0x0200
Manufacturer String .... " "
Product String ......... " "
Serial Number .......... " "
[Configuration 0]
[Interface 0]
Class .............. 8
Subclass ........... 6
Protocol ........... 80
[Endpoint 0]
MaxPacketSize .... 64
Interval ......... 0
Type ............. Bulk
Direction ........ Input
[Endpoint 1]
MaxPacketSize .... 64
Interval ......... 0
Type ............. Bulk
Direction ........ Output
- Send this information to me with some additional words about
your device.
5. How to tweak driver settings file
Some parameters for this module can be tuned in special settings file.
This file usually contains the driver parameters and device
descriptions. Note that inproper using of this settings can crash your
system. You are warned! Well. Typically the parameter in settings file
can be inactive (commented ) or active. For example in the following
quote from settings file the parameter reserve_devices is inactive and
reserve_luns is active.
#reserve_devices 2
reserve_luns 4
Use charachter '#' at line beginning to deactivate (comment)
corresponding parameter.
5.1 Reserve devices and LUNs
jjjj
##########################################################
##
##
MAIN SETTING
##
##
parameter: reserve_devices
## default value: 2
## Comment:
# Amount of
devices to be reserved by SCSI_USB module for using as fake
# SCSI disks.
If you plan to use more than 2 devices simultaneously -
# increase this
parameter. Maximal devices count is 32. Look into
# module ReadMe
for description of a "rescan" problem.
#reserve_devices 2
##
parameter: reserve_luns
## default value: 4
## Comment:
# Amount of
logical unit numbers (LUN) to be reserved by SCSI_USB module
# for using for
fake SCSI disks. If you plan to use devices with more
# than 4 LUNs
increase this parameter. Maximal LUNs count is 8. Look into
# module ReadMe
for description of a "rescan" problem.
#reserve_luns 4
5.1 Using debug output
hgjghjh
##########################################################
##
##
DEBUG OUTPUT SETTING
##
## Comment:
# Debug output
is a possibilty to trace drivers activity into main system
# log or
private external log file. It used typically during development
# or testing
drivers. In normal circumstamces you needn't to activate it
##
parameter: debug_output
## default value: false
## Comment:
# This switch
activates debug output.
#
debug_output true
##
parameter: debug_output_in_file
## default value: false
## Comment:
# If this switch is
active - all information, traced to debug output will
# be redirected to
/boot/home/usb_scsi.log file
#
debug_output_in_file true
##
parameter: debug_output_file_rewrite
## default value: false
## Comment:
# If this switch is
active - private log file will be rewritten on
# every system restart
#
debug_output_file_rewrite true
## TODO:
# TODO
#debug_trace_time true
#TODO
#debug_trace_threadid true
#TODO
#debug_trace_thread_name true
## END of TODO
##
parameter: debug_trace_commands
## default value: false
## Comment:
# If this switch is
active - the SCSI commands will be dumped into debug
# output
#
debug_trace_commands true
fff
5.1 Using device overrides
##########################################################
##
##
"BROKEN" DEVICES
SETTINGS
##
## Comment:
# This section
contains definitions for devices, that requires workarounds
# for normal
functioning. Look into ReadMe.html for detailed description of
# the "broken"
device definition layout.
#
# vendor <vendor_id> {
# name "Vendor name"
# device <device_id> {
# name "Device
name"
# fake_inquiry
# no_test_unit
# use_6byte_cmd
## subclasses: SCSI, UFI, ATAPI,
RBC, QIC157
## protocols: BULK, CB, CBI
# transport
SCSI BULK
# }
# }
vendor 0x08ec {
name "M-Sys"
device 0x0011 {
name
"DiskOnKey"
# fake_inquiry
no_test_unit
# transport
SCSI BULK
}
}
vendor 0x058f {
# name "Alcor"
device 0x9360 {
# name "6in1
Card reader"
fake_inquiry
# no_test_unit
}
}
#SD, Privet! =-P
vendor 0x0AEC {
# name "Alcor"
device 0x3050 {
# name "6in1
Card reader"
# fake_inquiry
# no_test_unit
# use_6byte_cmd
}
}
# not implemented now ... only
planned
vendor 0x07ab {
# name "Freecom"
device 0xfc01 {
# name "USB-IDE
Controller"
# fake_inquiry
# no_test_unit
# use_6byte_cmd
transport
QIC157 Freecom
}
}
Appendix: A word about BeOS.USB.patches
Some time ago on one well-known
BeOS file-sharing network appeared patches for plain R5. Those patches
contain improved version of an USB stack. Looks like it is some part of
Dan0
or other "leaked" versions.
There are 3 patches in BeOS.USB.patches.zip:
1. beos-usb-patch,
2. beos-usb.modem-patch,
3. beos-usb.modem-patch.sm.
To work with this module you need the first one. Install it on your
system. Unfortunately, the USB stack from plain R5 contains serious
problems. This module will work only on system with improved USB stack
- either Dan0/Zeta or R5 with USB patches.
Siarzuk Zharski
http://www.zharik.host.sk/