Device not found in txtsetup.oem

Antworten
Benutzeravatar
SisterOfMercy
Beiträge: 1524
Registriert: 22 Jun 2012, 19:18

Device not found in txtsetup.oem

Beitrag von SisterOfMercy »

I finally installed OPSI from scratch on a CentOS 6.3 installation. I used Spacewalk, how about that, using a deploymentserver to deploy an other deploymentserver. :D

Anyway, I am now testing with drivers in a VM and have run into a few problems. I am trying to install Windows XP x64, the VM loaded the files from the TFTP server. When using the IDE controller Windows installed fine, but I have problems with the SATA and SAS controllers. When deploying to a real system mostly the SATA controller will be used, and I don't really want to use IDE mode with new systems. The SATA problems are somewhat complicated, and thought to first learn with the SAS controller and compare that to the SATA drivers.
Anyway, with the SAS controller the problem is after copying files to the local harddisk of the system:

Code: Alles auswählen

Integrating drivers
Integrating driver dir 'BEEF'
Integrating driver dir '100E'
Integrating driver dir 'CAFE'
Integrating driver dir '0054'
Integrating textmode drivers
Integrating textmode driver '/mnt/hd/drv/4'
An error occured: Device '1000:0054' not found in txtsetup.oem file '/mnt/hd/drv/4/txtsetup.oem'

After logging in on the linux bootimage:
cat /mnt/hd/drv/4/txtsetup.oem

Code: Alles auswählen

# txtsetup.oem - version XPx64.1 for LSI_SAS Windows XP x64 driver
#
# ***********************************************************************
#                                                                       *
#   Copyright 2007 LSI Corporation.  All rights reserved.               *
#                                                                       *
#   This file is property of LSI Corporation. and is licensed for       *
#   use as is.  The receipt of or posession of this file does not       *
#   convey any rights to modify its contents, in whole, or in part,     *
#   without the specific written consent of LSI Corporation.            *
#                                                                       *
# ***********************************************************************
#
# format for txtsetup.oem.
#
# General format:
#
# [section]
# key = value1,value2,...
#
#
# The hash ('#') introduces a comment.
# Strings with embedded spaces, commas, or hashes should be double-quoted
#


[Disks]

# This section lists all disks in the disk set.
#
# <description> is a descriptive name for a disk, used when
#   prompting for the disk
# <tagfile> is a file whose presence allows setup to recognize
#   that the disk is inserted.
# <directory> is where the files are located on the disk.
#

d1 = "LSI Fusion-MPT SAS Storport Driver",\lsi_sas.tag,\


[Defaults]

# This section lists the default selection for each 'required'
# hardware component.  If a line is not present for a component,
# the default defaults to the first item in the [<component_name>]
# section (see below).
#
# <component_name> is one of computer, display, keyboard, mouse, scsi
# <id> is a unique <within the component> string to be associated
#   with an option.

scsi = LSI_SAS_AMD64


[scsi]

# This section lists the options available for a particular component.
#
# <id> is the unique string for the option
# <description> is a text string, presented to the user in a menu
# <key_name> gives the name of the key to be created for the component in
#   HKEY_LOCAL_MACHINE\ControlSet001\Services

LSI_SAS_AMD64 = "LSI Fusion-MPT SAS Driver (XP x64)",lsi_sas


[HardwareIds.scsi.LSI_SAS_AMD64]

id = "PCI\VEN_1000&DEV_0050", "lsi_sas"
id = "PCI\VEN_1000&DEV_0054", "lsi_sas"
id = "PCI\VEN_1000&DEV_0058", "lsi_sas"
id = "PCI\VEN_1000&DEV_0056", "lsi_sas"
id = "PCI\VEN_1000&DEV_0062", "lsi_sas"

# This section lists the files that should be copied if the user
# selects a particular component option.
#
# <file_type> is one of driver, port, class, dll, hal, inf, or detect.
#   See below.
# <source_disk> identifies where the file is to be copied from, and must
#   match en entry in the [Disks] section.
# <filename> is the name of the file. This will be appended to the
#   directory specified for the disk in the [Disks] section to form the
#   full path of the file on the disk.

[Files.scsi.LSI_SAS_AMD64]
driver  = d1,lsi_sas.sys,LSI_SAS
inf     = d1,lsi_sas.inf
inf     = d1,lsinodrv.inf
catalog = d1,sxpam64.cat


[Config.LSI_SAS]

# This section specifies values to be set in the registry for
# particular component options.  Required values in the services\xxx
# key are created automatically -- use this section to specify additional
# keys to be created in services\xxx and values in services\xxx and
# services\xxx\yyy.
#
# <key_name> is relative to the services node for this device.
#   If it is empty, then it refers to the services node.
#   If specified, the key is created first.
# <value_name> specifies the value to be set within the key
# <value_type> is a string like REG_DWORD.  See below.
# <value> specifies the actual value; its format depends on <value_type>
value = Parameters\PnpInterface,5,REG_DWORD,1
Ok, it looks like this is the correct txtsetup.oem. I had first a few other txtsetup.oem files, but removed them from the opsi-server.

This is the last part of the bootimage.log, which was made when I still had a few other txtsetup.oem files. In this case the /mnt/hd/drv/6/txtsetup.oem file was also the correct lsi file.

Code: Alles auswählen

[6] [Feb 05 19:41:06] File '/mnt/hd/drv/6/txtsetup.oem' found (WindowsDrivers.py|333)
[7] [Feb 05 19:41:06] Parsing txtsetup.oem file /mnt/hd/drv/6/txtsetup.oem (__init__.py|1023)
[7] [Feb 05 19:41:06] Trying to lock file '/mnt/hd/drv/6/txtsetup.oem' (0/2000) (__init__.py|190)
[7] [Feb 05 19:41:06] File '/mnt/hd/drv/6/txtsetup.oem' locked after 0 millis (__init__.py|212)
[6] [Feb 05 19:41:06] Searching for component names and options (__init__.py|1049)
[6] [Feb 05 19:41:06] Component names found: [u'scsi'] (__init__.py|1072)
[6] [Feb 05 19:41:06] Component options found: [{'componentName': u'scsi', 'optionName': u'lsi_sas', 'description': u'LSI Fusion-MPT SAS Driver (XP x64)', 'componentId': u'LSI_SAS_AMD64'}] (__init__.py|1073)
[6] [Feb 05 19:41:06] Searching for default component ids (__init__.py|1076)
[6] [Feb 05 19:41:06] Found default component ids: [{'componentName': u'scsi', 'componentId': u'LSI_SAS_AMD64'}] (__init__.py|1085)
[6] [Feb 05 19:41:06] Searching for devices (__init__.py|1088)
[6] [Feb 05 19:41:06] Found hardwareIds section 'HardwareIds.scsi.LSI_SAS_AMD64', component name 'scsi', component id 'LSI_SAS_AMD64' (__init__.py|1095)
[7] [Feb 05 19:41:06]    Found PCI device: 1000:0050, service name: lsi_sas (__init__.py|1117)
[7] [Feb 05 19:41:06]    Found PCI device: 1000:0054, service name: lsi_sas (__init__.py|1117)
[7] [Feb 05 19:41:06]    Found PCI device: 1000:0058, service name: lsi_sas (__init__.py|1117)
[7] [Feb 05 19:41:06]    Found PCI device: 1000:0056, service name: lsi_sas (__init__.py|1117)
[7] [Feb 05 19:41:06]    Found PCI device: 1000:0062, service name: lsi_sas (__init__.py|1117)
[6] [Feb 05 19:41:06] Found services: [u'lsi_sas'] (__init__.py|1126)
[7] [Feb 05 19:41:06] Found devices: [{'vendor': u'1000', 'extra': None, 'componentName': u'scsi', 'serviceName': u'lsi_sas', 'device': u'0050', 'type': u'PCI', 'componentId': u'LSI_SAS_AMD64'}, {'vendor': u'1000', 'extra': None, 'componentName': u'scsi', 'serviceName': u'lsi_sas', 'device': u'0054', 'type': u'PCI', 'componentId': u'LSI_SAS_AMD64'}, {'vendor': u'1000', 'extra': None, 'componentName': u'scsi', 'serviceName': u'lsi_sas', 'device': u'0058', 'type': u'PCI', 'componentId': u'LSI_SAS_AMD64'}, {'vendor': u'1000', 'extra': None, 'componentName': u'scsi', 'serviceName': u'lsi_sas', 'device': u'0056', 'type': u'PCI', 'componentId': u'LSI_SAS_AMD64'}, {'vendor': u'1000', 'extra': None, 'componentName': u'scsi', 'serviceName': u'lsi_sas', 'device': u'0062', 'type': u'PCI', 'componentId': u'LSI_SAS_AMD64'}] (__init__.py|1127)
[6] [Feb 05 19:41:06] Searching for disks (__init__.py|1130)
[6] [Feb 05 19:41:06] Found driver disks: [{'diskName': u'd1', 'description': u'LSI Fusion-MPT SAS Storport Driver', 'driverDir': u'', 'tagfile': u'lsi_sas.tag'}] (__init__.py|1150)
[6] [Feb 05 19:41:06] Searching for files (__init__.py|1153)
[6] [Feb 05 19:41:06] Found files section 'Files.scsi.LSI_SAS_AMD64', component name 'scsi', component id 'LSI_SAS_AMD64' (__init__.py|1160)
[7] [Feb 05 19:41:06] Found files: [{'diskName': u'd1', 'componentName': u'scsi', 'fileType': u'driver', 'filename': u'lsi_sas.sys', 'optionName': u'LSI_SAS', 'componentId': u'LSI_SAS_AMD64'}, {'diskName': u'd1', 'componentName': u'scsi', 'fileType': u'inf', 'filename': u'lsi_sas.inf', 'optionName': None, 'componentId': u'LSI_SAS_AMD64'}, {'diskName': u'd1', 'componentName': u'scsi', 'fileType': u'inf', 'filename': u'lsinodrv.inf', 'optionName': None, 'componentId': u'LSI_SAS_AMD64'}, {'diskName': u'd1', 'componentName': u'scsi', 'fileType': u'catalog', 'filename': u'sxpam64.cat', 'optionName': None, 'componentId': u'LSI_SAS_AMD64'}] (__init__.py|1171)
[6] [Feb 05 19:41:06] Searching for configs (__init__.py|1175)
[6] [Feb 05 19:41:06] Found configs section 'Config.LSI_SAS', component id 'LSI_SAS' (__init__.py|1181)
[7] [Feb 05 19:41:06] Found configs: [{'valueType': u'REG_DWORD', 'keyName': u'Parameters\\PnpInterface', 'componentId': u'LSI_SAS', 'value': u'1', 'valueName': u'5'}] (__init__.py|1190)
[7] [Feb 05 19:41:06] Textmode driver '/mnt/hd/drv/6' supports device {'vendorId': u'1000', 'deviceId': u'0054'} (WindowsDrivers.py|340)
[5] [Feb 05 19:41:06] Integrating textmode driver '/mnt/hd/drv/6' (WindowsDrivers.py|350)
[7] [Feb 05 19:41:06] Skipping device with component id 'LSI_SAS_AMD64' which does not seem to match architecture 'x86' (__init__.py|958)
[2] [Feb 05 19:41:07] Traceback: (Logger.py|742)
[2] [Feb 05 19:41:07]      line 1387 in '<module>' in file '/usr/local/bin/master.py' (Logger.py|742)
[2] [Feb 05 19:41:07]      line 172 in '<module>' in file '/tmp/setup.py' (Logger.py|742)
[2] [Feb 05 19:41:07]      line 355 in 'integrateWindowsTextmodeDrivers' in file '/usr/lib/pymodules/python2.6/OPSI/Util/WindowsDrivers.py' (Logger.py|742)
[2] [Feb 05 19:41:07]      line 976 in 'getFilesForDevice' in file '/usr/lib/pymodules/python2.6/OPSI/Util/File/__init__.py' (Logger.py|742)
[2] [Feb 05 19:41:07]      line 967 in 'getDevice' in file '/usr/lib/pymodules/python2.6/OPSI/Util/File/__init__.py' (Logger.py|742)
[2] [Feb 05 19:41:07]      ==>>> Device '1000:0054' not found in txtsetup.oem file '/mnt/hd/drv/6/txtsetup.oem' (master.py|1435)
[7] [Feb 05 19:41:07] Backend: <OPSI.Backend.JSONRPC.JSONRPCBackend instance at 0x89bc4ac> (master.py|1438)
[7] [Feb 05 19:41:07] ProductId: winxppro-x64 (master.py|1439)
[7] [Feb 05 19:41:07] ClientId: opsi-client3.anarchy.lan (master.py|1440)
[7] [Feb 05 19:41:07] ProductOnClient: <ProductOnClient clientId 'opsi-client3.anarchy.lan', productId 'winxppro-x64', installationStatus 'unknown', actionRequest 'none'> (master.py|1441)
[6] [Feb 05 19:41:07] Updating productOnClient: {'actionProgress': u'', 'actionResult': u'failed', 'clientId': u'opsi-client3.anarchy.lan', 'modificationTime': None, 'actionRequest': u'none', 'targetConfiguration': None, 'productVersion': None, 'productType': u'NetbootProduct', 'type': u'ProductOnClient', 'lastAction': None, 'packageVersion': None, 'actionSequence': None, 'installationStatus': u'unknown', 'productId': u'winxppro-x64'} (master.py|1452)
[7] [Feb 05 19:41:07] Executing jsonrpc method 'productOnClient_updateObjects' on host 10.0.0.97 (JSONRPC.py|104)
[7] [Feb 05 19:41:07] Starting new HTTPS connection (0) to 10.0.0.97:4447 (HTTP.py|574)
[7] [Feb 05 19:41:07] Connection established to: 10.0.0.97 (HTTP.py|587)
[7] [Feb 05 19:41:07] Failed to get peer cert: 'NoneType' object has no attribute 'getpeercert' (HTTP.py|164)
[7] [Feb 05 19:41:08] Closing connection: <httplib.HTTPSConnection instance at 0x8c4eb8c> (HTTP.py|502)
[7] [Feb 05 19:41:08] Content-Type: gzip-application/json;charset=utf-8, Content-Encoding: gzip (JSONRPC.py|659)
[7] [Feb 05 19:41:08] Expecting compressed data from server (JSONRPC.py|663)
[5] [Feb 05 19:41:27] Writing log to service (master.py|1466)
[7] [Feb 05 19:41:06] Skipping device with component id 'LSI_SAS_AMD64' which does not seem to match architecture 'x86' (__init__.py|958)
What? No of course it does not match architecture x86, it's a x64 driver! :|

I looked in __init__.py and it looks like this:

Code: Alles auswählen

def getDevice(self, vendorId, deviceId, deviceType = None, architecture='x86'):
                vendorId = forceHardwareVendorId(vendorId)
                deviceId = forceHardwareDeviceId(deviceId)
                architecture = forceArchitecture(architecture)

                if not self._parsed:
                        self.parse()
                device = None
                for d in self._devices:
                        if (not deviceType or (d.get('type') == deviceType)) and (d.get('vendor') == vendorId) and (not d.get('device') or d['device'] == deviceId):
                                if (architecture == 'x86'):
                                        if (d['componentId'].lower().find('amd64') != -1) or (d['componentId'].lower().find('x64') != -1):
                                                logger.debug(u"Skipping device with component id '%s' which does not seem to match architecture '%s'" % (d['componentId'], architecture))
                                                continue
                                elif (architecture == 'x64'):
                                        if (d['componentId'].lower().find('i386') != -1) or (d['componentId'].lower().find('x86') != -1):
                                                logger.debug(u"Skipping device with component id '%s' which does not seem to match architecture '%s'" % (d['componentId'], architecture))
                                                continue
                                device = d
                                break
                if not device:
                        raise Exception(u"Device '%s:%s' not found in txtsetup.oem file '%s'" % (vendorId, deviceId, self._filename))
                return device

Uhh, my python knowledge is nonexistent, but it looks like it is trying to find amd64 in the componentId, without caring for case/CASE, but only if not deviceType and vendorId and deviceId.

OPSI is up to date, with the winxppro-x64 package from experimental, because of the additional drivers parsing:
opsi-package-manager -l

Code: Alles auswählen

--------------------
- opsi.anarchy.lan -
--------------------
   Product ID                Version                   Name
   ==================================================================================================
   config-win-base           4.0.1-1                   Windows Customizing
   hwaudit                   4.0.5-1                   Client Hardwareinventarisierung
   hwinvent                  4.0-1                     Hardware Inventarisierung
   javavm                    1.6.0.33-2                Oracle Java Runtime Environment
   jedit                     4.5.2-2                   jEdit programmer's text editor
   memtest86                 4.1.0-1                   Memtest86
   ntfs-restore-image        4.0-1                     NTFS Image zurückschreiben
   ntfs-write-image          4.0-1                     NTFS Image erstellen
   opsi-adminutils           4.0.2.1-4                 some administration tools (not only) for opsi
   opsi-client-agent         4.0.2.1-2                 opsi.org client agent
   opsi-template             4.0.2-2                   opsi template product
   opsi-template-with-admin  4.0.2-2                   opsi template for installs with logged in admin
   opsi-winst                4.11.3.3-1                winst
   opsi-winst-test           4.11.3-3                  opsi-winst test
   shutdownwanted            1.0-4                     shutdown wanted
   swaudit                   4.0.2-1                   Client software inventory
   win2003                   4.0.2-1                   Windows 2003 Standard Edition - x86 - deutsch
   win2003-r2-x64            4.0.2-1                   Windows Server 2003 R2 - x64 - english
   win2008                   4.0.2-1                   Windows Server 2008 - x86
   win2008-r2                4.0.2-1                   Windows Server 2008 R2 - x64
   win2008-x64               4.0.2-1                   Windows Server 2008 - x64
   win2k                     4.0.2-1                   Windows 2000 professional - x86 - deutsch
   win7                      4.0.2-1                   Windows 7 - x86
   win7-x64                  4.0.2-1                   Windows 7 - x64
   winvista                  4.0.2-1                   Windows Vista - x86
   winvista-x64              4.0.2-1                   Windows Vista - x64
   winxppro                  4.0.2-1                   Windows XP professional - x86 - deutsch
   winxppro-x64              4.0.2-2                   Windows XP professional - x64 - deutsch
   wipedisk                  1.0-2                     Festplatte oder Partitionen loeschen
If anybody wants the entire bootimage.log or anything else, let me know.
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!
Benutzeravatar
SisterOfMercy
Beiträge: 1524
Registriert: 22 Jun 2012, 19:18

Re: Device not found in txtsetup.oem

Beitrag von SisterOfMercy »

Does anybody know which __init__.py gets used when trying to install a netboot product?
Is this /usr/lib/python2.6/site-packages/OPSI/Util/File/__init__.py ? (CentOS6.3 installation)

I removed some lines, trying to see what went wrong, but I ended up with the same result. If I could see the contents of variables like in LISP I might be able to get further.. Anybody have any leads? :|
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!
Benutzeravatar
SisterOfMercy
Beiträge: 1524
Registriert: 22 Jun 2012, 19:18

Re: Device not found in txtsetup.oem

Beitrag von SisterOfMercy »

Tried a new bootimage, the one from experimental:
http://download.opensuse.org/repositori ... -6/noarch/
No dice, still the same results. :(

At least the SATA drivers work a bit better now, the bootimage now uses the txtsetup.oem for those drivers. Now the virtual client fails during the graphical install of Windows XP x64 with a STOP F4 error, the real client fails after textmode install, because of a missing NTLDR. :( :?

I guess it's just one of those days...
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!
Antworten