Jump to content











Photo
- - - - -

Driver Integration script problems on Win7x64 based Win7PE_SE build

driver integraton script error x64

  • Please log in to reply
8 replies to this topic

#1 Aeolis

Aeolis

    Frequent Member

  • .script developer
  • 145 posts
  • Location:Rio de Janeiro
  • Interests:I am just trying to learn and help.
  •  
    Brazil

Posted 13 March 2012 - 08:30 PM

Hello folks,

General info

Host machine OS: Windows 7 Ultimate SP1 x64
Actual build base OS: Windows 7 Ultimate SP1 x64
Old build base OS: Windows 7 Ultimate SP1 x86

I have already built several PE's before using a Windows 7 Ultimate SP1 x86 source in the save work environment. Now I have decided to work on Windows 7 Ultimate SP1 x64 based builds and the driver integration script just skips without integrating anything. This problem was not there when I used to work on Windows 7 Ultimate SP1 x86 based builds.

I have downloaded the driver packs for win7 x64 from Driver Packs (http://driverpacks.net/) I have unziped them, I have extracted them inside the right folder and I have checked the most common sources of errors, so I would like some help to figure out why this driver integration script is not working as expected.

Log file: http://www.mediafire...vmldlxmmc3y3pmd

Best regards,

Aeolis

#2 Aeolis

Aeolis

    Frequent Member

  • .script developer
  • 145 posts
  • Location:Rio de Janeiro
  • Interests:I am just trying to learn and help.
  •  
    Brazil

Posted 13 March 2012 - 09:46 PM

Hello folks,

I figured out the problem. There is a section before all the integration process to check if the drivers folder is empty:

Run,%ScriptFile%,Check_DriverSize it calls the [Check_DriverSize] section below:


[Check_DriverSize]
Set,%DriverFolderSize%,0
If,%SourceArch%,Equal,x86,Set,%DriverFolder%,%pFileBox86%
If,%SourceArch%,Equal,x64,Set,%DriverFolder%,%pFileBox64%
If,ExistDir,%DriverFolder%,Begin
Retrieve,FOLDERSIZE,%DriverFolder%,%DriverFolderSize%
End

The problem is that the retrieve command finds a negative number of bytes for the size of my x64 drivers folder. When it process the x86 drivers folder it finds a positive number of bytes for the size of that folder.

So, as the script check if the %DriverFolderSize% variable value is bigger than 0 it halts on the x64 drivers folder and go as expected on the x86 folder.

Well for future reference the folders have these sizes:

x86 drivers: 1,76 GB (1.895.124.992 bytes)
x64 drivers: 2,16 GB (2.321.223.680 bytes)

Is there a limitation for the retrieve,foldersize instruction?

Best regards,

Aeolis

Edited by Aeolis, 13 March 2012 - 09:48 PM.


#3 Aeolis

Aeolis

    Frequent Member

  • .script developer
  • 145 posts
  • Location:Rio de Janeiro
  • Interests:I am just trying to learn and help.
  •  
    Brazil

Posted 13 March 2012 - 10:10 PM

Hello folks,

Sorry, i found out reaserching in the forum posts that it is a bug from WinBuilder version 82 and it is fixed on version 83. So, I will just wait until it is released. In the meantime as a temporary fix I have changed this line:

If,%DriverFolderSize%,Bigger,0,Begin ------------> If,%DriverFolderSize%,NotEqual,0,Begin

It will work until WinBuilder version 83 is out.

Best regards,

Aeolis

Edited by Aeolis, 13 March 2012 - 10:10 PM.


#4 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7771 posts

Posted 13 March 2012 - 10:18 PM

What negative number do you get?
I guess: -173740032

2^31 = 2147483648

2321223680 - 2147483648 = 173740032 (plus the overflow counted as a marker for a negative number)

In binary your foldersize looks like this:
10001010010110110001000000000000
^
This is the marker for positive/negative number. Only the other 31bits can be used to describe the number.

:cheers:

#5 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7771 posts

Posted 13 March 2012 - 10:21 PM

PS: This is not a bug!!! It is a limitation of the used internal representation. If it is the best choice, is another question.

:cheers:

#6 Aeolis

Aeolis

    Frequent Member

  • .script developer
  • 145 posts
  • Location:Rio de Janeiro
  • Interests:I am just trying to learn and help.
  •  
    Brazil

Posted 13 March 2012 - 10:47 PM

Hello folks,

MedEvil the number was -1981297668. Very similar to the one here: http://reboot.pro/15864/

Thank you for your attention.

Best regards,

Aeolis

#7 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7771 posts

Posted 14 March 2012 - 12:07 AM

That's weird. That number represents almost 4GB.

:cheers:

#8 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12688 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 14 March 2012 - 08:12 AM

There is a glitch in WinBuilder up to version 082.

Some retrieve / calculate operations are calculated with 32 bit integers. That causes values greater 2^32 to become wrong. (nagative is caused by the most significalt bit).

I fixed. It will be delivered with next WinBuilder version.

@Nuno: What about a version 082 SP1?

Here shortly the history:

[083]
date 2011-aug-16
fixed - bug in GetParam
changed - source editor line length increased from 1024 to 10240
fixed - "Invalid parameter count" warning in RegWrite 0x0
changed - FILEZIZE and FOLDERSIZE to int64.
changed - StrFormat,BYTES to int64
fixed - bug with Retrieve,FOLDERSIZE, when folder contains a file > 2 GB
changed - more meaningful error messages for RegMulti
added - language translation for download button
fixed - bug with unresolved nested variables like %setupfile_%SourceArch%%


Peter

#9 ChrisR

ChrisR

    Silver Member

  • .script developer
  • 784 posts
  •  
    France

Posted 14 March 2012 - 10:54 PM

Surprised, integrated over 2 GB of drivers ! you won Aeolis :lol: the ram is cheap in brazil ?
and thanks for your binary explanations MedEvil, no other question ;)

If,%DriverFolderSize%,Bigger,0,Begin ------------> If,Not,%DriverFolderSize%,Equal,0,Begin

I added your workaround to "Driver Integration", "Driver Package Installer" and also in "4 - Create ISO", "Copy to USB-Device", "Copy to USB-Device BCD BootMGR" for the button "Include files in Iso RootCD".

:cheers:





Also tagged with one or more of these keywords: driver, integraton, script, error, x64

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users