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