|
|
 |
by Albert Wuersch <awuersch@ee.ethz.ch>
Anderi Kopovoi <copoff@ee.ethz.ch>
When you set up a new PC, you will encounter that sometimes some new devices are not recognized by the automatic installation procedure. The reason is that the new drivers are not yet implemented in the main automatic installation (look setuppc). in this document we will explain how to add new drivers to the main installation.

First be aware of the different roles of the different servers. On winpack we keep the drivers in a well organised form. At the time of the writing, winpack was drwho. So replace in the path {winpack} with the hostname i.e. now at the time of the writing with 'drwho'. It is also possible to access the drivers through samba-share \\winpack\pack\. With the help of a script we copy those drivers to charon. The advantages of this system are:
Reliability. Drivers are stored on winpack. We know that backups and restores of files on winpack work fine.
Consistancy. With the help of the script, we only have to care to keep the drivers well sorted on winpack. The script does the copy and 'compacting' (see next) work.
Oem-pnp-path restriction. The OEM-PNP-PATH Registry entry is limited to 255 characters. Every new driver requires a new folder and therefore a new entry in the oem-pnp-path. The solution to not fill up the oem-pnp-path is to keep as less folders of drivers as possible on charon. The script does the compacting automatically. It copies the well structured folders with the drivers on winpack to a few folders on charon. In that way, we can keep the drivers in a 'human readable way' on winpack. And on charon they are compacted so that the oem-pnp-path does not grow over 255 characters

This section should provide you the necessary steps to install a new driver into the unsupervised WinXP-client setup of the ISG.EE.
Get the correct drivers. Download the drivers for the new hardware and confirm that they work fine. I.e. install them on a maschine.
File drivers on winpack. ssh wlocal@winpack. Change to
/usr/{winpack}/winpack-a/configure/RemoteInstall/
winxp.pro/$oem$/$1/Drivers
There you will find a structure to save the new drivers. We have in General
this structure:
HARDWARE_TYPE/BRAND_NAME/[TYPE]
File your unpacked drivers into this structure. (E.g. Drivers for a new graphic card G550 from Matrox come under Video/Matrox/G550).
If the new drivers replace old drivers, or include the old drivers, then move the folder with the old drivers into the 'obsolete-drivers'-folder. That folder is here:
/usr/{winpack}/winpack-a/configure/RemoteInstall/
winixp.pro/$oem$/$1/obsolete-drivers
Execute script on charon.ssh administrator@charon. Execute 'compact_drivers --show' command to see lists of awailable sources and destinations. This script does first a tar-file of the actual directories on Charon as a backup if something goes wrong. Then it gets all the drivers from source on winpack and puts them into the destination directory on Charon, compacting them to directories A,B, ..H. In LOG.TXT you can have a look at a very verbose LOG of the action. Execute "compact_drivers --src=winxp.pro --dest=winxpsp2.pro" to update winxpsp2.pro image with the new drivers from winpack.
Check. Now setup a computer and look if everything works fine.

Adding a network adapter that requires an OEM driver to a CD-ROM-based Remote Installation Service (RIS) image involves some of the same steps as adding one to a typical unattended installation. However, because the installation method begins by using Pre-boot Execution Environment (PXE) and then switches over to Server Message Block (SMB), the network adapter driver and .inf file must be available during Text-mode Setup.
When a PXE client connects to a RIS server and is running Client Installation Wizard (CIW), the network adapter is using Universal Network Device Interface to talk to the RIS server. When the installation portion begins, Windows Setup switches to SMB, the network adapter is detected, and the appropriate driver is loaded. Therefore, the driver must be available.
On the RIS server, copy the OEM-supplied .inf and .sys file for the network adapter to the D:\RemoteInstall\Images\winxpsp2.pro\i386 directory and to all other versions of the image. This allows Setup to use the driver during the Text-mode portion of the installation. The files should also be copied to
/usr/{winpack}/winpack-a/configure/RemoteInstall/Images/winxp.pro/i386/
Stop and Restart the BINL service on the RIS server.
net stop binlsvc
net start binlsvc
The reason why stopping and restarting the BINL service is necessary is because BINL needs to read all the new network interface card-related .inf files and create .pnf files in the image. Because this is a time consuming task, it is only done once, which is when the BINL service starts.
You need to add the drivers to the $oem$/$1/Drivers directory structure as it was described before.

When you succeeded with the installation, and you log in for the first time some annoying messages appear telling you that there was a new graphic card installed. We can edit some registry entries to have theses boxes already clicked.
But how do we do that?
Before you click the boxes, start wise and do a snapshopt of the registry.
This is done like that:
Start wise with \\winpack\pack\wise-installer\WfWI3.exe
Choose Setup Capture and below MSI package and then click next.
Choose Settings and there go to the carpet 'Directories to watch'
'Document and Settings\All Users'
'Programm Files'
'Winxp'
and then click next and next again. The first scan is then started.
Now you can click the ok-boxes that you don't want to have!! and then click next and next again. The second scan is done. At the end you can click finish
Now you can find out the differences that were done. When you click on Registry you will see that the main window is splittet in two parts. The upper part shows the entire registry as it is now. The under part shows the differences between the two snapshots. Browse through the under part and remember the places where the differences were done.
Open regedit and go to the places you remembered. Then export each modification as a reg file. At the end merge all reg files to one reg file. (since it is ascii, it is not so difficult)
Login with ssh wlocal@winpack to winpack. Password is the one for hades domain administrator and change to /usr/{winpack}/winpack-a/boot/. There change to the directory where the reg should be executed. In our case its matroxreg. There you will find a META file and one or several .reg files. If you have to create a new folder at the same level like matroxreg. refer to point 8b, otherwise continue with 9.
8b. If you want to add a new 'hardware section' for the BOOT scripts change to
/usr/{winpack}/winpack-a/isgtc/etc/win32/. There, add the foldername and describe for which organisation units this script is intended for.
In the folder matroxreg comes your reg-file you created under window (point 7). Make shure that the lines are terminated with 'line feed and carriage return'. This can be verified with pfedit (PFE) under Windows. Or with vi you will see a ^M at the end of the lines. Look that the file has only 744 rights.
Add in the Metafile the line that executes the registration of your reg file. The Meta File looks like this:
description = Register Matrox Driver
version = 1
maintainer = mo
type = once
*** command ***
c:\winxp\regedit -s g400drv.reg
c:\winxp\regedit -s your_reg_file.reg
After the next installation, no boxes should appear to be clicked. Another way to see if you reg-file is well done is to 'unclick' the entries in the registry.
and then execute your reg-files by hand and see if the boxes appear on reboot.
| 2001-11-11 | wu | initial version | | 2002-06-11 | wu | rewrite of Organisation/how to add drivers | | 2002-06-28 | ac | add NIC drivers installation section. | | 2002-07-01 | wu | changed name tardis with winpack, drivers can have subfolders now. (compact-drivers changed) | | 2002-12-05 | ac | Small updates. | | 2006-02-27 | dr | Changed to Windows XP |
|
 |