URL: https://www.overclockers.at/linux/wie-werde-ich-aus-intels-microcodes-fr-linux-schlau-cpu-identifikation-usw_250524/page_1 - zur Vollversion wechseln!
Diese Frage wollte ich früher schon stellen, aber dank Meltdown/Spectre ist mir wieder eingefallen, daß ich sowas machen wollte; Nämlich µCodes aus dem [Paket von Intel für Linux] zu nehmen, und in alte BIOSes zu patchen, die ansonsten keinerlei Updates mehr bekommen würden (und auf deren Maschinen tlw. auch kein Linux läuft).
Aber ich habe KEINE Ahnung wie ich meine exakten Ziel-CPUs in diesen Updatefiles finde?!
Speziell bei älteren Releases (die keine beiliegenden Binaries hatten) ist das irgendwie nicht so einfach? Und Releasenotes haben auch die wenigsten Pakete.
Ich entpacke die µCodes halt Mal, und wandle die beiliegende Textdatei microcode.dat mit dem [iucode_tool] in die Binärversionen um, also irgendwie so, hier Mal mit den neuesten µCodes von Intel:
Code:$ tar -xzvf ./microcode-20180108.tgz $ mkdir ./out/ $ iucode_tool -t d -L --write-named-to=./out/ ./microcode.dat
Code:06-1d-01 06-1e-05 06-25-02 06-25-05
Code:s000306C3_m00000032_r00000023.fw s000306D4_m000000C0_r00000028.fw s000306E4_m000000ED_r0000042A.fw s000306E6_m000000ED_r00000600.fw s000306E7_m000000ED_r0000070D.fw s000306F2_m0000006F_r0000003B.fw
Code:$ find . -iname "*0206c2*" ./20100914/out/s000206C2_m00000003_r00000013.fw ./20100826/out/s000206C2_m00000003_r0000000F.fw
Code:$ diff ./06C2-Rev13.bin ./20100914/out/s000206C2_m00000003_r00000013.fw Binary files 06C2-Rev13.bin and 20100914/out/s000206C2_m00000003_r00000013.fw differ
gibts für deine distro keine fertiges paket dafür?
zb so in archlinux
Klar gibt's das, aber um das geht's mir ja nicht. Ich will die Microcodes aus dem Linux Paket RAUS extrahieren und in ein echtes BIOS patchen können, damit die aktualisierten µCodes auch für andere Betriebssysteme zur Verfügung stehen, für die evtl. kein solches Update mehr zur Verfügung gestellt wird. Oder auch, um Mainboards mit CPUs betreiben zu können, die sonst nicht drauf laufen.
Und ich habe es jetzt auch zuwege gebracht, dank ein wenig Hex Editing! Die AMI BIOSes für mein Board haben einfach hinten noch ein 1kiB großes Zero Padding dran, und AMI MMTool verweigert das Einpflegen der µCodes in das BIOS Image, wenn dieses Zero Padding fehlt.
So kann ich jetzt also die den Linux µCodes aufbereiten um mir ein damit ausgestattetes, flashbares BIOS Image zu bauen:
Code:$ dd bs=1 count=1024 if=/dev/zero of=./1kiB-zero-padding.bin $ cat ./20100914/out/s000206C2_m00000003_r00000013.fw ./1kiB-zero-padding.bin > ./0x206C2-rev.13.bin
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025