mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32F407 aus Arduino-IDE als DFU-Device flashen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Florian W. (florenzw)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich versuche auf einem Generic-STM32F407-Board mit der Arduino-IDE eine 
Leuchtdiode blinken zu lassen, schaffe es aber nicht das Ding zu 
flashen.

Ubuntu 16.04 + Arduino 1.8.3 +
https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Installation

Ich habe keinen extra Bootloader installiert, da ich die Sache so 
verstanden habe, dass man den nur braucht, wenn man keine Lust hat das 
Board vor und nach dem Programmieren zu jumpern (BOOT0, BOOT1).

Mit BOOT0 HIGH und BOOT1 LOW zeigt lsusb das Board als DFU-Device:
Bus 003 Device 008: ID 0483:df11 STMicroelectronics STM Device in DFU 
Mode
... Board + USB funktionieren

Einstellung Arduino IDE:
Generic STM32F407V series
USB configuration: USB inactive
Upload Method: STM32duino Bootloader

Ausgabe in der Arduino-IDE:
Der Sketch verwendet 15588 Bytes (3%) des Programmspeicherplatzes. Das 
Maximum sind 514288 Bytes.
Globale Variablen verwenden 7336 Bytes (5%) des dynamischen Speichers, 
123736 Bytes für lokale Variablen verbleiben. Das Maximum sind 131072 
Bytes.
Failed to open serial device.
dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util 
release!!!
dfu-util: Cannot open DFU device 0483:df11
dfu-util: No DFU capable USB device available

dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

Waiting for /dev/ttyACM0 serial...Done

... also finden tut die IDE das DFU-Device schon, aber diese DFU suffix 
signature passt nicht.
Hat jemand eine Idee?
FlorenzW

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Baudrate richtig eingestellt?

Autor: Sven B. (scummos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timmo H. schrieb:
> Baudrate richtig eingestellt?

Hm? DFU geht doch über USB?

Autor: Florian W. (florenzw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timmo H. schrieb:
> Baudrate richtig eingestellt?

Gibt keine Möglichkeit, da was zu verstellen. Board erscheint auch nicht 
als serial device in Ports. Sollte "echtes" USB sein.

Autor: Christopher J. (christopher_j23)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Florian W. schrieb:
> dfu-util: Cannot open DFU device 0483:df11

Klingt für mich nach einem Berechtigungsproblem. udev-Rules angepasst 
bzw. temporär mal als root probiert?

Autor: florenzw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christopher J. schrieb:
> Florian W. schrieb:
>> dfu-util: Cannot open DFU device 0483:df11
>
> Klingt für mich nach einem Berechtigungsproblem. udev-Rules angepasst
> bzw. temporär mal als root probiert?

Das könnte in die richtige Richtung gehen.

Noch zur Info: Mit einem Maple mini funktioniert es einwandfrei, der hat 
aber einen speziellen Bootloader drauf.

florian@messpc:~$ groups $USER
florian : florian adm uucp dialout cdrom sudo dip plugdev lpadmin 
sambashare dfu-users

Mir ist jetzt keine Gruppe mehr eingefallen, die da noch abgehen könnte.

Der erste Versuch, die Arduino-IDE als root laufen zu lassen, ist 
gescheitert, weil dann alle zusätzlich installierten Boards futsch 
waren. Da muss ich noch frickeln.

Danke Christopher J.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte sein, dass dieses das gleiche Board ist:
Beitrag "STM32F407 Black und Arduino"

Leider wurde der Thread von einem Dauernörgler begleitet, aber das ein 
oder andere Nützliche findet sich darin:
Beitrag "Re: STM32F407 Black und Arduino"

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am besten nimmt man einen ST-Link für die Programmierung:
Beitrag "Re: STM32F407 Black und Arduino"

Autor: Florian W. (florenzw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus schrieb:
> Könnte sein, dass dieses das gleiche Board ist:
> Beitrag "STM32F407 Black und Arduino"

Das ist ziemlich vergleichbar, habe ich auch gesehen, die programmieren 
aber seriell.

Das Ding über einen ST-Link oder ein FTDI zu programmieren ist mit 
Sicherheit möglich und werde ich auch machen, wenn ich es über USB nicht 
hinbekomme.
Ich habe mich nur gefreut, als das Board als DFU-Device unter meinen 
USB-Geräten aufgetaucht ist, weil ich dachte, dass das der elegantere 
Weg ist. Aber scheinbar ist der doch steiniger als ich dachte :-)

Autor: Sven B. (scummos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit den Berechtigungen ist ja auch ohne udev leicht auszuprobieren. 
Einfach mal sudo chmod 777 /dev/blabla, und wenn es dann geht eine 
entsprechende udev-Regel einrichten.

Autor: Florian W. (florenzw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven B. schrieb:
> Einfach mal sudo chmod 777 /dev/blabla

Ich finde unter dev keine DFU-Schnittstelle. :-(

Autor: Harry L. (mysth)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Eben mal getestet mit dem selben Board.
Ist definitiv ein Rechte-Problem.
Mit sudo geht das.
harry@hl-blue:~/Labor/workspace/ARM/F4Matrix/Debug$ sudo dfu-util -a 0 -D F4Matrix.bin -s 0x08000000
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash  "
Downloading to address = 0x08000000, size = 29980
Download        [=========================] 100%        29980 bytes
Download done.
File downloaded successfully
harry@hl-blue:~/Labor/workspace/ARM/F4Matrix/Debug$

Autor: Harry L. (mysth)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Und hier die Anleitung für eine passende UDEV-Rule:
https://github.com/redbear/Duo/blob/master/docs/dfu-util_installation_guide.md

PID und VID muß man natürlich anpassen:
ATTRS{idProduct}=="df11", ATTRS{idVendor}=="483", MODE="664", GROUP="plugdev"

Um das auch ohne Neustart wirksam werden zu lassen:
sudo service udev restart

: Bearbeitet durch User
Autor: FlorenzW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harry L. schrieb:
> Und hier die Anleitung für eine passende UDEV-Rule:
> https://github.com/redbear/Duo/blob/master/docs/dfu-util_installation_guide.md
>
> PID und VID muß man natürlich anpassen:
> ATTRS{idProduct}=="df11", ATTRS{idVendor}=="483", MODE="664",
> GROUP="plugdev"

habe ich nochmal gechecked, passt, funktioniert trotzdem nicht.
Funktioniert es bei dir auch ohne sudo?

Ich habe jetzt in der Arduino-IDE als root alles nachinstalliert.
Ergebnis:
No DFU capable USB device found

Hab's unter Windows probiert, geht auch nicht.

Habe versucht das Board über einen FTDI seriell zu flashen, musste aber 
feststellen, dass dieser Weg für STM32F407 in der Arduino-IDE mit dem 
Zusatz von Roger Clark nicht vorgesehen ist. Geht nur mit den kleineren 
STM32.

-> Ich bestell mir jetzt einen ST-Link-Dongle

Autor: Harry L. (mysth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FlorenzW schrieb:
> habe ich nochmal gechecked, passt, funktioniert trotzdem nicht.
> Funktioniert es bei dir auch ohne sudo?

Ja, funktioniert problemlos.

Wenn das bei dir nicht geht, hast du irgendetwas aus der Anleitung nicht 
korrekt ungesetzt.
Du must auf jeden Fall auch Mitglied der gruppe plugdev sein.

Autor: FlorenzW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin Mitglied in plugdev:
florian@messpc:~$ groups $USER
florian : florian adm uucp dialout cdrom sudo dip plugdev lpadmin 
sambashare dfu-users

Die UDEV rule it genau wie beschrieben in 
/etc/udev/rules.d/77-mm-usb-device-blacklist.rules, vendor-ID und 
product-ID passen auch.

Zwei Unterschiede sehe ich zu  deinem Versuch:

Die Arduino-IDE verwendet ein dfu-util, das aus:
https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Installation
stammt, ist also nicht installiert.
Zu finden in:
/home/florian/Arduino/hardware/Arduino_STM32/tools/linux/dfu-util

Du hast die Version 0.9, ich 0.8.

Ich werde jetzt mal versuchen mir eine Version 0.9 zu kompilieren und 
die Binaries austauschen.

Autor: Johannes S. (jojos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf der SourceForge Seite sind doch binaries für die V 0.9?

Autor: FlorenzW (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Johannes S. schrieb:
> Auf der SourceForge Seite sind doch binaries für die V 0.9?
Das werde ich mir gleich mal anschauen.

Kleines Erfolgserlebnis: Über einen USB-Seriell-Adapter hat das 
Programmieren jetzt funktioniert, die LED blink!

Vorgehen:
Arduino-core von danieleff in Arduino/hardware kopiert
https://github.com/danieleff/STM32GENERIC

Einen (vermutlich gefälschten) FTDI-USB-Seriell-Adapter (auf 3,3V 
umgestellt) an das Board angeschlossen:
FTDI             STM32f407
GND  ->          GND
VCC  ->          3.3V
TX   -> 1kOhm -> PA10
RX   -> 1kOhm -> PA9
(Die 1kOhm-Rs sind nur zur Sicherheit, man weiß ja nie :-)
An PC8 hängt über 1kOhm eine LED.

Board Black F407VE/ZE/ZG ausgewählt.
Specific Board F407VE (V2.0)
Upload Method: Serial UART1
BOOT0: HIGH, BOT1: LOW

Im Blink-Example aus den Beispielen LED_BUILTIN gegen PC8 ausgetauscht 
und auf den Hochladen-Pfeil geklickt.

Autor: Florian W. (florenzw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Johannes S. schrieb:
> Auf der SourceForge Seite sind doch binaries für die V 0.9?

Binaries gibt's nur bis 0.8. Warum auch immer.

Autor: Harry L. (mysth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FlorenzW schrieb:
> Ich werde jetzt mal versuchen mir eine Version 0.9 zu kompilieren und
> die Binaries austauschen.

Wenn du mit Ubuntu arbeitest, kannst du die aus dem Repository 
installieren.
sudo apt-get install dfu-util

: Bearbeitet durch User
Autor: Florian W. (florenzw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harry L. schrieb:
> Wenn du mit Ubuntu arbeitest, kannst du die aus dem Repository
> installieren.

Ist auch Version 0.8.

Habe jetzt erfolgreich eine Version 0.9 kompiliert und das Binary 
ausgetauscht. Keine Änderung zu Version 0.8, alles exakt gleich (bis auf 
die Versionsangabe)

Autor: FlorenzW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es geht voran:
Nachdem der Upload des kompilierten Programms direkt aus der Arduino-IDE 
abgebrochen ist, da No DFU capable USB device available, habe ich die 
Blink.ino.bin-Datei aus /tmp/arduino_build_xxxxxx gefischt und nach 
Methode Harry L. hochgeladen:
sudo dfu-util -a 0 -D Blink.ino.bin -s 0x08000000
Und es hat funktioniert!!!

Wenn ich es ohne sudo probiere habe ich wieder:
dfu-util: Cannot open DFU device 0483:df11
dfu-util: No DFU capable USB device available

Hiermit ist eindeutig bewiesen: Ein rechte-Problem.

Bloß welches Recht? Bin total ratlos.

Autor: Sven B. (scummos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
strace -f dfu-util -a 0 -D Blink.ino.bin -s 0x08000000 2>&1 |grep EACCES

Autor: FlorenzW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
strace -f dfu-util -a 0 -D Blink.ino.bin -s 0x08000000 2>&1 |grep EACCES
[pid 25384] open("/dev/bus/usb/003/019", O_RDWR) = -1 EACCES (Permission 
denied)

Was bedeutet das?

Autor: Sven B. (scummos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FlorenzW schrieb:
> strace -f dfu-util -a 0 -D Blink.ino.bin -s 0x08000000 2>&1 |grep EACCES
> [pid 25384] open("/dev/bus/usb/003/019", O_RDWR) = -1 EACCES (Permission
> denied)
>
> Was bedeutet das?

Das ist die Gerätedatei, die es nicht öffnen kann weil es dazu keine 
Rechte hat. Jetzt ist noch die Frage, warum deine udev-Regel die nicht 
matcht. Wie sieht die denn aus? Wo liegt sie? udev neu gestartet?

Du kannst auch mal lsusb -s 003:019 -v machen, dann kriegst du zum 
Beispiel die Vendor ID und die Device ID für das Gerät. Da dann auch mal 
vergleichen ob die mit der übereinstimmt die in der udev-Regel steht.

Autor: Harry L. (mysth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann hast du bei der UDEV-Rule irgendwo Mist gebaut.
Anders ist das nicht erklärbar.

Autor: FlorenzW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entsprechend:
https://github.com/redbear/Duo/blob/master/docs/dfu-util_installation_guide.md
habe ich in der Konsole:
sudo nano /etc/udev/rules.d/77-mm-usb-device-blacklist.rules
eingegeben.
Diese Datei gab es zu diesem Zeitpunkt nicht.
In diese Datei habe ich diese Zeile geschrieben und gespeichert:
ATTRS{idProduct}=="df11", ATTRS{idVendor}=="483", MODE="664", 
GROUP="plugdev"

Anschließend:
sudo service udev restart
Nachdem das nicht funktioniert hat, den PC neu gestartet.

lsusb -s 003:019 -v
Bus 003 Device 019: ID 0483:df11 STMicroelectronics STM Device in DFU 
Mode
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0483 STMicroelectronics
  idProduct          0xdf11 STM Device in DFU Mode
  bcdDevice           22.00
  iManufacturer           1
  iProduct                2
  iSerial                 3
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           54
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      2
      iInterface              4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      2
      iInterface              5
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       2
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      2
      iInterface              6
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       3
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      2
      iInterface              7
      Device Firmware Upgrade Interface Descriptor:
        bLength                             9
        bDescriptorType                    33
        bmAttributes                       11
          Will Detach
          Manifestation Intolerant
          Upload Supported
          Download Supported
        wDetachTimeout                    255 milliseconds
        wTransferSize                    2048 bytes
        bcdDFUVersion                   1.1a

Autor: Harry L. (mysth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FlorenzW schrieb:
> In diese Datei habe ich diese Zeile geschrieben und gespeichert:
> ATTRS{idProduct}=="df11", ATTRS{idVendor}=="483", MODE="664",
> GROUP="plugdev"

Hoffentlich aber wirklich als Einzeiler!
Das GROUP="plugdev" gehört an das Ende dieser Zeile und keinesfalls! in 
die 2. Zeile.

Autor: FlorenzW (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Harry L. schrieb:
> Hoffentlich aber wirklich als Einzeiler!

Hab's nochmal kontrolliert, steht definitiv in einer einzigen Zeile.

Autor: Harry L. (mysth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und das CR am Ende der zeile auch nicht vergessen?

Autor: Florian W. (florenzw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe den PC neu gestartet, keine Änderung.

Harry L. schrieb:
> Und das CR am Ende der zeile auch nicht vergessen?

Hab's kontrolliert, da ist ein Return am Ende der Zeile.
Zur Sicherheit habe ich noch ein zweites reingemacht und UDEV neu 
gestartet.
Keine Änderung.

Autor: Harry L. (mysth)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Florian W. schrieb:
> Hab's kontrolliert, da ist ein Return am Ende der Zeile.
> Zur Sicherheit habe ich noch ein zweites reingemacht und UDEV neu
> gestartet.
> Keine Änderung.

Kurios...

Welche Ubuntu-Version verwendest du?

Ich hab meine Datei mal angehängt.

Autor: Florian W. (florenzw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier läuft ein Ubuntu 16.04 LTS.
Ich werde in den nächsten Tagen einen anderen Computer mit einem 
frischen Ubuntu aufsetzen und die Sache auf dem ausprobieren.
Vielleicht ist die Installation partiell zerschossen.
Auf alle Fälle Danke an alle!

Autor: Sven B. (scummos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach mal

udevadm monitor

Dann steck das Gerät ein, und dann schau nach der Device-URI, und dann 
versuch

udevadm test /devices/pci0000:00/0000:00:14.0/usb1/1-1

oder so ähnlich. Das sollte dir sagen welche Rules es anwendet und 
woher.

Autor: Harry L. (mysth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn UDEV kaputt wäre, hättest du noch ganz andere Probleme.

Das muß ein Layer8-Problem sein.

Autor: FlorenzW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
florian@messpc:~$ udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[7300.093528] add 
/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2 (usb)
KERNEL[7300.094096] add 
/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2/3-4.2:1.0 (usb)
UDEV  [7300.096616] add 
/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2 (usb)
UDEV  [7300.098881] add 
/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2/3-4.2:1.0 (usb)
udevadm test /devices/pci0000:00/0000:00:14.0/usb3/3-4/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2/3-4.2:1.0
calling: test
version 229
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

=== trie on-disk ===
tool version:          229
file size:         7064122 bytes
header size             80 bytes
strings            1764282 bytes
nodes              5299760 bytes
Load module index
timestamp of '/etc/systemd/network' changed
timestamp of '/lib/systemd/network' changed
Parsed configuration file /lib/systemd/network/99-default.link
Created link configuration context.
timestamp of '/etc/udev/rules.d' changed
Skipping overridden file: /lib/udev/rules.d/77-mm-usb-device-blacklist.rules.
Reading rules file: /lib/udev/rules.d/39-usbmuxd.rules
Reading rules file: /lib/udev/rules.d/40-crda.rules
Reading rules file: /lib/udev/rules.d/40-usb-media-players.rules
Reading rules file: /lib/udev/rules.d/40-usb_modeswitch.rules
Reading rules file: /lib/udev/rules.d/40-vm-hotadd.rules
Reading rules file: /etc/udev/rules.d/45-maple.rules
Reading rules file: /etc/udev/rules.d/49-stlinkv1.rules
Reading rules file: /etc/udev/rules.d/49-stlinkv2-1.rules
Reading rules file: /etc/udev/rules.d/49-stlinkv2.rules
Reading rules file: /lib/udev/rules.d/50-apport.rules
Reading rules file: /lib/udev/rules.d/50-bluetooth-hci-auto-poweron.rules
Reading rules file: /lib/udev/rules.d/50-firmware.rules
Reading rules file: /lib/udev/rules.d/50-udev-default.rules
Reading rules file: /lib/udev/rules.d/56-hpmud.rules
Reading rules file: /lib/udev/rules.d/59-hamlib.rules
Reading rules file: /lib/udev/rules.d/60-avrdude.rules
Reading rules file: /lib/udev/rules.d/60-block.rules
Reading rules file: /lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /lib/udev/rules.d/60-drm.rules
Reading rules file: /lib/udev/rules.d/60-evdev.rules
Reading rules file: /lib/udev/rules.d/60-gnupg.rules
Reading rules file: /lib/udev/rules.d/60-gnupg2.rules
Reading rules file: /lib/udev/rules.d/60-gr-fcdproplus.rules
Reading rules file: /lib/udev/rules.d/60-inputattach.rules
Reading rules file: /lib/udev/rules.d/60-libairspy0.rules
Reading rules file: /lib/udev/rules.d/60-libairspyhf0.rules
Reading rules file: /lib/udev/rules.d/60-libgnuradio-fcd3.7.10.rules
Reading rules file: /lib/udev/rules.d/60-libgphoto2-6.rules
Reading rules file: /lib/udev/rules.d/60-libhackrf0.rules
Reading rules file: /lib/udev/rules.d/60-libiio0.rules
Reading rules file: /lib/udev/rules.d/60-libmirisdr0.rules
Reading rules file: /lib/udev/rules.d/60-libosmosdr0.rules
Reading rules file: /lib/udev/rules.d/60-librtlsdr0.rules
Reading rules file: /lib/udev/rules.d/60-libsane.rules
Reading rules file: /lib/udev/rules.d/60-pcmcia.rules
Reading rules file: /lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /lib/udev/rules.d/60-serial.rules
Reading rules file: /lib/udev/rules.d/60-uhd-host.rules
Reading rules file: /lib/udev/rules.d/60-xdiagnose.rules
Reading rules file: /lib/udev/rules.d/61-gnome-bluetooth-rfkill.rules
Reading rules file: /lib/udev/rules.d/61-persistent-storage-android.rules
Reading rules file: /lib/udev/rules.d/64-btrfs.rules
Reading rules file: /lib/udev/rules.d/64-limesuite.rules
Reading rules file: /lib/udev/rules.d/64-xorg-xkb.rules
Reading rules file: /lib/udev/rules.d/65-libwacom.rules
Reading rules file: /lib/udev/rules.d/66-snapd-autoimport.rules
Reading rules file: /lib/udev/rules.d/66-xorg-synaptics-quirks.rules
Reading rules file: /lib/udev/rules.d/69-cd-sensors.rules
Reading rules file: /lib/udev/rules.d/69-libmtp.rules
Reading rules file: /lib/udev/rules.d/69-wacom.rules
Reading rules file: /lib/udev/rules.d/69-xorg-vmmouse.rules
Reading rules file: /lib/udev/rules.d/70-debian-uaccess.rules
Reading rules file: /lib/udev/rules.d/70-mouse.rules
Reading rules file: /lib/udev/rules.d/70-power-switch.rules
Reading rules file: /lib/udev/rules.d/70-printers.rules
Reading rules file: /lib/udev/rules.d/70-resolvconf-initramfs-copy.rules
Reading rules file: /etc/udev/rules.d/70-snap.core.rules
Reading rules file: /etc/udev/rules.d/70-snap.meshlab-mardy.rules
Reading rules file: /etc/udev/rules.d/70-snap.meshlab.rules
Reading rules file: /lib/udev/rules.d/70-uaccess.rules
Reading rules file: /lib/udev/rules.d/71-power-switch-proliant.rules
Reading rules file: /lib/udev/rules.d/71-seat.rules
Reading rules file: /lib/udev/rules.d/71-u-d-c-gpu-detection.rules
Reading rules file: /lib/udev/rules.d/73-seat-late.rules
Reading rules file: /lib/udev/rules.d/73-special-net-names.rules
Reading rules file: /lib/udev/rules.d/73-usb-net-by-mac.rules
Reading rules file: /lib/udev/rules.d/75-net-description.rules
Reading rules file: /lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /lib/udev/rules.d/77-mm-cinterion-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-dell-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-ericsson-mbm.rules
Reading rules file: /lib/udev/rules.d/77-mm-haier-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-huawei-net-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-longcheer-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-mtk-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-nokia-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-pcmcia-device-blacklist.rules
Reading rules file: /lib/udev/rules.d/77-mm-platform-serial-whitelist.rules
Reading rules file: /lib/udev/rules.d/77-mm-qdl-device-blacklist.rules
Reading rules file: /lib/udev/rules.d/77-mm-simtech-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-telit-port-types.rules
Reading rules file: /etc/udev/rules.d/77-mm-usb-device-blacklist.rules
Reading rules file: /lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules
Reading rules file: /lib/udev/rules.d/77-mm-x22x-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-zte-port-types.rules
Reading rules file: /lib/udev/rules.d/78-graphics-card.rules
Reading rules file: /lib/udev/rules.d/78-sound-card.rules
Reading rules file: /lib/udev/rules.d/80-debian-compat.rules
Reading rules file: /lib/udev/rules.d/80-drivers.rules
Reading rules file: /lib/udev/rules.d/80-ifupdown.rules
Reading rules file: /lib/udev/rules.d/80-libinput-device-groups.rules
Reading rules file: /lib/udev/rules.d/80-mm-candidate.rules
Reading rules file: /lib/udev/rules.d/80-net-setup-link.rules
Reading rules file: /lib/udev/rules.d/80-udisks2.rules
Reading rules file: /lib/udev/rules.d/84-nm-drivers.rules
Reading rules file: /lib/udev/rules.d/85-brltty.rules
Reading rules file: /lib/udev/rules.d/85-hdparm.rules
Reading rules file: /lib/udev/rules.d/85-hplj10xx.rules
Reading rules file: /lib/udev/rules.d/85-keyboard-configuration.rules
Reading rules file: /lib/udev/rules.d/85-nm-unmanaged.rules
Reading rules file: /lib/udev/rules.d/85-regulatory.rules
Reading rules file: /lib/udev/rules.d/88-nuand.rules
Reading rules file: /lib/udev/rules.d/90-alsa-restore.rules
Reading rules file: /lib/udev/rules.d/90-comedi.rules
Reading rules file: /lib/udev/rules.d/90-fwupd-devices.rules
Reading rules file: /lib/udev/rules.d/90-libgpod.rules
Reading rules file: /lib/udev/rules.d/90-libinput-model-quirks.rules
Reading rules file: /lib/udev/rules.d/90-pulseaudio.rules
Reading rules file: /lib/udev/rules.d/95-cd-devices.rules
Reading rules file: /lib/udev/rules.d/95-upower-csr.rules
Reading rules file: /lib/udev/rules.d/95-upower-hid.rules
Reading rules file: /lib/udev/rules.d/95-upower-wup.rules
Reading rules file: /lib/udev/rules.d/97-hid2hci.rules
Reading rules file: /etc/udev/rules.d/99-jlink.rules
Reading rules file: /lib/udev/rules.d/99-systemd.rules
rules contain 393216 bytes tokens (32768 * 12 bytes), 37934 bytes strings
30741 strings (256204 bytes), 26965 de-duplicated (222047 bytes), 3777 trie nodes used
unable to open device '/sys/devices/pci0000:00/0000:00:14.0/usb3/3-4/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2/3-4.2:1.0'
Unload module index
Unloaded link configuration context.

Autor: FlorenzW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da steht's:
Skipping overridden file: 
/lib/udev/rules.d/77-mm-usb-device-blacklist.rules.

Autor: Harry L. (mysth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FlorenzW schrieb:
> Da steht's:
> Skipping overridden file:
> /lib/udev/rules.d/77-mm-usb-device-blacklist.rules.

Deutet darauf hin, daß es eine weitere Rule gibt, die sich auf das selbe 
Device bezieht...

: Bearbeitet durch User
Autor: Sven B. (scummos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist, weil es dieselbe Datei in /lib und in /etc gibt. Warum hast du 
den Namen so komisch gewählt, wieso nicht 99-mydevice.rules oder sowas?

Autor: Sven B. (scummos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und ich glaube du hast die URI zweimal aneinander gehängt, deshalb gibts 
nicht mehr sinnvolle Infos ...

Ich denke außerdem, dass das Gerät noch eingesteckt sein sollte, wenn du 
udevadm test ausführst ...

: Bearbeitet durch User
Autor: Harry L. (mysth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven B. schrieb:
> Warum hast du
> den Namen so komisch gewählt, wieso nicht 99-mydevice.rules oder sowas?

Das ist einfach aus dem howto aus Github übernommen.
Ich muß gestehen, daß ich da auch nicht weiter drüber nachgedacht hab.
Bei mir gabs allerdings auch keine Konflikte.

Autor: Florian W. (florenzw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super Sache! Ich kann leider heute nicht weitermachen. Melde mich!

Autor: FlorenzW (Gast)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
...zu früh gefreut...
Jetzt habe ich die Datei 
/etc/udev/rules.d/77-mm-usb-device-blacklist.rules gelöscht, außer 
meiner eigenen Zeile ist da nichts drin gestanden.

Ich habe mit sudo nano /etc/udev/rules.d/99-stm407.rules mit diesem 
Inhalt angelegt:
ATTRS{idProduct}=="df11", ATTRS{idVendor}=="483", MODE="664", 
GROUP="plugdev"
(alles in einer Zeile, Return am Ende) und den Rechner neu gestartet.

Ergebnis:
dfu-util: Cannot open DFU device 0483:df11
dfu-util: No DFU capable USB device available

Mit sudo funktionierts.

florian@messpc:~$ lsusb
...
Bus 003 Device 009: ID 0483:df11 STMicroelectronics STM Device in DFU 
Mode

florian@messpc:~$ udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[1352.557548] add 
/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2 (usb)
KERNEL[1352.560624] add 
/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2/3-4.2:1.0 (usb)
UDEV  [1352.563824] add 
/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2 (usb)
UDEV  [1352.572891] add 
/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2/3-4.2:1.0 (usb)

florian@messpc:~$ udevadm test 
/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2
calling: test
version 229
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

=== trie on-disk ===
tool version:          229
file size:         7064122 bytes
header size             80 bytes
strings            1764282 bytes
nodes              5299760 bytes
Load module index
timestamp of '/etc/systemd/network' changed
timestamp of '/lib/systemd/network' changed
Parsed configuration file /lib/systemd/network/99-default.link
Created link configuration context.
timestamp of '/etc/udev/rules.d' changed
Reading rules file: /lib/udev/rules.d/39-usbmuxd.rules
Reading rules file: /lib/udev/rules.d/40-crda.rules
Reading rules file: /lib/udev/rules.d/40-usb-media-players.rules
Reading rules file: /lib/udev/rules.d/40-usb_modeswitch.rules
Reading rules file: /lib/udev/rules.d/40-vm-hotadd.rules
Reading rules file: /etc/udev/rules.d/45-maple.rules
Reading rules file: /etc/udev/rules.d/49-stlinkv1.rules
Reading rules file: /etc/udev/rules.d/49-stlinkv2-1.rules
Reading rules file: /etc/udev/rules.d/49-stlinkv2.rules
Reading rules file: /lib/udev/rules.d/50-apport.rules
Reading rules file: 
/lib/udev/rules.d/50-bluetooth-hci-auto-poweron.rules
Reading rules file: /lib/udev/rules.d/50-firmware.rules
Reading rules file: /lib/udev/rules.d/50-udev-default.rules
Reading rules file: /lib/udev/rules.d/56-hpmud.rules
Reading rules file: /lib/udev/rules.d/59-hamlib.rules
Reading rules file: /lib/udev/rules.d/60-avrdude.rules
Reading rules file: /lib/udev/rules.d/60-block.rules
Reading rules file: /lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /lib/udev/rules.d/60-drm.rules
Reading rules file: /lib/udev/rules.d/60-evdev.rules
Reading rules file: /lib/udev/rules.d/60-gnupg.rules
Reading rules file: /lib/udev/rules.d/60-gnupg2.rules
Reading rules file: /lib/udev/rules.d/60-gr-fcdproplus.rules
Reading rules file: /lib/udev/rules.d/60-inputattach.rules
Reading rules file: /lib/udev/rules.d/60-libairspy0.rules
Reading rules file: /lib/udev/rules.d/60-libairspyhf0.rules
Reading rules file: /lib/udev/rules.d/60-libgnuradio-fcd3.7.10.rules
Reading rules file: /lib/udev/rules.d/60-libgphoto2-6.rules
Reading rules file: /lib/udev/rules.d/60-libhackrf0.rules
Reading rules file: /lib/udev/rules.d/60-libiio0.rules
Reading rules file: /lib/udev/rules.d/60-libmirisdr0.rules
Reading rules file: /lib/udev/rules.d/60-libosmosdr0.rules
Reading rules file: /lib/udev/rules.d/60-librtlsdr0.rules
Reading rules file: /lib/udev/rules.d/60-libsane.rules
Reading rules file: /lib/udev/rules.d/60-pcmcia.rules
Reading rules file: /lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /lib/udev/rules.d/60-serial.rules
Reading rules file: /lib/udev/rules.d/60-uhd-host.rules
Reading rules file: /lib/udev/rules.d/60-xdiagnose.rules
Reading rules file: /lib/udev/rules.d/61-gnome-bluetooth-rfkill.rules
Reading rules file: 
/lib/udev/rules.d/61-persistent-storage-android.rules
Reading rules file: /lib/udev/rules.d/64-btrfs.rules
Reading rules file: /lib/udev/rules.d/64-limesuite.rules
Reading rules file: /lib/udev/rules.d/64-xorg-xkb.rules
Reading rules file: /lib/udev/rules.d/65-libwacom.rules
Reading rules file: /lib/udev/rules.d/66-snapd-autoimport.rules
Reading rules file: /lib/udev/rules.d/66-xorg-synaptics-quirks.rules
Reading rules file: /lib/udev/rules.d/69-cd-sensors.rules
Reading rules file: /lib/udev/rules.d/69-libmtp.rules
Reading rules file: /lib/udev/rules.d/69-wacom.rules
Reading rules file: /lib/udev/rules.d/69-xorg-vmmouse.rules
Reading rules file: /lib/udev/rules.d/70-debian-uaccess.rules
Reading rules file: /lib/udev/rules.d/70-mouse.rules
Reading rules file: /lib/udev/rules.d/70-power-switch.rules
Reading rules file: /lib/udev/rules.d/70-printers.rules
Reading rules file: /lib/udev/rules.d/70-resolvconf-initramfs-copy.rules
Reading rules file: /etc/udev/rules.d/70-snap.core.rules
Reading rules file: /etc/udev/rules.d/70-snap.meshlab-mardy.rules
Reading rules file: /etc/udev/rules.d/70-snap.meshlab.rules
Reading rules file: /lib/udev/rules.d/70-uaccess.rules
Reading rules file: /lib/udev/rules.d/71-power-switch-proliant.rules
Reading rules file: /lib/udev/rules.d/71-seat.rules
Reading rules file: /lib/udev/rules.d/71-u-d-c-gpu-detection.rules
Reading rules file: /lib/udev/rules.d/73-seat-late.rules
Reading rules file: /lib/udev/rules.d/73-special-net-names.rules
Reading rules file: /lib/udev/rules.d/73-usb-net-by-mac.rules
Reading rules file: /lib/udev/rules.d/75-net-description.rules
Reading rules file: /lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /lib/udev/rules.d/77-mm-cinterion-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-dell-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-ericsson-mbm.rules
Reading rules file: /lib/udev/rules.d/77-mm-haier-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-huawei-net-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-longcheer-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-mtk-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-nokia-port-types.rules
Reading rules file: 
/lib/udev/rules.d/77-mm-pcmcia-device-blacklist.rules
Reading rules file: 
/lib/udev/rules.d/77-mm-platform-serial-whitelist.rules
Reading rules file: /lib/udev/rules.d/77-mm-qdl-device-blacklist.rules
Reading rules file: /lib/udev/rules.d/77-mm-simtech-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-telit-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-usb-device-blacklist.rules
Reading rules file: 
/lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules
Reading rules file: /lib/udev/rules.d/77-mm-x22x-port-types.rules
Reading rules file: /lib/udev/rules.d/77-mm-zte-port-types.rules
Reading rules file: /lib/udev/rules.d/78-graphics-card.rules
Reading rules file: /lib/udev/rules.d/78-sound-card.rules
Reading rules file: /lib/udev/rules.d/80-debian-compat.rules
Reading rules file: /lib/udev/rules.d/80-drivers.rules
Reading rules file: /lib/udev/rules.d/80-ifupdown.rules
Reading rules file: /lib/udev/rules.d/80-libinput-device-groups.rules
Reading rules file: /lib/udev/rules.d/80-mm-candidate.rules
Reading rules file: /lib/udev/rules.d/80-net-setup-link.rules
Reading rules file: /lib/udev/rules.d/80-udisks2.rules
Reading rules file: /lib/udev/rules.d/84-nm-drivers.rules
Reading rules file: /lib/udev/rules.d/85-brltty.rules
Reading rules file: /lib/udev/rules.d/85-hdparm.rules
Reading rules file: /lib/udev/rules.d/85-hplj10xx.rules
Reading rules file: /lib/udev/rules.d/85-keyboard-configuration.rules
Reading rules file: /lib/udev/rules.d/85-nm-unmanaged.rules
Reading rules file: /lib/udev/rules.d/85-regulatory.rules
Reading rules file: /lib/udev/rules.d/88-nuand.rules
Reading rules file: /lib/udev/rules.d/90-alsa-restore.rules
Reading rules file: /lib/udev/rules.d/90-comedi.rules
Reading rules file: /lib/udev/rules.d/90-fwupd-devices.rules
Reading rules file: /lib/udev/rules.d/90-libgpod.rules
Reading rules file: /lib/udev/rules.d/90-libinput-model-quirks.rules
Reading rules file: /lib/udev/rules.d/90-pulseaudio.rules
Reading rules file: /lib/udev/rules.d/95-cd-devices.rules
Reading rules file: /lib/udev/rules.d/95-upower-csr.rules
Reading rules file: /lib/udev/rules.d/95-upower-hid.rules
Reading rules file: /lib/udev/rules.d/95-upower-wup.rules
Reading rules file: /lib/udev/rules.d/97-hid2hci.rules
Reading rules file: /etc/udev/rules.d/99-jlink.rules
Reading rules file: /etc/udev/rules.d/99-stm407.rules
Reading rules file: /lib/udev/rules.d/99-systemd.rules
rules contain 393216 bytes tokens (32768 * 12 bytes), 38023 bytes 
strings
31116 strings (259210 bytes), 27330 de-duplicated (224974 bytes), 3787 
trie nodes used
value '[dmi/id]sys_vendor' is 'ASUS'
value '[dmi/id]sys_vendor' is 'ASUS'
IMPORT builtin 'usb_id' /lib/udev/rules.d/50-udev-default.rules:13
IMPORT builtin 'hwdb' /lib/udev/rules.d/50-udev-default.rules:13
MODE 0664 /lib/udev/rules.d/50-udev-default.rules:41
PROGRAM 'mtp-probe /sys/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2 3 
17' /lib/udev/rules.d/69-libmtp.rules:1923
starting 'mtp-probe /sys/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2 
3 17'
'mtp-probe /sys/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2 3 
17'(out) '0'
Process 'mtp-probe /sys/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2 3 
17' succeeded.
handling device node '/dev/bus/usb/003/017', devnum=c189:272, mode=0664, 
uid=0, gid=0
preserve permissions /dev/bus/usb/003/017, 020664, uid=0, gid=0
preserve already existing symlink '/dev/char/189:272' to 
'../bus/usb/003/017'
ACTION=add
BUSNUM=003
DEVNAME=/dev/bus/usb/003/017
DEVNUM=017
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4.2
DEVTYPE=usb_device
DRIVER=usb
ID_BUS=usb
ID_MODEL=STM32_BOOTLOADER
ID_MODEL_ENC=STM32\x20\x20BOOTLOADER
ID_MODEL_FROM_DATABASE=STM Device in DFU Mode
ID_MODEL_ID=df11
ID_REVISION=2200
ID_SERIAL=STMicroelectronics_STM32_BOOTLOADER_386535783037
ID_SERIAL_SHORT=386535783037
ID_USB_INTERFACES=:fe0102:
ID_VENDOR=STMicroelectronics
ID_VENDOR_ENC=STMicroelectronics
ID_VENDOR_FROM_DATABASE=STMicroelectronics
ID_VENDOR_ID=0483
MAJOR=189
MINOR=272
PRODUCT=483/df11/2200
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=1352563649
Unload module index
Unloaded link configuration context.
florian@messpc:~$

Autor: Sven B. (scummos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, da steht aber dass es die Berechtigungen für die Datei die dfu-util 
auch verwendet auf 664 setzt. Das ist wirklich komisch. Du kannst dir ja 
die Attribute mit ls -la /dev/bus/usb/003/017  mal anschauen ...?

: Bearbeitet durch User
Autor: FlorenzW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
florian@messpc:~$ lsusb
...
Bus 003 Device 012: ID 0483:df11 STMicroelectronics STM Device in DFU 
Mode
...

florian@messpc:~$ ls -la /dev/bus/usb/003/012
crw-rw-r-- 1 root root 189, 267 Jun  3 19:29 /dev/bus/usb/003/012
florian@messpc:~$

Autor: Sven B. (scummos)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Hm, es wendet die Gruppe nicht an. Keine Ahnung. Evtl. fehlt die "0" vor 
der Device ID?

Autor: FlorenzW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das war das Problem! Jetzt funktioniert's auch ohne sudo!
Vielen Dank Sven B.

Was aber nicht heißt, dass es jetzt mit der Aruino-IDE funktioniert.
... es ist zum heulen...

Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #2 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util 
release!!!
dfu-util: Invalid dfuse address: {upload.dfuse_addr}
Waiting for /dev/ttyUSB0 serial...Done

Ich vermute dass dfu-util von der Arduino-IDE mit falschen Parametern 
aufgerufen wird, weil aus der Kommandozeile funktioniert es einwandfrei.
Jetzt versuche ich rauszufinden, wo man das ändern kann...

Autor: Sven B. (scummos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dabei kann ich glaube ich nicht helfen ;) Aber falls du die Parameter 
wissen willst, mit denen es aufgerufen wird, hilft dabei wieder strace 
-- diesmal nach dem "execve" syscall filtern.

Autor: FlorenzW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warnung:
Beim Versuch dieses STM32F407VGT6-Board mit dem Arduino-core von Roger 
Clark mit der Methode STM32duino Bootloader zu flashen versetzt man das 
Board reproduzierbar in einen nicht mehr löschbaren und damit nicht mehr 
neu programmierbaren Zustand.

Fehlermeldung: dfuERROR, clearing status

Diese Fehlermeldung bekommt man von diesem Zeitpunkt an immer zu sehen, 
wenn man Versucht das Board über dfu-util zu programmieren, auch in der 
Kommandozeile egal ob root oder nicht.

Rettung:
Sobald man über einen USB-Seriell-Adapter (wie oben beschrieben) mit 
Hilfe des Arduino cores von danieleff das Board flasht ist es auch über 
USB/dfu wieder ansprechbar.

Autor: Florian W. (florenzw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da es inzwischen etwas unübersichtlich geworden ist, eine 
Zusammenfassung:

Ein STM32F407VGT6-Board so wie es ist ohne speziellen Bootloader mit 
dfu-util über USB zu flashen funktioniert. (Jumper: BOOT0 HIGH, BOOT1 
LOW)
Aufruf (Quelle Harry L.):
sudo dfu-util -a 0 -D Blink.ino.bin -s 0x08000000
Um das Programm auszuführen müssen BOOT0 und BOOT1 auf LOW gejumpert und 
auf RESET gedrückt werden

Damit dfu-util auch ohne sudo funktioniert, muss es das Recht für den 
Zugriff auf das USB-Device haben. Zu diesem Zweck habe ich eine 
entsprechnde Regel eingerichtet:
sudo nano /etc/udev/rules.d/99-stm407.rules

In diese Datei kommt folgende Zeile:
ATTRS{idProduct}=="df11", ATTRS{idVendor}=="0483", MODE="664", GROUP="plugdev"

Die Product-ID und die Vendor-ID müssen evtl. angepasst werden und 
unbedingt vierstellig sein (Quelle Sven B.), man erfährt sie durch 
Aufruf von lsusb. Das Board muss dafür über USB eingesteckt sein und 
sich im Bootloader-Modus befinden.

Es gibt z.Zt. mindestens drei verschiedene "Arduino-cores", die 
STM32F4-Boards der Arduino-IDE zugänglich machen.
- Roger Clark / STM32duino
- danieleff
- direkt von ST

Das direkte Programmieren des Boards über USB aus der Arduino-IDE heraus 
ist mir bis jetzt noch nicht gelungen. Von den drei getesteten cores 
bietet z.Zt. für generische Boards nur der von Roger Clark einen 
dfu-upload, was aber dazu führt, dass nichts mehr geht, Rettung durch 
seriellen Upload.

Was funktioniert ist in der Arduino-IDE ein nicht existentes 
Programmier-target (z.B. ST-Link) einzustellen, nachdem der 
Programmiervorgang abgebrochen ist die XXX.ino.bin-Datei aus dem 
/tmp/arduino_build_xxxxxx-Ordner zu fischen und über einen manuellen 
dfu-util-Aufruf aus der Kommandozeile zu flashen.


Dieses Board über ein FTDI USB-Seriell-Adapterboard direkt aus der 
Arduino-IDE zu flashen funktioniert sehr gut, aber nur mit dem 
Arduino-core von danieleff.
Diese Methode hat einen großen Vorteil: Man muss nicht rumjumpern.
Das Board wird fest auf BOOT0 HIGH und BOOT1 LOW gejumpert und mit RESET 
in den Bootloader-Modus versetzt. Nach dem Programiervorgang wird das 
Programm automatisch gestartet. Möchte man wieder Programmieren, drückt 
man auf RESET.

Das FTDI-Board muss auf 3,3V eingestellt sein!
FTDI             STM32f407
GND  ->          GND
VCC  ->          3.3V
TX   -> 1kOhm -> PA10
RX   -> 1kOhm -> PA9
(Die 1kOhm-Rs sind nur zur Sicherheit, man weiß ja nie :-)

Board Black F407VE/ZE/ZG ausgewählt.
Specific Board F407VE (V2.0)
Upload Method: Serial UART1
BOOT0: HIGH, BOOT1: LOW


Vermutlich (noch nicht getestet) die sinnvollste Methode ist ein ST-LINK 
Dongle, da der von allen cores unterstützt wird und schon für <2€ zu 
haben ist.

: Bearbeitet durch User
Autor: Random .. (thorstendb) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DFU? Deeply Fucked Up?
:-p

Autor: Florian W. (florenzw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:-) Jetzt geht's :-)

Arduino core von Roger Clark
Board:"STM32F4Stamp F405"

Zum Programmieren:
BOOT0 HIGH, BOOT1 LOW, RESET und auf den Upload-Button der Arduino-IDE 
klicken.

Zum Ausführen:
BOOT0 LOW, BOOT1 LOW, RESET

Genaueres steht in /Arduino/hardware/Arduino_STM32/STM32F4/boards.txt

Autor: Johannes S. (jojos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
trotzdem macht es mit dem STLink oder BMP mehr Spass weil man nicht die 
Jumper (oder Schalter) immer hin und her stecken muss. Dann noch die 
Arduino IDE durch Eclipse ersetzen zum Debuggen und Arduino durch mbed 
:-)

Autor: Florian W. (florenzw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Definitiv. Hab mir dfu irgendwie besser vorgestellt :-)
Für mich ist jetzt die Lösung Arduino-core von danieleff mit seriellem 
Upload. Gegen die Arduino-IDE spricht für mich erst mal nichts, weil ich 
kein Profiprogrammierer bin und mich darüber freue, dass es überhaupt 
funktioniert.

Der danieleff-core hat noch den Vorteil, dass er mehr libraries 
mitbringt.
Mit dem STM32duino-core für STM32F4 bin ich gerade an I2C gescheitert.

Autor: Christopher J. (christopher_j23)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Florian W. schrieb:
> Von den drei getesteten cores bietet z.Zt. für generische Boards nur
> der von Roger Clark einen dfu-upload

Die Frage ist halt was mit "generischen Boards" gemeint ist. Vermutlich 
der Software-DFU-BL auf den BluePills.


Florian W. schrieb:
> Vermutlich (noch nicht getestet) die sinnvollste Methode ist ein ST-LINK
> Dongle, da der von allen cores unterstützt wird und schon für <2€ zu
> haben ist.

Definitiv. DFU sehe ich höchstens als Möglichkeit, dass ein Kunde seine 
Firmware updaten kann. Für Entwicklung ist das eher nix. Außerdem kann 
man damit nicht debuggen, was ebenfalls ein Nachteil ist. Angesichts der 
ST-Link Preise würde ich mir das wirklich nicht unbedingt antun wollen.

Autor: Florian W. (florenzw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christopher J. schrieb:
> Florian W. schrieb:
>> Von den drei getesteten cores bietet z.Zt. für generische Boards nur
>> der von Roger Clark einen dfu-upload
>
> Die Frage ist halt was mit "generischen Boards" gemeint ist. Vermutlich
> der Software-DFU-BL auf den BluePills.

Das hat sich ausschließlich auf STM32F4-Boards bezogen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.