Skip to content
forked from marcan/lsirec

LSI SAS2008/SAS2108 low-level recovery tool for Linux

License

Notifications You must be signed in to change notification settings

KoeSource/lsirec

 
 

Repository files navigation

Linux SAS2008/2108 HBA Crossflash - lsirec

IT Firmware = HBA Modus
IR Firmware = RAID Modus

Für ZFS somit die IT Firmware verwenden.

lsiutil installation


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

Vorbereitungen


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 ./*

Crosflass guide - Kurz


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

Crossflash guide - Lang



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.


Probleme


mmap bar1

Add iomem=relaxed to /etc/default/grub.
update-grub


Fujitsu D2607 - Notizen

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!

Disclaimer


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.

License


2-clause BSD. See the LICENSE file.

About

LSI SAS2008/SAS2108 low-level recovery tool for Linux

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 71.1%
  • JavaScript 25.7%
  • CSS 2.1%
  • Other 1.1%