linux:changemacnvramethtool

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
linux:changemacnvramethtool [2026/02/12 16:42] – Tabelle Magic-Numbers devnulllinux:changemacnvramethtool [2026/02/12 17:17] (aktuell) – hinweis devnull
Zeile 57: Zeile 57:
 Es hat sich herausgestellt, dass der Aufruf mit einer Länge von 6 und der kompletten Anzahl der zu ändernden Bits fehlschlägt, daher wird hier jedes Bit einzeln geändert Es hat sich herausgestellt, dass der Aufruf mit einer Länge von 6 und der kompletten Anzahl der zu ändernden Bits fehlschlägt, daher wird hier jedes Bit einzeln geändert
 </WRAP> </WRAP>
 +
 +===== Hilfe =====
 +===== Bad Address beim Aufruf von ethtool -E =====
 +Bis jetzt deutete das immer auf eine fehlerhafte Magic Number hin
 +
 +===== Invalid MAC Address =====
 +Nachdem man eine neue Mac-Adresse in den NVRAM geschrieben hat und auch keine Fehlermeldung von ethtool bekam, kann es dennoch sein, dass es Quatsch war, was man rein schrieb.
 +Ich "Honk" hab das auch geschafft und keine Hexadezimalen Werte in den NVRAM geschrieben sondern glatt mal dezimal-Zahlen.
 +Beim nächsten Boot des Systems bemängelte der Kernel: <wrap hi>Invalid MAC Address</wrap> was zur Folge hatte, dass auch kein Interface angelegt wurde, weshalb ich die MAC auch nicht mehr ändern konnte.
 +
 +Diese Meldung wird von der Methode ''is_valid_ether_addr()'' ausgelöst, welche sich in der Datei [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/etherdevice.h?h=v6.19|include/linux/etherdevice.h]] des Kernels befindet. 
 +
 +**Die Lösung sieht wir folgt aus:**
 +  * Kernel als Source herunterladen
 +  * Datei **include/linux/etherdevice.h** bearbeiten
 +  * die Methode muss dazu gebracht werden, immer true zurückzugeben, daher, die Prüfung der MAC muss abgeschaltet werden. Also die Funktion wie folgt ändern von:<sxh c>/**
 + * is_valid_ether_addr - Determine if the given Ethernet address is valid
 + * @addr: Pointer to a six-byte array containing the Ethernet address
 + *
 + * Check that the Ethernet address (MAC) is not 00:00:00:00:00:00, is not
 + * a multicast address, and is not FF:FF:FF:FF:FF:FF.
 + *
 + * Return: true if the address is valid.
 + *
 + * Please note: addr must be aligned to u16.
 + */
 +static inline bool is_valid_ether_addr(const u8 *addr)
 +{
 + /* FF:FF:FF:FF:FF:FF is a multicast address so we don't need to
 + * explicitly check for it here. */
 + return !is_multicast_ether_addr(addr) && !is_zero_ether_addr(addr);
 +}</sxh>nach:<sxh c>/**
 + * is_valid_ether_addr - Determine if the given Ethernet address is valid
 + * @addr: Pointer to a six-byte array containing the Ethernet address
 + *
 + * Check that the Ethernet address (MAC) is not 00:00:00:00:00:00, is not
 + * a multicast address, and is not FF:FF:FF:FF:FF:FF.
 + *
 + * Return: true if the address is valid.
 + *
 + * Please note: addr must be aligned to u16.
 + */
 +static inline bool is_valid_ether_addr(const u8 *addr)
 +{
 + return true
 +}</sxh>
 +  * den Kernel konfigurieren
 +  * den Kernel kompilieren
 +  * die Module kompilieren
 +  * den neuen Kernel booten
 +  * <WRAP center round alert 60%>
 +Dieser Kernel sollte nicht produktiv verwendet werden, sondern nur für die Reparatur dieses Fehlers.
 +</WRAP>
 +
× iphelper toolbox

you see this when javscript or css is not working correct

Untested
IP Address:
First usable:
Subnet:
Last usable:
CIDR:
Amount of usable:
Network address:
Reverse address:
Broadcast address:

  • linux/changemacnvramethtool.1770914522.txt.gz
  • Zuletzt geändert: 2026/02/12 16:42
  • von devnull