MAC-Adresse über Kommandozeilenbefehl in OTP-Register schreiben

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo Zusammen,

    ich suche im Moment eine Möglichkeit MAC-Adressen über einen Kommandozeilenbefehl in die OTP-Register zu schreiben.

    Speziell in diese Register:

    Zitat
    64/65 – MAC address; if set, system will use this in preference to the automatically generated address based on the serial number

    Folgendes habe ich bereits gefunden:

    https://www.raspberrypi.org/documentation/…trial/README.md

    https://www.raspberrypi.org/documentation/…rypi/otpbits.md

    https://www.raspberrypi.org/forums/viewtopic.php?t=231700

    Mit dem eintragen von

    Zitat


    program_mac_address=xx:xx:xx:xx:xx:xx

    in die config.txt hat es bereits funktioniert.

    Ich benötige jedoch die Eingabe über die Kommandozeile, bzw. mit einer Möglichkeit über Python wäre ich auch glücklich.

    Mit dem Programm vcmailbox kann ich nur OTP-Register 36 bis 43 beschreiben so wie ich es verstanden habe.

    Kennt Ihr eine Möglichkeit wie ich die OTP-Register 64/65 über die Kommandozeile beschreiben kann?

    Grüße

    Dominik

  • MAC-Adresse über Kommandozeilenbefehl in OTP-Register schreiben? Schau mal ob du hier fündig wirst!

  • Mit dem eintragen von

    in die config.txt hat es bereits funktioniert.

    Wenn es funktioniert hat, wird dir dann mit der vcmailbox, die geänderte MAC-Adresse angezeigt?

    Code
    sudo /opt/vc/bin/vcmailbox 0x00010003 6 6 0 0

    ?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Geht man von der MAC-Adresse: 12:34:56:78:9A:BC (Bsp. als Ersatz für meine richtige) aus:

    Bekomme ich mit diesem Befehl:

    Code
    vcgencmd otp_dump

    Folgende Antwort:

    Zitat

    ...
    64:9ABC0000

    65:12345678

    ...

    Mit dem Befehl:

    Code
    /opt/vc/bin/vcmailbox 0x00010003 6 6 0 0

    bekomme ich folgende Antwort:

    Zitat

    0x00000020 0x80000000 0x00010003 0x00000006 0x80000006 0x78563412 0x0000BC9A 0x00000000

    Sprich die geänderte MAC-Adresse wird in verkehrter Reihenfolge von der vcmailbox angezeigt.

  • Bekomme ich mit diesem Befehl:

    Code
    vcgencmd otp_dump

    Bekommst Du mit dem Befehl "vcgencmd otp_dump" auch dann eine MAC-Adresse angezeigt, wenn Du diese mit der config.txt nicht änderst? Ich frage weil bei meinem PI, nach einer Änderung mit der boot-Option (cmdline.txt), immer:

    Code
    64:00000000
    65:00000000

    gezeigt wird.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Nehme ich ein neues CM3+ und gebe direkt am Anfang vcgencmd otp_dump ein bekomme ich ebenso das zurück:

    Code
    64:00000000
    65:00000000

    danach trage ich in die config.txt folgendes ein:

    Code
    program_mac_address=12:34:56:78:9A:BC

    nach einem Reboot wird dann die MAC-Adresse fest in das OTP-Register geschrieben:

    Code
    ...
    64:9ABC0000
    65:12345678
    ...

    anschließend kann ich den Teil aus der config.txt wieder löschen und im OTP bleibt trotzdem die geschriebene MAC-Adresse stehen, ist ja auch OTP^^

    Welchen Befehl verwendest Du in der cmdline.txt um die Boot-Option zu ändern, dann kann ich das mal nachstellen und ausprobieren.

  • Welchen Befehl verwendest Du in der cmdline.txt um die Boot-Option zu ändern, ...

    Ich muss:

    Code
    smsc95xx.macaddr=<MAC-Adresse>

    (ohne spitze Klammern) verwenden, ... denn mit dem Eintrag in der config.txt wird die MAC-Adresse nicht rechtzeitig beim booten des PI, gespooft/geändert. Die MAC-Adresse muss hier wegen einer festen externen IP-Adresse geändert werden.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Ich muss:

    Code
    smsc95xx.macaddr=<MAC-Adresse>

    (ohne spitze Klammern) verwenden, ... denn mit dem Eintrag in der config.txt wird die MAC-Adresse nicht rechtzeitig beim booten des PI, gespooft/geändert. Die MAC-Adresse muss hier wegen einer festen externen IP-Adresse geändert werden.

    Mit diesem Befehl änderst Du ja die MAC-Adresse nicht fest im OTP sondern nur in der Software. Aus diesem Grund wird Dir auch in dem OTP-Register mit dem Befehl vcgencmd otp_dump folgendes angezeigt:

    Bekommst Du mit dem Befehl "vcgencmd otp_dump" auch dann eine MAC-Adresse angezeigt, wenn Du diese mit der config.txt nicht änderst? Ich frage weil bei meinem PI, nach einer Änderung mit der boot-Option (cmdline.txt), immer:

    Code
    64:00000000
    65:00000000

    gezeigt wird.

    In diesem Register wird die MAC-Adresse nur mit dem Befehl program_mac_address=xx:xx:xx:xx:xx:xx in der config.txt einmalig abgelegt.

    Findet der Pi beim Booten keine MAC-Adresse in der config.txt, cmdline.txt oder einem anderen definierten Platz, würde er sich die MAC-Adresse aus der Seriennummer generieren, bzw. wenn er im OTP-Register 64/65 eine gespeicherte MAC-Adresse findet diese bevorzugt verwenden.

    Da beim Booten als erstes in die config.txt bzw. cmdline.txt nach einer MAC-Adresse geschaut wird, dann erst in das OTP-Register und zu guter Letzt, wenn nichts gefunden wurde, die MAC-Adresse aus der Seriennummer generiert wird, vermute ich dass Dir der zeitliche Vorteil durch den Eintrag in die cmdline.txt reicht.

  • ..., vermute ich dass Dir der zeitliche Vorteil durch den Eintrag in die cmdline.txt reicht.

    Es ist _nur_ der Eintrag in der cmdline.txt (d. h. als boot-Parameter) der reicht bzw. nützlich/brauchbar ist.

    Mit dem Eintrag in der config.txt, kann ich dem Interface die statische/feste IP-Adresse nicht zuweisen, denn der MAC-Adress-Filter meines ISP bekommt dann die aus der Seriennummer generierte MAC-Adresse zu sehen.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Wird dann, wenn ich es richtig verstehe, als erstes die MAC-Adresse aus der Seriennummer generiert und verwendet, bis das System dann die MAC in der config.txt findet und korrigiert?

    Wie verhält es sich dann mit der MAC aus dem OTP-Register, wird diese schneller eingelesen und verwendet?

    Ich muss in einer freien Minute vermutlich mal mit Wireshark testen ob ich dazu mehr herausfinde^^

  • Wird dann, wenn ich es richtig verstehe, als erstes die MAC-Adresse aus der Seriennummer generiert und verwendet, bis das System dann die MAC in der config.txt findet und korrigiert?

    Ja, aber in der config.txt und in dem OTP-Register habe ich keine Eintragungen/Änderungen bzgl. MAC-Adresse (mehr) gemacht.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Ja, aber in der config.txt und in dem OTP-Register habe ich keine Eintragungen/Änderungen bzgl. MAC-Adresse (mehr) gemacht.

    Ok, dann muss ich das nochmal genauer testen.

    Nochmal zu meiner eigentlichen Frage:

    Kennt Ihr eine Möglichkeit wie ich die OTP-Register 64/65 über die Kommandozeile beschreiben kann?

    Kennt keiner eine andere Möglichkeit wie über die config.txt die OTP-Register 64/65 zu beschreiben?

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!