VBiosFinder
VBiosFinder copied to clipboard
Thinkpad P51 not supported
Hi,
I tried to extract the VBIOS from an Thinkpad P51. I get the following output:
output will be stored in '/home/work/rom/VBiosFinder/tmp-vbiosfinder'
checking for ruby... yes
checking for innoextract... yes
checking for upx... yes
checking for 7z... yes
trying to extract ./n1uuj21w.exe
found innoextract archive
Extracting "version 1.46-1.09 (N1UET72W-N1UHT26W)" - setup data version 5.6.0
- "app/WINUPTP.EXE" - overwritten
- "app/WINUPTP.EXE"
- "app/406E3.PAT"
- "app/406E8.PAT"
- "app/506E3.PAT"
- "app/506E8.PAT"
- "app/806E9.PAT"
- "app/906E9.PAT"
- "app/BCP.evs"
- "app/BIOS_LOGO.TXT"
- "app/BootX64.efi"
- "app/chklogo.exe"
- "app/chklogo.exe.config"
- "app/Instruction JP - BIOS flash USB memory key.txt"
- "app/Instruction US - BIOS flash USB memory key.txt"
- "app/mkusbkey.bat"
- "app/SHELLFLASH.EFI"
- "app/WinFlash32.exe"
- "app/WinFlash32s.exe"
- "app/WinFlash64.exe"
- "app/WinFlash64s.exe"
- "app/wininfo.exe"
- "app/wininfo64.exe"
- "app/WINUPTP64.EXE"
- "app/32bit/tpnflhlp.sys"
- "app/64bit/tpnflhlp.sys"
- "app/N1UET72W/$0AN1U00.FL1"
- "app/N1UET72W/$0AN1U00.FL2"
Done.
trying to extract ./app/32bit/tpnflhlp.sys
trying to extract ./app/406E3.PAT
trying to extract ./app/406E8.PAT
trying to extract ./app/506E3.PAT
trying to extract ./app/506E8.PAT
trying to extract ./app/64bit/tpnflhlp.sys
trying to extract ./app/806E9.PAT
trying to extract ./app/906E9.PAT
trying to extract ./app/BCP.evs
trying to extract ./app/BIOS_LOGO.TXT
trying to extract ./app/BootX64.efi
trying to extract ./app/Instruction JP - BIOS flash USB memory key.txt
trying to extract ./app/Instruction US - BIOS flash USB memory key.txt
trying to extract ./app/N1UET72W/$0AN1U00.FL1
trying to extract ./app/N1UET72W/$0AN1U00.FL2
trying to extract ./app/SHELLFLASH.EFI
trying to extract ./app/WINUPTP.EXE
trying to extract ./app/WINUPTP64.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/mkusbkey.bat
trying to extract ./app/wininfo.exe
trying to extract ./app/wininfo64.exe
extracting uefi data
trying to extract ./app/32bit/tpnflhlp.sys
trying to extract ./app/406E3.PAT
trying to extract ./app/406E8.PAT
trying to extract ./app/506E3.PAT
trying to extract ./app/506E8.PAT
trying to extract ./app/64bit/tpnflhlp.sys
trying to extract ./app/806E9.PAT
trying to extract ./app/906E9.PAT
trying to extract ./app/BCP.evs
trying to extract ./app/BIOS_LOGO.TXT
trying to extract ./app/BootX64.efi
trying to extract ./app/Instruction JP - BIOS flash USB memory key.txt
trying to extract ./app/Instruction US - BIOS flash USB memory key.txt
trying to extract ./app/N1UET72W/$0AN1U00.FL1
trying to extract ./app/N1UET72W/$0AN1U00.FL2
trying to extract ./app/SHELLFLASH.EFI
trying to extract ./app/WINUPTP.EXE
trying to extract ./app/WINUPTP64.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/mkusbkey.bat
trying to extract ./app/wininfo.exe
trying to extract ./app/wininfo64.exe
trying to extract ./mkmf.log
trying to extract ./n1uuj21w.exe
filtering for modules...
got 0 modules
finding vbios
no candidates found :(
Cleaning up garbage
I got the file from here: https://download.lenovo.com/pccbbs/mobiles/n1uuj21w.exe I tried it on an uptodate Debian buster.
Works for me. The update contains VBIOS data for the 8086:0406
, 10de:13b6
, and 10de:1436
video cards in the app/N1UET72W/$0AN1U00.FL1
blob, correctly identified and stripped by UEFIExtract.
Do you have UEFIExtract in your PATH or the 3rdparty
directory? That's required for most extractions - the README of VBiosFinder has more information regarding dependencies.
Thank you for the hint. I ran it in a VM via ssh.
qt.qpa.screen: QXcbConnection: Could not connect to display
Could not connect to any X display.
Now I ran it in an X-Session and it is trying to open every file. It says a lot: 'UEFI volumes not found', and two files open correctly, but I dont know, where I should extract them to with this tool.
Ran what in an X session? VBiosFinder does not require X, and you don't need to do any part of the extraction manually.
Ah sorry, I made a mistake, now I copied the correct UEFIExtract (before I had UEFITool). Still It does not find the VBIOS:
$ ./vbiosfinder extract /home/work/rom/VBiosFinder/n1uuj21w.exe
output will be stored in '/home/work/rom/VBiosFinder/tmp-vbiosfinder'
checking for ruby... yes
checking for innoextract... yes
checking for upx... yes
checking for 7z... yes
trying to extract ./n1uuj21w.exe
found innoextract archive
Extracting "version 1.46-1.09 (N1UET72W-N1UHT26W)" - setup data version 5.6.0
- "app/WINUPTP.EXE" - overwritten
- "app/WINUPTP.EXE"
- "app/406E3.PAT"
- "app/406E8.PAT"
- "app/506E3.PAT"
- "app/506E8.PAT"
- "app/806E9.PAT"
- "app/906E9.PAT"
- "app/BCP.evs"
- "app/BIOS_LOGO.TXT"
- "app/BootX64.efi"
- "app/chklogo.exe"
- "app/chklogo.exe.config"
- "app/Instruction JP - BIOS flash USB memory key.txt"
- "app/Instruction US - BIOS flash USB memory key.txt"
- "app/mkusbkey.bat"
- "app/SHELLFLASH.EFI"
- "app/WinFlash32.exe"
- "app/WinFlash32s.exe"
- "app/WinFlash64.exe"
- "app/WinFlash64s.exe"
- "app/wininfo.exe"
- "app/wininfo64.exe"
- "app/WINUPTP64.EXE"
- "app/32bit/tpnflhlp.sys"
- "app/64bit/tpnflhlp.sys"
- "app/N1UET72W/$0AN1U00.FL1"
- "app/N1UET72W/$0AN1U00.FL2"
Done.
trying to extract ./app/32bit/tpnflhlp.sys
trying to extract ./app/406E3.PAT
trying to extract ./app/406E8.PAT
trying to extract ./app/506E3.PAT
trying to extract ./app/506E8.PAT
trying to extract ./app/64bit/tpnflhlp.sys
trying to extract ./app/806E9.PAT
trying to extract ./app/906E9.PAT
trying to extract ./app/BCP.evs
trying to extract ./app/BIOS_LOGO.TXT
trying to extract ./app/BootX64.efi
trying to extract ./app/Instruction JP - BIOS flash USB memory key.txt
trying to extract ./app/Instruction US - BIOS flash USB memory key.txt
trying to extract ./app/N1UET72W/$0AN1U00.FL1
trying to extract ./app/N1UET72W/$0AN1U00.FL2
trying to extract ./app/SHELLFLASH.EFI
trying to extract ./app/WINUPTP.EXE
trying to extract ./app/WINUPTP64.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/mkusbkey.bat
trying to extract ./app/wininfo.exe
trying to extract ./app/wininfo64.exe
extracting uefi data
trying to extract ./app/32bit/tpnflhlp.sys
found UEFIExtract archive
trying to extract ./app/406E3.PAT
found UEFIExtract archive
trying to extract ./app/406E8.PAT
found UEFIExtract archive
trying to extract ./app/506E3.PAT
found UEFIExtract archive
trying to extract ./app/506E8.PAT
found UEFIExtract archive
trying to extract ./app/64bit/tpnflhlp.sys
found UEFIExtract archive
trying to extract ./app/806E9.PAT
found UEFIExtract archive
trying to extract ./app/906E9.PAT
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/BootX64.efi
found UEFIExtract archive
trying to extract ./app/Instruction JP - BIOS flash USB memory key.txt
found UEFIExtract archive
trying to extract ./app/Instruction US - BIOS flash USB memory key.txt
found UEFIExtract archive
trying to extract ./app/N1UET72W/$0AN1U00.FL1
found UEFIExtract archive
trying to extract ./app/N1UET72W/$0AN1U00.FL2
found UEFIExtract archive
trying to extract ./app/SHELLFLASH.EFI
found UEFIExtract archive
trying to extract ./app/WINUPTP.EXE
found UEFIExtract archive
trying to extract ./app/WINUPTP64.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/mkusbkey.bat
found UEFIExtract archive
trying to extract ./app/wininfo.exe
found UEFIExtract archive
trying to extract ./app/wininfo64.exe
found UEFIExtract archive
trying to extract ./mkmf.log
found UEFIExtract archive
trying to extract ./n1uuj21w.exe
found UEFIExtract archive
filtering for modules...
got 2872 modules
finding vbios
no candidates found :(
input contains uefi data but no vbios could be found
the vbios might not be baked into the input!
Cleaning up garbage
Ah, indeed - now that's a different issue - UEFITool new_engine HEAD appears to be broken or behave differently, the last known working commit of UEFITool is 616464ba2901880942cd8d8e5685b510db985719
.
I'll have to bisect UEFITool and figure out why this is happening. In the mean time you can build UEFIExtract from the tree at that commit to work around this issue.
Thank you very much. I have my files now :)
Found VBIOS for device 10de:1436!
Found VBIOS for device 10de:13b6!
Found VBIOS for device 8086:0406!
Found VBIOS for device 10de:13b6!
I used UEFIDump instead of UEFIExtract from that commit, because I was not able to build it
UEFIExtract" does not appear to contain CMakeLists.txt
@brandsimon Why do you need the vbios for P51, when it is soldered to the mobo? I always thought this tool is handy only for people meddling around with MXM based cards..
@stzokev the connector doesn't really matter, if your vbios is loaded from the firmware you'll have no luck extracting it from the card itself
@brandsimon @coderobe Linux is not my platform of choice, so I must be missing some simple step. Already followed instructions in README by the letter, but when I try to extract this exact bios (because I know it works, tested by you both) I get nowhere:
silver@Sneak:/mnt/c/Users/Silver/Desktop/VBiosFinder-master$ ./vbiosfinder extract /mnt/c/Users/Silver/Desktop/VBiosFinder-master/n1uuj21w.exe
output will be stored in '/mnt/c/Users/Silver/Desktop/VBiosFinder-master/tmp-vbiosfinder'
checking for ruby... yes
checking for innoextract... yes
checking for upx... yes
checking for 7z... yes
trying to extract ./n1uuj21w.exe
extracting uefi data
trying to extract ./mkmf.log
found UEFIExtract archive
trying to extract ./n1uuj21w.exe
found UEFIExtract archive
filtering for modules...
got 6 modules
finding vbios
no candidates found :(
input contains uefi data but no vbios could be found
the vbios might not be baked into the input!
Cleaning up garbage
I can confirm UEFIExtact is added to PATH and also present in 3rdparty folder. I am using prebuild UEFIExtract binary for linux from here (https://github.com/LongSoft/UEFITool/releases/download/t20190120/UEFIExtract_NE_A54_linux_x86_64.zip)
Using Ubuntu subsystem on Windows 10. Appreciate any help!
I give up .. I re-cloned your repo, built UEFIExtract from the new_engine source and still no cigar. I even tried with the binary from 616464ba2901880942cd8d8e5685b510db985719
commit, which you say is working properly, but still a no-go. Shouldn't VBiosFinder throw an error if it can't find/use one of its dependencies? Cause clearly all it needs is there, but it would not work, which makes it look really unreliable - how is one to know when the tool is quirky and when there is simply no vbios image in the input?
Please help!
@stzokev i have used vbiosfinder on several laptops running different operating systems and i really can't reproduce your issue. on your last output snippet it looks like innoextract is not working.
anyways, there's a rewrite of vbiosfinder on my to-do list - that one will hopefully be easier to use.
@coderobe But your dependency notifier checks and says its there. I also tried purging and installing it again, also copied it from /usr/bin to /3rparty .. nothing helped. So apparently your tool checks that it is there, but can't use it for some reason.