Support in other languages: 
Reply
Fanfold Paper
Transporter1997
Posts: 6
Registered: ‎11-12-2009
Location: Moscow, Russia
0

Re: Y730 virtualization

[ Edited ]

Thanks for all. 

 

Personal thanks  adhemar, it`s good work and many letters :smileyhappy:

 

I'm got Lenovo Y730 on P8600 processor under Win7 x64 Ultimate (BIOS is 85).

 

1) I'm dumping BIOS.

2) Download PortablePython_1.1_py2.5.4, vtenable-Y730.py.

3) Start it and get ... :

 

Loading BIOS...
Loading VSS...
MTC  status: 0x7f
SmbiosPolicy  status: 0x7f
Setup  status: 0x7c
Custom  status: 0x7f
Lang  status: 0x7f
LangCodes  status: 0x7f
BackupLang  status: 0x7f
AcpiGlobalVariable  status: 0x7f
SmmS3NvsData  status: 0x7f
OemNvs  status: 0x7f
ConIn  status: 0x7f
ConOutDev  status: 0x7f
ConOut  status: 0x7f
Boot0000  status: 0x7f
Boot0001  status: 0x7f
Boot0002  status: 0x7f
Boot0003  status: 0x7f
BootOrder  status: 0x7c
BootDevice  status: 0x7f
LegacyDevOrder  status: 0x7f
Setup  status: 0x7c
Setup  status: 0x7d
SaveHddPassword  status: 0x7f
Setup  status: 0x7d
Setup  status: 0x7d
Boot0004  status: 0x7d
BootOrder  status: 0x7c
BootOrder  status: 0x7c
Boot0004  status: 0x7d
BootOrder  status: 0x7c
BootOrder  status: 0x7f
Setup  status: 0x7c
Setup  status: 0x7c
Setup  status: 0x7d
Variable not found!

 

 

Ups ...(UFO coming here :smileysurprised:)  It's not cool ... but i don't surrender :smileymad: , The Truth is Out  There (@ agent Mulder) ...

 

 ... download HEX editor (Hxd) and open my dumped BIOS file ... and search:

 

a) VSS offset around  0x30000 ... all right, offset is 0x30048;

b) Unicode string "Setup"  ... and get problem, no one entering active with a flag 0x7f, only 0x7c, 0x7d and 0x66.

 

Running fvdump.py on BIOS dump and vardump.py on  fv-00030000.bin confirmed my searh result in HxD  ... no one 0x7f.

 

 

 

Anybody has idea ???

 

Two hours later ...

 

Yes ... i'm little drink vodka (only 2 bootle, 1 litre, it's small)... going to street, catch new tame bear ... and he say me:

 

- run the vt-patch-7f.py patch by  adhemar  on BIOS dump and vtenable-Y730.py again and flush new patched BIOS.

 

I do it and it's WORKS!!! My Lenovo Y730 full support VT!!!

 

Thanks for my tame bear,  adhemar, mam, dad, God, brother, sister, S. Spealber, David William Duchovny, Gillian Leigh Anderson  ... oh no, this not Oscar awards ...  :smileyhappy: ... thanks all for support )

 

 

Have a nice day, colleague.

 

 

Punch Card
adhemar
Posts: 7
Registered: ‎10-29-2009
Location: Canada
0

Re: Y730 virtualization

Hi Transporter1997, I am glad you and vodka put two and two together and figured it out. I ran into the exact same problem you did. I thought my issues were isolated ones but it doesn't look that way anymore. So I am going to add quite a few more words to this ongoing saga. First some background info.

 

Overview.

 

InsydeH2O is an EFI 2.0 implementation, a modern high-level BIOS implementation. With EFI, all configuration data is stored in variables within the Variable Storage Space (VSS). The Setup variable is the one we are interested in. It contains most of the system configuration, including VT. A byte offset within the variable matches a specific configuration setting.

 

There may be multiple Setup variables within VSS, because BIOS modifications may result in an existing Setup variable being marked as “deleted” and replaced by a completely new one. The state of the variable is known from its status flag. Only the active Setup variable – flag value = 0x7f – should be updated.

 

What Marcan was able to do, besides figuring out some of what I just described, is to find within the BIOS a hidden encrypted form that describes what the configuration settings offsets are. For instance, he found out that the VT-enable flag is at offset 0x01af (in hexadecimal) within the VSS.

 

I have dumped and sorted the VSS settings for my bios using d6z’s tools under Linux. You can look at those settings there

 

Motivation.

 

My motivation for enabling VT was double. I was interested in running Windows 7 XP mode and I wanted to run GLASS (Gemstone, Linux, Apache, Smalltalk, Seaside). A “trial” version comes packaged as a VMware appliance that requires VT hardware support (because it is a 64-bit Linux appliance).

 

Issues.

 

I had several issues. First, the bios kept changing on me. I would retrieve it one day, analyze it (no reflash), and then retrieve it a couple of day later and the VSS had changed! Variables had been added and deleted! I never figured out when and why. The only advice I can give is to work with a fresh bios. Retrieve it, patch it and flash it in a single session.

 

Secondly, I had multiple Setup variables in the VSS but none was active. This is also what happened to Transporter1997, as shown in his post. I would set the VT flag on the last one and flash it successfully but a new variable was created with the old values superseding mine! It wasn’t until I modified platform.ini – the ini file of InsydeFlash – as described in my second post that I was successful. You can download the platform.ini I used there.

 

At that point the Microsoft utility reported my computer as VT-enabled. However XP-mode did not run properly and neither did GLASS. XP-mode would start running and then immediately pop-up a message requesting me to download it! The VMware appliance would start and then stop, reporting that long integers were not supported (before the patch it would not start at all).

 

I eventually decided to force the status flag to 0x7f and modify 2 additional settings (for a total of three):

  • VT-support setting at offset 0x1af, set to 1.
  • VT-D setting at offset 0x1c1, set to 1.
  • User access level at offset 0x085, set to 4.

 

That did it and XP-mode and GLASS are now running properly. I don’t know for a fact whether all changes were necessary. Overall, I must have re-flashed my bios 6 or 7 times, which was rather scary!

 

If you’re in a situation like mine, take the time to analyze your bios carefully with an hex editor and dump files. The content of this archive may give you a head start. If no Setup variable is “active”, I suggest you run the vt-patch-7f.py script that will change the status of the last Setup variable to “0x7f" and only update the VT-support setting (at 0x01af). If it is not enough, you can try modifying all 3 settings with this second script . Note that the two scripts can be safely chained (meaning that output of the first one can be used as input to the second one).

Fanfold Paper
coolzjai
Posts: 7
Registered: ‎10-09-2008
Location: hong kong
0

Re: Ideapad Y730 Intel VT support

GREAT!!!!!!!! Special thanks to "adhemar" and "Transporter1997"!! Thanks to both of you, saving me alot of time to get this VT to work on my Lenovo-Y730.! I followed exactly what was mention in adhemar post, and choose to use the "vt-patch-7f.py" script instead of "vtenable-Y730.py", as the 2nd one, gives me the error exactly as what transporter1997 replied later on. keep up the good works!!!!! =) Thanks. Ciao
What's DOS?
thelsdj
Posts: 1
Registered: ‎02-08-2010
Location: Vallejo, CA
0

Re: Ideapad Y730 Intel VT support

I'd like to add a confirmation that I got this method to work on my IdeaPad Y730 4053-34U (T9400) but with one additional change. In the platform.ini file I had to

 

 

[ForceFlash]
ALL=1

 

I tried it first with just:

 

Variable=1

 

but that did not appear to make a difference, I had both Variable=1 and ALL=1 the time it worked so not sure if both are required or if just ALL=1 made the difference.

 

 

Thanks all!

 

What's DOS?
lplg
Posts: 2
Registered: ‎06-26-2009
Location: Australia
0

Re: Y730 virtualization

[ Edited ]

adhemar, would you have any tips on enabling VT on a Y710? My CPU is VT support.

Will your method be applicable to the Y710 as they are quite similar?

 

Thanks!

Punch Card
adhemar
Posts: 7
Registered: ‎10-29-2009
Location: Canada
0

Re: Y730 virtualization

To lplg:

 

The method should work with any Insyde-H2O based pc. The position of the Variable Storage Space and VT flag may change from one laptop to the next. Both are easily configurable in the Python patch files (VSS_OFFSET and PATCH_OFFSET).

 

So you need to find out what the BIOS is in your 710. If if is an Insyde BIOS, you can use this method.