USB configuration tool


What is usbcfg.exe?
===================


This is a settings notebook designed to reconfigure most USB settings.

NOTE: This application is not designed to work with the CW USB drivers.

It can also be used to add more Controller lines to the config.sys file should a user add a USB Host Controller card to the system.

It is not designed to perform the initial installation of any required drivers, only reconfigure the installation of those drivers so the drivers already need to exist in their default location.

Note: I think the Ethernet driver should be configured using the MPTS application although the "/V" option should not cause problems.



Feedback required on how well the application works generally and especially on Modem, Quatech Serial Port, Ethernet and Printer options.

Feedback - and moans :-(  - should be emailed to 
        losepete@ntlworld.com using a Subject of USBcfg - simply click on my name on the Information page - otherwise there is a chance that email will end up in my spam trap and not be read/responded to.


Offers of Help:-

  to implement NLS (translators and persons with the "know-How" to explain how to implement this using Sibyl)

Would be gratefully accepted at the above email address.




A brief overview of what usbcfg.exe does

When started usbcfg.exe:-
        Identifies how many of what type(s) of controller are available.
        The config.sys file is read to establish the current USB use and a "USB Free" copy of the config.sys file, config.tmp, is generated.
        The various notebook pages display the current installation values based on the config.sys values


Any changes made are saved at program exit:-
        Copies the current config.sys to config.nnn (where nnn is a value between 001 - 999) - a backup in case of problems.
        The values currently displayed in the notebook are written to the config.tmp file, appended to the end in BASEDEV and then DEVICE order
        The config.tmp file is copied to config.sys overwriting the existing file 
        The config.tmp file is deleted
        Current window size, position and state are written to the usbcfg.ini file
        A Warning is displayed that it is necessary to Reboot to activate the changes - also states the name of the config.sys backup file      





Install Instructions
--------------

usbcfg075.zip contains
        usbcfg.exe - application
        usbcfg.hlp - help file
        GETDESC.DLL - support library
        readme.txt - this readme file
        install.cmd - install script
        usbmsdFAQ.inf.inf - frequently asked questions about USB drives
	usbacpiFAQ.inf - observation about reserving USB drives related to multi-slot cardreaders

Unzip to a temp directory and run the install.cmd script.


This should copy the usbcfg.exe file to either

 [BootDrive]:\ecs\bin - if this directory exists it will be used
 Or
 [BootDrive]:\OS2 - the alternative for OS/2 users

The usbcfg.hlp file should be copied to

 [BootDrive]:\ecs\help - if this directory exists it will be used
 Or
 [BootDrive]:\OS2\help  - the alternative for OS/2 users

The GETDESC.DLL file should be copied to
 
 [BootDrive]:\ecs\dll for eCS systems
 Or 
 [BootDrive]:\os2\dll for OS/2 systems

The usbmsdFAQ.inf file should be copied to

 [BootDrive]:\ecs\book - if this directory exists it will be used
 Or
 [BootDrive]:\OS2\book - the alternative for OS/2 users

The usbacpiFAQ.inf file should be copied to

 [BootDrive]:\ecs\book - if this directory exists it will be used
 Or
 [BootDrive]:\OS2\book - the alternative for OS/2 users

where [BootDrive] is the boot drive for the system

The install also creates a program object, "USB", in the System Setup folder.

If the install routine installs USBcfg to [BootDrive]:\ecs\bin then it will check for and, if found, remove a previous release from [BootDrive]:\os2


Alternatively:-

Unzip files into your choice of location

You can then manually create a program object in your System Setup folder:-
        Open System Setup folder
        Open location you have unzipped the USBcfg.* files to
        RMB on USBcfg.exe and select Create Program Object
        Give object the name USB and create it in System Setup


Run the program by clicking the object - Or, if you have not created the object, click on the executable.



Problems
--------

1] Xit seems to be causing some people problems when trying to start USBcfg. 
I do not use Xit myself but am informed there is a list (?) that applications need to be added to otherwise Xit prevents them from running.

2] After a fresh, clean (not migration) install of eCS1.2MR with the included SNAP video drivers to a system based on a VIA KT333 mainboard chipset and nVidia MX440 video card USBcfg failed to start with the following exception:-

Exception occured: TList error exception (EListError) occured at    
$00023021
Program is terminated.

The above was resolved by updating USB and IDE/DASD drivers and also installing the SNAP314 (current) release.

I can only conclude there is something flaky about some of the drivers supplied with eCS1.2MR as I did get an email report about this problem from another eCS1.2MR user before being able to (accidentally) recreate the problem myself.
So, advice to eCS1.2MR users: Update USB, IDE, DASD and SNAP drivers if the above error occurs - maybe that advice should apply to anyone who gets the above error...


3] USBcfg beta6 introduced some error checking on the call to hcimonit.exe - used to identify Type and Quantity of Controllers available.
On some systems this revealed what seems to be a Bug in hcimonit.exe which has a return code value of 1 (Fail variant) rather than the expected 0 (Success).
This has been fixed in USBcfgb6c and later by USBcfg dispensing with the call to hcimonit.exe and querying hardware directly.



History
-------

Beta0.7.5

Changed the method of extracting driver buildlevel details - Thanks to Lars Erdmann for the GETDESC.DLL file now included with USBcfg

Added the EHCI Controller speed selector for use with Lars Erdmanns builds of USBEHCD.SYS

Updated USBCFG.HLP with above changes

Updated INSTALL.CMD to copy the GETDESC.DLL file to either [BootDrive]:\ecs\dll for eCS systems or [BootDrive]:\os2\dll for OS/2 systems


Beta0.7.2

As the IBM recommended load order for Controllers is reported to cause problems when using the non-IBM USBD.SYS driver from the mmportv1 package Users of the non-IBM driver can opt to write the Controller lines in "Reverse Order" to the IBM load order ie:-

	USBEHCD.SYS
	USBOHCD.SYS
	USBUHCD.SYS


Beta0.7.1

Changed the USB Controller driver load order to the below - as recommended in the IBM readme

	USBUHCD.SYS
	USBOHCD.SYS
	USBEHCD.SYS

When a setting is changed and the config.sys file is updated the Controller lines will be written in the above order
The interface has been changed to match the above order

Changed the Resource Manager page

	Added the USB Dock application

Changed the Information page

	1] clicking on Peter Brown fires up the default email client to send me an email about USBcfg

	2] clicking on WDSibyl fires up the default browser with the WDSibyl website url

	NOTE: Both the above rely on Default browser and email cient settings in the OS2.INI file.

	3] added USBcfg version data

Renamed the USBFAQ.INF filename to usbmsdFAQ.inf

Added a USB and ACPI FAQ, usbacpiFAQ.inf - observation about reserving USB drives related to multislot cardreaders - feel free to send me additions to this FAQ

Updated USBCFG.HLP with above changes

Updated INSTALL.CMD to copy the usbacpiFAQ.inf and usbmsdFAQ.inf to either [BootDrive]:\ecs\book or [BootDrive]:\OS2\book depending on system in use.

 

Beta7

Some minor changes to prevent USBcfg from trying to configure the CWUSB drivers.

Added an USBFAQ.INF file which currently contains Lon Hookers helpful "USB Removables - Care and Feeding FAQs".

Updated USBCFG.HLP to link to the above USBFAQ.INF file

Updated INSTALL.CMD to copy the USBFAQ.INF to either [BootDrive]:\ecs\book or [BootDrive]:\OS2\book depending on system in use.



Beta6c

Replaced the call to hcimonit.exe with some code that seems to work on the systems that hcimonit.exe failed to run on previously .
Thanks to Paul Ratcliffe for his c code - he spent "a spare hour knocking it up" and I spent a lot longer working out how it worked, "transcodelating" it into Pascal  and incorporating it into USBcfg  :-)

This build also dispenses with the use of bldlevel.exe when obtaining Driver Vendor and Build data.

Minor updates to the install.cmd script: eCS users will now find the help file stored in the eCS default location of [BootDrive]:\ecs\help
If the help file exists in [BootDrive]:\ecs\bin - from a previous install - it will be deleted


Beta6

Driver information (Vendor and Build Revision) are now displayed - as long as the driver exists and can be found on the system.
If a driver is not found the application displays "N/A" as an abbreviation for "Not Available".

USBcfg now checks for an already running instance and will not start a second copy running  - Thanks to Wolfgang for his example code. 
This should result in the already running copy being displayed but it seems to depend on how the application was started - something else to "tidy up" if possible in the near future.
So, if USBcfg will not start check the Window list to see if it is already running.

Default Button - now sets the default values for devices (drivers) only for the current page.

Undo Button - now undoes changes only to the current page.

Help has been indexed a little better and should now work in a context-sensitive manner: Click on a driver, eg Mouse, press F1 and the Help should open at the correct, eg Mouse, section.

Fixed the problem - Hopefully - where sometimes the backup file created (when changes had been made) had the same title as the CONFIG.SYS file rather than the Title of the Backup File ie:-
     2 or more copies of CONFIG.SYS appeared to exist when looking at the directory from the WPS due to duplicate File Titles.



Beta5a

Fix for UHCI Controllers Installed quantities being added to OHCI Controller Installed quantities with UHCI Controller Installed quantity showing 0 in Beta5.


Beta5

Development package change - now using WDSibyl rather than Sibyl (fp3).
Thanks to Wolfgang for his ongoing WDSibyl development which is at 
http://members.chello.at/webstar/wdsibyl.html

A new icon  :-)
It looks more like an eCS-OS/2 configuration notebook icon I think.
My Thanks to Herwig Bauernfeind for this "upgrade to the artwork".

Fixes for some small bugs that crept into beta4:
If using Quatech Serial Ports with a single value (4, 8 or similar) beta4 would add a spurious character, Sorry.
Also some unused (here) drivers were showing default values rather than empty entryfields.

Added the capability to run USB Resource Manager.
For this to work obviously the USB Resource Manager package needs to be installed.
The application checks for the USB Resource Manager in [BootDrive]:\ecs\bin and in the system Path.

Some Tab Title changes and repositioning of Pages:
"Devices" became "I/O"
"CD/DVD" became "Optical"
"Other Drives" became "Mass Storage"
added "Resource Manager" Page

Changed the Undo button so that it is always Enabled - for "conformity" with other settings notebooks.

Added "Hints" - if you leave the mouse over a driver/option for too long you should get a basic "help hint" appear.


Beta4

Now checks screen resolution and sizes accordingly when started for the first time. Resizes if the system is switched to 800*600 or lower; also repositions app centre screen if the app was closed partially off screen.

As a result of the above "vga compatability" the app has some visual changes including new pages to put the changes onto - System, Devices and Communications now have 2 pages, the Drives page has changed to 2 pages, CD/DVD and Other Drives.

Backups are now made with the filename config.nnn where nnn is a sequential value between 000 to 999 inc. The higher value the filename extension the more recent the backup is. If you ever generate config.999 then the next attempt to create a backup will 
fail and a message will be displayed bringing this large number of backups to your attention...

Checks existing config.sys file for non-standard/default USB Device Driver locations and stores the relevent details preventing USBcfg from resetting Device driver paths to the standard/Default locations when writing a new config.sys file.
Note: Does not hunt through the system for any driver files in non-default locations but if the driver is already in the config.sys file that location is used.

Checks for Drivers when a new Device is selected (user checks a previously unchecked device driver checkbox), Displays a message if the Driver is not in a Standard directory/Default directory (for most devices [bootdrive]:\os2\boot) and will not be able t
o configure the Device.

The Undo button is still "Global" - undo ALL changes; but it should work a bit quicker now.

"Local" Undo allowing changes made to be undone by clicking the same checkbox again now works.

Now searches \os2\boot and the system path for hcimonit.exe  (hcimonit.exe is supplied with the IBM USB Base Driver package).

Updated the Other Drives page, Removables options to include the 2 new parameters, /CHS and /MS10_OFF, included in the USBMSD.ADD update, Build 10.162

Added the gphoto2 usb driver, gph2usb.sys, to the application on Devices, Page 2 of 2

*** Removed the Scanner from Devices, Page 2 of 2 - the driver involved, USBSCAN.SYS, is no longer required with current builds of sane (from http://smedley.info/sane.html)

Disabled the Ethernet configuration options. This device should be installed and configured using MPTS, the details are shown for completeness of information with the option to Add/Remove the Verbose parameter being the only active option if the Ethernet 
driver is already installed and in use.


Beta 3

Rectified all config.sys lines being written in uppercase - all non-USB config.sys lines are left in the original case, USB lines are written using uppercase due to some reports in newsgroups of lowercase parameters not working - "v" and "/removables:" am
ong them.

Added program icon to application window


Beta 2

Changes are written to the config.sys file.

App "remembers" window position, size and state - now uses an ini file.

Error checking is minimal - No check on whether any required drivers are installed before writing updated config.sys file.

Help still only Indexed by Topic.

No NLS support
 

Beta1

Help is only Indexed by Topic at the moment.

No config.sys changes are made, all other functions working.

Error checking is minimal.

