Как высветить встроенное микропрограммное обеспечение в соответствии с Linux на практике?

Я много лет использовал Unix и GNU/Linux, и говорил об операторах командной строки вслух чертовски много, и я никогда не слышал, что любой говорит "минус". На самом деле мы даже обычно не говорим "тире". Если я буду говорить с кем-то, и контекст ясен, то я буду просто говорить буквы опции; использование Вашего примера

rm -rf /

был бы объявлен "прибытием ими наклонная черта эффективности прибытия". Конечно, это не что-то, что я обычно говорю кому-то, как сделать, таким образом, это было бы больше похоже

rm -rf *

объявленное "прибытие их звезда эффективности прибытия". Иногда я говорю что тире, как

sudo yum -y update

Я сказал бы "soo тире конфетки теста почему обновление".

15
23.02.2015, 01:13
10 ответов

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

Относительно жестких дисков, снова, это - собственный вопрос. Seagate обеспечивает liveCDs и загрузки Windows для выполнения микропрограммных обновлений, но не инструментов Linux или Unix.

Можно создать загружаемые образы для ThinkPad обновления BIOS, которые могут быть загружены от GRUB.

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

С другой стороны, если Вы работаете с микроконтроллерами, можно часто программировать их с довольно универсальными инструментами, хотя все еще на ограниченной основе (например, микросхемы Atmel могут обычно программироваться с avrdude).

7
27.01.2020, 19:49

Мой маленький опыт состоит в том, что я использовал Flashrom для обновления моего Intel Motherboard BIOS, и он хорошо работал. В целом это походит на действительно хороший инструмент.

0
27.01.2020, 19:49
  • 1
    Вы могли отправить командную строку в качестве примера, которую Вы использовали для этого? –  maxschlepzig 15.09.2010, 19:50

Используя DOS обновляют дискету, загруженную с GRUB, как упомянуто перед работами для большинства аппаратных средств. В некоторых случаях можно найти собственные инструменты. Dell даже готовит репозитории, который интегрирует с дистрибутивом упаковочную систему:

http://linux.dell.com/wiki/index.php/Repository/firmware

К сожалению, большинство обновлений требует, чтобы перезагрузка машины завершилась.

0
27.01.2020, 19:49

Высвечиваясь с FreeDOS, одной перезагрузкой и никакими съемными устройствами

  1. Удостоверьтесь использование GRUB2 (проверка, если у Вас есть пакет grub-pc установленный на Ubuntu)
  2. Овладейте MEMDISK SYSLINUX. На Ubuntu установите пакет syslinux-common и Ваш memdisk будет находиться в /usr/lib/syslinux/memdisk
  3. Загрузите fdboot.img, сохраните его в Вашем корневом каталоге или некотором другом каталоге, который можно легко ввести с американской раскладкой клавиатуры
  4. Встройте свое программное обеспечение высвечивания в изображение FreeDOS:
    1. sudo -s
    2. mkdir -p /mnt/floppy
    3. mount -o loop -t msdos fdboot.img /mnt/floppy
    4. cp -via FLASH.EXE BIOS.IMG /mnt/floppy/ (FLASH.EXE и BIOS.IMG примеры),
    5. umount /mnt/floppy
  5. Загрузите свою систему и прервите ее в GRUB2 (нажмите ESC),
  6. Нажмите c для ввода командной строки GRUB2.
  7. Загрузка MEMDISK:
    1. Войти linux16 (hd. Теперь нажмите вкладку. Список жестких дисков покажут.
    2. Завершите выбор жесткого диска так, чтобы строка сказала linux16 (hd0,, например.
    3. Нажмите вкладку еще раз для получения списка разделов. Необходимо найти раздел где Ваш /usr/lib/syslinux смонтирован на в Вашей установке Linux.
    4. Теперь у Вас есть жесткий диск и спецификация раздела, можно завершить путь так, чтобы это было похоже на это: linux16 (hd0,msdos3)/usr/lib/syslinux/memdisk. Нажмите Enter.
  8. Загрузка FreeDOS:
    1. Используйте то же заполнение клавишей Tab для нахождения fdboot.img, но с командой initrd16 вместо linux16. Вы закончите со строкой как это: initrd16 (hd0,msdos3)/home/janus/fdboot.img. Нажмите Enter.
  9. Записать boot и нажмите Enter.
  10. Меню начальной загрузки FreeDOS появится.
  11. Выберите опцию "безопасного режима", поскольку Вам не нужны драйверы.
  12. В командной строке DOS напишите имя исполняемого файла высвечивания встроенного микропрограммного обеспечения, например: FLASH.EXE. Нажмите Enter.
  13. Ожидайте высвечивания для окончания.
  14. Микропрограммный проблесковый сигнал мог бы загрузить саму машину, или Вы могли бы вернуть подсказку. Если Вы возвращаете подсказку, press Control-Alt-Delete к перезагрузке.
  15. Поскольку Вы не изменили конфигурацию GRUB постоянно, она загрузится назад в Вашу ОС по умолчанию.

Если существует недостаточно пространства на изображении, используйте наименьшее изображение от chtaube.eu. Распакуйте изображение и отфильтруйте его хотя xxd. Теперь поиск 55aa. Это должно быть в 0x1fe. Можно смонтировать изображение с offset=$((0x200)) как дополнительный флаг монтирования. Остерегайтесь этого $(()) синтаксис является определенным для Bash, но будет также работать в Zsh.

С другой стороны, см. https://www.fladi.at/posts/large-freedos-boot-image/

11
27.01.2020, 19:49
  • 1
    Необходимо обновить существующий ответ вместо того, чтобы копировать его. –  maxschlepzig 26.07.2012, 21:15
  • 2
    я предложил бы поместить те строки в grub.cfg для создания этого записью меню. Легче скопировать и вставить их или по крайней мере перепечатать использование реального текстового редактора. –  derobert 06.02.2013, 00:24
  • 3
    @derobert: Как я нахожу устройство Grub2 и идентификатор раздела надежно? Необходимо было бы знать это при выпекании его в конфигурацию. Вот почему заполнение клавишей Tab хорошо. –  Janus Troelsen 06.02.2013, 01:12
  • 4
    @derobert: действительно ли Вы уверены, что говорите о Grub2? Тот формат похож на Grub0.* мне. Когда msdos предварительно ожидаемый? Я попытаюсь ответить на Ваш вопрос, если Вы отправите его.Дайте мне знать. –  Janus Troelsen 06.02.2013, 01:29
  • 5
    @ysangkok это - и grub1 и grub2, MS-DOS, является просто типом раздела... У меня нет вопроса спросить, я думал, что Вы сделали ("Как я нахожу устройство Grub2 и идентификатор раздела надежно?"). –  derobert 06.02.2013, 01:37

для видео Seagate 3 ТБ (ST3000VX000-9YW1):

sg_write_buffer -v -m 5 -I <FW file> <dev>
6
27.01.2020, 19:49

Попытка:

hdparm --fwdownload (И БЫТЬ ОЧЕНЬ ОСТОРОЖНЫМ!)

Однако будьте осторожны!

0
27.01.2020, 19:49

Я успешно прошил диск Seagate Barracuda 7200.12 ST31000528AS (1 ТБ SATA) следующим методом: (Используйте на свой страх и риск! )

  1. Загрузите ISO из Seagate: http://www.seagate.com/staticfiles/support/downloads/firmware/Barracuda12-ALL-CC49.iso
  2. mount/extract PH-CC49.ima from .iso file
  3. ddd на флеш-накопитель USB: dd if=./PH-CC49.ima of=/dev/sdX bs=512k
  4. Выключите компьютер и отсоедините все диски, кроме дисков для прошивки
  5. Загрузитесь с USB-флеш-накопителя (это загрузится в утилиту обновления прошивки Seagate
  6. Следуйте простым инструкциям на экране, чтобы прошить диск(ы)
  7. Выключите компьютер, снова подключите все обратно и включите

Вот и все! Ни Windows, ни громоздких компакт-дисков, ни редактирования Grub, ни FreeDos, ни неиспользуемых Windows .exe (пробовал, но не получилось с непонятным сообщением об ошибке)

Кредит идет на источник: http://ubuntuaddicted.blogspot.ca/2014/10/seagate-firmware-flash-using-usb.html (нашла его, найдя PH-CC49.ima)

.
3
27.01.2020, 19:49

. Вы можете использовать flashrom для обновления BIOS материнской платы.

Пример (Abit KN9 Ultra):

Плата представляет собой плату AMD Athlon 64, сокет AM2, набор микросхем Nvidia, выпущенную в 2006 году. Она имеет заменяемый флеш-чип емкостью 256 КБ. BIOS имеет маркировку «Award», которая, по всей видимости, является торговой маркой Phoenix.

Flashrom поддерживает этот набор микросхем и эту микросхему флэш-памяти.

Поддержка может быть протестирована с помощью такой команды:

# flashrom --programmer internal
Calibrating delay loop... OK.
Found chipset "NVIDIA MCP55".
Enabling flash write... OK.
Enabling full flash access for board "abit KN9 Ultra"... OK.
Found PMC flash chip "Pm49FL004" (512 kB, LPC, FWH) mapped at physical address 0x00000000fff80000.

Имеет смысл сначала сделать резервную копию текущего содержимого флеш-чипа:

# flashrom --programmer internal -c Pm49FL004 -r backup.bin

Затем его можно сравнить с файлом ванильного образа от поставщика (используя, например, xxd и vimdiff ).

Ожидаются некоторые различия, потому что некоторые BIOS также хранят дополнительную информацию (например, DMI) и конфигурацию (например, MAC-адреса) во флэш-памяти. То же самое и с Abit KN9 Ultra. Данные DMI хранятся в первых 1872 байтах и ​​легко повторно генерируются BIOS во время загрузки. MAC-адреса хранятся по смещению 0x74E30.

Файлы прошивки производителя упакованы в zip-архив, содержащий awdflash.exe и файл BIN , например M520A_23.BIN . В этом примере bin-файл содержит образ BIOS как есть, т. Е. Он может быть записан непосредственно во флеш-чип с помощью команды вида:

# flashrom --programmer internal -c Pm49FL004 -w M520A_23.BIN

Calibrating delay loop... OK.
Found chipset "NVIDIA MCP55".
Enabling flash write... OK.
Enabling full flash access for board "abit KN9 Ultra"... OK.
Found PMC flash chip "Pm49FL004" (512 kB, LPC, FWH) mapped at physical address 0x00000000fff80000.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.

В зависимости от обновления может потребоваться очистить CMOS для следующей перезагрузки - иначе BIOS может не запуститься. На этой плате CMOS можно очистить с помощью перемычки. Также возможна очистка с помощью программного обеспечения (например, через CmosPwd ).

Для сохранения уникальных MAC-адресов по умолчанию, новый образ производителя может быть исправлен перед прошивкой, например:

dd if=backup.bin of=mac.bin bs=1 count=16 skip=$(echo 16 i 74E30 p | dc)
dd if=mac.bin of=M520A_23_with_mac.bin bs=1 seek=$(echo 16 i 74E30 p | dc) \
   conv=notrunc

Ловушки:

1
27.01.2020, 19:49

Для моего seagate ST2000NM0024-1HT174 я сделал так: загрузил микропрограмму с seagate и сохранил ее в USB-ключе. перезагрузил мой компьютер с живым usb (или dvd) linux mint mate 17.3. и разархивировал всю утилиту seagate прямо на рабочий стол. скопировал команду прошивки на рабочий стол, затем переименовал команду seaflashlin_33_054 в более простую форму seaflashlin После открытия терминала и написания:

mint@mint ~ $ sudo su    (enter in Superuser live mint)

mint mint # cd Desktop

mint Desktop # ./seaflashlin

bash: ./seaflashlin: Permission denied 

(Ошибка! Я действительно меняю файл разрешений )

mint Desktop # ls -l
total 69284
drwxr-xr-x 5 mint mint      120 Nov  3 11:14 EntCap-Makara-SATA-SN05
-rw-r--r-- 1 mint mint 68386705 Nov  2 19:36 EntCap-Makara-SATA-SN05.zip
-rw-r--r-- 1 mint mint  2032640 Sep 10  2015 MakaraEntCapSATA-STD-512E-SN05.LOD
-rw-r--r-- 1 mint mint      312 Dec 17  2015 MK-SN05.CFS
-rw-r--r-- 1 mint mint   369127 Sep 11  2015 READMEFIRST-EnterpriseCapacity3.5-Makara-SATA firmware update.pdf
-rw-r--r-- 1 mint mint   104280 Oct 26  2015 seaflashlin
-rw-r--r-- 1 mint mint    31848 Oct 26  2015 seaflashlin.046.txt
-rwxr-xr-x 1 mint mint     7874 Nov  3 11:13 ubiquity.desktop

mint Desktop # chmod ugo+rxw *

mint Desktop # ls -l

total 69284
drwxrwxrwx 5 mint mint      120 Nov  3 11:14 EntCap-Makara-SATA-SN05
-rwxrwxrwx 1 mint mint 68386705 Nov  2 19:36 EntCap-Makara-SATA-SN05.zip
-rwxrwxrwx 1 mint mint  2032640 Sep 10  2015 MakaraEntCapSATA-STD-512E-SN05.LOD
-rwxrwxrwx 1 mint mint      312 Dec 17  2015 MK-SN05.CFS
-rwxrwxrwx 1 mint mint   369127 Sep 11  2015 READMEFIRST-EnterpriseCapacity3.5-Makara-SATA firmware update.pdf
-rwxrwxrwx 1 mint mint   104280 Oct 26  2015 seaflashlin
-rwxrwxrwx 1 mint mint    31848 Oct 26  2015 seaflashlin.046.txt
-rwxrwxrwx 1 mint mint     7874 Nov  3 11:13 ubiquity.desktop

mint Desktop # ./seaflashlin  

usage:
seaflashlin_i386 {-m <model_number> -f <fw_file> | -c <cfs_file>} [-d <sg_device>]
seaflashlin_i386 -f <fw_file> -d <sg_device>

Options:
    -i  PRINT IDENT INFO
    -v  PRINT VERSION AND EXIT (overrides all other arguments)
    -l  SHOW LICENSE
    -o  TIMEOUT VALUE (seconds)
    -x  TEST CFS FILE
Modes supported:
    -e  DEFERRED SIZE (ATA ONLY)
    -s  SEGMENT SIZE (1 segment = 512 bytes)
    -p  FORCE ATA PASSTHROUGH
    -w  FORCE WRITE BUFFER CMD
    -u  NON-SEGMENTED
e.g:
    seaflashlin_i386 -s 64 -f test.lod -d /dev/sg0
returns:
    0    No error found
    1    Fatal error in command line options
    2    FW Download Failed
    3    Invalid device

mint Desktop # ./seaflashlin -i

================================================================================
 Seagate Firmware Download Utility v0.4.6 Build Date: Oct 26 2015
 Copyright (c) 2014 Seagate Technology LLC, All Rights Reserved
 Thu Nov  3 11:20:52 2016
================================================================================
ATA       /dev/sg0 MN: ST2000NM0024-1HT174     SN: Z4H010XY             FW: SN02
PIONEER   /dev/sg1 MN: DVD-RW  DVR-221         SN:                      FW: 1.00
PIONEER   /dev/sg2 MN: DVD-RW  DVR-221         SN:                      FW: 1.00
SanDisk   /dev/sg3 MN: Cruzer Micro            SN:                      FW: 8.02

(это подтверждает, что моя прошивка имеет версию SN02, а HD находится в / dev / sg0)

Теперь я могу прошить BIOS с помощью: (xxx.LOD = прошивка жесткого диска)

mint Desktop # ./seaflashlin -f MakaraEntCapSATA-STD-512E-SN05.LOD -d /dev/sg0

================================================================================
 Seagate Firmware Download Utility v0.4.6 Build Date: Oct 26 2015
 Copyright (c) 2014 Seagate Technology LLC, All Rights Reserved
 Thu Nov  3 11:26:21 2016
================================================================================
Flashing microcode file MakaraEntCapSATA-STD-512E-SN05.LOD to /dev/sg0
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  :  !
Microcode Download to /dev/sg0 SUCCESSFUL

mint Desktop # ./seaflashlin -i
================================================================================
 Seagate Firmware Download Utility v0.4.6 Build Date: Oct 26 2015
 Copyright (c) 2014 Seagate Technology LLC, All Rights Reserved
 Thu Nov  3 11:26:45 2016
================================================================================
ATA       /dev/sg0 MN: ST2000NM0024-1HT174     SN: Z4H010XY             FW: SN05
PIONEER   /dev/sg1 MN: DVD-RW  DVR-221         SN:                      FW: 1.00
PIONEER   /dev/sg2 MN: DVD-RW  DVR-221         SN:                      FW: 1.00
SanDisk   /dev/sg3 MN: Cruzer Micro            SN:                      FW: 8.02

, подтверждающих, что BIOS заменяется с SN02 на SN05

Очень опасно, используйте это на свой страх и риск!

Удачи!

2
27.01.2020, 19:49

Хотя это не было доступно, когда был задан этот вопрос, теперь можно обновить прошивку через проект fwupd, когда эта прошивка предоставляется в виде «капсульного» файла, который, по-видимому, является стандартом, используемым при выполнении обновлений, опосредованных EFI (при следующей перезагрузке)

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

sudo fwupdate -l

Затем указание сохранить файл CAP в нужном месте для установки при следующей загрузке через:

sudo fwupdate -a {<my-device-uuid-here>}./<my-capfile_name>.cap

Хотя в этом ответе нет возможности вдаваться во все подробности, дополнительную информацию можно найти по адресу:

1
07.02.2021, 21:00

Теги

Похожие вопросы