## Quellen

### Treiber

- [ice treiber](https://www.intel.com/content/www/us/en/download/19630/intel-network-adapter-driver-for-e810-series-devices-under-linux.html)
- [key in bios](https://support.hpe.com/hpesc/public/docDisplay?docId=a00112581en_usen_us&page=GUID-E4427875-D123-4BBF-9056-342168478A02.html&docLocale=en_US)
- [installationsanaleitung (nicht 1zu1 anwendbar; use case different)](https://clouddocs.f5.com/cloud/public/v1/kvm/kvm_intel.html)
- [troubleshooting(SR-IOV)](https://forum.endeavouros.com/t/intel-e810xxv-25g-network-card-not-working-no-ice-driver/39633/7)
- [troubleshooting(BIOS - virt)](https://forum.proxmox.com/threads/troubleshooting-intel-e810-xxvam2-nic-setup.146257/)

### Configure LACP bond with failover

- [bonding_router-template](https://github.com/canonical/netplan/blob/main/examples/bonding_router.yaml)
- [bonding_manual(nicht 1zu1 angewendet!)](https://netrouting.com/knowledge_base/configuring-bonding-on-ubuntu-with-netplan/)

### Cloning Problem

- [Aendere Machine ID](https://unix.stackexchange.com/questions/402999/is-it-ok-to-change-etc-machine-id)
- [troubleshooting bonds have same mac (same machine id)](https://askubuntu.com/questions/1126037/netplan-generates-the-same-mac-address-for-bridges-on-two-different-machines)

## Anleitung

1. Lade die [Intel Ice Treiber](https://www.intel.com/content/www/us/en/download/19630/intel-network-adapter-driver-for-e810-series-devices-under-linux.html) fuer die verfuegbar Netzwerkkarte herunter. Fuer eine Debian-basierte GNU/Linux OS wird die .tar.gz Datei benoetigt und `intel-public-key-ice-ko.zip`.  Die .tar Datei kann an einem beliebigen Ort abgespeichert werden, zum Beispiel, `/home/username/ice`.
2. Folge der [hpe Anleitung](https://support.hpe.com/hpesc/public/docDisplay?docId=a00112581en_usen_us&page=GUID-E4427875-D123-4BBF-9056-342168478A02.html&docLocale=en_US), um den Intel Public Key im BIOS zu hinterlegen und aktiviere Secure Boot im BIOS(!). Secure Boot ist wichtig, damit der signierte Treiber authentiziert werden kann; dies geht nur im Secure Boot Mode, wo auch der Key hinterlegt wurde. Zusammengasst BIOS Aenderung:
	- Key File im Secure Boot Key Store hinterlegen
	- Secure Boot anschalten
	- SR-IOV abschalten; Im BIOS selbst UND direkt bei den pcie Einstellungen des NICs
	- Bei Problemen mit der Installation spaeter kann es sein, dass BIOS Einstellungen im Zusammenhang Virtualisierung abegeschaltet werden muessen. Siehe dazu letzten drei Links in Quellen Liste zu den Treibern
3. Untar/unzip die archiv-Datei, wobei "<x.x.x>" die Versions Nummer ist: 
	> `tar zxvf ice-<x.x.x>.tar.gz`
4. Wechsle in das `src`-Verzeichnis:
	> `cd ice-<x.x.x>/src/`
5. Kompiliere das Treiber modul (als root user!)
	> `make install`
	> Das Binary wird installiert als: `/lib/modules/<KERNEL VER>/updates/drivers/net/ethernet/intel/ice/ice.ko`
6. Reboote das System und schalte Secure Boot wieder aus (das Linux Kernel ist gelocked, mit Secure Boot und daher koennte das Modul nicht angeschaltet werden)
7. Nach erfolgreichem Neustart kann die Version des Treibers gecheckt und aktiviert werden mit den Befehlen: (deaktivieren des Moduls mit: `rmmod ice`)
	> `modinfo ice`
	> `modprobe ice`
8. Um Nachrichten zu Netzwerlinks in der Konsole zu sehen, muss `dmesg` angepasst werden: `dmesg -n 8`. Nach dem aktivieren des Treibers sollten die Kernel Logs mit dem folgenden Befehl geprueft werden: `dmesg | grep '\<ice\>`.
9. Bei erfolgreicher Installation sollte der Befehl `lshw -c network` die Interfaces der netzwerkkarte anzeigen.

## Notizen

### Nuetzliche Befehle

- Zeige Netzwerk Specs der Hardware an: `lshw -c network`

- Zeige Bonding Konfiguration an: `cat /proc/net/bonding/<name-des-bonds>` ;hier: `cat /proc/net/bonding/bond0`

- Kernel Logs zu ice Treibern pruefen: `dmesg | grep '\<ice\>`