This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Обновление BIOS
This article describes how to apply a BIOS update on a Gentoo system.
Производители оборудования часто предоставляют обновления для своих BIOS и других типов встроенного ПО. Способ обновления (часто упоминается как "перепрошивка") иногда не так хорош на GNU/Linux системах. Для этого иногда требуется некоторая дополнительная работа.
Если оборудование работает, зачастую нет необходимости в обновлении BIOS. Если что-то пойдет не так, это может привести к неисправимому повреждению BIOS или прошивки, что приведет к потери гарантии. Будьте осторожны!
Сбор информации о прошивке
Сперва нужно найти производителя и модель материнской платы. Проверьте пользовательское руководство, которое поставляются вместе с компьютером. Множество нужной информации можно найти в пользовательском руководстве.
Можно использовать пакет sys-apps/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 и app-cdr/cdrkit.
Выберите в BIOS загрузку с компакт-диска и выполните инструкции с веб-сайта производителя или из руководства для пользователя.
Окружение FreeDOS
There is a convenient FreeDOS boot on the SystemRescueCD that works well for this and will save much effort, allowing readers to skip this section. See the note at the end of the "Using SystemRescueCD to boot FreeDOS" section for details.
Можно использовать FreeDOS для запуска основанной на DOS утилиты для обновления BIOS. Сначала нужно создать свой образ FreeDOS, который будет содержать необходимые программы для перепрошивки. После создания образа, загрузите образ с помощью одного из методов, которые описаны ниже.
Скачайте FreeDOS и необходимые программы:
- FreeDOS - скачайте файл fdboot.img
- Загрузочный сектор FreeDOS - скачайте файл sys-freedos-linux.zip
- Программа перепрошивки и новый BIOS с сайта производителя оборудования
Создание пользовательского образа FreeDOS
Сперва загрузите необходимое программное обеспечение и включите поддержку устройств обратной петли в ядре:
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, если будете заменять файл, который находится на SystemRescueCD:
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 символов. Поэтому, возможно, неплохо будет переименовать некоторые из файлов, если длина имен файлов больше этого лимита.
Использование SystemRescueCD для загрузки FreeDOS
SystemRescueCD включает в себя версию из FreeDOS. Эта версия может заменить оригинальный образ и создать загрузочное устройство, которое содержит необходимые программы для прожига прошивки.
Скачивание SystemRescueCD и подготовка LiveUSB
- SystemRescueCD - скачайте обычный ISO-образ.
Создание загрузочного флэш накопителя
Используя стандартный метод для создания загрузочного диска SystemRescueCD, скрипт usb_inst.sh содержит руководство по установке.
Будут удалены все данные на устройстве! Будьте уверены, что важные данные были скопированы перед использованием устройства!
Создайте директорию в /mnt:
root #
mkdir /mnt/SysRescueCD
Примонтируйте образ CD:
root #
mount -o loop systemrescuecd-x86-VERSION.iso /mnt/SysRescueCD
Запустите установочный скрипт:
root #
/mnt/SysRescueCD/usb_inst.sh
Отмонтируйте образ CD:
root #
umount /mnt/SysRescueCD
If you simply wish to update your bios, there is no need to tinker with the FreeDOS image on SystemRescueCD. After creating the bootable SystemRescueCD stick as described above mount the usb stick to a directory. Copy the bios update there. You are done! Boot on the usb stick and choose Dos tools ---> FREEDOS from the systemrescuecd startup menu. You will find the dos truncated name of your bios update file in the A: directory. If you don't see it try C:. I don't believe this harms the systemrescuecd instance on the usb stick, but if it does it's easy enough to recreate when you are done.
Замена образа FreeDOS
Мы собираемся заменить исходный образ FreeDOS на флэш-накопителе с SystemRescueCD.
Смонтируйте флэш-накопитель SystemRescueCD (/dev/sdX1 - имя должно соответствовать имени устройства флэш-накопителя):
root #
mount /dev/sdX1 /mnt/SysRescueCD
Замените файл freedos.img:
root #
cp freedos.img /mnt/SysRescueCD/bootdisk/
Размонтируйте накопитель SystemRescueCD:
root #
umount /mnt/SysRescueCD
Загрузка образа 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:
title FreeDOS (BIOS update) kernel /boot/memdisk floppy initrd /boot/freedos.img
Обновление BIOS
Перезагрузитесь и выберите загрузку с USB накопителя или новую запись grub. Если используется SystemRescueCD, в приглашении 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