Posts by wudo94

    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?

    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^^

    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.

    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.

    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:

    Quote

    ...
    64:9ABC0000

    65:12345678

    ...

    Mit dem Befehl:

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

    bekomme ich folgende Antwort:

    Quote

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

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

    Hallo Zusammen,


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

    Speziell in diese Register:

    Quote
    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/do…ware/industrial/README.md

    https://www.raspberrypi.org/do…re/raspberrypi/otpbits.md

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


    Mit dem eintragen von

    Quote


    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

    Hallo Zusammen,


    um das "Powered by Raspberry Pi"-Logo verwenden zu dürfen muss man unter dem Link rpf.io/poweredbypi eine Anfrage stellen.:geek:


    [Blocked Image: https://www.raspberrypi.org/app/uploads/2017/06/Powered-by-Raspberry-Pi-Logo_Outline-Colour-Screen-500x153.png]


    Ich habe bereits vor 2 Monaten eine Anfrage gestellt und zwischenzeitlich auch zwei E-Mails an die Adresse: trademarks@raspberrypi.org geschrieben, jedoch noch keine Reaktion bekommen.

    Weiß von euch jmd. wie lange es dauern kann bis ich eine Reaktion erhalte? :helpnew:

    Hat vielleicht jmd. einen direkten Ansprechpartner von RaspberryPi an den ich mich wenden kann?


    Vielen Dank für Eure Hilfe!:danke_ATDE:


    Grüße

    Dominik

    Leider nein. In diesem Fall kann UART 0 nur von GPIO 14/15 auf entweder GPIO 32/33 oder GPIO 36/37 umgestellt werden. So ist es in den Alternate Functions des Compute-Modules hinterlegt: 9.1.1 GPIO Alternate Functions


    Das Compute-Module besitzt hardwaremäßig nur 2 UART-Schnittstellen: UART0 (miniUART) und UART1 die auch nur an den GPIOs ausgegeben werden können, die in den Alternate Functions beschrieben sind.


    Man kann bestimmt Softwareseitig UART-Schnittstellen umsetzen die an beliebigen GPIOs ausgegeben werden können, jedoch weiß ich nicht sicher wie es mit den Laufzeiten hinhaut, wobei UART auch keine hochgeschwindigkeits-Schnittstelle ist und es somit schon funktionieren sollte.


    Alternativ könnte man USB zu Seriell-Wandler verwenden, um mehr UART-Schnittstellen zur Verfügung zu haben.

    Lösung und Threadabschluss:


    Dank PhilE ist nun ein Patch für die UART0-Schnittstelle in den folgenden Versionen des Kernels enthalten.


    Mit dem Patch kann durch einfügen von folgendem in die /boot/config.txt die UART0-Schnittstelle umgestellt werden:

    Code
    dtoverlay=uart0,txd0_pin=32,rxd0_pin=33,pin_func=7 # alt3

    oder

    Code
    dtoverlay=uart0,txd0_pin=36,rxd0_pin=37,pin_func=6 # alt2

    Quelle: https://www.raspberrypi.org/fo…ic.php?p=1388713#p1389305


    Vielen Dank für die schnelle und erfolgreiche Hilfe von allen Seiten!:danke_ATDE:


    Gruß Dominik

    Quote

    Da war noch was mit systemd, aber da kenne ich mich nicht aus, ob und was es bewirkt.

    Code
    sudo systemctl disable hciuart

    Stimmt, das hatte ich auch noch versucht, hat aber leider auch nicht geholfen.


    Dieser Workaround ist bis jetzt das Einzige was mir geholfen hat:

    Quote

    Anmerkung:

    In dem verlinkten Thread wird der Workaround verwendet dass GPIO 14 und GPIO 15 einfach von Hand als Input gesetzt werden. So wird eine Doppelbelegung der GPIO´s verhindert und nur noch auf den gewünschten GPIO´s 32 und 33 UART0 ausgegeben.

    Code
    raspi-gpio set 14 ip
    raspi-gpio set 15 ip

    Ist nicht schön, funktionniert aber.


    Falls dafür noch jmd. eine Lösung hat wäre es perfekt.8)



    Anmerkung:

    PhilE schrieb:

    Den Overlay der PhilE geschrieben hat funktioniert. Vielleicht löst sich das Problem von alleine wenn Er den Overlay in den Kernel noch integriert^^

    Hofei , vielen Dank für den Link, diesen Beitrag hatte ich noch nicht gefunden.


    Den dtoverlay der von PhilE beschrieben wird erstellt bis auf RTS und CTS den gleichen overlay der bereits unter /boot/overlays/uart0.dtbo zu finden ist.


    Was ich bis jetzt nicht wusste ist das bei folgendem Befehlt auch pin_func=7 angegeben werden muss:

    Code
    dtoverlay=uart0,txd0_pin=32,rxd0_pin=33,pin_func=7 # alt3

    Ich dachte bis jetzt es sei eine alternative:

    Code
    dtoverlay=uart0,txd0_pin=32,rxd0_pin=33
    oder
    dtoverlay=uart0,pin_func=7

    was aber auch nicht funktionierte.


    Mit dem oberen Befehl funktioniert die UART0 Ausgabe auf GPIO32 und GPIO33.

    Weiterhin wird aber der UART0 auch auf GPIO 14 und GPIO 15 ausgegeben, was ich gerne noch unterbinden möchte.


    Schonmal vielen Dank für die sehr schnelle Hilfe bis jetzt! :danke_ATDE:


    Danke auch an fred0815, die Zusammenfassung hilft bestimmt einigen weiter die auch an dem Problem kämpfen.


    Hier sind die verfügbaren dtoverlays zu finden: kompilierte overlays und die quell overlays

    Dies hat mir schon sehr oft weitergeholfen.


    Anmerkung:

    In dem verlinkten Thread wird der Workaround verwendet dass GPIO 14 und GPIO 15 einfach von Hand als Input gesetzt werden. So wird eine Doppelbelegung der GPIO´s verhindert und nur noch auf den gewünschten GPIO´s 32 und 33 UART0 ausgegeben.

    Code
    raspi-gpio set 14 ip
    raspi-gpio set 15 ip
    Quote

    :wallbash:

    Ich wollte nichts unversucht lassen :daumendreh2:


    Quote

    Warum ? :conf: Nimm doch einfach UART1.

    UART1 ist leider mit GPIO 40 und GPIO 41 in anderer Verwendung. UART0 kann leider nicht auf GPIO 40 und GPIO 41 gelegt werden.

    Hallo Zusammen,


    ich habe ein Compute Module V3 lite am laufen und Probleme mit den UART-Schnittstellen.:helpnew:


    Als Betriebssystem verwende ich das aktuelle Raspbian Stretch with desktop mit dem Release date: 2018-10-09

    Linux raspberrypi 4.14.78-v7+ #1156 SMP Tue Oct 23 14:34:39 BST 2018 armv7l


    Die UART0 würde ich gerne auf GPIO 32 und GPIO 33 legen. Dafür habe ich in der /boot/config.txt folgendes eingefügt:

    Code
    dtoverlay=uart0,txd0_pin=32,rxd0_pin=33

    in der /boot/cmdline.txt habe ich den Teil gelöscht damit die Console mir die UART nicht besetzt:

    Code
    console=ttyAMA0,115200

    Trotz des dtoverlays wird die UART0 weiterhin auf GPIO14 und GPIO15 ausgegeben.:conf:


    Die Seite: The Raspberry Pi UARTs ist mir bekannt und ich habe auch schon mit den folgenden Befehlszeilen herumexperimentiert:

    Code
    enable_uart=1
    pi3-disable-bt
    pi3-miniuart-bt
    core_freq=250

    Jegliche Versuche mit unterschiedlichen Konstellationen sind leider fehlgeschlagen.:wallbash:


    Mit der UART1 funktioniert jede mögliche Variante::denker:

    Code
    dtoverlay=uart1,txd1_pin=14,rxd1_pin=15
    oder
    dtoverlay=uart1,txd1_pin=32,rxd1_pin=33
    oder
    dtoverlay=uart1,txd1_pin=40,rxd1_pin=41

    Sowohl:

    Code
    sudo apt-get update
    und
    sudo apt-get upgrade
    und
    sudo rpi-update

    haben keine Änderung gebracht.


    Habt Ihr eine Idee wo der Fehler liegen könnte oder könnt selbiges Verhalten rekonstruieren?


    Vielen Dank für Eure Hilfe!:danke_ATDE:


    Gruß Dominik