• Sicherheitsmaßnahme! Bitte ändere dein Forum-Passwort. Siehe Beitrag
  • Hardwareluxx führt derzeit die Hardware-Umfrage 2026 (mit Gewinnspiel) durch und bittet um eure Stimme. Unter allen Teilnehmern verlosen wir eine aktuelle Grafikkarte Eurer Wahl bis 1099 EUR.

[Sammelthread] Dell PowerEdge T20

Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Da ich nun nach über 12 Jahren geupgradet habe und meine T20 Server verkaufen möchte, wollte ich als letztes Bastelprojekt etwas nachholen, was ich schon seit langer Zeit im Kopf hatte: NVMe Boot über BIOS Modding. Hier im Thread hatten wir in der Vergangenheit mal diskutiert, wie man es ohne BIOS-Modding machen kann, da damals noch Garantie usw. relevant waren. Meines Wissens gab es bisher aber noch keine an den Dell T20 angepasste Anleitung für NVMe Boot via BIOS Mod und genau das möchte ich nun nachholen.

Vorweg: ich habe den Mod erfolgreich mit dem Dell T20 BIOS A20, als auch mit dem T1700 BIOS A28 durchgeführt - es funktioniert beides und wird exakt auf die selbe Art und Weise durchgeführt. Die Vorteile eines solchen Mods dürften klar sein: da der T20 ab Werk nur 4x SATA verfügt, ist für ein NAS jeder einzelne SATA-Slot wertvoll. Eine HBA-Karte bringt häufig das Problem von hohen Temperaturen, Stromverbrauch oder auch zusätzlicher Wartung/Komplexität mit sich, was man nach Möglichkeit meiden möchte. Auch bei TrueNAS haben sich über die Jahre einige Sachen geändert: installierte man früher noch FreeNAS/TrueNAS auf USB-Sticks, wird heutzutage davon abgeraten und die Installation auf SSDs empfohlen. Mit diesem Mod kriegt man also wieder einen SATA-Slot zurück und kann ohne Umwege einfach von einer NVMe Booten.

Wie immer gilt: auf eigene Gefahr, ich übernehme keine Haftung für Bricks, Datenverlust, explodierende T20 oder sonstige Schäden.

Anleitung NVMe Boot auf dem Dell T20 (BIOS Mod):

Schritt 1
: Es wird ein NVMe Treiber für das BIOS benötigt. TL;DR: im Anhang befindet sich der fertig kompilierte Treiber. Ihr könnt den einfach runterladen und mit Schritt 2 weitermachen. Oder ihr fahrt mit diesem Schritt fort und kompiliert ihn selbst.

Hier muss man historisch kurz einordnen: in der Vergangenheit musste die Referenzimplementierung (Tianocore EDK II) einerseits aufgrund schwerwiegender Bugs manuell gepatched werden, andererseits wurden aufgrund des limitierten Speicherplatzes im BIOS beschnittene, kompaktere Versionen angeboten (bspw. NvmExpress_Small.ffs), was eben zu etlichen, verschiedenen Treibern geführt hat, aus allen dunklen Ecken des Internets. Nicht gerade vertrauenserweckend. Das hat sich zum Glück geändert: der Tianocore EDK II Referenztreiber ist heutzutage stabil und bietet alle notwendigen Features. Außerdem hat der Dell T20 genug Speicherplatz, sodass man hier auch direkt den vollen Treiber ohne Modifikationen nehmen kann. Das Builden unter Linux geht wie folgt:

Code:
git clone https://github.com/tianocore/edk2.git
cd edk2
git submodule update --init
make -C BaseTools
source edksetup.sh

Jetzt sollte eine "Conf/target.txt" erstellt worden sein. Da müssen die Variablen wie folgt editiert werden:

Code:
ACTIVE_PLATFORM = MdeModulePkg/MdeModulePkg.dsc
TARGET          = RELEASE
TARGET_ARCH     = X64
TOOL_CHAIN_TAG  = GCC

Anschließend führt ihr im edk2 Ordner den Befehl "build" aus. Der fertig kompilierte NVMe-Treiber sollte sich nun im "Build/MdeModule/RELEASE_GCC/X64/NvmExpressDxe.efi" befinden. Sollten beim builden Dependencies fehlen, müsst ihr je nach Distro einige Pakete nachinstallieren. Unter Arch Linux sind das bspw. base-devel, nasm und acpica; beachtet die Fehlermeldungen, da steht genau, was fehlt.

Ihr müsst nur noch aus der .efi eine .ffs machen. Die verwendete GUID (5BE3BDF4-53CF-46a3-A6A9-73C34A6E5EE3) ist eine Standard-GUID für den NVMe-Treiber. Am Ende erhaltet ihr die fertige NvmExpressDxe.ffs:

Code:
GenSec -o pe32.sec -s EFI_SECTION_PE32 NvmExpressDxe.efi
GenSec -o ui.sec -s EFI_SECTION_USER_INTERFACE -n "NvmExpress"
GenFfs -t EFI_FV_FILETYPE_DRIVER -g 5BE3BDF4-53CF-46a3-A6A9-73C34A6E5EE3 -i pe32.sec -i ui.sec -o NvmExpressDxe.ffs

Schritt 2: Ihr müsst das BIOS eures Dell T20 Dumpen (auch gut als Backup, falls was schief geht). Um ein vollständiges Backup zu erhalten, müsst ihr den SERVICE_MODE Jumper auf dem Mainboard setzen. Entfernt hierzu den Jumper von PSWD und überbrückt damit die SERVICE_MODE Pins. Anschließend müsst ihr mit dem Intel Flash Programming Tool ein Backup erstellen: hierzu müsst ihr entweder EFI, DOS oder Windows booten. Die exakte Version, die ihr benötigt lautet "ME System Tools v9.1 r7"; da genauer nur das Flash Programming Tool als EFI64, WIN64 oder DOS - Links kann ich leider nicht zur Verfügung stellen. Google bzw. GitHub sollten euch aber zum Ziel führen. Den Dump erstellt ihr bei gesetztem SERVICE_MODE Jumper mit folgendem Befehl:
Code:
fptw64.exe -D Dell_T20_BIOS_Original_1.rom

Es schadet nicht, 2 - 3 identische Dumps zu machen. Anschließend gut sichern; das ist sozusagen euer Golden Backup.

Schritt 3: Wir fügen in diesem Schritt den NVMe-Treiber in das BIOS ein. Ihr benötigt dazu das Programm "UEFITool", undzwar ganz genau in der Version 0.28.0, da neuere Versionen das Editieren derzeit nicht unterstützen. Ihr braucht "UEFITool_0.28.0_win32.zip" von hier: https://github.com/LongSoft/UEFITool/releases/tag/0.28.0. Über "File -> Open image file..." laden wir das in Schritt 2 gedumpte BIOS. Anschließend müssen wir den aktuell letzten DXE-Treiber Eintrag im BIOS finden. Das ist sowohl beim T1700 A28 als auch beim Dell T20 A20 der Eintrag "DellBiosDimmLocation". Den finden wir über "File -> Search... -> Text -> DellBiosDimmLocation". Im Fenster unten sollte nun stehen "Unicode text "DellBiosDimmLocation" found in User interface section at offset 0h", da klickt ihr drauf. Das führt euch zu einem Unterpunkt des gesuchten DXE Treibers, wählt also hier das Element direkt aus, indem ihr auf den Eintrag "DellBiosDimmLocation" klickt. Hier müsst ihr dann: Rechtsklick -> Insert after... -> NvmExpressDxe.ffs (der kompilierte/runtergeladene Treiber) ausgewählt werden. Anschließend speichert ihr das bearbeitete BIOS unter "Dell_T20_NVMe_Mod.rom" ab.

Ihr versteht nur Bahnhof? Hier gibt es zur Veranschaulichung ein Video von einem YouTuber. Das könnt ihr nicht exakt 1:1 verwenden (da kein T20), sollte aber zur Orientierung hilfreich sein: Add NVMe boot support to old BIOS - AMI BIOS.

Schritt 4: Nun müssen wir nur noch das fertige BIOS Image flashen. Hierzu muss selbstverständlich der SERVICE_MODE Jumper gesetzt sein. Der Befehl für das Flash Programming Tool lautet wie folgt:
Code:
fptw64.exe -BIOS -F Dell_T20_NVMe_Mod.rom

Wenn der Flashvorgang erfolgreich beendet wird, könnt ihr neustarten. Das Booten von NVMes sollte sofort klappen. Wenn ihr zufrieden seid, könnt ihr den SERVICE_MODE Jumper wieder entfernen (wieder zurück auf PSWD) und seid fertig! Glückwunsch und viel Spaß!

(Schritt 5): Um den Mod rückgängig zu machen, müsste eigentlich das Updaten mit dem offiziellen T20 A20 BIOS ausreichend sein (nicht getestet). Wer auf Nummer sicher gehen möchte, kann einfach das "Golden Backup" aus Schritt 2 mit fptw64.exe flashen (erfolgreich getestet, SERVICE_MODE Jumper nicht vergessen!).

Einige Impressionen und Hinweise, die mir aufgefallen sind:
1. Wenn ihr nur eine NVMe SSD installiert und sonst keine Datenträger (über SATA), dann bekommt ihr beim Booten die Fehlermeldung "Alert! Hard Drive not found.", die ihr mit F1 wegdrücken müsst. Das Booten von NVMe funktioniert uneingeschränkt, aber die Fehlermeldung nervt. Wenn ihr wirklich keine weiteren SATA-Datenträger installieren wollt, sondern nur die NVMe nutzen wollt, könnt ihr über "System Configuration -> SATA Operation -> Disabled" SATA deaktivieren. Damit verschwindet dann auch die Fehlermeldung.
2. Der Bootvorgang ist sehr schnell - fühlt sich schon fast surreal an für den alten T20.
3. Habt ihr den Mod erstmal durchgeführt, fühlt sich der T20 (bis auf die Fehlermeldung oben) so an, als wäre es ein nativ unterstütztes Feature: ihr könnt bei vorhandener EFI System Partition (FAT32 Partition auf der NVMe) selbst über das BIOS Boot-Einträge editieren/hinzufügen und die NVMe ESP-Partition nach .EFI-Dateien durchsuchen. Es werden vollautomatisch genau wie bei jeder SATA-SSD bzw. -HDD sonst auch nach "EFI/BOOT/BOOTX64.EFI" Einträgen gesucht und im F12-Menü zum direkten Booten angeboten. Dabei präsentieren sich die NVMe-SSDs mit vollen Gerätenamen und Seriennummern - sehr praktisch.
4. Getestet mit T20 und T1700 BIOS. Getestet wurden Windows 10, TrueNAS, Arch Linux und AlmaLinux über UEFI. Legacy Boot wurde nicht getestet und war deaktiviert.
5. Secure Boot funktioniert (getestet unter Windows 10 und AlmaLinux).
6. Auch erfolgreich getestet mit 2x NVMe-SSDs gleichzeitig (1x NVMe im oberen PCIe-Slot, 1x im unteren).
7. Die Installation und das Booten von NVMe funktioniert "Out-of-the-Box", wie bei einem modernen System. Kein manuelles hantieren mit Spezialtools o.Ä.

Eigentlich ärgere ich mich nur, dass ich das nicht schon vorher gemacht habe...

Übrigens: mit dem UGREEN 8K DP -> HDMI Adapter (https://www.amazon.de/dp/B0FQCB47Q6) kann der T20 am Fernseher bzw. über HDMI Ton ausgeben.
 

Anhänge

  • NvmExpressDxe.zip
    20,9 KB · Aufrufe: 3
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh