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

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.

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/