Thanks in advance for you help
Increase Hardware Compatibility for Windows XP WIM Mup.sys
#1
Posted 29 May 2008 - 09:06 AM
Thanks in advance for you help
#2
Posted 29 May 2008 - 09:56 AM
The WinXP image limitation is based on the HAL, and there is no easy way around it.
The benefits of only having a single image isn't a function of WDS, it is a 'feature' of Vista\Win2k8.
#3
Posted 29 May 2008 - 10:00 AM
Jazkal, on May 29 2008, 05:56 PM, said:
The WinXP image limitation is based on the HAL, and there is no easy way around it.
The benefits of only having a single image isn't a function of WDS, it is a 'feature' of Vista\Win2k8.
I concur, there are easy ways around the HAL limitation. They are just not supported by MS.
In the end unpacking and renaming the right files actually works like a charm for me.(well, I dont have so much systems to test that on, I have like a hand full of different hardware types at work, ranging from ACPI-PIC to ACPI-APIC MP)
#4
Posted 29 May 2008 - 01:51 PM
Jazkal, on May 29 2008, 09:56 AM, said:
I suppose that could be possible. I have tried a multi image onto a uni box, but not a uni image on a multibox. I will give it a try.
Jazkal, on May 29 2008, 09:56 AM, said:
Thats to bad.
Jazkal, on May 29 2008, 09:56 AM, said:
Thanks for the clarification.
#5
Posted 29 May 2008 - 02:09 PM
bj-kaiser, on May 29 2008, 10:00 AM, said:
Jazkal, on May 29 2008, 05:56 PM, said:
The WinXP image limitation is based on the HAL, and there is no easy way around it.
The benefits of only having a single image isn't a function of WDS, it is a 'feature' of Vista\Win2k8.
I concur, there are easy ways around the HAL limitation. They are just not supported by MS.
In the end unpacking and renaming the right files actually works like a charm for me.(well, I dont have so much systems to test that on, I have like a hand full of different hardware types at work, ranging from ACPI-PIC to ACPI-APIC MP)
So what are these unsupported easy ways around the HAL limitations?
#6
#7
Posted 29 May 2008 - 11:32 PM
meofcourse, on May 29 2008, 10:09 PM, said:
bj-kaiser, on May 29 2008, 10:00 AM, said:
Jazkal, on May 29 2008, 05:56 PM, said:
The WinXP image limitation is based on the HAL, and there is no easy way around it.
The benefits of only having a single image isn't a function of WDS, it is a 'feature' of Vista\Win2k8.
I concur, there are easy ways around the HAL limitation. They are just not supported by MS.
In the end unpacking and renaming the right files actually works like a charm for me.(well, I dont have so much systems to test that on, I have like a hand full of different hardware types at work, ranging from ACPI-PIC to ACPI-APIC MP)
So what are these unsupported easy ways around the HAL limitations?
The unsupported way is to replace the HAL depending files with copies for the right HAL, youll find those files inside driver.cab or SPX.cab.
my take on that one: http://code.google.com/p/unixp/source/brow...unk/lib/hal.au3
and since I know that's hardly comprehensibel (even if you know AutoIt, I know my coding "style"), here the simpler version with comments:
left filename is source (driver.cab or SPX.cab), right filename is the target filename in SYSTEM32.
HAL "ACPIPIC_UP" halacpi.dll -> hal.dll ntkrnlpa.exe ntoskrnl.exe HAL "ACPIAPIC_UP" halaacpi.dll -> hal.dll ntkrnlpa.exe ntoskrnl.exe HAL "ACPIAPIC_MP" halmacpi.dll -> hal.dll ntkrpamp.exe -> ntkrnlpa.exe ntkrnlmp.exe -> ntoskrnl.exe
If you need to support other HALs, just have a look at %WINDIR%\Inf\Hal.inf.
some helpful links:
http://www.911cd.net...showtopic=19397
http://www.myitforum...iew.asp?id=8997
This post has been edited by bj-kaiser: 29 May 2008 - 11:32 PM
#8
Posted 30 May 2008 - 07:28 AM
If you are using MDT or SCCM this can be integrated into the task sequence rather easy
#9
Posted 05 June 2008 - 06:52 AM
That's allowed me to use one WIM image on every machine I've encountered yet. I've used the same image on the several different types of machine models and the only problem I've had was when using the image on the AMD platform, but that's easily resolved by disabling a service or two and you're good to go!
#10
Posted 05 June 2008 - 09:28 AM
TheReasonIFail, on Jun 5 2008, 02:52 PM, said:
That's allowed me to use one WIM image on every machine I've encountered yet. I've used the same image on the several different types of machine models and the only problem I've had was when using the image on the AMD platform, but that's easily resolved by disabling a service or two and you're good to go!
That'd be the one that gave HP the blame
intelppm. I had that problem too. and I had my own ideas about it, after I finally found out what was the reason for the reboots.
my take on that one:
http://code.google.com/p/unixp/source/brow.../workaround.au3
#11
Posted 11 June 2008 - 10:28 AM
I ran out of time to try these, but I will in the future
#12
Posted 19 June 2008 - 07:00 PM
Basically, it gets the processor name, and compares it against a list of processors that I put in at the top of the VBScript in an array. I only really enable the MP HAL if the computer is a dual core computer, otherwise, ACPI works for pretty much everything else just fine. I've done some speed tests, and haven't found any issue in running with the ACPI HAL versus the ACPI Uni HAL.
#13
Posted 20 June 2008 - 10:01 AM
well, should have searched the knowledge base, I guess.
http://msdn.microsof...y/ms791480.aspx
#14
Posted 20 June 2008 - 10:20 AM
#15
Posted 28 November 2008 - 07:24 AM
TheReasonIFail, on Jun 5 2008, 03:52 PM, said:
That's allowed me to use one WIM image on every machine I've encountered yet. I've used the same image on the several different types of machine models and the only problem I've had was when using the image on the AMD platform, but that's easily resolved by disabling a service or two and you're good to go!
Did you used it with SCCM or with MDT? And at what stage does it change the HAL type?
#16
Posted 01 December 2008 - 03:33 AM
We sav this problem and used acpi_pc hal wich boots anything we got so far
#17
Posted 11 December 2008 - 05:37 PM
mats, on Dec 1 2008, 03:33 AM, said:
We sav this problem and used acpi_pc hal wich boots anything we got so far
We did the exact same thing as you described - the acpi_pc HAL would boot everything...while until we got the latest Lenovo T400's in. The processor in that model doesn't support the ACPI_PC HAL - apparently Intel decided to remove some instruction sets that were outdated in favor of newer ones (don't quote me on that). I've now decided to 'fork' the image since alot of the older computers are too old now and not being used as much. The dual core's really do pack a good punch compared to the P4's.
#18
Posted 12 December 2008 - 06:51 AM
Now i know that the current soloution won't last much longer. Time to start thinking about something new then, win 7 maybee?
#19
Posted 03 January 2009 - 12:18 PM
Build an image for acpi single processor, and let sysprep handle the switch to multicore hal if required (I use wmi to get the number of cores on the chip).
Oh and btw this switch is actually supported by MS, the switch from the old advanced acpi to acpi single- or multiprocessor is not supported.
This will work for most current systems, but if you have any older systems that requires the old Advanced ACPI thing, you can hack the correct HAL files onto the c: drive after deploying the image and before starting minisetup, I do this as part of the process where I add the correct drivers for the model identified from the SMBIOS data.
I also kick out any references to Intelppm in the registry.
Using this principle I avoid having multiple images for a single OS, it does however require a fair amount of scripting for it to work as described.
#20
Posted 17 January 2009 - 12:26 PM
<job id="ZeroTouchInstallation">
<script language="VBScript" src="ZTIUtility.vbs"/>
<script language="VBScript">
'//////////////////////////////////////////////////
'//
'// Script File:
'//
'// Z-HalDetect_standalone_version.wsf
'//
'// This script updates sysprep.inf with correct HAL Type
'// The Reference (master) image should have an Advanced ACPI HAL type.
'//
'// This version does not require the MDT 2008 environement being present,
'// E.g. can be used with Intel LANDesk or Altiris (Note: ZTIUtility.vbs from
'// MDT 2008 must be added to the same folder)
'//
'// This script assumes the following files are being present in C:\Drivers\UniProcHAL
'// hal.dll (Renamed from halaacpi.dll to hal.dll)
'// ntkrnlpa.exe
'// ntoskrnl.exe
'//
'// Author: Johan Arwidmark
'// URL: [url="http://www.deployvista.com"]http://www.deployvista.com[/url]
'//
'// Disclaimer
'// This script is provided "AS IS" without express
'// or implied warranty of any kind.
'//
'//////////////////////////////////////////////////
' Customize the local sysprep.inf file based on the HAL type
Call UpdateSysprepinf ()
' Done, quit.
WScript.Quit
Sub UpdateSysprepinf ()
' Set Sysprep Path
If oFSO.FileExists("C:\sysprep\Sysprep.inf") then
sSysprepInf = "C:\sysprep\Sysprep.inf"
oLogging.CreateEntry "Found sysprep in " & sSysprepInf, LogTypeInfo
Else
oLogging.CreateEntry "Could not locate Sysprep", LogTypeWarning
End if
' Find out the HAL type
sHalType = oShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Enum\Root\ACPI_HAL\0000\HardwareID")
If sHalType(0) = "acpiapic" Then
if oShell.Environment.item("NUMBER_OF_PROCESSORS") = 1 then
WriteIni sSysprepInf, "Unattended", "UpdateUPHAL", "ACPIAPIC_UP,C:\Windows\Inf\Hal.inf"
oLogging.CreateEntry "HAL Type is ACPIAPIC_UP, updating sysprep.inf", LogTypeInfo
Call CopyHalFiles()
else
writeini sSysprepInf, "Unattended", "UpdateHAL", "ACPIAPIC_MP,C:\Windows\Inf\Hal.inf"
oLogging.CreateEntry "HAL Type is ACPIAPIC_MP, updating sysprep.inf", LogTypeInfo
Call CopyHalFiles()
end if
ElseIf sHalType(0) = "acpiapic_up" Then
WriteIni sSysprepInf, "Unattended", "UpdateUPHAL", "ACPIAPIC_UP,C:\Windows\Inf\Hal.inf"
oLogging.CreateEntry "HAL Type is ACPIAPIC_UP, updating sysprep.inf", LogTypeInfo
Call CopyHalFiles()
ElseIf sHalType(0) = "acpiapic_mp" Then
writeini sSysprepInf, "Unattended", "UpdateHAL", "ACPIAPIC_MP,C:\Windows\Inf\Hal.inf"
oLogging.CreateEntry "HAL Type is ACPIAPIC_MP, updating sysprep.inf", LogTypeInfo
Call CopyHalFiles()
Else
oLogging.CreateEntry "HAL Type is ACPIPIC, Do nothing", LogTypeInfo
End if
End Sub
Sub CopyHalFiles()
sSourceFolder = "C:\Drivers\UniProcHAL"
sDestinationFolder = "C:\Windows\System32"
oLogging.CreateEntry "Checking for" & sSourceFolder, LogTypeInfo
If oFSO.FolderExists(sSourceFolder) then
oLogging.CreateEntry "Folder " & sSourceFolder & " Found", LogTypeInfo
oLogging.CreateEntry "Copying HAL files for UniProc and MultiProc Comatibility", LogTypeInfo
For Each sFile In oFSO.GetFolder(sSourceFolder).Files
oFSO.GetFile(sFile).Copy sDestinationFolder & "\" & oFSO.GetFileName(sFile),True
oLogging.CreateEntry "Copying " & oFSO.GetFileName(sFile) & " to " & sDestinationFolder, LogTypeInfo
Next
Else
oLogging.CreateEntry "Error - Folder " & sSourceFolder & " Not Found", LogTypeError
oLogging.CreateEntry "Error - Copying HAL files for UniProc and MultiProc Comatibility Failed ", LogTypeError
CopyHalFiles = Failure
Exit Sub
End If
End Sub
Function ReadIni(file, section, item)
ReadIni = ""
file = Trim(file)
item = Trim(item)
Set ini = oFSO.OpenTextFile( file, 1, True)
Do While ini.AtEndOfStream = False
line = ini.ReadLine
line = Trim(line)
If LCase(line) = "[" & LCase(section) & "]" Then
line = ini.ReadLine
line = Trim(line)
Do While Left( line, 1) <> "["
'If InStr( 1, line, item & "=", 1) = 1 Then
equalpos = InStr(1, line, "=", 1 )
If equalpos > 0 Then
leftstring = Left(line, equalpos - 1 )
leftstring = Trim(leftstring)
If LCase(leftstring) = LCase(item) Then
ReadIni = Mid( line, equalpos + 1 )
ReadIni = Trim(ReadIni)
Exit Do
End If
End If
If ini.AtEndOfStream Then Exit Do
line = ini.ReadLine
line = Trim(line)
Loop
Exit Do
End If
Loop
ini.Close
End Function
Sub WriteIni( file, section, item, myvalue )
in_section = False
section_exists = False
item_exists = ( ReadIni( file, section, item ) <> "" )
wrote = False
file = Trim(file)
itemtrimmed = Trim(item)
myvalue = Trim(myvalue)
temp_ini = oFSO.GetParentFolderName(file) & "\" & oFSO.GetTempName
Set read_ini = oFSO.OpenTextFile( file, 1, True, TristateFalse )
Set write_ini = oFSO.CreateTextFile( temp_ini, False)
While read_ini.AtEndOfStream = False
line = read_ini.ReadLine
linetrimmed = Trim(line)
If wrote = False Then
If LCase(line) = "[" & LCase(section) & "]" Then
section_exists = True
in_section = True
ElseIf InStr( line, "[" ) = 1 Then
in_section = False
End If
End If
If in_section Then
If item_exists = False Then
write_ini.WriteLine line
write_ini.WriteLine item & "=" & myvalue
wrote = True
in_section = False
Else
equalpos = InStr(1, line, "=", 1 )
If equalpos > 0 Then
leftstring = Left(line, equalpos - 1 )
leftstring = Trim(leftstring)
If LCase(leftstring) = LCase(item) Then
write_ini.WriteLine itemtrimmed & "=" & myvalue
wrote = True
in_section = False
End If
End If
If Not wrote Then
write_ini.WriteLine line
End If
End If
Else
write_ini.WriteLine line
End If
Wend
If section_exists = False Then ' section doesn't exist
write_ini.WriteLine
write_ini.WriteLine "[" & section & "]"
write_ini.WriteLine itemtrimmed & "=" & myvalue
End If
read_ini.Close
write_ini.Close
If oFSO.FileExists(file) then
oFSO.DeleteFile file, True
End if
oFSO.CopyFile temp_ini, file, true
oFSO.DeleteFile temp_ini, True
End Sub
</script>
</job>



Help

Back to top









