Aktualisierung des 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 50% complete.

Dieser Artikel beschreibt die Durchführung einer BIOS-Aktualisierung, auch BIOS-Update, auf einem Gentoo-System.

Hardware-Hersteller stellen oft Aktualisierungen für das BIOS und andere Firmware bereit. Diese einzuspielen (auch "flashen" genannt, vom Englischen "(to) flash") ist jedoch unter teilweise GNU/Linux-Systemen nicht ganz so einfach. Gelegentlich erfordert es zusätzliche Arbeit.

Warnung
Wenn die Hardware betriebsfähig ist, gibt es oft keine Veranlassung zur Aktualisierung des BIOS. Denn läuft dabei etwas schief, kann dies zu einem permanent beschädigten System-Firmware (wie dem BIOS) führen, was das Erlöschen der Garantie für die Hardware bedeuten kann. Bitte fahren Sie daher nur mit äußerster Vorsicht fort!
Hinweis
Das prominenteste und am meisten genutzte System sind historisch die x86-basierten IBM PCs & Kompatiblen mit BIOS, weshalb System-Firmware generell auch oft als BIOS bezeichnet wird, selbst wenn es sich gar nicht um ein IBM-PC-kompatibles BIOS handelt, wie etwa beim AlphaBIOS der DEC-Alpha-Architektur oder beim OpenBIOS, einer Open-Firmware-Implementierung (IEEE-1275). Auch EFI bzw. UEFI, der Nachfolger des BIOS am IBM-kompatiblen PC, wird oft als "(U)EFI-BIOS" bezeichnet. Daher bezeichnet der Begriff "BIOS-Update" oft die Aktualisierung einer System-Firmware im Allgemeinen, selbst wenn diese kein PC-BIOS ist.

Dieser Artikel ist speziell auf das PC-BIOS und frühe Versionen dessen Nachfolgers EFI/UEFI ausgerichtet. Auf der x86-Architektur hat (U)EFI System Class 1 und Class 2 einen BIOS-kompatiblen Modus, der auch "Legacy BIOS" oder "CSM" (für Compatiblity Support Module) bezeichnet wird, in dem sich UEFI wie ein PC-BIOS verhält. UEFI System Class 3, das um 2020 zum Standard wurde, hat kein CSM mehr.

Mit einer anderen System-Firmware kann der Prozess der Anwendung einer Firmware-Aktualisierung Ähnlichkeiten aufweisen, oder aber komplett unterschiedlich sein.

Informationen über die Firmware ermitteln

Finden Sie zuerst den Hersteller und das Modell der Hauptplatine heraus. Prüfen Sie dazu das Benutzerhandbuch, das mit Ihrem System ausgeliefert wurde. Ein Großteil der benötigten Informationen findet sich im Benutzerhandbuch.

Das Paket dmidecode kann dazu verwendet werden, Informationen über die System-Hardware zu ermitteln. dmidecode liest die DMI-Tabelle der Hauptplatine und gibt detailierte Informationen über die enthaltene Firmware und Hardware-Komponenten aus.

root #dmidecode -t bios -t baseboard

Zu guter Letzt finden sich Hersteller und Modell fast immer auf der Hauptplatine selbst, was jedoch physischen Zugang ins Innere des Computers erfordert, zumindest also das Öffnen des Gehäuses.

Warnung
Zugriff auf die Hauptplatine eines Computers kann zum Verlust der Garantie durch den Hersteller führen!

Nach erfolgreicher Firmware-Aktualisierungs-Suche für des korrekte Modell des jeweiligen Herstellers fahren Sie bitte damit fort, das entsprechende Paket herunterzuladen. Es ist normal, dass die Hersteller die Update-Pakete in .zip-, .exe- oder .iso-Dateien packen.

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

Auswahl im BIOS

In einigen BIOS-Varianten findet sich die Möglichkeit, eine Aktualisierung aus einer Binärdatei von einem externen Speichermedium oder der internen Festplatte direkt vom BIOS heraus zu laden. Gehen Sie dazu bitte ins BIOS-Setup und suchen Sie nach einer entsprechenden Auswahl. Bietet das BIOS diese Funktion nicht, fahren Sie bitte mit dem nächsten Abschnitt fort.

Boot-CD

Manchmal stellen Herstelle ein startfähiges CD-ROM-Abbild zum Herunterladen bereit. Derartige Abbilder haben die Dateinamenserweiterung .iso und sollten auf ein leeres CD-R(W)-Medium übertragen ("gebrannt") werden. Eines der Programme, das ein Brennen eines ISO-Abbilds ermöglicht, ist cdrecord:

root #cdrecord BOOT-CD.iso
Hinweis
cdrecord ist im Paket app-cdr/cdrtools enthalten.

Wählen Sie in der BIOS-Startauswahl das CD-Laufwerk und folgen Sie den Anweisungen des Herstellers auf dessen Webseite oder im Benutzerhandbuch.

FreeDOS-Umgebung

Hinweis
Von SystemRescue gibt es ein zweckmäßiges FreeDOS-Startmedium, das gut funktioniert, größere Mühen erspart und es Lesern erlaubt, diesen Abschnitt zu überspringen. Lesen Sie dazu jedoch unbedingt den Abschnitt SystemRescue zum Starten von FreeDOS verwenden für weitere Einzelheiten.

FreeDOS kann dazu verwendet werden, DOS-basierte BIOS-Aktualisierungsprogramme zu verwenden. Dazu muss ein maßgeschneidertes FreeDOS-Startmedium, das die notwendigen BIOS-Dienstprogramme enthält, erzeugt werden. Sobald Sie ein passendes FreeDOS-Abbild erzeugt haben, können Sie es zum Starten (auch "booten", von engl. (to) boot) mit einer der im Folgenden beschriebenen Methoden verwenden.

Laden Sie sowohl FreeDOS als auch die benötigten Dienstprogramme herunter:

  • FreeDOS – Laden Sie fdboot.img herunter.
  • FreeDOS-Bootsektor – Laden Sie die Datei sys-freedos-linux.zip herunter.
  • Laden Sie das DOS-Flash-Program und das aktualisierte BIOS von der Webseite des Herstellers herunter.

Erstellen eines maßgeschneiderten FreeDOS-Speicherabbilds

Zuerst landen Sie bitte die benötigte Software herunter und stellen Sie sicher, dass das Loopback-Gerät im Linux-Kernel aktiviert ist:

KERNEL Aktivierung des Loopback-Geräts
Device Drivers  --->
    [*] Block devices  --->
        <M>   Loopback device support

Sollte das Kernel-Modul noch nicht geladen sein, verwenden Sie bitte modprobe um dies nachzuholen:

root #modprobe loop

Installieren Sie die benötigte Software:

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

Erstellen Sie mit dem Kommando dd eine Speicherabbild-Datei von rund 20 MB. Um die FreeDOS-Startoption von SystemRescue zu ersetzen, muss der Dateiname freedos.img lauten:

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

Erstellen Sie nun ein Dateisystem in der eben erstellen Abbilddatei:

root #mkfs.fat freedos.img

Schreiben Sie den Bootsektor in die Abbilddatei:

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

Kopieren Sie nun die FreeDOS-Dateien in das neu erstellte Abbild.

Erstellen Sie Verzeichnisse für die Einhängepunkte:

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

Hängen Sie dort das originale Abbild ein:

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

Hängen Sie das neue Abbild ein:

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

Kopieren Sie die Systemdateien in das neue Abbild:

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

Kopieren Sie nun das Flash-Programm und die aktualisierte BIOS-Datei in das FreeDOS-Abbild:

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

Hängen Sie beide Abbilder nun wieder aus:

root #umount /mnt/freedos_new /mnt/freedos
Hinweis
DOS kann nun Dateinamen mit einer Länge von acht Zeichen darstellen. Es ist eine gute Idee, längere Dateinamen in Namen unterhalb dieses Zeichenlimits umzubenennen.

SystemRescue zum Starten von FreeDOS verwenden

The SystemRescue comes with a version of FreeDOS. This version can replace the original image and create a bootable memory stick which contains the needed programs to flash the firmware.

Download SystemRescue and prepare LiveUSB

Create a bootable memory stick

Use the default method to create the SystemRescue boot medium, the script usb_inst.sh will provide guidance through the installation.

Warnung
This will delete any data on the memory stick! Be sure all data has been properly backed up before using the memory stick for this task!

Create the folder in /mnt:

root #mkdir /mnt/SysRescue

Mount the CD image:

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

Start the installation script:

root #/mnt/SysRescue/usb_inst.sh

Unmount the CD image:

root #umount /mnt/SysRescue
Hinweis
If you simply wish to update your BIOS, there is no need to tinker with the FreeDOS image on SystemRescue. After creating the bootable SystemRescue 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 SystemRescue 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 SystemRescue instance on the USB stick, but if it does it is easy enough to recreate when you are done.

Replace the FreeDOS image

It is time to replace the original FreeDOS image on the SystemRescue memory stick.

Mount the SystemRescue memory stick (/dev/sdX1 needs to be replaced by the device name of the memory stick):

root #mount /dev/sdX1 /mnt/SysRescue

Replace the freedos.img file:

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

Unmount the SystemRescue memory stick:

root #umount /mnt/SysRescue

Booting the FreeDOS image from GRUB directly

To boot FreeDOS without any external media use the memdisk tool from syslinux to allow grub (or another bootloader) to boot the FreeDOS image directly.

root #emerge --ask sys-boot/syslinux

Mount the /boot partition (if needed):

root #mount /boot

Copy the memdisk binary and the newly built FreeDOS image to /boot:

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

Edit /boot/grub/grub.conf and add an entry for FreeDOS:

DATEI /boot/grub/grub.confExample grub.conf entry
title FreeDOS (BIOS update)
kernel /boot/memdisk floppy
initrd /boot/freedos.img

BIOS update

Restart and choose to boot from the USB memory stick or the new grub entry. When using SystemRescue, in the GRUB command line type:

freedos

This should boot into the new FreeDOS image. The DOS prompt should appear:

C:\>_

Now start the BIOS update by following the manufacturers instructions. Some useful commands in DOS:

cd <dir>
Change to the directory.
dir
List the files in the current directory.
type [drive][path]filename
Display the contents of a file.

Flashrom

Some motherboards can support flashing (via the sys-apps/flashrom package) directly from the system. In this case the only needed component is the BIOS image. Before continuing this path, first check the list of supported hardware.

If the hardware is supported, verify the new BIOS image:

root #flashrom -v W7235IMS.1A0

If everything checks out, then flash it:

root #flashrom -vw W7235IMS.1A0

UEFI Firmware Capsule

Hinweis
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.

Siehe auch

  • 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.

References