MSFN Forum: Increase Hardware Compatibility for Windows XP WIM - MSFN Forum

Jump to content



  • 2 Pages +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

Increase Hardware Compatibility for Windows XP WIM Mup.sys Rate Topic: -----

#1 User is offline   meofcourse 

  • Group: Members
  • Posts: 5
  • Joined: 06-June 06

  Posted 29 May 2008 - 09:06 AM

Hi I have been testing the Windows Deployment Services that ships with Windows Server 2008 and have successfully create both Uni and Multi processor WIM images for Windows XP. However the issue I am having is when I build the image on a system with a Asus P5P800-VM and deploy it on to a Asus P4SP-MX (or vice versa) the imaging goes fine, but on the first boot I receive a mup.sys error and the tower continually reboots. Since it is a mup.sys error, I suspect it is a driver issue as deploying the image onto the same motherboard model it was created on works well. So the question becomes how do I increase the hardware compatibility for each Windows XP image I create? I would like to avoid making multiple images (this was one of the selling points of WDS as far as I can recall)

Thanks in advance for you help :thumbup


#2 User is offline   Jazkal 

  • Senior Member
  • PipPipPipPip
  • Group: Members
  • Posts: 590
  • Joined: 16-January 04

Posted 29 May 2008 - 09:56 AM

Your WinXp images don't need to be uni and multi, you can have one that will work on both.

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 User is offline   bj-kaiser 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 415
  • Joined: 05-December 06
  • OS:Windows 7 x86
  • Country: Country Flag

Posted 29 May 2008 - 10:00 AM

View PostJazkal, on May 29 2008, 05:56 PM, said:

Your WinXp images don't need to be uni and multi, you can have one that will work on both.

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. :whistle:
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 User is offline   meofcourse 

  • Group: Members
  • Posts: 5
  • Joined: 06-June 06

Posted 29 May 2008 - 01:51 PM

View PostJazkal, on May 29 2008, 09:56 AM, said:

Your WinXp images don't need to be uni and multi, you can have one that will work on both.

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.

View PostJazkal, on May 29 2008, 09:56 AM, said:

The WinXP image limitation is based on the HAL, and there is no easy way around it.

Thats to bad.


View PostJazkal, on May 29 2008, 09:56 AM, said:

The benefits of only having a single image isn't a function of WDS, it is a 'feature' of Vista\Win2k8.

Thanks for the clarification.

#5 User is offline   meofcourse 

  • Group: Members
  • Posts: 5
  • Joined: 06-June 06

  Posted 29 May 2008 - 02:09 PM

View Postbj-kaiser, on May 29 2008, 10:00 AM, said:

View PostJazkal, on May 29 2008, 05:56 PM, said:

Your WinXp images don't need to be uni and multi, you can have one that will work on both.

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. :whistle:
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 User is offline   Jazkal 

  • Senior Member
  • PipPipPipPip
  • Group: Members
  • Posts: 590
  • Joined: 16-January 04

Posted 29 May 2008 - 02:37 PM

View Postmeofcourse, on May 29 2008, 02:51 PM, said:

View PostJazkal, on May 29 2008, 09:56 AM, said:

Your WinXp images don't need to be uni and multi, you can have one that will work on both.

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.

You create your image on a multi, and in your sysprep.inf file, there are settings that allow sysprep to switch between uni and multi as long as the box is the same HAL.

#7 User is offline   bj-kaiser 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 415
  • Joined: 05-December 06
  • OS:Windows 7 x86
  • Country: Country Flag

Posted 29 May 2008 - 11:32 PM

View Postmeofcourse, on May 29 2008, 10:09 PM, said:

View Postbj-kaiser, on May 29 2008, 10:00 AM, said:

View PostJazkal, on May 29 2008, 05:56 PM, said:

Your WinXp images don't need to be uni and multi, you can have one that will work on both.

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. :whistle:
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 User is offline   mats 

  • Member
  • PipPip
  • Group: Members
  • Posts: 206
  • Joined: 10-May 05

Posted 30 May 2008 - 07:28 AM

I prefer to let sysprep do the switch by setting updatehal or updateuphal values depeninding on wether it's a multi or singleprocessorbox.
If you are using MDT or SCCM this can be integrated into the task sequence rather easy

#9 User is offline   TheReasonIFail 

  • Member
  • PipPip
  • Group: Members
  • Posts: 170
  • Joined: 08-April 07

Posted 05 June 2008 - 06:52 AM

I use the script from the second link supplied by bj-kaiser.

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 User is offline   bj-kaiser 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 415
  • Joined: 05-December 06
  • OS:Windows 7 x86
  • Country: Country Flag

Posted 05 June 2008 - 09:28 AM

View PostTheReasonIFail, on Jun 5 2008, 02:52 PM, said:

I use the script from the second link supplied by bj-kaiser.

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 :whistle:
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 User is offline   meofcourse 

  • Group: Members
  • Posts: 5
  • Joined: 06-June 06

Posted 11 June 2008 - 10:28 AM

Thanks guys,

I ran out of time to try these, but I will in the future :thumbup

#12 User is offline   secotton 

  • Group: Members
  • Posts: 6
  • Joined: 29-November 03

Posted 19 June 2008 - 07:00 PM

I've decided to change the HAL type once in the OS using a VBScript. It's not quite as nice, but it works for me very well. It changes the HAL by modifying the boot.ini to include /kernel=ntkrnlmp.exe /hal=halmacpi.dll.

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 User is offline   bj-kaiser 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 415
  • Joined: 05-December 06
  • OS:Windows 7 x86
  • Country: Country Flag

Posted 20 June 2008 - 10:01 AM

didnt know Windows XP had boot options for that.

well, should have searched the knowledge base, I guess.
http://msdn.microsof...y/ms791480.aspx

#14 User is offline   MadMonkeyBoy 

  • Group: Members
  • Posts: 1
  • Joined: 07-October 07

Posted 20 June 2008 - 10:20 AM

One thing I have found is that the image creation is better done on an AMD platform. This uses the processr.sys CPU driver, which is compatible with all CPUs, whereas an Intel CPU defaults to intelppm.sys - I believe this is the one that gave HP the headache. Plug 'n' pray will install the Intel driver on first boot anyway. Or on an AMD system, you can add amdk8.sys to the image.

#15 User is offline   Kingskawn 

  • Kingskawn
  • PipPip
  • Group: Members
  • Posts: 134
  • Joined: 17-April 06

  Posted 28 November 2008 - 07:24 AM

View PostTheReasonIFail, on Jun 5 2008, 03:52 PM, said:

I use the script from the second link supplied by bj-kaiser.

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 User is offline   mats 

  • Member
  • PipPip
  • Group: Members
  • Posts: 206
  • Joined: 10-May 05

Posted 01 December 2008 - 03:33 AM

I didn't know you could do it from boot.ini either. It might be a very good way actually since some computers won't boot on the more generic haltypes.
We sav this problem and used acpi_pc hal wich boots anything we got so far :) but being able to set the hal up front may be even better

#17 User is offline   secotton 

  • Group: Members
  • Posts: 6
  • Joined: 29-November 03

Posted 11 December 2008 - 05:37 PM

View Postmats, on Dec 1 2008, 03:33 AM, said:

I didn't know you could do it from boot.ini either. It might be a very good way actually since some computers won't boot on the more generic haltypes.
We sav this problem and used acpi_pc hal wich boots anything we got so far :) but being able to set the hal up front may be even better


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 User is offline   mats 

  • Member
  • PipPip
  • Group: Members
  • Posts: 206
  • Joined: 10-May 05

Posted 12 December 2008 - 06:51 AM

Thanks for the info. :hello:

Now i know that the current soloution won't last much longer. Time to start thinking about something new then, win 7 maybee? :thumbup

#19 User is offline   ubernerd 

  • Junior
  • Pip
  • Group: Members
  • Posts: 64
  • Joined: 15-March 05

Posted 03 January 2009 - 12:18 PM

I have used this solution for a while and it works pretty well for all systems.

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 User is offline   sw2000 

  • Newbie
  • Group: Members
  • Posts: 13
  • Joined: 14-March 08

Posted 17 January 2009 - 12:26 PM

I would like to add Johan Arwidmark's latest Z-HalDetect script into my WinPe 2.01 process without having to use MDT2008 or BDD 2007. Currently I deliver our XP image from a USB drive. I'm guessing that after the image is applied and before restarting the PC I need to call a script that will check the HAL type and modify the sysprep file. What modifications are necessary to run this script after imagex has applied the image to the C partition? I would really appreciate any help.

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


Share this topic:


  • 2 Pages +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users



All trademarks mentioned on this page are the property of their respective owners
Copyright © 2001 - 2011 msfn.org
Privacy Policy