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
 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.




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 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
--------------

usbcfgb7a.zip contains
        usbcfg.exe - application
        usbcfg.hlp - help file
        readme.txt - this readme file
        install.cmd - install script
        usbfaq.inf - frequently asked questions

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 usbfaq.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 USBcfg.exe, USBcfg.hlp and USBfaq.inf into your choice of location

You can 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
------


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.

