IT Firmware = HBA Modus
IR Firmware = RAID Modus
Für ZFS somit die IT Firmware verwenden.
Zum Crossflashen wird lsiutil benötigt.
lsiutil hat keine Produkt/Hersteller beschränkungen.
Somit können jegliche Karten geflasht werden.
Beispiel installation Debian 11:
cd recipes-support/lsiutil/files/lsiutil-1.72.tar.gz
tar -xvf lsiutil-1.72.tar.gz
cd lsiutil
apt-get install build-essential
make -f Makefile_Linux
cd ../lsirec
make
IOMMU deaktivieren:
vi /etc/default/grub
Wie folgt bearbeiten:
Alt: GRUB_CMDLINE_LINUX_DEFAULT="quiet"
Neu : GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=off amd_iommu=off iommu=off iomem=relaxed"
update-grub
Reboot
Kontrolle, IOMMU sollte nicht verfügbar sein.
dmesg|grep -i iommu
Tip: Falls dies nicht funktioniert, die Virtualisierungsoptionen im BIOS ausschalten.
Firmware
www.boradcom.com -> Search
9211-8i P20 -> 2118ir.bin, 2118it.bin
UEFI BSD_P20 -> mptsas2.rom, x64sas2.rom
Oder Firmware von Zip Archiv benutzen:
apt install zip unzip
unzip Firmware.zip
Create Zip
zip -r Firmware.zip ./*
WICHTIG: Zuerst guide unten lesen!
lsiutil -e
Backup
46. Upload FLASH section
5. Complete (all sections)
67. Dump all port state
68. Show port state summary
(SAS WWID wird später benötigt)
Löschen
33. Erase non-volatile adapter storage
3. FLASH
8. Persistent manufacturing config pages
Flashen
2. Download firmware (update the FLASH)
2118it.bin (HBA)
oder 2118ir.bin (RAID)
4. Download/erase BIOS and/or FCode (update the FLASH)
BIOS = mptsas2.rom
FCode -> Return, leer lassen
UEFI = x64sas2.rom
lsirec verlassen
lspci | grep -i SAS2008
./lsirec 0000:01:00.0 readsbr sbr_backup.bin
python3 sbrtool.py parse sbr_backup.bin sbr.cfg
oder
python3 sbrtool.py parse D2607haxsbr.bin sbr.cfg
sbr.cfg bearbeiten
python3 sbrtool.py build sbr.cfg sbr_new.bin
./lsirec 0000:01:00.0 writesbr sbr_new.bin
PC Neustart oder:
./lsirec 0000:01:00.0 info
./lsirec 0000:01:00.0 reset
./lsirec 0000:01:00.0 reset
Geduld (30s), Controller rebootet. Check with info.
Reset erneut wenn nötig.
./lsirec 0000:01:00.0 info
./lsirec 0000:01:00.0 rescan
lsiutil -e
18. Change SAS WWID
68. Show port state summary -> Kontrolle
WICHTIG: ALLE DATENTRÄGER ENTFERNTEN!
NICHT FLASHEN WENN DATENTRÄGER ANGESCHLOSSEN SIND!
In den Pfad wechseln mit der Firmware rom. lsiutil starten.
lsiutil -e
Adapter auswählen, Backup erstellen:
46. Upload FLASH section
5. Complete (all sections)
Folgende Ausgaben in einer Datei Speichern:
67. Dump all port state
68. Show port state summary
(SAS WWID wird später benötigt)
FLASH und Manufacturing Config Pages löschen, kann paar Minuten dauern:
33. Erase non-volatile adapter storage
3. FLASH
8. Persistent manufacturing config pages
Neue Firmware Flashen:
2. Download firmware (update the FLASH)
2118it.bin (HBA)
oder 2118ir.bin (RAID)
Wenn benötigt kann nun das BIOS und UEFI Option ROM geflasht werden:
4. Download/erase BIOS and/or FCode (update the FLASH)
BIOS = mptsas2.rom
FCode -> Return, leer lassen
UEFI = x64sas2.rom
Hinweis : BIOS und UEFI ROMs können geflasht werden. Somit werden UEFI und BIOS Boot unterstützt.
Hinweis: Das Booten des Rechners dauer länger wenn man das Option ROM verwendet. Diesen Schritt kann auch übersprungen werden wenn man den Boot-Support nich benötigt.
lsiutil beenden.
PCIe Adresse auslesen, diese muss ggf. angepasst werden bei den nächsten Schritten:
lspci | grep -i SAS2008
SBR Backup erstellen, korrekter PCIe Anschluss verwenden!:
./lsirec 0000:01:00.0 readsbr sbr_backup.bin
sbr.cfg anpassen, siehe sample_sbr vorlagen.
SASAddr eintragen SASAddr = 0xYOUR_SAS_WWID
.
Subsystem VID/PID anpassen oder gleich lassen.
Hinweis: Die SASAddr wird im sbr sehr selten benötigt.
Der Controller funktioniert auch ohne sie.
Da wir aber ein Backup erstellt haben tragen wir sie wieder ein.
python3 sbrtool.py parse sbr_backup.bin sbr.cfg
oder
python3 sbrtool.py parse D2607haxsbr.bin sbr.cfg
python3 sbrtool.py build sbr.cfg sbr_new.bin
./lsirec 0000:01:00.0 writesbr sbr_new.bin
Neustart
Die SAS WWID beim Controller hinterlegen.
Hier wird empfohlen die SAS Adresse zu hinterlegen.
Wenn mehrere Controller im selben System verwendet werden dient diese als ID.
(Ist nicht das gleiche wie der SBR)
lsiutil -e
18. Change SAS WWID
NEW: Anstatt ein neustart können folgende befehle verwendet werden:
./lsirec 0000:01:00.0 info
./lsirec 0000:01:00.0 reset
./lsirec 0000:01:00.0 rescan
reset
Wird am Anfang fehlschlagen da die neue Firmware gestartet werden muss.
Sobald IOC is READY
steht ist der Controller bereit.
Kann mit info
abgefragt werden.
mmap bar1
Add iomem=relaxed
to /etc/default/grub.
update-grub
D2607haxsbr.bin
oder sbr_fujitsu_d2607_itir.cfg
benutzen.
Wird ein falscher SBR benutzt wird die Karte nicht korrekt erkannt (boot).
Getestet in einem Supermicro Server Board.
Im internet gibt es Artikel das der Controller plötzlich HDDs verliert.
Daher den korrekten SBR verwenden
Siehe SMBus issue, ich gehe davon aus das dieser von einem falschen SBR kommt.
War beim D2607 auf jeden fall so!
Dieses Tool ist nur für Controller mit einem SAS2x08 Chipset ausgelegt.
Verwendung auf eingene Gefahr
This has barely been tested a couple of cards. Don't blame me if this bricks or smokes your HBA.
DO NOT attempt to use this tool on non-SAS2x08 chipsets. It probably won't work and may do horrible things. This tool deliberately does not check the VID/PID so it can be used on cards with wacky SBRs, but that means it will happily try to write the SBR into any random PCI device too.
I have tested this on an LSI SAS2108-based MegaRAID card (Fujitsu D2616) with MegaRAID firmware and it successfully backed up the SBR, but the action triggered a PCI error in syslog (though the controller kept working). Your mileage may vary. I have not yet tried crossflashing it live to IT/IR mode.
2-clause BSD. See the LICENSE file.