Flashrom Linux, как использовать

Обновлено: 04.07.2024

В этом руководстве мы узнаем, как установить flashrom на Kali Linux.

Что такое flashrom

flashrom — это инструмент для идентификации, чтения, записи, проверки и стирания флеш-чипов. Он часто используется для прошивки образов BIOS/EFI/coreboot/firmware/optionROM в системе с использованием поддерживаемой материнской платы, но он также поддерживает перепрошивку сетевых карт (NIC), карт контроллеров SATA и других внешних устройств, которые могут программировать флэш-чипы.< /p>

Он поддерживает широкий спектр микросхем DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32/40/48 и BGA, которые используют различные протоколы, такие как LPC, FWH, параллельная флэш-память или SPI.

Этот инструмент можно использовать, например, для прошивки образов BIOS/микропрограмм, будь то проприетарные образы BIOS или образы coreboot (ранее известные как LinuxBIOS).

Его также можно использовать для чтения текущей версии BIOS/прошивки с флэш-чипа.

В настоящее время поддерживаются следующие программисты:

  • внутренний (для внутрисистемной прошивки на материнской плате)
  • пустышка (виртуальный программатор для тестирования flashrom)
  • nic3com (для флэш-ПЗУ на сетевых картах 3COM)
  • nicrealtek (для флэш-ПЗУ на сетевых картах Realtek и SMC 1211)
  • nicnatsemi (для флэш-ПЗУ на сетевых картах National Semiconductor DP838*)
  • nicintel (для параллельных флэш-ПЗУ на сетевых картах Intel 10/100 Мбит)
  • gfxnvidia (для флэш-ПЗУ на видеокартах NVIDIA)
  • drkaiser (для флэш-ПЗУ на картах Dr. Kaiser PC-Waechter PCI)
  • satasii (для флэш-ПЗУ на контроллерах Silicon Image SATA/IDE)
  • satamv (для флэш-ПЗУ на контроллерах Marvell SATA)
  • atahpt (для флэш-ПЗУ на контроллерах Highpoint ATA/RAID)
  • atavia (для флэш-ПЗУ на SATA-контроллерах VIA VT6421A)
  • atapromise (для флэш-ПЗУ на контроллерах Promise PDC2026x ATA/RAID)
  • it8212 (для флэш-ПЗУ на ATA/RAID-контроллере ITE IT8212F)
  • ft2232_spi (для флэш-ПЗУ SPI, подключенных к USB-программатору SPI на основе семейства FT2232/FT4232H/FT232H), включая DLP Design DLP-USB1232H, мини-модуль FTDI FT2232H, мини-модуль FTDI FT4232H, openbiosprog-spi, Amontec JTAGkey /JTAGkey-tiny/JTAGkey-2, Dangerous Prototypes Bus Blaster, Olimex ARM-USB-TINY/-H, Olimex ARM-USB-OCD/-H, Многопротокольный USB-адаптер TIAO/DIYGADGET (TUMPA), TUMPA Lite, GOEPEL PicoTAP, Google Servo v1/v2 и отладочная плата FIC OpenMoko Neo1973.
  • serprog (для флэш-ПЗУ, подключенных к программисту, говорящему на serprog), включая прошивальщик AVR от Urja Rannikko, прошивальщик AVR от восемь точек, прошивальщик Arduino Mega от fritz, InSystemFlasher от Juhana Helovuo и прошивальщик atmegaXXu2 от Stefan Tauner.
  • buspirate_spi (для флэш-ПЗУ SPI, подключенного к Bus Pirate)
  • dediprog (для флэш-ПЗУ SPI, подключенного к Dediprog SF100)
  • rayer_spi (для флэш-ПЗУ SPI, подключенного к программатору RayeR на основе parport)
  • pony_spi (для флэш-ПЗУ SPI, подключенного к адаптеру последовательного порта SI-Prog)
  • nicintel_spi (для флэш-ПЗУ SPI на сетевых картах Intel Gigabit)
  • ogp_spi (для флэш-памяти SPI на графической карте Open Graphics Project)
  • linux_spi (для флэш-памяти SPI, доступной через /dev/spidevX.Y в Linux)
  • usbblaster_spi (для флэш-ПЗУ SPI, подключенного к Altera USB-Blaster)
  • nicintel_eeprom (для SPI EEPROM на сетевых картах Intel Gigabit)
  • mstarddc_spi (для флэш-ПЗУ SPI, доступных через DDC на дисплеях с MSTAR)
  • pickit2_spi (для флэш-ПЗУ SPI, доступных через Microchip PICkit2)
  • ch341a_spi (для флэш-ПЗУ SPI, подключенного к WCH CH341A)

Есть три способа установить flashrom на Kali Linux. Мы можем использовать apt-get, apt и aptitude. В следующих разделах мы опишем каждый метод. Вы можете выбрать один из них.

Установить flashrom с помощью apt-get

Обновите базу данных apt с помощью apt-get, используя следующую команду.

После обновления базы данных apt мы можем установить flashrom с помощью apt-get, выполнив следующую команду:

Установить flashrom с помощью apt

Обновите базу данных apt с помощью следующей команды.

После обновления базы данных apt мы можем установить flashrom с помощью apt, выполнив следующую команду:

Установить flashrom с помощью aptitude

Если вы хотите использовать этот метод, вам может потребоваться сначала установить aptitude, так как aptitude обычно не устанавливается по умолчанию в Kali Linux. Обновите базу данных apt с помощью aptitude с помощью следующей команды.

После обновления базы данных apt мы можем установить flashrom с помощью aptitude, выполнив следующую команду:

Как удалить flashrom в Kali Linux

Чтобы удалить только пакет flashrom, мы можем использовать следующую команду:

Удалить flashrom и его зависимости

Чтобы удалить flashrom и его зависимости, которые больше не нужны Kali Linux, мы можем использовать следующую команду:

Удалить конфигурации и данные flashrom

Чтобы удалить конфигурацию и данные флэш-памяти из Kali Linux, мы можем использовать следующую команду:

Удалить конфигурацию flashrom, данные и все их зависимости

Мы можем использовать следующую команду для удаления конфигураций flashrom, данных и всех их зависимостей, мы можем использовать следующую команду:

Ссылки

Обзор

В этом руководстве мы узнаем, как установить flashrom с помощью различных инструментов управления пакетами, таких как apt, apt-get и aptitude.

flashrom — это инструмент для идентификации, чтения, записи, проверки и стирания флэш-чипов. Он часто используется для прошивки образов BIOS/EFI/coreboot/firmware/optionROM в системе с использованием поддерживаемой материнской платы, но он также поддерживает перепрошивку сетевых карт (NIC), карт контроллеров SATA и других внешних устройств, которые могут программировать флэш-чипы.< /p>

Он поддерживает широкий спектр микросхем DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32/40/48 и BGA, которые используют различные протоколы, такие как LPC, FWH, параллельная флэш-память или SPI.

Этот инструмент можно использовать, например, для прошивки образов BIOS/микропрограмм, будь то проприетарные образы BIOS или образы coreboot (ранее известные как LinuxBIOS).

Его также можно использовать для чтения текущей версии BIOS/прошивки с флэш-чипа.

В настоящее время поддерживаются следующие программисты:

  • внутренний (для внутрисистемной прошивки на материнской плате)
  • пустышка (виртуальный программатор для тестирования flashrom)
  • nic3com (для флэш-ПЗУ на сетевых картах 3COM)
  • nicrealtek (для флэш-ПЗУ на сетевых картах Realtek и SMC 1211)
  • nicnatsemi (для флэш-ПЗУ на сетевых картах National Semiconductor DP838*)
  • nicintel (для параллельных флэш-ПЗУ на сетевых картах Intel 10/100 Мбит)
  • gfxnvidia (для флэш-ПЗУ на видеокартах NVIDIA)
  • drkaiser (для флэш-ПЗУ на картах Dr. Kaiser PC-Waechter PCI)
  • satasii (для флэш-ПЗУ на контроллерах Silicon Image SATA/IDE)
  • satamv (для флэш-ПЗУ на контроллерах Marvell SATA)
  • atahpt (для флэш-ПЗУ на контроллерах Highpoint ATA/RAID)
  • atavia (для флэш-ПЗУ на SATA-контроллерах VIA VT6421A)
  • atapromise (для флэш-ПЗУ на контроллерах Promise PDC2026x ATA/RAID)
  • it8212 (для флэш-ПЗУ на ATA/RAID-контроллере ITE IT8212F)
  • ft2232_spi (для флэш-ПЗУ SPI, подключенных к USB-программатору SPI на основе семейства FT2232/FT4232H/FT232H), включая DLP Design DLP-USB1232H, мини-модуль FTDI FT2232H, мини-модуль FTDI FT4232H, openbiosprog-spi, Amontec JTAGkey /JTAGkey-tiny/JTAGkey-2, Dangerous Prototypes Bus Blaster, Olimex ARM-USB-TINY/-H, Olimex ARM-USB-OCD/-H, Многопротокольный USB-адаптер TIAO/DIYGADGET (TUMPA), TUMPA Lite, GOEPEL PicoTAP, Google Servo v1/v2 и отладочная плата FIC OpenMoko Neo1973.
  • serprog (для флэш-ПЗУ, подключенных к программисту, говорящему на serprog), включая прошивальщик AVR от Urja Rannikko, прошивальщик AVR от восемь точек, прошивальщик Arduino Mega от fritz, InSystemFlasher от Juhana Helovuo и прошивальщик atmegaXXu2 от Stefan Tauner.
  • buspirate_spi (для флэш-ПЗУ SPI, подключенного к Bus Pirate)
  • dediprog (для флэш-ПЗУ SPI, подключенного к Dediprog SF100)
  • rayer_spi (для флэш-ПЗУ SPI, подключенного к программатору RayeR на основе parport)
  • pony_spi (для флэш-ПЗУ SPI, подключенного к адаптеру последовательного порта SI-Prog)
  • nicintel_spi (для флэш-ПЗУ SPI на сетевых картах Intel Gigabit)
  • ogp_spi (для флэш-памяти SPI на графической карте Open Graphics Project)
  • linux_spi (для флэш-памяти SPI, доступной через /dev/spidevX.Y в Linux)
  • usbblaster_spi (для флэш-ПЗУ SPI, подключенного к Altera USB-Blaster)
  • nicintel_eeprom (для SPI EEPROM на сетевых картах Intel Gigabit)
  • mstarddc_spi (для флэш-ПЗУ SPI, доступных через DDC на дисплеях с MSTAR)
  • pickit2_spi (для флэш-ПЗУ SPI, доступных через Microchip PICkit2)
  • ch341a_spi (для флэш-ПЗУ SPI, подключенного к WCH CH341A)

Установленный размер: 971 КБ
Как установить: sudo apt install flashrom

  • libc6
  • libftdi1-2
  • libpci3
  • libusb-1.0-0

флэш-память

Обнаружение, чтение, запись, проверка и стирание микросхем флэш-памяти

libflashrom-dev

flashrom — это инструмент для идентификации, чтения, записи, проверки и стирания флэш-чипов. Он часто используется для прошивки образов BIOS/EFI/coreboot/firmware/optionROM в системе с использованием поддерживаемой материнской платы, но он также поддерживает перепрошивку сетевых карт (NIC), карт контроллеров SATA и других внешних устройств, которые могут программировать флэш-чипы.< /p>

Он поддерживает широкий спектр микросхем DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32/40/48 и BGA, которые используют различные протоколы, такие как LPC, FWH, параллельная флэш-память или SPI.

Этот инструмент можно использовать, например, для прошивки образов BIOS/микропрограмм, будь то проприетарные образы BIOS или образы coreboot (ранее известные как LinuxBIOS).

Его также можно использовать для чтения текущей версии BIOS/прошивки с флэш-чипа.

Этот пакет содержит файлы для разработки заголовков flashrom.

Установленный размер: 32 КБ
Как установить: sudo apt install libflashrom-dev

libflashrom1

flashrom — это инструмент для идентификации, чтения, записи, проверки и стирания флэш-чипов. Он часто используется для прошивки образов BIOS/EFI/coreboot/firmware/optionROM в системе с использованием поддерживаемой материнской платы, но он также поддерживает перепрошивку сетевых карт (NIC), карт контроллеров SATA и других внешних устройств, которые могут программировать флэш-чипы.< /p>

Он поддерживает широкий спектр микросхем DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32/40/48 и BGA, которые используют различные протоколы, такие как LPC, FWH, параллельная флэш-память или SPI.

Этот инструмент можно использовать, например, для прошивки образов BIOS/микропрограмм, будь то проприетарные образы BIOS или образы coreboot (ранее известные как LinuxBIOS).

Его также можно использовать для чтения текущей версии BIOS/прошивки с флэш-чипа.

Этот пакет содержит файлы разработки библиотеки flashrom.

Установленный размер: 933 КБ
Как установить: sudo apt install libflashrom1

  • libc6
  • libftdi1-2
  • libpci3
  • libusb-1.0-0

Flashrom – это утилита пользовательского пространства, которую мы используем в первую очередь для обновления прошивки хоста (AP/PCH), но ее также можно использовать для обновления прошивки других компонентов, таких как EC. его можно запустить как на целевой машине (обновление на месте), так и на рабочей станции пользователя для прошивки с помощью внешнего программатора, такого как Servo, Dediprog SF100, Bus Pirate и других.

Основное использование

-р | --read прочитать flash и сохранить в файл

-ш | --write записать во флэш-память

Аргумент "-p" сообщает нам, на какой программный интерфейс мы ориентируемся. Примеры включают «хост», «ec» или «ft2232_spi:type=servo-v2» (см. раздел о сервоприводах ниже). Для получения полного списка параметров командной строки используйте -h или --help.

Следующие команды связаны с защитой от записи:

--wp-status показать статус защиты от записи

--wp-range установить диапазон защиты от записи --wp-enable включить защиту от записи --wp-disable отключить защиту от записи

Некоторые примеры базового использования, все они запускаются на самом устройстве:

Если вы хотите считать прошивку с SPI:

$ flashrom -p host -r image.bin

Если вы хотите записать образ прошивки в SPI:

$ flashrom -p host -w image.bin

Если вы хотите прочитать изображение ec из EC:

$ flashrom -p ec -r ec.bin

Если вы хотите записать образ ec в EC:

$ flashrom -p ec -w ec.bin

Если вы просто хотите обновить прошивку и EC до последней версии в системе Chrome OS, игнорируя любые проверки безопасности, запустите приведенную ниже команду, которая вызовет для вас flashrom:

Предупреждение: при запуске flashrom на хосте x86 область встроенного ПО Intel Management Engine (ME) будет считываться обратно как байты 0xff, а записи в область ME будут автоматически отбрасываться. Это означает, что если вы сделаете резервную копию содержимого флэш-памяти с помощью flashrom -p host -r backup.bin, а затем попытаетесь восстановить backup.bin через сервопривод, регион ME будет перезаписан байтами 0xff, и ваша система больше не будет загружаться. Регион ME можно определить, запустив dump_fmap на образе прошивки; вот пример из ссылки:

area_size: 0x001ff000 (2093056)

Сценарий /usr/sbin/chromeos-firmwareupdate содержит копию заводского образа BIOS (включая прошивку ME), если вы уже сталкивались с этой проблемой.

Сервопривод

Servo имеет интерфейс USB SPI FT2232, который Flashrom может использовать для передачи команд через чип SPI. Все, что вам нужно сделать, это установить цель программатора (-p ft2232_spi:type=servo-v2) и включить/отключить буферы на гибком кабеле с помощью dut-control (из пакета hdctools).

Одна вещь, на которую следует обращать внимание, – это аргумент напряжения в отношении контроля над нагрузкой. Большинство микросхем SPI работают при напряжении 1,8 В или 3,3 В. Задается параметром spi2_vref:ppXXXX, где XXXX – 1 800 или 3 300.

Пример программирования чипа SPI 1,8 В:

$ dut-control spi2_vref:pp1800 spi2_buf_en:on spi2_buf_on_flex_en:on spi_hold:off cold_reset:on

$ sudo /usr/sbin/flashrom -p ft2232_spi:type=servo-v2 -w

$ dut-control spi2_vref:off spi2_buf_en:off spi2_buf_on_flex_en:off spi_hold:off cold_reset:off

Для управления аппаратной защитой от записи на тестируемом устройстве с помощью Servo:

В этом примере мы включаем переопределение WP, принудительно отключаем сигнал (устанавливаем его на высокий уровень, даже если /WP устанавливается винтом/H1/и т. д.), отключаем программный WP, а затем отключаем переопределение WP. При отключенном программном WP мы можем записывать на весь чип независимо от состояния аппаратного WP.

Дополнительные сведения о том, как запустить его с помощью Servo, доступны здесь и здесь (только для сотрудников Google).

Частичное чтение и запись

Flashrom можно указать настроить таргетинг только на определенный регион на микросхеме флэш-памяти.Это позволяет сценариям (особенно заводской установке и автообновлению) выборочно обновлять регионы, не тратя много времени на чтение или обновление всей флэш-памяти.

Выборочное включение регионов

Чтобы включить регион в операцию чтения/записи, используйте параметр -i:

-я | --image [: ] получить доступ только к изображению из макета flash

Аргумент [:] является необязательным и оказывает интересное влияние на -r и -w. Если файл не указан, flashrom будет работать с файлом того же размера, что и целевой флэш-чип. Например, если вы хотите записать разделы FOO и BAR из 4-мегабайтного файла на 4-мегабайтную флешку, вы можете сделать: flashrom -p

-i FOO -i BAR -w имя_файла.bin

Если файлы указаны в качестве аргументов для опций -i, flashrom не потребует аргументов для -w или -r и вместо этого будет работать с файлами, переданными через аргументы -i. Итак, если у вас есть отдельные файлы для FOO и BAR, которые не являются частью большего образа, назовем их foo.bin и bar.bin, вы можете записать их в ПЗУ прошивки следующим образом: flashrom -p

-i FOO:foo.bin BAR:bar.bin -w

Можно также использовать комбинацию:

  • В случае чтения при указании имени файла в качестве аргумента "-r" будет создан файл размером с ПЗУ в дополнение к файлам, созданным для аргументов "-i", которые указывают имя файла.
  • В случае записи имена файлов, переданные в качестве аргументов опции "-i", имеют приоритет. Это позволяет пользователю предоставить файл размером с ROM для «-w», а также исправить его содержимое, используя файлы, предоставленные для «-i». например, если у вас есть стандартный образ ПЗУ, но вы хотите применить пользовательские данные к определенному региону при перепрошивке.

Макет

При использовании -i Flashrom будет искать flashmap (fmap) и сравнивать названия регионов с именем, предоставленным пользователем. Если пользователь хочет предоставить собственное сопоставление вместо использования флэш-карты, можно использовать файл макета:

-л | --layout читать макет ПЗУ из

Например, это запишет пользовательские диапазоны из предоставленного имени файла в ПЗУ:

echo "000000:0fffff FOO" > layout.txt

echo "200000:2fffff BAR" >> layout.txt

-l layout.txt -i FOO -i BAR -w имя файла.bin

Выборочная проверка частичных записей

По умолчанию flashrom проверяет результат любой деструктивной операции, считывая и сравнивая все ПЗУ. Чтобы проверить только те части, которые предположительно были записаны, можно использовать --fast-verify:

--fast-verify only verify -i part

Это обычно считается безопасным, поскольку несоответствие в частично написанных частях указывает на то, что где-то, вероятно, что-то не так.

TODO(dhendrix): Вероятно, это следует переименовать в "--partial-verify" или что-то в этом роде.

Ускорение записи

В этом разделе описываются некоторые сочетания клавиш, которые могут быть полезны разработчикам. Не полагайтесь на поведение, описанное ниже, для производственного кода. На самом деле он предназначен только для того, чтобы помочь разработчикам выполнять итерации быстрее.

  1. Прочитайте все ПЗУ, чтобы получить эталонное изображение, прежде чем произойдет какая-либо деструктивная операция.
  2. Используйте алгоритм записи и стирайте/записывайте блоки только по мере необходимости.
  3. Прочитайте ПЗУ еще раз, чтобы убедиться, что он соответствует предоставленному файлу.

Основной способ ускорить процесс — пропустить первый и последний этапы проверки.

Пропуск подтверждения

Если вы уверены, что биты попадут туда, куда нужно, вы можете сэкономить время, пропустив этап проверки.

-н | --noverify не проверять автоматически

Предоставление исходного содержимого ROM вместе с файлом

Это позволит вам пропустить начальный этап получения эталонного изображения:

--diff diff из файла вместо ПЗУ

Это сообщает flashrom, что файл, указанный в качестве аргумента --diff, будет использоваться в качестве эталонного изображения, поэтому чтение содержимого ПЗУ будет пропущено. Это полезно, если вы можете точно отслеживать, что находится в ПЗУ, но может привести к неприятным ошибкам, если содержимое не синхронизируется. Используйте с осторожностью!

Пример (примечание: предполагается, что вы ранее прошивали "old.bin"):

flashrom -p ft2232_spi:type=servo-v2 -w new.bin --diff old.bin && cp new.bin old.bin

Подводные камни управления питанием, на которые следует обратить внимание

  • Система должна продолжать работать (указано).
  • powerd не должен работать со встроенным контроллером (см. раздел «Взаимодействие со встроенным контроллером» ниже).
  • Производительность не должна значительно снижаться.

Устройства с Chrome OS обычно считывают прошивку по крайней мере один раз за загрузку, чтобы получить данные, содержащиеся в VPD (например, данные калибровки антенн), заполнить записи для chrome://system и выполнить небольшие задачи по обслуживанию системы.

Взаимодействия со встроенным контроллером

Встроенные контроллеры — это независимые микроконтроллеры, которые сосуществуют на платформе для обслуживания некоторых процедур управления питанием через ACPI или другой интерфейс. Это часто включает в себя обработку событий переключения крышки, датчики (например, датчик внешней освещенности), управление температурным режимом и т. д.

Способ их разработки может затруднить обновление встроенного ПО. Чтобы сократить расходы, часто им не хватает внутренней флэш-памяти и ограниченного объема SRAM, поэтому им необходимо получить доступ к ПЗУ прошивки для загрузки новых процедур. Чтобы усложнить ситуацию, в некоторых системах используется одно и то же ПЗУ встроенного ПО как для хоста (PCH, SoC и т. д.), так и для EC.

В редких случаях, когда мы обновляем прошивку EC, Flashrom приостанавливает работу EC. Однако это имеет очень заметные побочные эффекты, такие как отключение клавиатуры, полное вращение вентилятора или затемнение экрана. Для более частых обновлений прошивки хоста, которые могут занять много времени, мы исторически полагались на остановку powerd и последующий перезапуск после того, как мы закончим. Это позволяет избежать прерывания работы EC, когда ему нужно загрузить дополнительный код, а также позволяет избежать зависаний пользовательского интерфейса, которые могут длиться до минуты и заставлять пользователя пытаться перезагрузить систему. Исторический контекст см. в chromium-os:18895.

Блок-схема общего SPI

Блок-схема SPI без общего доступа

Производительность

Мы хотим, чтобы обновления прошивки производились как можно быстрее. Это важно не только для сведения к минимуму любых побочных эффектов, которые может увидеть пользователь, а также общего риска, но и для оптимизации времени, затрачиваемого на сборочную линию при производстве устройства (chromium-os:14139).

В некоторых старых системах возникали проблемы с производительностью при запуске flashrom при включенном powerd. Это произошло из-за плохой реализации DVFS, которая могла сильно повлиять на поведение планировщика ядра и вызвать огромные задержки при запуске flashrom.

Один побочный эффект заключался в том, что flashrom требовал слишком много времени для завершения из-за плохого поведения usleep() (chromium-os:15025). Однако, когда мы отключили powerd, мы обнаружили, что пользовательский интерфейс стал дергаться (chromium-os:19321). В конце концов остановились на отключении powerd только для операций, которые, как ожидается, займут много времени и будут разрушительными (стирание/запись).

Теперь, когда powerd стал умнее, мы перестали отключать powerd (chromium:400641) и ожидаем, что он не будет делать ничего, что может снизить производительность во время работы flashrom.

Тестирование

Недавние (около 2016 г.) улучшения возможностей тестирования. Был объединен новый набор тестовых сценариев, а во flashrom добавлены некоторые встроенные возможности тестирования.

Встроенный тест

В настоящее время встроенные тесты ограничены тестированием защиты от записи с использованием параметра "--wp-test". Flashrom прочитает состояние защиты от записи и попытается перезаписать защищенную область, используя все доступные команды стирания секторов, блоков и чипов.

Тестовый скрипт v2

Тестовый сценарий используется в основном для регрессионного тестирования. В качестве входных данных он принимает два двоичных файла flashrom, один из которых считается стабильным ("старый"), а другой подлежит тестированию ("новый").

Проверку можно выполнить на локальном хосте или на удаленном хосте с доступом по SSH. Кроме того, как часть тестовой установки можно использовать внешний программатор (например, Servo, Dediprog и т. д.).

В этом руководстве мы узнаем, как установить flashrom на Ubuntu 20.04.

Что такое flashrom

flashrom — это инструмент для идентификации, чтения, записи, проверки и стирания флеш-чипов. Он часто используется для прошивки образов BIOS/EFI/coreboot/firmware/optionROM в системе с использованием поддерживаемой материнской платы, но он также поддерживает перепрошивку сетевых карт (NIC), карт контроллеров SATA и других внешних устройств, которые могут программировать флэш-чипы.< /p>

Он поддерживает широкий спектр микросхем DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32/40/48 и BGA, которые используют различные протоколы, такие как LPC, FWH, параллельная флэш-память или SPI.

Этот инструмент можно использовать, например, для прошивки образов BIOS/микропрограмм, будь то проприетарные образы BIOS или образы coreboot (ранее известные как LinuxBIOS).

Его также можно использовать для чтения текущей версии BIOS/прошивки с флэш-чипа.

В настоящее время поддерживаются следующие программисты:

  • внутренний (для внутрисистемной прошивки на материнской плате)
  • пустышка (виртуальный программатор для тестирования flashrom)
  • nic3com (для флэш-ПЗУ на сетевых картах 3COM)
  • nicrealtek (для флэш-ПЗУ на сетевых картах Realtek и SMC 1211)
  • nicnatsemi (для флэш-ПЗУ на сетевых картах National Semiconductor DP838*)
  • nicintel (для параллельных флэш-ПЗУ на сетевых картах Intel 10/100 Мбит)
  • gfxnvidia (для флэш-ПЗУ на видеокартах NVIDIA)
  • drkaiser (для флэш-ПЗУ на картах Dr. Kaiser PC-Waechter PCI)
  • satasii (для флэш-ПЗУ на контроллерах Silicon Image SATA/IDE)
  • satamv (для флэш-ПЗУ на контроллерах Marvell SATA)
  • atahpt (для флэш-ПЗУ на контроллерах Highpoint ATA/RAID)
  • atavia (для флэш-ПЗУ на SATA-контроллерах VIA VT6421A)
  • atapromise (для флэш-ПЗУ на контроллерах Promise PDC2026x ATA/RAID)
  • it8212 (для флэш-ПЗУ на ATA/RAID-контроллере ITE IT8212F)
  • ft2232_spi (для флэш-ПЗУ SPI, подключенных к USB-программатору SPI на основе семейства FT2232/FT4232H/FT232H), включая DLP Design DLP-USB1232H, мини-модуль FTDI FT2232H, мини-модуль FTDI FT4232H, openbiosprog-spi, Amontec JTAGkey /JTAGkey-tiny/JTAGkey-2, Dangerous Prototypes Bus Blaster, Olimex ARM-USB-TINY/-H, Olimex ARM-USB-OCD/-H, Многопротокольный USB-адаптер TIAO/DIYGADGET (TUMPA), TUMPA Lite, GOEPEL PicoTAP, Google Servo v1/v2 и отладочная плата FIC OpenMoko Neo1973.
  • serprog (для флэш-ПЗУ, подключенных к программисту, говорящему на serprog), включая прошивальщик AVR от Urja Rannikko, прошивальщик AVR от восемь точек, прошивальщик Arduino Mega от fritz, InSystemFlasher от Juhana Helovuo и прошивальщик atmegaXXu2 от Stefan Tauner.
  • buspirate_spi (для флэш-ПЗУ SPI, подключенного к Bus Pirate)
  • dediprog (для флэш-ПЗУ SPI, подключенного к Dediprog SF100)
  • rayer_spi (для флэш-ПЗУ SPI, подключенного к программатору RayeR на основе parport)
  • pony_spi (для флэш-ПЗУ SPI, подключенного к адаптеру последовательного порта SI-Prog)
  • nicintel_spi (для флэш-ПЗУ SPI на сетевых картах Intel Gigabit)
  • ogp_spi (для флэш-памяти SPI на графической карте Open Graphics Project)
  • linux_spi (для флэш-памяти SPI, доступной через /dev/spidevX.Y в Linux)
  • usbblaster_spi (для флэш-ПЗУ SPI, подключенного к Altera USB-Blaster)
  • nicintel_eeprom (для SPI EEPROM на сетевых картах Intel Gigabit)
  • mstarddc_spi (для флэш-ПЗУ SPI, доступных через DDC на дисплеях с MSTAR)
  • pickit2_spi (для флэш-ПЗУ SPI, доступных через Microchip PICkit2)
  • ch341a_spi (для флэш-ПЗУ SPI, подключенного к WCH CH341A)

Есть три способа установить flashrom в Ubuntu 20.04. Мы можем использовать apt-get, apt и aptitude. В следующих разделах мы опишем каждый метод. Вы можете выбрать один из них.

Установить flashrom с помощью apt-get

Обновите базу данных apt с помощью apt-get, используя следующую команду.

После обновления базы данных apt мы можем установить flashrom с помощью apt-get, выполнив следующую команду:

Установить flashrom с помощью apt

Обновите базу данных apt с помощью следующей команды.

После обновления базы данных apt мы можем установить flashrom с помощью apt, выполнив следующую команду:

Установить flashrom с помощью aptitude

Если вы хотите использовать этот метод, вам может потребоваться сначала установить aptitude, так как aptitude обычно не устанавливается по умолчанию в Ubuntu. Обновите базу данных apt с помощью aptitude с помощью следующей команды.

После обновления базы данных apt мы можем установить flashrom с помощью aptitude, выполнив следующую команду:

Как удалить flashrom в Ubuntu 20.04

Чтобы удалить только пакет flashrom, мы можем использовать следующую команду:

Удалить flashrom и его зависимости

Чтобы удалить flashrom и его зависимости, которые больше не нужны Ubuntu 20.04, мы можем использовать следующую команду:

Удалить конфигурации и данные flashrom

Чтобы удалить конфигурацию и данные flashrom из Ubuntu 20.04, мы можем использовать следующую команду:

Удалить конфигурацию flashrom, данные и все их зависимости

Мы можем использовать следующую команду для удаления конфигураций flashrom, данных и всех их зависимостей, мы можем использовать следующую команду:

Ссылки

Обзор

В этом руководстве мы узнаем, как установить flashrom на Ubuntu 20.04 с помощью различных инструментов управления пакетами, таких как apt, apt-get и aptitude.

Читайте также: