coderobe/VBiosFinder

Report: T430 successful, but invalid PCI ID found(?)

Justegard opened this issue · 3 comments

Great software, thank you!

The specified integrated graphics on a T430 is the Intel HD Graphics 4000 (PCI ID: 8086:0166) yet the VBIOS found is for Intel HD Graphics (8086:0106).

Tested using the vbios_8086_0106.rom with PCI ID 8086:0166 which worked.

BIOS update link:
https://download.lenovo.com/pccbbs/mobiles/g1uj48us.iso

Program output:

output will be stored in '/home/usr/VBiosFinder/tmp-vbiosfinder'
checking for ruby... yes

checking for innoextract... yes
checking for upx... yes
checking for 7z... yes
trying to extract ./g1uj48us.exe
found innoextract archive
Extracting "version 2.81-1.13 (G1ETC1WW-G1HT35WW)" - setup data version 5.4.2

  • "app/WINUPTP.EXE" - overwritten
  • "app/WINUPTP.EXE"
  • "app/206A7.PAT"
  • "app/306A4.PAT"
  • "app/306A5.PAT"
  • "app/306A6.PAT"
  • "app/306A8.PAT"
  • "app/306A9.PAT"
  • "app/BCP.evs"
  • "app/BIOS_LOGO.TXT"
  • "app/chklogo.exe"
  • "app/chklogo.exe.config"
  • "app/WinFlash32.exe"
  • "app/WinFlash32s.exe"
  • "app/WinFlash64.exe"
  • "app/WinFlash64s.exe"
  • "app/wininfo.exe"
  • "app/32bit/tpnflhlp.sys"
  • "app/64bit/tpnflhlp.sys"
  • "app/G1ETC1WW/$01D2000.FL1"
  • "app/G1ETC1WW/$01D2000.FL2"
  • "app/G1ETC1WW/206a7.HSH"
  • "app/G1ETC1WW/306a4.HSH"
  • "app/G1ETC1WW/306a5.HSH"
  • "app/G1ETC1WW/306a6.HSH"
  • "app/G1ETC1WW/306a8.HSH"
  • "app/G1ETC1WW/306a9.HSH"
    Done.
    trying to extract ./app/206A7.PAT
    trying to extract ./app/306A4.PAT
    trying to extract ./app/306A5.PAT
    trying to extract ./app/306A6.PAT
    trying to extract ./app/306A8.PAT
    trying to extract ./app/306A9.PAT
    trying to extract ./app/32bit/tpnflhlp.sys
    trying to extract ./app/64bit/tpnflhlp.sys
    trying to extract ./app/BCP.evs
    trying to extract ./app/BIOS_LOGO.TXT
    trying to extract ./app/G1ETC1WW/$01D2000.FL1
    trying to extract ./app/G1ETC1WW/$01D2000.FL2
    trying to extract ./app/G1ETC1WW/206a7.HSH
    trying to extract ./app/G1ETC1WW/306a4.HSH
    trying to extract ./app/G1ETC1WW/306a5.HSH
    trying to extract ./app/G1ETC1WW/306a6.HSH
    trying to extract ./app/G1ETC1WW/306a8.HSH
    trying to extract ./app/G1ETC1WW/306a9.HSH
    trying to extract ./app/WINUPTP.EXE
    trying to extract ./app/WinFlash32.exe
    trying to extract ./app/WinFlash32s.exe
    trying to extract ./app/WinFlash64.exe
    trying to extract ./app/WinFlash64s.exe
    trying to extract ./app/chklogo.exe
    trying to extract ./app/chklogo.exe.config
    trying to extract ./app/wininfo.exe
    extracting uefi data
    trying to extract ./app/206A7.PAT
    found UEFIExtract archive
    trying to extract ./app/306A4.PAT
    found UEFIExtract archive
    trying to extract ./app/306A5.PAT
    found UEFIExtract archive
    trying to extract ./app/306A6.PAT
    found UEFIExtract archive
    trying to extract ./app/306A8.PAT
    found UEFIExtract archive
    trying to extract ./app/306A9.PAT
    found UEFIExtract archive
    trying to extract ./app/32bit/tpnflhlp.sys
    found UEFIExtract archive
    trying to extract ./app/64bit/tpnflhlp.sys
    found UEFIExtract archive
    trying to extract ./app/BCP.evs
    found UEFIExtract archive
    trying to extract ./app/BIOS_LOGO.TXT
    found UEFIExtract archive
    trying to extract ./app/G1ETC1WW/$01D2000.FL1
    found UEFIExtract archive
    trying to extract ./app/G1ETC1WW/$01D2000.FL2
    found UEFIExtract archive
    trying to extract ./app/G1ETC1WW/206a7.HSH
    found UEFIExtract archive
    trying to extract ./app/G1ETC1WW/306a4.HSH
    found UEFIExtract archive
    trying to extract ./app/G1ETC1WW/306a5.HSH
    found UEFIExtract archive
    trying to extract ./app/G1ETC1WW/306a6.HSH
    found UEFIExtract archive
    trying to extract ./app/G1ETC1WW/306a8.HSH
    found UEFIExtract archive
    trying to extract ./app/G1ETC1WW/306a9.HSH
    found UEFIExtract archive
    trying to extract ./app/WINUPTP.EXE
    found UEFIExtract archive
    trying to extract ./app/WinFlash32.exe
    found UEFIExtract archive
    trying to extract ./app/WinFlash32s.exe
    found UEFIExtract archive
    trying to extract ./app/WinFlash64.exe
    found UEFIExtract archive
    trying to extract ./app/WinFlash64s.exe
    found UEFIExtract archive
    trying to extract ./app/chklogo.exe
    found UEFIExtract archive
    trying to extract ./app/chklogo.exe.config
    found UEFIExtract archive
    trying to extract ./app/wininfo.exe
    found UEFIExtract archive
    trying to extract ./g1uj48us.exe
    found UEFIExtract archive
    trying to extract ./mkmf.log
    found UEFIExtract archive
    filtering for modules...
    got 10535 modules
    finding vbios
    8 possible candidates
    checking for rom-parser... yes
    Found VBIOS for device 8086:0106!
    Found VBIOS for device 10de:1057!
    Found VBIOS for device 10de:0dfe!
    Found VBIOS for device 10de:0def!
    Found VBIOS for device 8086:0106!
    Found VBIOS for device 10de:1057!
    Found VBIOS for device 10de:0dfe!
    Found VBIOS for device 10de:0def!
    Job done. Extracted files can be found in /home/usr/VBiosFinder/tmp-vbiosfinder/../output
    Cleaning up garbage

Tested using the VBIOS using the PCI ID found by VBiosFinder, which did not work.

Interesting. The PCI ID is read using rom-parser, which takes the data verbatim from the ROM. That sounds like the PCI ID in that particular VBIOS ROM might actually just be wrong then.

Nonetheless, i'll add your device to the list of supported devices - thanks for the report!

Just adding a "me too" comment, as the naming bug also affects the ThinkPad X230, and possibly other Ivy Bridge series laptops as well.

Here's also a helpful trick to figuring out if the rom dump succeeded.
You can use the strings command to find unencrypted text strings within the rom dumps, which can be very helpful.

Example:

user@265bb6507a45:~/vbios_extract$ ls -lh
total 4.7M
-rw-r--r--. 1 user user 4.3M Sep 10 04:38 bios_g2uj33us.exe
-rw-r--r--. 1 user user 118K Sep 10 04:38 body.bin
-rw-r--r--. 1 user user 118K Sep 10 04:38 vbios_10de_0def_1.rom
-rw-r--r--. 1 user user  62K Sep 10 04:38 vbios_10de_0dfe_1.rom
-rw-r--r--. 1 user user  62K Sep 10 04:38 vbios_10de_1057_1.rom
-rw-r--r--. 1 user user  64K Sep 10 04:38 vbios_8086_0106_1.rom

user@265bb6507a45:~/vbios_extract$ strings vbios_8086_0106_1.rom | egrep -i 'graphics|nvidia'
9Intel(R) Sandybridge/Ivybridge Graphics Chipset Accelerated VGA BIOS
Intel(R) Sandybridge/Ivybridge Graphics Controller

user@265bb6507a45:~/vbios_extract$ strings vbios_10de_0def_1.rom | egrep -i 'graphics|nvidia'
Copyright (C) 1996-2012 NVIDIA Corp.
NVIDIA GeForce
PLEASE POWER DOWN AND CONNECT THE PCIe POWER CABLE(S) FOR THIS GRAPHICS CARD
NVIDIA
NVIDIA Corporation