С помощью этого руководства «Использование интерфейса PCI sysfs для создания дампа ПЗУ видео BIOS» Я попытался повторить шаги для сброса ПЗУ BIOS с сетевой карты.
Моя сетевая карта:
$ lspci
[snip]
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
Так что я набрал это, чтобы быть уверенным, где находится моя сетевая карта:
$ 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
Это второй результат. Теперь я должен выбросить его.
Итак, печатая то, что должно быть напечатано, я получаю сообщение об ошибке:
$ 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
Так что, похоже, моя сетевая карта не позволяет мне делать дампы его BIOS ROM, используя доступ к eeprom? Но для меня это немного сбивает с толку - я имею в виду, что должна быть возможность сбросить любую аппаратную прошивку, верно?
Файл sysfs rom
позволяет читать содержимое ПЗУ PCI, но, очевидно, устройство не предоставляет эту информацию. Он недоступен или не реализован устройством.
Что касается причины сбоя ethtool -e eth0
, текущий драйвер r8169 (вплоть до версии 3.19-rc3 включительно) не реализует метод чтения из EEPROM. Если ваше сетевое устройство Realtek имеет EEPROM Atmel 93C46 или 93C56, то вы можете добавить эту функциональность r8169 с помощью этого патча (для Linux 3.11) ( тот же патч, перебазированный для 3.17, также работает для 3.19 [ 113]).
Для тех, чье устройство «заблокировано» (симптомы: мусорный MAC-адрес, такой как bb: 6f: ff: ff: ff: ff, идентификатор производителя / устройства, указанный как 10ec: 8129), вы можете попробовать выполнить инструкции, приведенные в это сообщение. Я пробовал это в прошлом, и время от времени я должен повторять это, когда питание полностью отключено от машины. К сожалению, инструкции не на 100% надежны, и каждый раз, чтобы заставить его работать, мне приходится пробовать гораздо больше уловок. На момент написания этой статьи RTL8169sb / 8110sb со вчерашнего дня не функционирует.