Drivers and tools to run Windows XP on newer hardware

Discussion in 'Windows XP / Older OS' started by daniel_k, Apr 25, 2020.

Thread Status:
Not open for further replies.
  1. Fedyon

    Fedyon MDL Novice

    Feb 4, 2021
    4
    0
    0
    #141 Fedyon, Feb 7, 2021
    Last edited: Feb 8, 2021
    EDIT: nevermind, I found the documentation there, thanks.
     
  2. Dennis50300

    Dennis50300 MDL Novice

    Feb 13, 2021
    1
    0
    0
    Hi does it gives good "how to do" this patches ?
    i was found windows xp integral edition, but that s**t i won't have, i want to patch an originally System for my own with that things :)

    The Memory related, with "Patch Integrator" and the option 4gb, running wonderful with my Athlon 64 x2 6000+ and 4gb of ram on an Gigabyte "ga-ma770-ds3" Mainboard, i'm need the ahci drivers from gigabyte instead the backportet MS-AHCI from 8 oder 7 because them wouldn't run, but thats noch the Problem, i wish i know about to integrate that would i need and how to copy where....and...ähm... some to rename...
    For a test the xp integral edition is very nice, but now i want to have my german home edition's too and self patching professional too.

    Sry for my bad english

    best regards from germany

    Dennis
     
  3. LSS7777

    LSS7777 MDL Novice

    Feb 2, 2012
    13
    1
    0
    Originally posted this on Win-Raid but it seems to have been sunk by a few pages of other discussions.

    I tested the PAE patch and found that only up to 64GB works. Using 128GB (or all RAM) would result in the system reset right before startup (no BSoD or other information). It's possible the support for 128GB might depend on the system architecture and some relatively older systems won't be able to reach that.

    Also, for some reasons the PAE patch doesn't cope well with Asus Xonar (C-Media) audio drivers, throwing a BAD_POOL_CALLER BSOD when the driver loads, so now I have to boot without the patch... at least nVidia drivers (which was installed before installing the sound card driver) appear to work okay with the patch active.
     
  4. daniel_k

    daniel_k MDL Member

    Jan 21, 2019
    176
    368
    10
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  5. jiafei2427

    jiafei2427 MDL Member

    Nov 26, 2020
    207
    54
    10
  6. George King

    George King MDL Expert

    Aug 5, 2009
    1,845
    2,117
    60
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  7. LSS7777

    LSS7777 MDL Novice

    Feb 2, 2012
    13
    1
    0
  8. George King

    George King MDL Expert

    Aug 5, 2009
    1,845
    2,117
    60
    #148 George King, Mar 1, 2021
    Last edited: Mar 2, 2021
    I'm finally able to patch all needed files on the fly during setup before system boot. It's not exactly patcher file location path, but cmd window path.
    So for example if you run cmd it's automatically in system32 and I tried to call patcher from C:\PAE where are all needed files extracted. So simple pushd into related directory solved this problem.

    I also added current physical RAM detection from wmic to calculate all available RAM on machine where is Windows XP installed.
    Code:
    wmic computersystem get TotalPhysicalMemory /value
    Bad is RAM is in bytes not in megabytes. CMD also doesn't allow doing math operations with this too much big integer, so I'm getting MBs with this simple cheat. Some MBs are lost, but it's still good solution. Can you also add option to use /M: switch with bytes? So we can read current machine RAM from wmic?
    Code:
    REM Get TotalPhysicalMemory in MB
    for /f "tokens=2 delims==" %%A in ('wmic computersystem get TotalPhysicalMemory /value') do set RAM=%%A
    REM Easy way to calculate MBs, on 8GB it returns 8099 instead of 8192
    set /a RAM=%RAM:~0,-4%/1049
    
    But on my test machine is still returned 2,66GB RAM in system properties.

    All files are returned as successfully patched with /M:8099MB To get it clear my files is system32 are:
    1) hal.dll is created from patched halmacpi.dll
    2) ntoskrnl.exe is created from ntkrnlmp.exe
    3) ntkrpamp.exe is created from patched ntkrpamp.exe

    So in system32 are only these two kernels ntoskrnl.exe + ntkrpamp.exe and only one hal.dll. It looks same as standard XP setup but with patched files. Also SFC is disabled and sp3.cab is just for sure repacked with patched files too.

    And system is booted using Windows 7 bootmgr + BCD + NTLDR option to use boot.ini
    Code:
    [boot loader]
    timeout=30
    default=multi(0)disk(0)rdisk(0)partition(1)\Windows
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\Windows="Microsoft Windows XP"  /fastdetect /noexecute=alwaysoff
    I would really like to see all 8GB RAM available on that machine. What should I do to get all 8GB RAM available? Any ideas? are there any other steps needed? Or can it be caused by /M:8099MB option?


    EDIT1: I tried removing new loader (BCD + bootmgr) to be sure it's not related to it. But same result, still 2,66GB RAM on real HW.
    EDIT2: I forgot to mention, my system have all available updates installed until 05-2019
    EDIT3: I tried /M:8GB and still 2,66GB RAM on real HW
    EDIT4: I finally managed to see all available RAM! Problem is in boot.ini as it must contain /noexecute=optin, more info about this switch
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  9. genieautravail

    genieautravail MDL Junior Member

    Sep 17, 2014
    67
    3
    0
    #149 genieautravail, Mar 2, 2021
    Last edited: Mar 2, 2021
    @George King

    To get total physical memory, it's better to use the systeminfo command:

    FOR /f "tokens=1-5 delims=ÿ " %%a in ('SYSTEMINFO ^| FINDSTR /c:"Total physical Memory"') do SET QUANTITY=%%d%%e

    The result is already in megabytes. :)
     
  10. genieautravail

    genieautravail MDL Junior Member

    Sep 17, 2014
    67
    3
    0
    #150 genieautravail, Mar 2, 2021
    Last edited: Mar 2, 2021
    @George King

    Why do you do things so complicated ? :eek:

    The /M:128GB grant access up to 128GB of memory (8GB, 12GB, 16GB, 24GB, 32GB and so on)

    You just need to use 2 parameters:

    /M:4097MB
    /M:128GB

    Try again with the /M:128GB parameter !
     
  11. genieautravail

    genieautravail MDL Junior Member

    Sep 17, 2014
    67
    3
    0
    You don't need anymore to patch the ntkrnlmp.exe and ntoskrnl.exe files !

    Are you using WinXPPAE 2.0 ?????? ;)

    The patched ntkrpamp.exe file must rename ntkrnlpa.exe and replace the original ntkrnlpa.exe file in the system32 folder ! :rolleyes:
     
  12. George King

    George King MDL Expert

    Aug 5, 2009
    1,845
    2,117
    60
    #152 George King, Mar 2, 2021
    Last edited: Mar 2, 2021
    I'm not sure if this output is always in English. Thinking it's not, I know this option to get it exist too.

    I switched to better solution to use GB switch dynamically using this code. This most fit dynamic needs on every setup on the fly.
    Code:
    REM Get TotalPhysicalMemory in MB
    for /f "tokens=2 delims==" %%A in ('wmic computersystem get TotalPhysicalMemory /value') do set RAM=%%A
    REM Easy way to calculate MBs, on 8GB it returns 8188 instead of 8192
    set /a RAM=%RAM:~0,-4%/1049
    REM Split to be able get GBs
    for /f "tokens=1 delims=," %%A in ('echo %RAM%') do set RAM=%%A
    "%TARGET%\PAE\WinXPPAE.exe" /M:%RAM:~0,-3%GB /NB

    I'm using latest 3.5 version.

    ntkrnlpa.exe is present on these machine types - Standard PC, Advanced Configuration and Power Interface (ACPI) PC, ACPI Uniprocessor PC, MPS Uniprocessor PC.
    For example in VirtualBox is present this PAE kernel
    ntkrpamp.exe is present on these machine types - ACPI Multiprocessor PC, MPS Multiprocessor PC
    For example this is my real HW PAE kernel

    So there is no need to mismatch kernel files.

    I finally managed why I can't see all available RAM! Problem is in my boot.ini configuration.
    I had /NOEXECUTE=ALWAYSOFF in boot.ini. I switched to /NOEXECUTE=OPTIN and now I can see all 8GB RAM on VirtualBox
    Code:
    What are the possible values for noexecute?
    The noexecute switch can come in four different flavors.
    
    /NOEXECUTE=OPTIN
    Optin enables Data Execution Prevention for core system images and those specified in the DEP configuration dialog. Optin enables DEP only for operating system components, including the Windows kernel and drivers. Administrators can enable DEP on selected executable files. This is the Windows default setting.
    
    /NOEXECUTE=OPTOUT
    Optout enables Data Execution Prevention for all images, operating system and all processes except those specified in the DEP configuration dialog (System in Control Panel).
    
    /NOEXECUTE=ALWAYSON
    Alwayson enables DEP on all images. This option enables DEP for the operating system and all processes. This includes the Windows kernel and drivers. All attempts to disable DEP will be ignored.
    
    /NOEXECUTE=ALWAYSOFF
    Alwaysoff disables Data Execution Prevention (DEP) completely. Attempts to enable DEP selectively will be ignored. On Windows XP with SP2, this subparameter also disables Physical Address Extension (PAE). This switch does not disable PAE on Windows Server 2003 with SP1.
    
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  13. genieautravail

    genieautravail MDL Junior Member

    Sep 17, 2014
    67
    3
    0
    @George King

    Don't forget the patched usbport.sys file.
    The download link for the patched file can be found in the previous pages of this topic.
    The original file has issues in PAE mode... :)
     
  14. genieautravail

    genieautravail MDL Junior Member

    Sep 17, 2014
    67
    3
    0
    My XP is in french.

    delims=ÿ is for the space between the numbers (example : 8 085 Mo)

    Just pipe the output of the command to a text file and check what character you have between the numbers.
    Replace the ÿ character by what you have ! :)
     
  15. LSS7777

    LSS7777 MDL Novice

    Feb 2, 2012
    13
    1
    0
    DEP (NOEXECUTE) requires PAE, so enabling DEP will implicitly set /PAE, thus in default cases (such as OPTIN for Client, or OPTOUT for Server) the /PAE argument is rarely explicitly passed.

    If you don't want DEP but still want PAE, try passing /PAE in combination with /NOEXECUTE=ALWAYSOFF.
     
  16. George King

    George King MDL Expert

    Aug 5, 2009
    1,845
    2,117
    60
    Yes, good point. Added to notes to grab 2K3 usbport.sys.

    I'm still unable to get PAE working on my real HW Asus K53SV. Same image works in VirtualBox correctly. So it must be something in BIOS settings?
    I backed-up my BIOS and modded it to be able change some settings. But still without success. I have no idea why it doesn't work - it's not problem about files, but some settings must be different.

    I have enabled VT-d, Execute Disable Bit, Memory Remap

    Any idea why it doesn't work for me on my Asus K53SV?
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  17. George King

    George King MDL Expert

    Aug 5, 2009
    1,845
    2,117
    60
    #157 George King, Mar 3, 2021
    Last edited: Mar 3, 2021
    I tried these combinations, but still without success on real machine. Maybe I'm missing something :/
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  18. LSS7777

    LSS7777 MDL Novice

    Feb 2, 2012
    13
    1
    0
    Just searched a bit online. It seems since Windows XP SP2, /NOEXECUTE=ALWAYSOFF disables both DEP and PAE, and it appears as if it implicitly passed /NOPAE.

    So you might need to pass /PAE after /NOEXECUTE=ALWAYSOFF to ensure /PAE takes precedence.

    Microsoft's knowledge base regarding PAE mentioned a /EXECUTE switch which is supposed to do the opposite of /NOEXECUTE, to disable DEP. It's rarely mentioned elsewhere so I don't know if it works, or if it does not have the side effect of disabling PAE.
     
  19. genieautravail

    genieautravail MDL Junior Member

    Sep 17, 2014
    67
    3
    0
    @George King

    It's strange because on my ACPI Multiprocessor computers with XP, the ntkrpamp.exe file isn't present in the system32 folder, just the ntkrnlpa.exe file is present. :confused:
    Check if patched files are presents in the system32 folder.
     
  20. genieautravail

    genieautravail MDL Junior Member

    Sep 17, 2014
    67
    3
    0
    Hello,

    There is no need for the /PAE parameter with WinXPPAE.
    On the computer from which I'm writting these lines (8 GB of memory with WinXPPAE), I have the following parameters in the boot.ini file:

    /fastdetect /NoExecute=OptOut