Ich persönlich habe für mich mal entschieden in Sachen Microcode-Updates nicht mehr mit BIOS-Updates zu arbeiten. Aus mehreren Gründen. Es geht damit los, dass viel zu viele Hardware schon nach höchstens einigen Jahren keine BIOS-Updates mehr bekommt. Wenn überhaupt. Außerdem sind die Mainboard- und Systemhersteller träge, wenn es Updates gibt, kommen sie nicht selten mit Wochen oder sogar Monaten Verzögerung. Aus genau dieser Argumentation heraus ist auch Microsoft nach vielen Jahren der Verweigerungshaltung nun doch dazu übergegangen Microcode-Updates ohne 3rd Party Treiber aus Windows heraus zu ermöglichen und die Images per Windows Update auszuliefern.
Dazu kommt, dass BIOS-Updates händisch eingespielt werden müssen. Ich muss für jedes System regelmäßig schauen, ob es Updates gibt, Downtime anberäumen, das Update flashen... Es nervt. Und nicht zuletzt hatte ich über die Jahre einfach zu viele problematische BIOS-Updates, als das ich sie noch unbedarft einspielen würde. Das Fass zum Überlaufen brachte mein Dell XPS 13, in das ich ein Update mit defektem Skylake-Microcode eingespielt hatte. Aus "Sicherheitsgründen" ließ das System kein Downgrade mehr zu, Dells lapidare Meinung dazu war, dass ich auf das nächste Update warten müsse. Was erst nach Wochen kam.
Nimmt man einfach das Microcode-Paket und den im System integrierten Updater muss man sich um nichts kümmern. Das Paket aktualisiert von alleine mit und wenn es ein Problem geben sollte, macht man darauf halt ein Downgrade.
FreeBSD bis einschließlich 11.2 kann Microcode-Updates erst nach dem Boot einspielen:
- sysutils/devcpu-data installieren
- In der rc.conf 'microcode_update_enable="YES"' setzen
Der Nachteil dabei ist, dass das System mit veraltetem Microcode hochfährt. Wenn der Microcode größere Fehler aufweist, kommt es vielleicht gar nicht so weit oder ist schon inkonsistent. Wenn Software die per Microcode-Update in die CPU gepatchten Features nutzen will, sind diese beim Software-Start vielleicht noch nicht verfügbar.
Ab FreeBSD 12.0 können Microcode-Updates wie unter Linux auch früh im Boot eingespielt werden:
- sysutils/devcpu-data installieren
- In der loader.conf 'cpu_microcode_load="YES"' und besser auch noch 'cpu_microcode_name="/boot/firmware/intel-ucode.bin"' setzen.
Laut Manpage funktioniert das aber nur für Intel. Das hatte ich nicht beachtet, als ich gestern
@h^2 den Tipp gab.