xref: /haiku/src/add-ons/kernel/busses/scsi/usb/ReadMe.html (revision b3d94504c208adafebbf2ba62ae7fc4e0b7d68f7)
1*b3d94504SStephan Aßmus<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2*b3d94504SStephan Aßmus<!--
3*b3d94504SStephan Aßmus
4*b3d94504SStephan Aßmus This file is a part of BeOS USB SCSI interface module project.
5*b3d94504SStephan Aßmus Copyright (c) 2003-2004 by Siarzhuk Zharski <imker@gmx.li>
6*b3d94504SStephan Aßmus
7*b3d94504SStephan Aßmus This file may be used under the terms of the BSD License
8*b3d94504SStephan Aßmus See the file "License" for details.
9*b3d94504SStephan Aßmus
10*b3d94504SStephan Aßmus $Source: /cvsroot/sis4be/usb_scsi/ReadMe.html,v $
11*b3d94504SStephan Aßmus $Author: zharik $
12*b3d94504SStephan Aßmus $Revision: 1.23 $
13*b3d94504SStephan Aßmus $Date: 2005/04/09 20:53:25 $
14*b3d94504SStephan Aßmus
15*b3d94504SStephan Aßmus-->
16*b3d94504SStephan Aßmus<html>
17*b3d94504SStephan Aßmus<head>
18*b3d94504SStephan Aßmus  <title>USB mass storage support for BeOS</title>
19*b3d94504SStephan Aßmus</head>
20*b3d94504SStephan Aßmus<body bgcolor="#f0f0e0">
21*b3d94504SStephan Aßmus<h1>USB mass storage support for
22*b3d94504SStephan Aßmus       <font color="#000066">B</font><font color="#cc0000">e</font>OS</h1>
23*b3d94504SStephan Aßmus<div align="right">
24*b3d94504SStephan Aßmus<address><a href="mailto:imker@gmx.li">by Siarzhuk Zharski</a></address>
25*b3d94504SStephan Aßmus</div>
26*b3d94504SStephan AßmusThis is yet another piece of hardware support for BeOS/Dano/Zeta operating systems.
27*b3d94504SStephan AßmusThis USB Storage Module (<strong>The Module</strong>) is designed to support a wide variety
28*b3d94504SStephan Aßmusof standard USB mass storage devices. Those devices are:
29*b3d94504SStephan Aßmus<ul>
30*b3d94504SStephan Aßmus  <li>memory (flash) keys,</li>
31*b3d94504SStephan Aßmus  <li>external HDD/CD/DVD/ZIP/Floppy drives with USB connection,</li>
32*b3d94504SStephan Aßmus  <li>digital cameras/camcorders with USBMS protocol,</li>
33*b3d94504SStephan Aßmus  <li>MP3 players,</li>
34*b3d94504SStephan Aßmus  <li>card readers,</li>
35*b3d94504SStephan Aßmus  <li>Jukeboxes</li>
36*b3d94504SStephan Aßmus  <li>etc.</li>
37*b3d94504SStephan Aßmus</ul>
38*b3d94504SStephan Aßmus<p>In other (more special and technical) words this Module
39*b3d94504SStephan Aßmusworks with standard USB class 8 devices, both Bulk-Only and CB[I] ones,
40*b3d94504SStephan Aßmuswith all standard command sets used in such devices.
41*b3d94504SStephan Aßmus</p>
42*b3d94504SStephan Aßmus<h1><a name="Contents"></a>Table of Contents</h1>
43*b3d94504SStephan Aßmus<ul>
44*b3d94504SStephan Aßmus  <li><a href="#1._Installation_and_using_">Installation and using </a></li>
45*b3d94504SStephan Aßmus  <li><a href="#2._Troubleshooting">Troubleshooting</a></li>
46*b3d94504SStephan Aßmus  <li><a href="#3.5.Writing_a_problem_report">Writing a problem report</a></li>
47*b3d94504SStephan Aßmus  <li><a href="#3._Technical_notes_">Technical notes</a></li>
48*b3d94504SStephan Aßmus  <ul>
49*b3d94504SStephan Aßmus    <li><a href="#3.1._BeOS_USB_patches">BeOS USB patches</a></li>
50*b3d94504SStephan Aßmus    <li><a href="#3.2._USB_Device_information">USB Device information</a></li>
51*b3d94504SStephan Aßmus    <ul>
52*b3d94504SStephan Aßmus      <li><a href="#3.2.1._How_to_obtain_USB_device">How to obtain USB device information for your hardware</a></li>
53*b3d94504SStephan Aßmus      <li><a href="#3.2.2._How_it_looks_like_and_what_does_">How USB device information looks like and what does it mean</a>
54*b3d94504SStephan Aßmus      </li>
55*b3d94504SStephan Aßmus    </ul>
56*b3d94504SStephan Aßmus    <li><a href="#3.3._Device_entries_reservation">Device entries reservation technique</a></li>
57*b3d94504SStephan Aßmus    <li><a href="#3.4._A_couple_of_words_about_usb_scsi">A couple of words about usb_scsi settings file</a></li>
58*b3d94504SStephan Aßmus    <ul>
59*b3d94504SStephan Aßmus      <li><a href="#3.4.1_General_Module_settings">The Module configuration parameters</a></li>
60*b3d94504SStephan Aßmus      <li><a href="#3.4.2._Module_settings_for_debugging_">Parameters for debugging mode</a></li>
61*b3d94504SStephan Aßmus      <li><a href="#3.4.3_Device_settings">Configuring device definitions</a></li>
62*b3d94504SStephan Aßmus      <ul>
63*b3d94504SStephan Aßmus        <li><a href="#3.4.3.1._Parameters_of_Device_settings">Tweaking device definition</a></li>
64*b3d94504SStephan Aßmus        <li><a href="#3.4.3.2._Protocol_override_parameters">Overriding device protocol</a>
65*b3d94504SStephan Aßmus        </li>
66*b3d94504SStephan Aßmus      </ul>
67*b3d94504SStephan Aßmus    </ul>
68*b3d94504SStephan Aßmus    <li><a href="#3.6._Protocol_extension_modules">Protocol extension modules</a></li>
69*b3d94504SStephan Aßmus  </ul>
70*b3d94504SStephan Aßmus  <li><a href="#6.Contact_information">Contact and support information</a></li>
71*b3d94504SStephan Aßmus  <li><a href="#5.Credits">Credits</a></li>
72*b3d94504SStephan Aßmus  <li><a href="#4._Versions_History_">The History</a></li>
73*b3d94504SStephan Aßmus</ul>
74*b3d94504SStephan Aßmus
75*b3d94504SStephan Aßmus<h1><a name="1._Installation_and_using_"></a>1. Installation and using</h1>
76*b3d94504SStephan Aßmus<p><font color="#cc0000"><b>(!!!) FIRST EMERGENCY TIP:</b></font> If your system
77*b3d94504SStephan Aßmuscrashes with this Module - reboot and press "Space"
78*b3d94504SStephan Aßmusduring load. In boot menu select "Disable user add-ons" and continue
79*b3d94504SStephan Aßmusbooting. Uninstall and reboot again into normal mode. Please, <a
80*b3d94504SStephan Aßmus href="#6.Contact_information">inform the developer</a> about this problem.
81*b3d94504SStephan Aßmus</p>
82*b3d94504SStephan Aßmus<ol>
83*b3d94504SStephan Aßmus  <li>Please check, that you have supported version of BeOS. Minimal system
84*b3d94504SStephan Aßmusrequirement is R5 + BeOS.USB-patches. No support for "plain" R5! More
85*b3d94504SStephan Aßmusinformation about USB-patches you can find in
86*b3d94504SStephan Aßmus<a href="#3.1._BeOS_USB_patches">corresponding clause of this document</a>.
87*b3d94504SStephan AßmusNote that Dan0, all it's successors and Zeta already have compatible USB stack - no patches
88*b3d94504SStephan Aßmusare required.</li>
89*b3d94504SStephan Aßmus  <li>Contents of distribution archive:
90*b3d94504SStephan Aßmus<pre>    ReadMe.html      &lt;--- file you are reading now
91*b3d94504SStephan Aßmus    <a href="install.sh">install.sh</a>       &lt;--- installation script
92*b3d94504SStephan Aßmus    <a href="uninstall.sh">uninstall.sh</a>     &lt;--- uninstallation script
93*b3d94504SStephan Aßmus    usb              &lt;--- The Module binary
94*b3d94504SStephan Aßmus    <a href="usb_scsi.sample">usb_scsi.sample</a>  &lt;--- settings file sample
95*b3d94504SStephan Aßmus    usb_scsi_logging &lt;--- logging daemon
96*b3d94504SStephan Aßmus    <a href="usb_scsi.devices">usb_scsi.devices</a> &lt;--- definitions for "non-standard" devices
97*b3d94504SStephan Aßmus    usb_dev_info     &lt;--- the tool to obtain device inforamtion</pre>
98*b3d94504SStephan Aßmus  </li>
99*b3d94504SStephan Aßmus  <li>Run <a href="install.sh"><strong>./install.sh</strong></a> to install The Module on your system.
100*b3d94504SStephan AßmusThis script do the following:</li>
101*b3d94504SStephan Aßmus  <ul>
102*b3d94504SStephan Aßmus    <li>copies The Module binary to
103*b3d94504SStephan Aßmus          <strong>/boot/home/config/add-ons/kernel/busses/scsi/usb</strong>
104*b3d94504SStephan Aßmus              directory</li>
105*b3d94504SStephan Aßmus  </ul>
106*b3d94504SStephan Aßmus  <ul>
107*b3d94504SStephan Aßmus    <li>copies settings file to
108*b3d94504SStephan Aßmus          <strong>/boot/home/config/settings/kernel/drivers/usb_scsi</strong>
109*b3d94504SStephan Aßmus              file</li>
110*b3d94504SStephan Aßmus    <li>ask you to reboot your system or edit settings file. More
111*b3d94504SStephan Aßmusinformation on settings file <a href="#3.4._A_couple_of_words_about_usb_scsi">is here</a>.
112*b3d94504SStephan AßmusIf you doesn't reboot from script - you
113*b3d94504SStephan Aßmushave to do it manually to let The Module work with updated settings.
114*b3d94504SStephan Aßmus    </li>
115*b3d94504SStephan Aßmus  </ul>
116*b3d94504SStephan Aßmus  <li>After system rebooted, plug in your USB device into USB slot and
117*b3d94504SStephan Aßmustry to open Tracker's "Mount" menu some times. In case if all goes OK -
118*b3d94504SStephan Aßmusyou'll see some additional volumes available for mounting. Mount that
119*b3d94504SStephan Aßmusone you
120*b3d94504SStephan Aßmusthink is your USB mass storage and use it as usual "real" drives.</li>
121*b3d94504SStephan Aßmus  <li>It is highly recommended to unmount your USB volume before
122*b3d94504SStephan Aßmusunplugging device from USB slot. Some pending read/write operations can
123*b3d94504SStephan Aßmusbe still active in background. If you break this process -
124*b3d94504SStephan Aßmus<font color="#cc0000"><b>YOU CAN LOOSE YOUR DATA</b></font>. Unmount
125*b3d94504SStephan Aßmusit and wait until your USB volume icon is
126*b3d94504SStephan Aßmusdisappeared from desktop and led on your device ( in case this led
127*b3d94504SStephan Aßmusexists, of course ) turns off. To be sure you can run "sync" command from the Terminal.</li>
128*b3d94504SStephan Aßmus  <li>[optional] To uninstall The Module from your system - run <a href="uninstall.sh"><strong>uninstall.sh</strong></a>
129*b3d94504SStephan Aßmusfrom distribution archive or delete files mentioned in
130*b3d94504SStephan Aßmusclause 3 of this section manually.</li>
131*b3d94504SStephan Aßmus</ol>
132*b3d94504SStephan Aßmus<a href="#Contents">Table
133*b3d94504SStephan Aßmusof Contents</a>
134*b3d94504SStephan Aßmus<h1><a name="2._Troubleshooting"></a>2. Troubleshooting</h1>
135*b3d94504SStephan Aßmus<ol>
136*b3d94504SStephan Aßmus  <li><strong>Is my USB device supported?</strong>
137*b3d94504SStephan Aßmus    <ul>
138*b3d94504SStephan Aßmus      <li>May be. Install this software, plug your device in and
139*b3d94504SStephan Aßmustry to mount it. Or look for class / subclass / protocol values
140*b3d94504SStephan Aßmusin usb device description and check against the following lists.
141*b3d94504SStephan Aßmus        <ul>
142*b3d94504SStephan Aßmus          <li>Supported class : 8</li>
143*b3d94504SStephan Aßmus          <li>Supported subclasses ( command sets ) : 1, 2, 3, 4, 5, 6</li>
144*b3d94504SStephan Aßmus          <li>Supported protocols: 0, 1, 80</li>
145*b3d94504SStephan Aßmus        </ul>
146*b3d94504SStephan AßmusAny combination of mentioned above class / subclass / protocol is supported.
147*b3d94504SStephan Aßmus      </li>
148*b3d94504SStephan Aßmus    </ul>
149*b3d94504SStephan Aßmus  </li>
150*b3d94504SStephan Aßmus  <li>I have installed this software on R5 + USB.patches but my <strong>system
151*b3d94504SStephan Aßmusgoes to Kernel Debugger on very early booting stage</strong>. Help!
152*b3d94504SStephan Aßmus    <ul>
153*b3d94504SStephan Aßmus      <li>Edit <a href="#3.4._A_couple_of_words_about_usb_scsi">settings
154*b3d94504SStephan Aßmusfile</a> and activate the following key:
155*b3d94504SStephan Aßmus        <ul>
156*b3d94504SStephan Aßmus          <li>ignore_sysinit2 true</li>
157*b3d94504SStephan Aßmus        </ul>
158*b3d94504SStephan Aßmus      </li>
159*b3d94504SStephan Aßmus    </ul>
160*b3d94504SStephan Aßmus  </li>
161*b3d94504SStephan Aßmus  <li>I have installed this software and <strong>there are still no additional
162*b3d94504SStephan Aßmusvolumes</strong> in Tracker's "Mount" menu.
163*b3d94504SStephan Aßmus    <ul>
164*b3d94504SStephan Aßmus      <li>Sometimes it is required to open "Mount" menu more than
165*b3d94504SStephan Aßmusone time to see volumes.
166*b3d94504SStephan Aßmus      </li>
167*b3d94504SStephan Aßmus      <li>You can try open "Mount" menu with "Shift" button pressed and
168*b3d94504SStephan Aßmusselect "Rescan All Devices" menu item to help the system recognize your device.
169*b3d94504SStephan Aßmus      </li>
170*b3d94504SStephan Aßmus      <li>Try to Rescan SCSI in DriveSetup.
171*b3d94504SStephan Aßmus      </li>
172*b3d94504SStephan Aßmus    </ul>
173*b3d94504SStephan Aßmus  </li>
174*b3d94504SStephan Aßmus  <li><strong>I still have no volumes to mount!!!</strong>
175*b3d94504SStephan Aßmus    <ul>
176*b3d94504SStephan Aßmus      <li>Please check the following:
177*b3d94504SStephan Aßmus        <ul>
178*b3d94504SStephan Aßmus          <li>[for R5 only. Not required for Dano/Zeta etc. ] your system
179*b3d94504SStephan Aßmushas USB patches installed;</li>
180*b3d94504SStephan Aßmus          <li>the binary file <strong>/boot/home/config/add-ons/kernel/busses/scsi/usb</strong>
181*b3d94504SStephan Aßmusexists on your system;
182*b3d94504SStephan Aßmus          </li>
183*b3d94504SStephan Aßmus          <li>the settings file <strong>/boot/home/config/settings/kernel/drivers/usb_scsi</strong>
184*b3d94504SStephan Aßmusexists on your system;</li>
185*b3d94504SStephan Aßmus          <li>check that your device uses standard protocols and should be supported by
186*b3d94504SStephan Aßmusthis module ( see clause 1 of this section )
187*b3d94504SStephan Aßmus          </li>
188*b3d94504SStephan Aßmus          <li>Despite of fact that latest <strong>versions of Zeta OS</strong> use this module, some of
189*b3d94504SStephan Aßmuspre-releases of this OS have completely different stuff to support USB storage devices.
190*b3d94504SStephan AßmusIn some circumstances those Zeta's modules can prevent this USB Support Module from correct working.
191*b3d94504SStephan AßmusIn this situation you have to disable Zeta's USB Storage support. To do this go to
192*b3d94504SStephan Aßmus/boot/beos/system/add-ons/kernel/busses/scsi/ diectory and rename or remove the
193*b3d94504SStephan Aßmus<strong>usb</strong> and <strong>usb_scsi</strong> files. After rebooting your system
194*b3d94504SStephan Aßmusyou should have updated USB Storage support.
195*b3d94504SStephan Aßmus          </li>
196*b3d94504SStephan Aßmus        </ul>
197*b3d94504SStephan Aßmus      </li>
198*b3d94504SStephan Aßmus    </ul>
199*b3d94504SStephan Aßmus  </li>
200*b3d94504SStephan Aßmus  <li>STILL <strong>NOTHING TO MOUNT ! ! !</strong>
201*b3d94504SStephan Aßmus    <ul>
202*b3d94504SStephan Aßmus      <li>Looks like you are in trouble. <a href="#6.Contact_information">
203*b3d94504SStephan Aßmus               Write your problem report</a> to developers.
204*b3d94504SStephan Aßmus      </li>
205*b3d94504SStephan Aßmus    </ul>
206*b3d94504SStephan Aßmus  </li>
207*b3d94504SStephan Aßmus  <li>I see <strong>a lot of empty SCSI devices in DriveSetup</strong> and SCSIProbe.
208*b3d94504SStephan AßmusWhat is it?
209*b3d94504SStephan Aßmus    <ul>
210*b3d94504SStephan Aßmus      <li>Those "disks" are just reserved device entries - some kind of
211*b3d94504SStephan Aßmusplaceholders for real devices you'll attach to your computer. Read
212*b3d94504SStephan Aßmusabout this technique <a href="#3.3._Device_entries_reservation">here</a>.
213*b3d94504SStephan Aßmus      </li>
214*b3d94504SStephan Aßmus    </ul>
215*b3d94504SStephan Aßmus  </li>
216*b3d94504SStephan Aßmus  <li><strong>DriveSetup hangs on exit</strong>!?!
217*b3d94504SStephan Aßmus    <ul>
218*b3d94504SStephan Aßmus      <li>It is known bug. I don't know who is wrong with it. No
219*b3d94504SStephan Aßmussolution at this time. Just kill this zombie.
220*b3d94504SStephan Aßmus      </li>
221*b3d94504SStephan Aßmus    </ul>
222*b3d94504SStephan Aßmus  </li>
223*b3d94504SStephan Aßmus  <li>I have found a bug! I have <strong>unmounted my USB floppy</strong>, unplug it
224*b3d94504SStephan Aßmusthan plug in another device<strong> but still see the "floppy" volume</strong> in the mount
225*b3d94504SStephan Aßmuslist.
226*b3d94504SStephan Aßmus    <ul>
227*b3d94504SStephan Aßmus      <li>The mounting in BeOS is broken. Just press "Shift" key before
228*b3d94504SStephan Aßmusopening Tracker's "Mount" menu than select "Rescan Devices"
229*b3d94504SStephan AßmusAfter some seconds try to mount your device again. Should work now.
230*b3d94504SStephan Aßmus      </li>
231*b3d94504SStephan Aßmus    </ul>
232*b3d94504SStephan Aßmus  </li>
233*b3d94504SStephan Aßmus  <li>I have set reserve_devices to maximal value but still <strong>no reserved device
234*b3d94504SStephan Aßmusentries in DriveSetup</strong>.
235*b3d94504SStephan Aßmus    <ul>
236*b3d94504SStephan Aßmus      <li>Known bug. In some situations reservation doesn't work.
237*b3d94504SStephan AßmusIt's reproducible with Adaptec SCSI controllers installed on your
238*b3d94504SStephan Aßmussystem. You have to use DriveSetup for first mounting of device in this
239*b3d94504SStephan Aßmussituation. Nothing is perfect in this World.
240*b3d94504SStephan Aßmus      </li>
241*b3d94504SStephan Aßmus    </ul>
242*b3d94504SStephan Aßmus  </li>
243*b3d94504SStephan Aßmus  <li>Does my Canon PowerShot A70 <strong>digital camera supported by this software?</strong>
244*b3d94504SStephan Aßmus    <ul>
245*b3d94504SStephan Aßmus      <li>No. It uses Picture Transfer Protocol (PTP) instead of USB Mass Storage (USBMS)
246*b3d94504SStephan Aßmusone. You can check your camera information for Interface class. For USBMS it should
247*b3d94504SStephan Aßmusbe 8, for PTP - 6.
248*b3d94504SStephan Aßmus      </li>
249*b3d94504SStephan Aßmus    </ul>
250*b3d94504SStephan Aßmus  </li>
251*b3d94504SStephan Aßmus  <li>Help me! <strong>No more than 2 devices visible by module</strong> at the same time.
252*b3d94504SStephan Aßmus    <ul>
253*b3d94504SStephan Aßmus      <li>Read about <a href="#3.3._Device_entries_reservation">device
254*b3d94504SStephan Aßmusentries reservation</a> and increase <a href="#3.4._A_couple_of_words_about_usb_scsi">
255*b3d94504SStephan Aßmus     reserve_devices parameter</a> in settings file.
256*b3d94504SStephan Aßmus      </li>
257*b3d94504SStephan Aßmus    </ul>
258*b3d94504SStephan Aßmus  </li>
259*b3d94504SStephan Aßmus  <li>My 9-in-1 card reader works only with media in first 4 slots! <strong>No
260*b3d94504SStephan Aßmusreaction on media in 5th</strong> - 9th slots! Is it a trial version of a driver? Where can I buy full version?
261*b3d94504SStephan Aßmus    <ul>
262*b3d94504SStephan Aßmus      <li>Read about <a href="#3.3._Device_entries_reservation">device entries
263*b3d94504SStephan Aßmusreservation</a> and increase <a  href="#3.4._A_couple_of_words_about_usb_scsi">reserve_luns
264*b3d94504SStephan Aßmusparameter</a> in settings file.
265*b3d94504SStephan Aßmus      </li>
266*b3d94504SStephan Aßmus    </ul>
267*b3d94504SStephan Aßmus  </li>
268*b3d94504SStephan Aßmus  <li><strong>"Mount" menu hangs for a time</strong>
269*b3d94504SStephan Aßmus    <ul>
270*b3d94504SStephan Aßmus      <li>System requires some time to ask all available volumes for media
271*b3d94504SStephan Aßmusavailability, filesystem data format etc. This check is performed any time you opening "Mount"
272*b3d94504SStephan Aßmusmenu. In case you have many devices reserved in your configuration - you can be in such
273*b3d94504SStephan Aßmustrouble. Read about <a href="#3.3._Device_entries_reservation">device entries
274*b3d94504SStephan Aßmusreservation</a> and optimize your settings to more reasonable values.
275*b3d94504SStephan Aßmus      </li>
276*b3d94504SStephan Aßmus    </ul>
277*b3d94504SStephan Aßmus  </li>
278*b3d94504SStephan Aßmus  <li>I see the <strong>Generic OS Error</strong> message any time I want to mount my device.
279*b3d94504SStephan Aßmus  <p>In most of such situations your hardware is OK. The problem is that standard filesystem
280*b3d94504SStephan Aßmus  addon doesn't recognize the filesystem on volume as correct. Unfortunatley BeOS is
281*b3d94504SStephan Aßmus  "to close to standard" to be compatible with all bugs of Windows. <strong>Do not
282*b3d94504SStephan Aßmus  forget to backup your data</strong> before trying to solve this problem!</p>
283*b3d94504SStephan Aßmus  <p>First of all try to reformat your media.</p>
284*b3d94504SStephan Aßmus  <p>If formatting doesn't help or doesn't work with your hardware - open DriveSetup
285*b3d94504SStephan Aßmus  and [re]create <strong>partition</strong> on your device. Rescan SCSI bus if required.
286*b3d94504SStephan Aßmus  Note that you have to <strong>make your partition a bit smaller</strong> as physical
287*b3d94504SStephan Aßmus  size of your device. Try to initialize and reformat your media with new size.</p>
288*b3d94504SStephan Aßmus  </li>
289*b3d94504SStephan Aßmus  <li>Your <strong>software sucks</strong>!!!
290*b3d94504SStephan Aßmus    <ul>
291*b3d94504SStephan Aßmus      <li>Please <a href="#6.Contact_information">write your problem
292*b3d94504SStephan Aßmusreport</a> to developer first.
293*b3d94504SStephan Aßmus      </li>
294*b3d94504SStephan Aßmus    </ul>
295*b3d94504SStephan Aßmus  </li>
296*b3d94504SStephan Aßmus</ol>
297*b3d94504SStephan Aßmus<a href="#Contents">Table of Contents</a>
298*b3d94504SStephan Aßmus<h1><a name="3.5.Writing_a_problem_report"></a>3. Writing a problem report</h1>
299*b3d94504SStephan AßmusEither something goes wrong with this software or nothing goes right
300*b3d94504SStephan Aßmusyou have to write a bug report about it.
301*b3d94504SStephan Aßmus<ol>
302*b3d94504SStephan Aßmus  <li>Obtain your <a
303*b3d94504SStephan Aßmus href="#3.2._USB_Device_information">USB device information</a> and
304*b3d94504SStephan Aßmussave it in safe place</li>
305*b3d94504SStephan Aßmus  <li>now investigate device information for interface class. If it is
306*b3d94504SStephan Aßmusnot equal to 8 go to step 12</li>
307*b3d94504SStephan Aßmus  <li>open your settings file
308*b3d94504SStephan Aßmus( <strong>/boot/home/config/settings/kernel/drivers/usb_scsi</strong>
309*b3d94504SStephan Aßmus) in editor you prefer to use</li>
310*b3d94504SStephan Aßmus  <li>activate following keys if they are still not activated</li>
311*b3d94504SStephan Aßmus<pre>    debug_output true
312*b3d94504SStephan Aßmus    debug_output_in_file true
313*b3d94504SStephan Aßmus    debug_output_file_rewrite true
314*b3d94504SStephan Aßmus    debug_trace_protocol true
315*b3d94504SStephan Aßmus    debug_trace_sense_data true</pre>
316*b3d94504SStephan Aßmus  <li>save your changes and close your editor</li>
317*b3d94504SStephan Aßmus  <li>reboot your system keeping your devices switched off from your computer</li>
318*b3d94504SStephan Aßmus  <li>after reboot run <strong>usb_scsi_logging</strong> application from distribution pack</li>
319*b3d94504SStephan Aßmus  <li>plug your device in free USB slot</li>
320*b3d94504SStephan Aßmus  <li>try to mount it again.</li>
321*b3d94504SStephan Aßmus  <li>unplug your device from computer</li>
322*b3d94504SStephan Aßmus  <li>copy the <strong>/var/log/usb_scsi.log</strong> file into same place as in step 1.</li>
323*b3d94504SStephan Aßmus  <li>Get the information, obtained on step 1 and step 12 and<a href="#6.Contact_information"> let
324*b3d94504SStephan Aßmusdeveloper know about your problem</a></li>
325*b3d94504SStephan Aßmus</ol>
326*b3d94504SStephan Aßmus<a href="#Contents">Table of Contents</a>
327*b3d94504SStephan Aßmus<h1><a name="3._Technical_notes_"></a>4. Technical notes</h1>
328*b3d94504SStephan Aßmus<h2><a name="3.1._BeOS_USB_patches"></a>4.1. BeOS USB patches</h2>
329*b3d94504SStephan AßmusTo work with this software on
330*b3d94504SStephan Aßmusoriginal BeOS R5 Pro/PE versions and it's successors your system need
331*b3d94504SStephan Aßmusto be improved to newer version of USB. This version is available
332*b3d94504SStephan Aßmuson well-known BeOS file-sharing network as BeOS.USB-patches.zip. Get it, unpack and
333*b3d94504SStephan Aßmusinstall it as required in corresponding readme. Note that, there
334*b3d94504SStephan Aßmusare 3 patches in this archive:
335*b3d94504SStephan Aßmus<ol>
336*b3d94504SStephan Aßmus  <li>beos-usb-patch </li>
337*b3d94504SStephan Aßmus  <li>beos-usb.modem-patch </li>
338*b3d94504SStephan Aßmus  <li>beos-usb.modem-patch.sm </li>
339*b3d94504SStephan Aßmus</ol>
340*b3d94504SStephan Aßmus<p>At least first one should be installed on your system to make using of
341*b3d94504SStephan AßmusThe USB Support Module possible. Note that Dan0, all it's successors and Zeta don't
342*b3d94504SStephan Aßmusrequire this patches.</p>
343*b3d94504SStephan Aßmus<a href="#Contents">Table of Contents</a>
344*b3d94504SStephan Aßmus<h2><a name="3.2._USB_Device_information"></a>4.2. USB Device information</h2>
345*b3d94504SStephan Aßmus<h3><a name="3.2.1._How_to_obtain_USB_device"></a>4.2.1. How to obtain
346*b3d94504SStephan AßmusUSB device information for your hardware</h3>
347*b3d94504SStephan AßmusThere is an <strong>usb_dev_info</strong> tool inside of distribution
348*b3d94504SStephan Aßmusarchive. It can
349*b3d94504SStephan Aßmusbe used to obtain this information. Someone prefers USBCommander.
350*b3d94504SStephan Aßmus<ol>
351*b3d94504SStephan Aßmus  <li>Unplug all USB devices and hubs from your PC. </li>
352*b3d94504SStephan Aßmus  <li>Go into Terminal and run the following command: <strong> ls -alR /dev/bus/usb</strong>
353*b3d94504SStephan Aßmus   You should see something like this:
354*b3d94504SStephan Aßmus<pre>    $ ls -alR /dev/bus/usb/
355*b3d94504SStephan Aßmus    /dev/bus/usb:
356*b3d94504SStephan Aßmus    total 0
357*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 May 31 23:16 .
358*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 Jun  1  2003 ..
359*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 May 31 23:16 0
360*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 May 31 23:16 1
361*b3d94504SStephan Aßmus    crw-r--r--   1 walther  users      0,   0 May 31 23:16 unload
362*b3d94504SStephan Aßmus
363*b3d94504SStephan Aßmus    /dev/bus/usb/0:
364*b3d94504SStephan Aßmus    total 0
365*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 May 31 23:16 .
366*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 May 31 23:16 ..
367*b3d94504SStephan Aßmus    crw-r--r--   1 walther  users      0,   0 May 31 23:16 hub
368*b3d94504SStephan Aßmus
369*b3d94504SStephan Aßmus    /dev/bus/usb/1:
370*b3d94504SStephan Aßmus    total 0
371*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 May 31 23:16 .
372*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 May 31 23:16 ..
373*b3d94504SStephan Aßmus    crw-r--r--   1 walther  users      0,   0 May 31 23:16 hub</pre>
374*b3d94504SStephan Aßmus  </li>
375*b3d94504SStephan Aßmus  <li> Note this information. </li>
376*b3d94504SStephan Aßmus  <li> Now plug your USB device into PC and run <strong>ls -alR /dev/bus/usb/</strong> again.
377*b3d94504SStephan AßmusYou'll get something slightly different:
378*b3d94504SStephan Aßmus<pre>    $ ls -alR /dev/bus/usb/
379*b3d94504SStephan Aßmus    /dev/bus/usb:
380*b3d94504SStephan Aßmus    total 0
381*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 May 31 23:16 .
382*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 Jun  1  2003 ..
383*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 May 31 23:16 0
384*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 May 31 23:16 1
385*b3d94504SStephan Aßmus    crw-r--r--   1 walther  users      0,   0 May 31 23:16 unload
386*b3d94504SStephan Aßmus
387*b3d94504SStephan Aßmus    /dev/bus/usb/0:
388*b3d94504SStephan Aßmus    total 0
389*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 May 31 23:16 .
390*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 May 31 23:16 ..
391*b3d94504SStephan Aßmus    <strong><blink>crw-r--r--   1 walther  users      0,   0 May 31 23:17 1</blink></strong>
392*b3d94504SStephan Aßmus    crw-r--r--   1 walther  users      0,   0 May 31 23:16 hub
393*b3d94504SStephan Aßmus
394*b3d94504SStephan Aßmus    /dev/bus/usb/1:
395*b3d94504SStephan Aßmus    total 0
396*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 May 31 23:16 .
397*b3d94504SStephan Aßmus    drw-r--r--   1 walther  users           0 May 31 23:16 ..
398*b3d94504SStephan Aßmus    crw-r--r--   1 walther  users      0,   0 May 31 23:16 hub</pre>
399*b3d94504SStephan Aßmus  </li>
400*b3d94504SStephan Aßmus  <li> Compare this results with previous one and look for file,
401*b3d94504SStephan Aßmusthat appeared (is selected for our sample case). This file is your
402*b3d94504SStephan Aßmus"unknown" USB device (in our sample it is <strong>/dev/bus/usb/0/1</strong>). </li>
403*b3d94504SStephan Aßmus  <li>Now you can run usb_dev_info tool to obtain device information:
404*b3d94504SStephan Aßmus    <pre>$ usb_dev_info /dev/bus/usb/0/1</pre>
405*b3d94504SStephan Aßmus  </li>
406*b3d94504SStephan Aßmus</ol>
407*b3d94504SStephan Aßmus<a href="#Contents">Table of Contents</a>
408*b3d94504SStephan Aßmus<h3><a name="3.2.2._How_it_looks_like_and_what_does_"></a>4.2.2. How USB device information
409*b3d94504SStephan Aßmuslooks like and what does it mean</h3>
410*b3d94504SStephan Aßmus<p>After performing tasks, described in previous clause you'll
411*b3d94504SStephan Aßmusreceive something like the following. Note that some details can be
412*b3d94504SStephan Aßmusdifferent for your hardware
413*b3d94504SStephan Aßmus<pre>    $ usb_dev_info /dev/bus/usb/0/1
414*b3d94504SStephan Aßmus    [Device]
415*b3d94504SStephan Aßmus    Class .................. 0
416*b3d94504SStephan Aßmus    Subclass ............... 0
417*b3d94504SStephan Aßmus    Protocol ............... 0
418*b3d94504SStephan Aßmus    Vendor ID .............. 0x08ec   &lt;---------- Vendor ID of your hardware manufacturer
419*b3d94504SStephan Aßmus    Product ID ............. 0x0011   &lt;---------- unique Product ID of your hardware
420*b3d94504SStephan Aßmus    Version ................ 0x0200
421*b3d94504SStephan Aßmus    Manufacturer String .... "      "
422*b3d94504SStephan Aßmus    Product String ......... "      "
423*b3d94504SStephan Aßmus    Serial Number .......... "      "
424*b3d94504SStephan Aßmus      [Configuration 0]               &lt;---------- begin of configuration description
425*b3d94504SStephan Aßmus        [Interface 0]                 &lt;---------- begin of interface description
426*b3d94504SStephan Aßmus        Class .............. 8        &lt;---------- this interface class.
427*b3d94504SStephan Aßmus        Subclass ........... 6        &lt;---------- this interface subclass
428*b3d94504SStephan Aßmus        Protocol ........... 80       &lt;---------- protocol used by this interface
429*b3d94504SStephan Aßmus          [Endpoint 0]
430*b3d94504SStephan Aßmus          MaxPacketSize .... 64
431*b3d94504SStephan Aßmus          Interval ......... 0
432*b3d94504SStephan Aßmus          Type ............. Bulk
433*b3d94504SStephan Aßmus          Direction ........ Input
434*b3d94504SStephan Aßmus          [Endpoint 1]
435*b3d94504SStephan Aßmus          MaxPacketSize .... 64
436*b3d94504SStephan Aßmus          Interval ......... 0
437*b3d94504SStephan Aßmus          Type ............. Bulk
438*b3d94504SStephan Aßmus          Direction ........ Output</pre>
439*b3d94504SStephan Aßmus  </li>
440*b3d94504SStephan Aßmus</ul>
441*b3d94504SStephan Aßmus<a href="#Contents">Table of Contents</a>
442*b3d94504SStephan Aßmus<h2><a name="3.3._Device_entries_reservation"></a>4.3. Device entries
443*b3d94504SStephan Aßmusreservation technique</h2>
444*b3d94504SStephan Aßmus<p>Some tricks are required to implement simple and natural ( "one-click"
445*b3d94504SStephan Aßmus) volumes mounting in Tracker. Current versions of BeOS don't fully conform to
446*b3d94504SStephan AßmusSCSI Common Access Model specifications. Particularly that is mean,
447*b3d94504SStephan Aßmusthat there are no possibility to tell system about mass storage devices,
448*b3d94504SStephan Aßmusattached after system boot. If you already used usb mass storage driver
449*b3d94504SStephan Aßmusfrom Dano you should know this problem - you have to go to DriveSetup
450*b3d94504SStephan Aßmusthan Rescan SCSI bus and only after this mount your volume from DriveSetup.</p>
451*b3d94504SStephan Aßmus<p>This Module introduces a workaround for such problem - it just let system to
452*b3d94504SStephan Aßmusknow, that "device is here, but not ready at the moment, keep trying". This allows
453*b3d94504SStephan Aßmusto simulate some kind of plug and play in mounting from Tracker. You
454*b3d94504SStephan Aßmuscan see those reserved device entries in DriveSetup -a lot of SCSI
455*b3d94504SStephan Aßmus"drives" without media and with ZIP cartridge icon left of it. This
456*b3d94504SStephan Aßmusreservation <a href="#3.4._A_couple_of_words_about_usb_scsi">can be
457*b3d94504SStephan Aßmusconfigured in settings file</a>.</p>
458*b3d94504SStephan Aßmus<a href="#Contents">Table of Contents</a>
459*b3d94504SStephan Aßmus<h2><a name="3.4._A_couple_of_words_about_usb_scsi"></a>4.4. A couple
460*b3d94504SStephan Aßmusof words about usb_scsi settings file</h2>
461*b3d94504SStephan Aßmus<p>You can configure some aspects of this software behavior through
462*b3d94504SStephan Aßmusediting it's settings file. This file is placed by installation script into
463*b3d94504SStephan Aßmus<strong>/boot/home/config/settings/kernel/drivers/</strong> directory
464*b3d94504SStephan Aßmusand has the name
465*b3d94504SStephan Aßmus<strong>usb_scsi</strong>. It is usual text file and can be edited by
466*b3d94504SStephan Aßmusany text editor you like. Note that improper using of this settings
467*b3d94504SStephan Aßmusfile can crash your system - please be accurate. </p>
468*b3d94504SStephan Aßmus<p>Typically the parameters in settings file
469*b3d94504SStephan Aßmuscan be inactive (commented ) or active. For example the following
470*b3d94504SStephan Aßmusquote from settings file contains two parameters: first one
471*b3d94504SStephan Aßmus( reserve_devices ) is inactive ( commented by '#'-sign at the begin of
472*b3d94504SStephan Aßmusline ) and second one ( reserve_luns ) is active and set to 4:
473*b3d94504SStephan Aßmus<pre>#reserve_devices 2 &lt;----------------- inactive
474*b3d94504SStephan Aßmusreserve_luns    4 &lt;----------------- active</pre>
475*b3d94504SStephan AßmusPlease use this notation during editing of settings file.</p>
476*b3d94504SStephan Aßmus<h3><a name="3.4.1_General_Module_settings"></a>4.4.1 The Module configuration parameters</h3>
477*b3d94504SStephan AßmusThis set of parameters is loaded by Module during
478*b3d94504SStephan Aßmussystem boot and is used on permanent basis. To apply changes, made by you in any of
479*b3d94504SStephan Aßmusthis parameter you have to restart your system
480*b3d94504SStephan Aßmus<ul>
481*b3d94504SStephan Aßmus  <li><strong>reserve_devices</strong>
482*b3d94504SStephan Aßmus    <ul>
483*b3d94504SStephan Aßmus      <li>Amount of device entries to be reserved by The Module.
484*b3d94504SStephan AßmusIf you plan to use more than 2 devices simultaneously than increase this
485*b3d94504SStephan Aßmusparameter. Note that if you set this parameter to 0 - device entry
486*b3d94504SStephan Aßmusreservation will be "switched off" and you have to use DriveSetup for
487*b3d94504SStephan Aßmusfirst mounting.</li>
488*b3d94504SStephan Aßmus      <li>default value: 2</li>
489*b3d94504SStephan Aßmus      <li>maximal value: 7</li>
490*b3d94504SStephan Aßmus    </ul>
491*b3d94504SStephan Aßmus  </li>
492*b3d94504SStephan Aßmus  <li><strong>reserve_luns</strong>
493*b3d94504SStephan Aßmus    <ul>
494*b3d94504SStephan Aßmus      <li>Amount of logical unit numbers (LUN) to be reserved by The Module for every
495*b3d94504SStephan Aßmus      device entry defined in reserve_devices parameter. If you plan to use devices
496*b3d94504SStephan Aßmus      with more than 4 LUNs than increase this parameter. </li>
497*b3d94504SStephan Aßmus      <li>default value: 4</li>
498*b3d94504SStephan Aßmus      <li>maximal value: 8</li>
499*b3d94504SStephan Aßmus    </ul>
500*b3d94504SStephan Aßmus  </li>
501*b3d94504SStephan Aßmus  <li><strong>ignore_sysinit2</strong></li>
502*b3d94504SStephan Aßmus  <ul>
503*b3d94504SStephan Aßmus    <li>If you have R5 with USB patches and your system goes in kernel debugger on
504*b3d94504SStephan Aßmusbooting with this software - this parameter is for you. Set it to true
505*b3d94504SStephan Aßmusand reboot to avoid such crashing behavior.</li>
506*b3d94504SStephan Aßmus    <li>default value: false</li>
507*b3d94504SStephan Aßmus  </ul>
508*b3d94504SStephan Aßmus</ul>
509*b3d94504SStephan Aßmus<a href="#Contents">Table of Contents</a>
510*b3d94504SStephan Aßmus<h3><a name="3.4.2._Module_settings_for_debugging_"></a>4.4.2. Parameters for debugging mode</h3>
511*b3d94504SStephan Aßmus<ul>
512*b3d94504SStephan Aßmus  <li><strong>debug_output</strong>
513*b3d94504SStephan Aßmus  </li>
514*b3d94504SStephan Aßmus  <ul>
515*b3d94504SStephan Aßmus    <li>This parameter activates / deactivates debug output.</li>
516*b3d94504SStephan Aßmus    <li>default value: false</li>
517*b3d94504SStephan Aßmus  </ul>
518*b3d94504SStephan Aßmus  <li><strong>debug_output_in_file</strong></li>
519*b3d94504SStephan Aßmus  <ul>
520*b3d94504SStephan Aßmus    <li>This parameter handles redirection of tracing information to
521*b3d94504SStephan Aßmusprivate log file (<strong>/var/log/usb_scsi.log</strong>). If this
522*b3d94504SStephan Aßmusparameter is false - all debuging information goes to system log.
523*b3d94504SStephan Aßmus    </li>
524*b3d94504SStephan Aßmus    <li>default value: false</li>
525*b3d94504SStephan Aßmus  </ul>
526*b3d94504SStephan Aßmus  <li><strong>debug_output_file_rewrite</strong></li>
527*b3d94504SStephan Aßmus  <ul>
528*b3d94504SStephan Aßmus    <li>Forces private log file to be truncated on every system restart</li>
529*b3d94504SStephan Aßmus    <li>default value: false</li>
530*b3d94504SStephan Aßmus  </ul>
531*b3d94504SStephan Aßmus  <li><strong>debug_trace_commands</strong></li>
532*b3d94504SStephan Aßmus  <ul>
533*b3d94504SStephan Aßmus    <li>Activate this to dump SCSI commands to debug output</li>
534*b3d94504SStephan Aßmus    <li>default value: false</li>
535*b3d94504SStephan Aßmus  </ul>
536*b3d94504SStephan Aßmus  <li><strong>debug_trace_protocol</strong></li>
537*b3d94504SStephan Aßmus  <ul>
538*b3d94504SStephan Aßmus    <li>Activate this to see mass storage protocols work information in debug output</li>
539*b3d94504SStephan Aßmus    <li>default value: false</li>
540*b3d94504SStephan Aßmus  </ul>
541*b3d94504SStephan Aßmus  <li><strong>debug_trace_data_io</strong></li>
542*b3d94504SStephan Aßmus  <li><strong>debug_trace_sense_data</strong></li>
543*b3d94504SStephan Aßmus  <li><strong>debug_trace_bulk_callback</strong></li>
544*b3d94504SStephan Aßmus  <li><strong>debug_trace_time </strong></li>
545*b3d94504SStephan Aßmus  <li><strong>debug_trace_threadid </strong></li>
546*b3d94504SStephan Aßmus  <li><strong>debug_trace_thread_name</strong></li>
547*b3d94504SStephan Aßmus  <li><strong>debug_trace_capacity</strong></li>
548*b3d94504SStephan Aßmus  <ul>
549*b3d94504SStephan Aßmus    <li>Mean this stuff as undocumented because it is rarely used.</li>
550*b3d94504SStephan Aßmus    <li>default values: false</li>
551*b3d94504SStephan Aßmus  </ul>
552*b3d94504SStephan Aßmus</ul>
553*b3d94504SStephan Aßmus<a href="#Contents">Table of Contents</a>
554*b3d94504SStephan Aßmus<h3><a name="3.4.3_Device_settings"></a>4.4.3 Configuring device definitions</h3>
555*b3d94504SStephan Aßmus<p>Device definition allows to override your hardware parameters and tweak
556*b3d94504SStephan Aßmusit's functionality. This parameters are device-specific and reloaded on
557*b3d94504SStephan Aßmusphysical device attach. You not need to reboot your system to apply
558*b3d94504SStephan Aßmusyour changes in device descriptions. All you need to use changed device
559*b3d94504SStephan Aßmusdefinitions - unplug your USB hardware from computer and plug it in
560*b3d94504SStephan Aßmusagain. </p>
561*b3d94504SStephan Aßmus<p>Typical "non-standard" devices definition looks like this:
562*b3d94504SStephan Aßmus<pre>vendor &lt;&lt;vendor id&gt;&gt; {
563*b3d94504SStephan Aßmus  device &lt;&lt;product id 1&gt;&gt; {
564*b3d94504SStephan Aßmus    &lt;&lt;parameter 1&gt;&gt;
565*b3d94504SStephan Aßmus    &lt;&lt;parameter 2&gt;&gt;
566*b3d94504SStephan Aßmus         ...
567*b3d94504SStephan Aßmus    &lt;&lt;parameter N&gt;&gt;
568*b3d94504SStephan Aßmus  }
569*b3d94504SStephan Aßmus    ....
570*b3d94504SStephan Aßmus  device &lt;&lt;product id N&gt;&gt; {
571*b3d94504SStephan Aßmus    &lt;&lt;parameter 1&gt;&gt;
572*b3d94504SStephan Aßmus    &lt;&lt;parameter 2&gt;&gt;
573*b3d94504SStephan Aßmus         ...
574*b3d94504SStephan Aßmus    &lt;&lt;parameter N&gt;&gt;
575*b3d94504SStephan Aßmus  }
576*b3d94504SStephan Aßmus}</pre>
577*b3d94504SStephan Aßmus</p>
578*b3d94504SStephan Aßmus<p>The real vendor ID and product ID for your hardware you can obtain from
579*b3d94504SStephan AßmusUSB Device information. Note that you can define many devices inside of
580*b3d94504SStephan Aßmussingle vendor definition. More real samples of device overrides you can
581*b3d94504SStephan Aßmusfind in <a href="usb_scsi.devices">usb_scsi.devices</a> file inside of
582*b3d94504SStephan Aßmusdistribution archive. Just <strong>copy the content of corresponding device
583*b3d94504SStephan Aßmusdescription into settings file</strong> and re-plug your hardware. </p>
584*b3d94504SStephan Aßmus<a href="#Contents">Table of Contents</a>
585*b3d94504SStephan Aßmus<h4><a name="3.4.3.1._Parameters_of_Device_settings"></a>4.4.3.1.Tweaking device definition</h4>
586*b3d94504SStephan AßmusEvery parameter of device definition is like switch. It affects on Module behavior
587*b3d94504SStephan Aßmusonly if exists in device definition and is not commented out.
588*b3d94504SStephan Aßmus<ul>
589*b3d94504SStephan Aßmus  <li><strong>fake_inquiry </strong></li>
590*b3d94504SStephan Aßmus  <ul>
591*b3d94504SStephan Aßmus    <li>do not send INQUIRY SCSI command to USB device but handle it in Module.</li>
592*b3d94504SStephan Aßmus  </ul>
593*b3d94504SStephan Aßmus  <li><strong>use_6byte_cmd </strong></li>
594*b3d94504SStephan Aßmus  <ul>
595*b3d94504SStephan Aßmus    <li>use 6 byte length SCSI READ/WRITE/MODE SENSE/SELECT SENSE
596*b3d94504SStephan Aßmuscommands instead of 10 byte ones. Typically BeOS uses 6-byte commands
597*b3d94504SStephan Aßmusbut many USB mass storage devices doesn't like this. To avoid massive
598*b3d94504SStephan Aßmusdevice
599*b3d94504SStephan Aßmusredefinitions this Module automatically translates such commands to
600*b3d94504SStephan Aßmus10-byte counterparts. If this default translation doesn't work for you
601*b3d94504SStephan Aßmus- set use_6byte_cmd to avoid it.</li>
602*b3d94504SStephan Aßmus  </ul>
603*b3d94504SStephan Aßmus  <li><strong>trans_test_unit</strong></li>
604*b3d94504SStephan Aßmus  <ul>
605*b3d94504SStephan Aßmus    <li>translate TEST UNIT SCSI command to START STOP one.</li>
606*b3d94504SStephan Aßmus  </ul>
607*b3d94504SStephan Aßmus  <li><strong>no_test_unit</strong></li>
608*b3d94504SStephan Aßmus  <ul>
609*b3d94504SStephan Aßmus    <li>do not send TEST UNIT SCSI command to device. At all.</li>
610*b3d94504SStephan Aßmus  </ul>
611*b3d94504SStephan Aßmus  <li><strong>no_get_max_lun</strong></li>
612*b3d94504SStephan Aßmus  <ul>
613*b3d94504SStephan Aßmus    <li>do not ask for maximal number of supported Logical Unit Numbers</li>
614*b3d94504SStephan Aßmus  </ul>
615*b3d94504SStephan Aßmus  <li><strong>no_prevent_media</strong></li>
616*b3d94504SStephan Aßmus  <ul>
617*b3d94504SStephan Aßmus    <li>do not send to device PREVENT ALLOW MEDIA REMOVAL SCSI command.</li>
618*b3d94504SStephan Aßmus  </ul>
619*b3d94504SStephan Aßmus  <li><strong>use_mode_sense_10</strong></li>
620*b3d94504SStephan Aßmus  <ul>
621*b3d94504SStephan Aßmus    <li>force module to use 10-byte MODE SENSE command. Typically this
622*b3d94504SStephan AßmusModule detects automatically the supported MODE SENSE command and you
623*b3d94504SStephan Aßmusdon't need to set it manually.</li>
624*b3d94504SStephan Aßmus  </ul>
625*b3d94504SStephan Aßmus  <li><strong>force_read_only</strong></li>
626*b3d94504SStephan Aßmus  <ul>
627*b3d94504SStephan Aßmus    <li>force drive to be read-only. It is not 100% guaranteed - but in
628*b3d94504SStephan Aßmusmany cases works. If you need "true" read-only volumes - than mount it
629*b3d94504SStephan Aßmuswith corresponding flags from command line.</li>
630*b3d94504SStephan Aßmus  </ul>
631*b3d94504SStephan Aßmus</ul>
632*b3d94504SStephan Aßmus<h4><a name="3.4.3.2._Protocol_override_parameters"></a>4.4.3.2.
633*b3d94504SStephan AßmusOverriding device protocol</h4>
634*b3d94504SStephan AßmusThere are two special parameters allow to override protocol and
635*b3d94504SStephan Aßmuscommand set used to communicate with device
636*b3d94504SStephan Aßmus<ul>
637*b3d94504SStephan Aßmus  <li><strong>commandset</strong></li>
638*b3d94504SStephan Aßmus  <ul>
639*b3d94504SStephan Aßmus    <li>forces The Module to use specific command set when
640*b3d94504SStephan Aßmuscommunicating with device. The following command sets are supported</li>
641*b3d94504SStephan Aßmus  </ul>
642*b3d94504SStephan Aßmus  <ul>
643*b3d94504SStephan Aßmus    <ul>
644*b3d94504SStephan Aßmus      <li>SCSI - transparent SCSI command set. USB subclass 6</li>
645*b3d94504SStephan Aßmus      <li>UFI - USB subclass 4</li>
646*b3d94504SStephan Aßmus      <li>ATAPI - USB subclasses 5,2</li>
647*b3d94504SStephan Aßmus      <li>RBC - USB subclass 1</li>
648*b3d94504SStephan Aßmus      <li>QIC157 - USB subclass 3. Used for tape drives so, probably is
649*b3d94504SStephan Aßmusnot be anytime usable... but supported. =-)</li>
650*b3d94504SStephan Aßmus      <li>&lt;Vendor&gt; - any vendor-specific, non-standard commands
651*b3d94504SStephan Aßmusset. Note that to work with it a corresponding <a href="#3.6._Protocol_extension_modules">protocol extension module</a> is
652*b3d94504SStephan Aßmusrequired.</li>
653*b3d94504SStephan Aßmus    </ul>
654*b3d94504SStephan Aßmus  </ul>
655*b3d94504SStephan Aßmus  <li><strong>protocol </strong></li>
656*b3d94504SStephan Aßmus  <ul>
657*b3d94504SStephan Aßmus    <li>forces The Module to use specific protocol when
658*b3d94504SStephan Aßmuscommunicating with device. The following protocols are supported</li>
659*b3d94504SStephan Aßmus    <ul>
660*b3d94504SStephan Aßmus      <li>BULK - bulk-only. USB protocol 80</li>
661*b3d94504SStephan Aßmus      <li>CB - Control/Bulk/Interrupt protocol (with command
662*b3d94504SStephan Aßmuscompletion interrupt). USB protocol 1</li>
663*b3d94504SStephan Aßmus      <li>CBI - Control/Bulk/Interrupt protocol (with no command
664*b3d94504SStephan Aßmuscompletion interrupt) USB protocol 0</li>
665*b3d94504SStephan Aßmus      <li>&lt;Vendor&gt; - any vendor-specific, non-standard protocol.
666*b3d94504SStephan AßmusNote that to work with it a corresponding <a href="#3.6._Protocol_extension_modules">protocol extension module</a> is
667*b3d94504SStephan Aßmusrequired. </li>
668*b3d94504SStephan Aßmus    </ul>
669*b3d94504SStephan Aßmus  </ul>
670*b3d94504SStephan Aßmus</ul>
671*b3d94504SStephan Aßmus<a href="#Contents">Table of Contents</a>
672*b3d94504SStephan Aßmus<h2><a name="3.6._Protocol_extension_modules"></a>4.5. Protocol extension modules</h2>
673*b3d94504SStephan Aßmus<p>The BeOS USB Support Module was designed with extensibility in mind. It means, that you
674*b3d94504SStephan Aßmuscan add support of vendor-specific, non-standard protocols/commandsets without
675*b3d94504SStephan Aßmuschanging the main Module. All you need is protocol extention module, that implements all
676*b3d94504SStephan Aßmusspecifics of the data and commands flow.</p>
677*b3d94504SStephan Aßmus<p>Currently available modules:</p>
678*b3d94504SStephan Aßmus<ul>
679*b3d94504SStephan Aßmus  <li>freecom - FREECOM USB-IDE Bridge (ATAPI devices only).</li>
680*b3d94504SStephan Aßmus</ul>
681*b3d94504SStephan Aßmus<p>To install protocol extention module obtain it's distribution archive
682*b3d94504SStephan Aßmusand read instructions inside of it.</p>
683*b3d94504SStephan Aßmus<p>For development questions refer to of already existing protocol extention modules
684*b3d94504SStephan Aßmusor the Author of UBS Support Module.</p>
685*b3d94504SStephan Aßmus
686*b3d94504SStephan Aßmus<a href="#Contents">Table of Contents</a>
687*b3d94504SStephan Aßmus<h1><a name="6.Contact_information"></a>4.Contact and support information</h1>
688*b3d94504SStephan AßmusThe BeOS USB Support Module project is hosted on <a href="http://www.sourceforge.net">SourceForge</a>
689*b3d94504SStephan Aßmusand uses some it's powerful development services. There are some ways to inform
690*b3d94504SStephan Aßmusdeveloper about problems or put feature requests for next version
691*b3d94504SStephan Aßmus<ol>
692*b3d94504SStephan Aßmus  <li>Use <a href="http://sourceforge.net/tracker/?group_id=56631&amp;atid=481262">Bug
693*b3d94504SStephan AßmusTracker</a> to put problem reports.</li>
694*b3d94504SStephan Aßmus  <li>Use <a href="http://sourceforge.net/forum/forum.php?forum_id=380480">Forum</a>
695*b3d94504SStephan Aßmusto ask simple support question, discuss any problems.
696*b3d94504SStephan AßmusDo not put your problem reports here - use <a
697*b3d94504SStephan Aßmus href="http://sourceforge.net/tracker/?group_id=56631&amp;atid=481262">Bug
698*b3d94504SStephan AßmusTracker</a>!</li>
699*b3d94504SStephan Aßmus  <li>Use <a
700*b3d94504SStephan Aßmus href="http://lists.sourceforge.net/lists/listinfo/sis4be-usb_scsi">Mailing-list</a>
701*b3d94504SStephan Aßmusto be informed with latest news, ask questions
702*b3d94504SStephan Aßmusetc. This is also not right place for your problem reports - use <a
703*b3d94504SStephan Aßmus href="http://sourceforge.net/tracker/?group_id=56631&amp;atid=481262">Bug
704*b3d94504SStephan AßmusTracker</a> instead.</li>
705*b3d94504SStephan Aßmus  <li>If you want to share any ideas, that can be good to implement in
706*b3d94504SStephan Aßmusfuture versions - use <a
707*b3d94504SStephan Aßmus href="http://sourceforge.net/tracker/?group_id=56631&amp;atid=481265">Feature
708*b3d94504SStephan AßmusRequest Submit form</a>.</li>
709*b3d94504SStephan Aßmus  <li>If you doesn't like any way, mentioned above you can
710*b3d94504SStephan Aßmuscontact me personally by <a href="mailto:imker@gmx.li">e-mail</a> but
711*b3d94504SStephan Aßmusremember, that I don't like this
712*b3d94504SStephan Aßmusway!(Joke!) =-) In my opinion such Community Knowledges like
713*b3d94504SStephan AßmusForums and mail-lists must be public and available for everyone.</li>
714*b3d94504SStephan Aßmus</ol>
715*b3d94504SStephan Aßmus<a href="#Contents">Table of Contents</a>
716*b3d94504SStephan Aßmus<h1><a name="5.Credits"></a>5.Credits</h1>
717*b3d94504SStephan Aßmus<p>I want to say my "Thanks" to:</p>
718*b3d94504SStephan Aßmus<p><strong>... Sergei Dolgov</strong> ("fyysik") for pushing me to develop this software
719*b3d94504SStephan Aßmusand help in testing,</p>
720*b3d94504SStephan Aßmus<p><strong>... Valery Rybin</strong> for testing a really lot of those USB
721*b3d94504SStephan Aßmusgadgets he has at his hands,</p>
722*b3d94504SStephan Aßmus<p><strong>... them who</strong> have spend some time to trying all those "-dev-"
723*b3d94504SStephan Aßmusversions in work.</p>
724*b3d94504SStephan Aßmus<a href="#Contents">Table of Contents</a>
725*b3d94504SStephan Aßmus<h1><a name="4._Versions_History_"></a>6. The History</h1>
726*b3d94504SStephan Aßmus<p><table width="100%" border="1">
727*b3d94504SStephan Aßmus  <tbody>
728*b3d94504SStephan Aßmus    <tr>
729*b3d94504SStephan Aßmus      <td><b>Date:</b> </td>
730*b3d94504SStephan Aßmus      <td><b>Version:</b> </td>
731*b3d94504SStephan Aßmus      <td><b>What's new:</b> </td>
732*b3d94504SStephan Aßmus    </tr>
733*b3d94504SStephan Aßmus    <tr>
734*b3d94504SStephan Aßmus      <td> 06 June 2004</td>
735*b3d94504SStephan Aßmus      <td>0.1.0-alpha-1 </td>
736*b3d94504SStephan Aßmus      <td>first public release. </td>
737*b3d94504SStephan Aßmus    </tr>
738*b3d94504SStephan Aßmus  </tbody>
739*b3d94504SStephan Aßmus</table>
740*b3d94504SStephan Aßmus</p>
741*b3d94504SStephan Aßmus<a href="#Contents">Table
742*b3d94504SStephan Aßmusof Contents</a>
743*b3d94504SStephan Aßmus<center>&lt; End of document &gt;</center>
744*b3d94504SStephan Aßmus</body>
745*b3d94504SStephan Aßmus</html>
746