Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Thinkpad P51 not supported #7

Open
brandsimon opened this issue Nov 13, 2018 · 12 comments
Open

Thinkpad P51 not supported #7

brandsimon opened this issue Nov 13, 2018 · 12 comments

Comments

@brandsimon
Copy link

brandsimon commented Nov 13, 2018

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.

@coderobe
Copy link
Owner

coderobe commented Nov 13, 2018

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.

@brandsimon
Copy link
Author

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.

@coderobe
Copy link
Owner

Ran what in an X session? VBiosFinder does not require X, and you don't need to do any part of the extraction manually.

@brandsimon
Copy link
Author

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

@coderobe
Copy link
Owner

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.

@brandsimon
Copy link
Author

brandsimon commented Nov 13, 2018

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

@stzokev
Copy link

stzokev commented Feb 5, 2019

@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..

@coderobe
Copy link
Owner

coderobe commented Feb 5, 2019

@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

@stzokev
Copy link

stzokev commented Feb 9, 2019

@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!

@stzokev
Copy link

stzokev commented Feb 10, 2019

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!

@coderobe
Copy link
Owner

@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.

@stzokev
Copy link

stzokev commented Feb 10, 2019

@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants