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 <--- file you are reading now 91*b3d94504SStephan Aßmus <a href="install.sh">install.sh</a> <--- installation script 92*b3d94504SStephan Aßmus <a href="uninstall.sh">uninstall.sh</a> <--- uninstallation script 93*b3d94504SStephan Aßmus usb <--- The Module binary 94*b3d94504SStephan Aßmus <a href="usb_scsi.sample">usb_scsi.sample</a> <--- settings file sample 95*b3d94504SStephan Aßmus usb_scsi_logging <--- logging daemon 96*b3d94504SStephan Aßmus <a href="usb_scsi.devices">usb_scsi.devices</a> <--- definitions for "non-standard" devices 97*b3d94504SStephan Aßmus usb_dev_info <--- 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 <---------- Vendor ID of your hardware manufacturer 419*b3d94504SStephan Aßmus Product ID ............. 0x0011 <---------- 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] <---------- begin of configuration description 425*b3d94504SStephan Aßmus [Interface 0] <---------- begin of interface description 426*b3d94504SStephan Aßmus Class .............. 8 <---------- this interface class. 427*b3d94504SStephan Aßmus Subclass ........... 6 <---------- this interface subclass 428*b3d94504SStephan Aßmus Protocol ........... 80 <---------- 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 <----------------- inactive 474*b3d94504SStephan Aßmusreserve_luns 4 <----------------- 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 <<vendor id>> { 563*b3d94504SStephan Aßmus device <<product id 1>> { 564*b3d94504SStephan Aßmus <<parameter 1>> 565*b3d94504SStephan Aßmus <<parameter 2>> 566*b3d94504SStephan Aßmus ... 567*b3d94504SStephan Aßmus <<parameter N>> 568*b3d94504SStephan Aßmus } 569*b3d94504SStephan Aßmus .... 570*b3d94504SStephan Aßmus device <<product id N>> { 571*b3d94504SStephan Aßmus <<parameter 1>> 572*b3d94504SStephan Aßmus <<parameter 2>> 573*b3d94504SStephan Aßmus ... 574*b3d94504SStephan Aßmus <<parameter N>> 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><Vendor> - 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><Vendor> - 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&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&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&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&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>< End of document ></center> 744*b3d94504SStephan Aßmus</body> 745*b3d94504SStephan Aßmus</html> 746