Обновление BIOS

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page BIOS Update and the translation is 95% complete.

Данная статья описывает, как применить обновление BIOS в системе Gentoo.

Производители оборудования часто предоставляют обновления для своих BIOS и других типов встроенного ПО. Способ обновления (часто упоминается как «перепрошивка») иногда не так хорош на GNU/Linux системах. Для этого иногда требуется некоторая дополнительная работа.

Предупреждение
Если оборудование работает, зачастую нет необходимости в обновлении BIOS. Если что-то пойдет не так, это может привести к неисправимому повреждению BIOS или прошивки, что приведет к потери гарантии. Будьте осторожны!
Заметка
The most prominent and widely used system has historically been the x86-based IBM PC compatible computer and its BIOS, which is why system firmware is sometimes called a BIOS even when it is not an IBM PC compatible BIOS, such as the AlphaBIOS of the DEC Alpha architecture or the OpenBIOS, an implementation of Open Firmware (IEEE-1275). EFI/UEFI, the successor of the PC BIOS, is also often called "(U)EFI-BIOS". Hence, the term "BIOS update" often refers to a system firmware update that is not really a PC BIOS.

This article focuses on the PC BIOS and early versions of its successor EFI/UEFI. On x86 (U)EFI System Class 1 and Class 2 have a BIOS compatible mode called "Legacy BIOS" or "CSM" (short for Compatiblity Support Module), which makes the UEFI behave like a PC BIOS. UEFI System Class 3, the standard since around 2020, no longer has a CSM.

On other firmwares the process of updating the system firmware may have similarities, but can also be completely different.

Сбор информации о прошивке

Сперва нужно найти производителя и модель материнской платы. Проверьте пользовательское руководство, которое поставляются вместе с компьютером. Множество нужной информации можно найти в пользовательском руководстве.

Можно использовать dmidecode для получения дополнительной информации о системном оборудовании. dmidecode смотрит в DMI таблицу материнской платы для того, чтобы найти более подробную информацию о программно-аппаратных и аппаратных компонентах.

root #dmidecode -t bios -t baseboard

Наконец, если возможен непосредственный доступ к материнской плате, то можно найти необходимую информацию на самой материнской плате.

Предупреждение
Прямой доступ к материнской плате может привести к потере гарантии!

После поиска прошивки от производителя, загрузите пакет необходимый для прошивки. Производители могут хранить пакет с обновленной прошивкой в .zip, .exe, или .iso формате.

user $unzip 7235v1A.zip
Archive:  7235v1A.zip
   creating: 7235v1A/
inflating: 7235v1A/7235v1x.txt
inflating: 7235v1A/AWFL865.EXE
inflating: 7235v1A/How to flash the BIOS.DOC
inflating: 7235v1A/W7235IMS.1A0

Вариант с BIOS

Многие BIOS имеют возможность прочитать новый образ (в двоичном формате) с внешнего внешнего носителя или внутреннего диска. Войдите в настройки BIOS и поищите эту возможность в меню. Если BIOS не поддерживает такую возможность, то продолжайте чтение статьи.

Загрузочный CD

Производители зачастую предлагают образ загрузочного CD-ROM. Файл должен быть с расширением .iso, чтобы надлежащим образом записать на пустой CD-R(W). Один из инструментов, который может это сделать - cdrecord:

root #cdrecord BOOT-CD.iso
Заметка
cdrecord предоставляется пакетом app-cdr/cdrtools.

Выберите в BIOS загрузку с компакт-диска и выполните инструкции с веб-сайта производителя или из руководства для пользователя.

Окружение FreeDOS

Заметка
В SystemRescue присутствует удобный загрузчик FreeDOS, который отлично подойдёт для этого и сэкономит много усилий, позволив пропустить данный раздел. Для подробностей см. примечание в конце раздела Использование SystemRescue для загрузки FreeDOS.

Можно использовать FreeDOS для запуска основанной на DOS утилиты для обновления BIOS. Сначала нужно создать свой образ FreeDOS, который будет содержать необходимые программы для перепрошивки. После создания образа, загрузите образ с помощью одного из методов, которые описаны ниже.

Скачайте FreeDOS и необходимые программы:

  • FreeDOS - скачайте файл fdboot.img
  • Загрузочный сектор FreeDOS - скачайте файл sys-freedos-linux.zip
  • Программа перепрошивки и новый BIOS с сайта производителя оборудования

Создание пользовательского образа FreeDOS

Сперва загрузите необходимое программное обеспечение и включите поддержку устройств обратной петли в ядре:

ЯДРО Поддержка loopback устройств
Device Drivers  --->
    [*] Block devices  --->
        <M>   Loopback device support

Если модуль не был загружен, то загрузите его с помощью modprobe:

root #modprobe loop

Установите необходимые программы:

root #emerge --ask dev-lang/nasm app-arch/unzip sys-fs/dosfstools

Создайте файл образа размером около 20МБ, используя команду dd. Имя должно быть freedos.img, если будете заменять файл, который находится на SystemRescue:

root #dd if=/dev/null of=freedos.img bs=1024 seek=20480

Создайте файловую систему в образе:

root #mkfs.fat freedos.img

Запишите загрузочный сектор в файл с образом:

root #unzip sys-freedos-linux.zip && ./sys-freedos.pl --disk=freedos.img

Теперь скопируйте файлы FreeDOS в новый образ.

Создайте точки монтирования:

root #mkdir -p /mnt/freedos /mnt/freedos_new

Смонтируйте изначальный образ:

root #mount -o loop fdboot.img /mnt/freedos

Смонтируйте новый образ:

root #mount -o loop freedos.img /mnt/freedos_new

Скопируйте файлы системы FreeDOS на новый образ:

root #cp -ar /mnt/freedos/* /mnt/freedos_new/

Теперь скопируйте программу для перепрошивки и новый BIOS в файл образа:

root #cp -ar FLASH-PROGRAM BIOS-UPDATE /mnt/freedos_new

Размонтируйте оба образа:

root #umount /mnt/freedos_new /mnt/freedos
Заметка
DOS может отобразить имена длиной только до 8 символов. Поэтому, возможно, неплохо будет переименовать некоторые из файлов, если длина имен файлов больше этого лимита.

Использование SystemRescue для загрузки FreeDOS

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

Скачивание SystemRescue и подготовка LiveUSB

  • SystemRescue — скачайте обычный ISO-образ.

Создание загрузочного флэш накопителя

Используйте стандартный метод для создания загрузочного диска SystemRescue — сценарий usb_inst.sh запросит всё необходимое для установки.

Предупреждение
Будут удалены все данные на устройстве! Будьте уверены, что важные данные были скопированы перед использованием устройства!

Создайте директорию в /mnt:

root #mkdir /mnt/SysRescue

Примонтируйте образ CD:

root #mount -o loop systemrescue-x86-VERSION.iso /mnt/SysRescue

Запустите установочный скрипт:

root #/mnt/SysRescue/usb_inst.sh

Отмонтируйте образ CD:

root #umount /mnt/SysRescue
Заметка
Если вы просто хотите обновить BIOS, нет необходимости возиться с образом FreeDOS в SystemRescue. После создания загрузочного SystemRescue описанным выше способом, смонтируйте USB-устройство. Скопируйте туда обновление DOS. Всё сделано! Загрузитесь с USB-устройства и выберите DOS tools ---> FREEDOS в стартовом меню SystemRescue. Вы найдёте обрезанное DOS-имя вашего файла с обновлением BIOS в каталоге A:. Если вы его не увидите, попробуйте C:. Я не думаю, что это повредит установку SystemRescue на USB-устройстве, но, если это произойдёт, достаточно легко создать образ заново, когда всё будет готово.

Замена образа FreeDOS

Мы собираемся заменить исходный образ FreeDOS на флэш-накопителе с SystemRescue.

Смонтируйте флэш-накопитель SystemRescue (/dev/sdX1 - имя должно соответствовать имени устройства флэш-накопителя):

root #mount /dev/sdX1 /mnt/SysRescue

Замените файл freedos.img:

root #cp freedos.img /mnt/SysRescue/bootdisk/

Размонтируйте накопитель SystemRescue:

root #umount /mnt/SysRescue

Загрузка образа FreeDOS прямо из GRUB

Для загрузки FreeDOS без всяких внешних носителей, можно использовать утилиту memdisk из syslinux для того, чтобы позволить grub (или другому загрузчику) загрузить образ FreeDOS.

root #emerge --ask sys-boot/syslinux

Смонтируйте раздел /boot (если это необходимо)

root #mount /boot

Скопируйте бинарный файл memdisk и созданный образ FreeDOS в /boot:

root #cp /usr/share/syslinux/memdisk /boot
root #cp freedos.img /boot

Отредактируйте /boot/grub/grub.conf и добавьте пункт меню для FreeDOS:

ФАЙЛ /boot/grub/grub.confПример пункта меню в grub.conf
title FreeDOS (BIOS update)
kernel /boot/memdisk floppy
initrd /boot/freedos.img

Обновление BIOS

Перезагрузитесь и выберите загрузку с USB накопителя или новую запись grub. Если используется SystemRescue, в приглашении GRUB введите:

freedos

Это должно загрузить в новый образ FreeDOS. Должно появиться приглашение DOS:

C:\>_

Теперь можно начать перепрошивку BIOS, выполняя инструкции от производителя. Некоторые полезные команды DOS:

cd <dir>
Сменить каталог
dir
Список файлов в текущем каталоге.
type [drive][path]filename
Отображает содержимое файла.

Flashrom

Некоторые материнские платы, возможно, поддерживает перепрошивку (с помощью пакета sys-apps/flashrom) напрямую из системы. В таком случае вам потребуется только образ BIOS. Пожалуйста, сначала проверьте список поддерживаемого оборудования.

Если железо поддерживается, то проверьте новый образ BIOS:

root #flashrom -v W7235IMS.1A0

Если все впорядке, то перепрошейте его:

root #flashrom -vw W7235IMS.1A0

UEFI Firmware Capsule

Заметка
Since EFI/UEFI is the successor of the PC BIOS on x86, the same tools as for BIOS updates were often used on early (U)EFI systems.

For modern UEFI, firmware updates can be upgraded using UEFI Capsules (introduced with UEFI 2.0[1]). This method is available on Linux and Windows.[2] Vendors have to provide firmware updates for the use with Linux, which they do via the Linux Vendor Firmware Service (LVFS).[3]

Refer to fwupd for further details.

Смотрите также

  • BIOS — the standard firmware of IBM-PC-compatible computers until it was phased out in 2020.
  • Bootable DOS USB stick — describes how to prepare a bootable USB stick which loads DOS using tools available in Gentoo.

Примечания