You are not logged in.
Hi, I've been looking around for weeks for a way to read out my GPU ROM into a file. I have a Mid-2014 rMBP with the Nvidia GT 750m graphics card. I'm trying to get VGA passthrough to work on KVM+Qemu. Qemu is not able to read the contents of the GPU ROM, so I need to pass it a valid ROM file.
I have tried fiddling with the corresponding PCI files in the "/dev" directory on Linux, but issuing `cat rom` results in a "input/output error". I have looked around in "/sys/firmware/efi/efivars", but I haven't been able to figure out if the two ROM files in there are for the GPU (`cat` doesn't output valid ROM contents). I have also tried booting into a Windows To Go external hard-drive, and using GPU-Z to try and extract the ROM, but GPU-Z complains about not being able to read the ROM.
Is there some trick or hack that I can do to get the ROM file? Or does anyone actually have a ROM file for this machine?
Thanks in advance for the help!
Last edited by rb3 (2015-06-24 02:08:03)
Offline
So I just extracted the ROM from mapped memory instead of tying to use sysfs. Basically I used a variant of the script documented in the link.
cat /proc/iomem | grep 'PCI Bus 0000:01'
On my MBP, the above commands prints out two memory ranges. I used the values in the smaller memory range in the following command:
(m=c0000000-c10fffff; m=${m/ :*}; s=${m/-*}; e=${m/*-}; \
dd if=/dev/mem of=vgabios.bin bs=1c skip=$[0x$s] count=$[$[0x$e]-$[0x$s]+1])
...which, after a while, produced a valid ROM file that could be read the by ROM parser script documented here.
Last edited by rb3 (2015-06-24 02:18:25)
Offline