Linux에서 VGA BIOS 덤프

Linux에서 VGA BIOS 덤프

vga 펌웨어 덤프하는 방법 아는 사람 있나요? 나는 열심히 노력했다여기하지만 작동하지 않습니다. vga BIOS를 덤프하는 방법을 알고 있거나 작동하는 경우 링크의 명령을 시도해 볼 수 있는 사람이 있습니까?

매우 감사합니다.

답변1

이것은 훌륭한 주제입니다. vbios.rom을 얻는 방법은 다음과 같습니다.쿠바 Tu 20.04 LTS:

처음에는 ROM 파일을 어디서 찾아야 할지 몰랐습니다. 다행히도 모든 ROM 파일을 찾아 표시할 수 있는 명령이 있습니다.

clemens@iMac-4:~$ find /sys/devices -name rom

여기에는 두 개의 파일이 표시됩니다.

/sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/rom
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/rom

하지만 어느 것이 맞나요? 이에 대한 좋은 명령도 있습니다:

clemens@iMac-4:~$ lspci | grep 02:00.0
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 22)

잘못 입력했습니다. Marvell 네트워크 카드용 ROM인 것 같습니다. 또 다른 시도...

clemens@iMac-4:~$ lspci | grep 01:00.0
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RV530/M56-P [Mobility Radeon X1600]

여기 있습니다! AMD/ATI Mobility Radeon X1600 GPU 카드용 비디오 BIOS입니다!

그래서 다른 두 명령을 실행했지만 먼저 더 논리적인 구문을 사용했습니다.

clemens@iMac-4:~$ echo 1 | sudo tee /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/rom
1

그 사람은 나에게 "1"을 보여줬어요. - 좋아요. 하지만 두 번째 파일은 결국 나에게 vbios.rom 파일을 제공하게 되었고, 이 파일은 내 컴퓨터에 직접 도착했습니다.사용자 폴더:

sudo cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/rom > vbios.rom

마지막으로 - 아래에서도 시도해 보겠습니다.애플 시스템. 어쩌면 이것이 거기에서도 작동할 수도 있습니다.고쳐 쓰다:Mac OS에서는 이 기능을 지원하지 않으므로 Mac OS에서는 작동하지 않습니다 sysfs.

원천:

Reddit - VGA BIOS 덤프

Colin Ian King - PCI sysfs 인터페이스를 사용하여 비디오 BIOS ROM 덤프

답변2

root@gonzo:/home/jasen# dd if=/dev/mem bs=64k skip=12 count=1 | strings | head
1+0 records in
1+0 records out
65536 bytes (66 kB, 64 KiB) copied, 8.9787e-05 s, 730 MB/s
K7400
VIDEO 
IBM VGA Compatible
P10/24/11
DPMIDl
3GV-N560OC-1GI/F32
Version 70.24.21.00.02 
Copyright (C) 1996-2011 NVIDIA Corp.
GF104B Board - 10400050

제가 보기에는 VGA ROM인 것 같습니다.

답변3

ROM을 찾기 위해 명령을 실행하는 경우:

find /sys/devices -name rom

결과는 다음과 유사합니다.

/sys/devices/pci0000:64/0000:64:00.0/0000:65:00.0/0000:66:08.0/0000:67:00.0/0000:68:00.0/0000:69:00.0/rom
/sys/devices/pci0000:64/0000:64:00.0/0000:65:00.0/0000:66:10.0/0000:6a:00.0/0000:6b:00.0/0000:6c:00.0/rom
/sys/devices/pci0000:16/0000:16:00.0/0000:17:00.0/0000:18:08.0/0000:19:00.0/0000:1a:10.0/0000:22:00.0/0000:23:00.0/0000:24:00.0/rom
/sys/devices/pci0000:16/0000:16:00.0/0000:17:00.0/0000:18:08.0/0000:19:00.0/0000:1a:04.0/0000:1b:00.0/rom

다음에서 ROM을 복사한다고 가정해 보겠습니다 0000:24:00.0.

sudo su
setpci -s 0000:24:00.0 COMMAND=2:2 (manually manipulate the memory enable bit with setpci)
export PATH_TO_ROM=/sys/devices/pci0000:16/0000:16:00.0/0000:17:00.0/0000:18:08.0/0000:19:00.0/0000:1a:10.0/0000:22:00.0/0000:23:00.0/0000:24:00.0/rom
echo 1 > $PATH_TO_ROM
mkdir -p /var/lib/libvirt/vbios/
cat $PATH_TO_ROM > /var/lib/libvirt/vbios/gpu.rom
echo 0 > $PATH_TO_ROM
setpci -s 0000:24:00.0 COMMAND=0:2 (Clear memory enable bit with setpci)
exit

관련 정보