12-05-2009 05:29 AM - edited 12-06-2009 03:37 AM
Thanks for all.
Personal thanks adhemar, it`s good work and many letters ![]()
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
) It's not cool ... but i don't surrender
, 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 ...
... thanks all for support )
Have a nice day, colleague.
12-06-2009 08:37 PM
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):
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).
01-04-2010 05:46 AM
02-08-2010 10:14 PM
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!
02-23-2010 05:47 AM - edited 02-23-2010 06:40 AM
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!
03-02-2010 06:47 PM
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.