このチュートリアルの使用 "PCI sysfsインターフェイスを使用してビデオBIOS ROMをダンプする" BIOSをダンプする手順を繰り返してみましたROM。
私のネットワークカードは:
$ lspci
[snip]
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
そこで、ネットワークカードROMがどこにあるかを確認するために、これを入力しました。
$ find /sys/devices -name "rom"
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/rom
/sys/devices/pci0000:00/0000:00:1c.3/0000:03:00.0/rom
2番目の結果です。今私はそれをダンプする必要があります。
入力する必要があるものを入力すると、エラーが発生します:
$ echo 1 | Sudo tee /sys/devices/pci0000:00/0000:00:1c.3/0000:03:00.0/rom
1
$ Sudo cat /sys/devices/pci0000:00/0000:00:1c.3/0000:03:00.0/rom > netbios.rom
cat: /sys/devices/pci0000:00/0000:00:1c.3/0000:03:00.0/rom: Input/output error
見る?入出力エラー.. ethtoolを使用すると、エラーも発生します。
$ Sudo ethtool -e eth0 > romdump.rom
Cannot get EEPROM data: Operation not supported
詳細は次のとおりです。
$ ethtool -i eth0
driver: r8169
version: 2.3LK-NAPI
firmware-version:
bus-info: 0000:03:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
だから、私のネットワークカードはeepromアクセスを使用してBIOS ROMのダンプを作成することを許可していないように見えますか?しかし、私には少し混乱します-つまり、ハードウェアのファームウェアをダンプすることができるはずですよね?
Sysfs rom
ファイルを使用すると、PCI ROMの内容を読み取ることができますが、デバイスはその情報を公開しないようです。デバイスで利用できないか実装されていません。
理由についてethtool -e eth0
が失敗すると、現在のr8169ドライバー(3.19-rc3まで)は、EEPROMから読み取る方法を実装しません。 RealtekネットワークデバイスにAtmel 93C46または93C56 EEPROMがある場合、このr8169機能を このパッチ(Linux 3.11の場合) で追加できます( 同じパッチ、3.17にリベース、3.19で動作します)も )。
デバイスが「ブリック」されている場合(症状:bb:6f:ff:ff:ff:ffなどのガベージMACアドレス、10ec:8129として報告されるベンダー/デバイスID)、そのメッセージの指示に従うことを試みることができます。私は過去にそれを試してみましたが、マシンから電源が完全に取り除かれたときに時々それを繰り返さなければなりません。残念ながら、この指示は100%信頼できるものではなく、毎回、機能させるためにさらに多くのトリックを試す必要があります。この記事の執筆時点では、このRTL8169sb/8110sbは昨日からまだ機能していません。