Raspi als Solarlogger "vergisst" USB Peripherie

  • Hallo zusammen.

    Wie im Titel bereits erwähnt, habe ich versucht aus einem Raspberry Pi einen Datalogger für meine Solaranlage zu basteln.
    Verwendete Hardware:

    - Raspberry Pi Modell B

    - CTI-Lean RS485/USB Adapter (http://www.cti-shop.com/epages/1548863…oducts/95031010)

    - USB Hub aktiv (http://www.conrad.de/ce/de/product/…ch_results&rb=1)

    - Power-one PVI 8.0-TL-OUTD Wechselrichter (
    http://www.power-one.com/renewable-ener…-tl-outd/series)

    Das Ganze wird verbunden über ein 25m Cat 7 Kabel, Terminatoren auf beiden Enden gesetzt.

    Betriebsystem ist das aktuelle Wheezy von Mitte Januar. Alles was Softwaretechnisch eingerichtet wurde erfolgte nach dieser Anleitung:

    http://francescopaganelli.blogspot.de/2013/02/aurora…i-123solar.html

    Nur den letzten Punkt (9. Change boot config information) habe ich weggelassen. Hintergrund: Es brauchte mehrere Anläufe bis es funktioniert hat und diese Änderung hat dazu geführt, dass der Raspi nicht mehr gebootet hat. Letzte Info: Eigene Linuxkenntnisse sind SEHR bescheiden :)


    Mit diesem Setup habe ich nun 2 Probleme:

    1. Der Raspi bootet mit angeschlossenem USB/RS485 Adapter, sowie USB Tastatur und Maus einwandfrei, der 123Solar-Server läuft ohne Probleme. Allerdings "vergisst" der Raspi nach etwa 4 Minuten nichtbenutzung die USB Peripherie. Maus und Tastatur reagieren einfach nicht mehr. Dabei spielt es keine Rolle, ob ALLE Geräte am Hub hängen, oder der Adapter am Hub, Maus direkt am Raspi oder Maus & Tastatur am Hub und der Adapter direkt am Raspi....Fehlerbild ist das gleiche.
    Das Problem scheint nur dann nicht aufzutreten, wenn der Adapter NICHT eingesteckt wird. 10 Minuten nach dem Booten funktionieren Maus und Tastatur ohne Aussetzer.

    2. Der Raspi schnellt auf 100% CPU Last ohne dass ich mir das erklären könnte. In dem Zeitfenster, wo Adapter, Tastatur und Maus zusammen funktionieren, dümpelt er bei etwa 30% Last herum. ENTFERNT man nun den Adapter z.b., schnellt er auf 100% und verharrt dort. Erst das erneute Einstecken lässt ihn sich "beruhigen". Mir kommt das komisch vor, weil es mir "natürlicher" erscheint wenn das ERGÄNZEN von Geräten oder Services die CPU Last erhöht und nicht das WEGLASSEN derselbigen.

    So...ich hoffe ich habe meine Situation ausreichend und im besten Falle im richtigen Forum gepostet :D

    Für Hilfe jeder Art wäre ich sehr dankbar. Anmerkung: Ich halte es für durchaus realistisch, bei der Konfiguration etwas falsch gemacht zu haben....wie gesagt: Mäßige Linuxkenntnisse.
    Aber wo kämen wir hin wenn sich jeder nur Projekte vornehmen würde, deren Ausmaße er vorher abschätzen kann ;)

  • Ich kenne die Anwendung gar nicht...
    Also alle Aussagen mit Vorsicht genießen.

    Das hochschnellen von 30% Last auf 100% deutet auf massives Polling.
    Ungünstig gelöst.


    Mit dem Linux Kommando "tail" kannst du dir die letzten Meldungen des Kernels gut anschauen. Da könnten sich Indizien finden, warum der den USB weg wirft.


    Ansonsten, sind Stromversorgungsprobleme sehr häufig.
    Einbrechende Netzteile, wackelige Stecker.

    spruch.png

  • Danke für die schnelle Antwort:

    Ich gestehe, ich habe keine Ahnung was "Polling" ist....google ich gleich.

    Netzteil schließe ich aus, da ich 3 verschiedene Netzteile ausprobiert habe...Problem bleibt dasselbe.

    Funktioniert der von dir genannte Befehl auch nach einem reboot? Falls nicht ist dein Tip schwer umzusetzen, da ja immer wenn der Fehler auftritt die Eingabeperipherie nicht mehr funktioniert.
    Ich KANN also garkeine Befehl in der Konsole eingeben.

  • Auch auf die Gefahr hin als begriffsstutzig dazustehen, aber ich befürchte ich brauche mehr Hilfestellung.
    Wie ist die genaue Verwendung des Tail-Befehls? Bei einfach nur "tail" passiert garnichts.

    Das Verzeichnis mit den Logs habe ich gefunden, allerdings sind da 25 Logdateien drin. Wonach genau suche ich?

    Danke schonmal bis hierhin

  • So, ich habe deinen Rat befolgt und folgendes hat sich ergeben:

    Die Maus friert ein, wie immer....und nach ca 3 Minuten meldet er:

    raspberrypi kernel: (302.709084) EXT4-fs (mmcblk0p2): error count: 1

    raspberrypi kernel: (302.709121) EXT4-fs (mmcblk0p2):initial error at 89: htree_dirblock_to_tree:920: inode 4660: block 8906

    raspberrypi kernel: (302.709146) EXT4-fs (mmcblk0p2): last error at 89: three_dirblock_to_tree:920: in ode 4660: block 8906


    Das sind die einzigen Meldungen in den überwachten Logs ab auftreten des Fehlers. Nicht dass ich jetzt davon Ahnung hätte, aber sieht das nach einer Fehlermeldung aus, die die USB Ports betrifft? Für mich sieht das eher nach Dateisystem aus.

  • Niemand eine Idee?

    Es würde mir schon reichen zu wissen, ob dieser Fehler mit meinem Problem überhaupt etwas zu tun haben kann. Falls ja würde ich einfach mal versuchen das System neu einzurichten, evtl mit einem anderen Image. Wenn es aber nichts damit zu tun haben KANN, ist das ein Haufen Arbeit für potentiell garnichts

  • Die Fehlermeldung ist insofern seltsam als dass es standardmäßig keine Partition namens mmcblk0p2 gibt. Dachte zuerst ein USB-Stick, aber da hast du ja laut deiner Auflistung keinen dranhängen?
    Zeig mal die Ausgabe von df -h.

    Außerdem wäre die Ausgabe von dmesg interessant wenn du den Adapter ab- und wieder ansteckst.

  • Aaaalso...folgende Entwicklung:

    Ich dachte a) ich hätte eine clevere Idee gehabt und b) das Problem hängt ausschließlich mit dem USB Controller o.ä. zusammen.

    Daher wollte ich das Problem mit der Peripherie umgehen, indem ich mich auf dem Raspi via RDP einlogge. Das funktioniert insofern einwandfrei, als dass ich nicht mehr die Kontrolle über Maus und Tastatur verliere....dafür hängt sicher der Raspi innerhalb von 10-15 Minuten einfach auf. Die Kontrolle LEDs am RS 485 Adapter hören auf zu blinken, einloggen über RDP ist nicht mehr möglich. Es hilft nur Netzstecker ziehen.

    Ich poste jetzt mal alle Logs, die allerdings den Zustand aufzeigen, wenn er noch reagiert. Ich werde noch versuchen die vollständigen Logs zu posten (nach einem Absturz)...dachte nur es ist von Vorteil wenn wenigstens mal DAS zur Verfügung steht:

    df -h

    Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
    rootfs 3,6G 2,3G 1,1G 69% /
    /dev/root 3,6G 2,3G 1,1G 69% /
    devtmpfs 211M 0 211M 0% /dev
    tmpfs 44M 248K 44M 1% /run
    tmpfs 5,0M 4,0K 5,0M 1% /run/lock
    tmpfs 88M 0 88M 0% /run/shm
    /dev/mmcblk0p1 56M 19M 38M 34% /boot


    ----------------------------------------------------


    debug

    Feb 14 14:17:17 raspberrypi kernel: [ 0.000000] Normal zone: 896 pages used for memmap
    Feb 14 14:17:17 raspberrypi kernel: [ 0.000000] Normal zone: 0 pages reserved
    Feb 14 14:17:17 raspberrypi kernel: [ 0.000000] Normal zone: 114688 pages, LIFO batch:31
    Feb 14 14:17:17 raspberrypi kernel: [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    Feb 14 14:17:17 raspberrypi kernel: [ 0.000000] pcpu-alloc: [0] 0
    Feb 14 14:17:17 raspberrypi kernel: [ 1.861712] dwc_otg: Microframe scheduler enabled
    Feb 14 14:17:17 raspberrypi kernel: [ 1.943791] dwc_otg: FIQ enabled
    Feb 14 14:17:17 raspberrypi kernel: [ 1.943808] dwc_otg: NAK holdoff enabled
    Feb 14 14:17:17 raspberrypi kernel: [ 1.943818] dwc_otg: FIQ split fix enabled
    Feb 14 14:17:17 raspberrypi kernel: [ 1.943838] Module dwc_common_port init

    ------------------------------------------------------

    dmesg

    [ 15.029031] usb 1-1.3: Number of endpoints 2
    [ 15.035238] usb 1-1.3: Endpoint 1 MaxPacketSize 64
    [ 15.082527] usb 1-1.3: Endpoint 2 MaxPacketSize 64
    [ 15.122679] usb 1-1.3: Setting MaxPacketSize 64
    [ 15.142893] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB0
    [ 19.637381] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
    [ 20.119770] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
    [ 25.694068] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
    [ 28.392905] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
    [ 30.039251] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1

    ----------------------------------------------------------

    messages

    Feb 16 13:06:50 raspberrypi kernel: [ 142.587617] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:07:04 raspberrypi kernel: [ 156.486123] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:07:14 raspberrypi kernel: [ 166.136576] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:07:18 raspberrypi kernel: [ 170.350547] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:07:25 raspberrypi kernel: [ 176.934046] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:07:28 raspberrypi kernel: [ 179.872316] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:07:33 raspberrypi kernel: [ 184.965607] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:07:37 raspberrypi kernel: [ 188.657502] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:07:41 raspberrypi kernel: [ 193.272479] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:07:54 raspberrypi kernel: [ 206.444781] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:07:59 raspberrypi kernel: [ 210.998933] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:08:04 raspberrypi kernel: [ 216.268126] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:08:10 raspberrypi kernel: [ 222.344077] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:09:37 raspberrypi kernel: [ 309.108797] EXT4-fs (mmcblk0p2): error count: 1
    Feb 16 13:09:37 raspberrypi kernel: [ 309.108832] EXT4-fs (mmcblk0p2): initial error at 89: htree_dirblock_to_tree:920: inode 4660: block 8906
    Feb 16 13:09:37 raspberrypi kernel: [ 309.108857] EXT4-fs (mmcblk0p2): last error at 89: htree_dirblock_to_tree:920: inode 4660: block 8906
    Feb 16 13:12:50 raspberrypi kernel: [ 502.211574] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:13:23 raspberrypi kernel: [ 535.139131] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:13:26 raspberrypi kernel: [ 538.089375] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:16:45 raspberrypi kernel: [ 736.950013] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:17:00 raspberrypi kernel: [ 752.372207] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:17:12 raspberrypi kernel: [ 764.190670] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:17:15 raspberrypi kernel: [ 767.583623] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:17:32 raspberrypi kernel: [ 784.344046] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:17:38 raspberrypi kernel: [ 789.662772] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:17:59 raspberrypi kernel: [ 811.494003] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:18:01 raspberrypi kernel: [ 813.175109] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:18:08 raspberrypi kernel: [ 820.524685] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:18:11 raspberrypi kernel: [ 822.843729] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:18:16 raspberrypi kernel: [ 828.445896] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:18:29 raspberrypi kernel: [ 840.991973] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:18:30 raspberrypi kernel: [ 842.454053] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:18:32 raspberrypi kernel: [ 844.615971] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:18:39 raspberrypi kernel: [ 851.128877] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:18:41 raspberrypi kernel: [ 853.300397] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:18:48 raspberrypi kernel: [ 860.032364] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:18:57 raspberrypi kernel: [ 869.262727] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:19:03 raspberrypi kernel: [ 875.189307] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0
    Feb 16 13:19:07 raspberrypi kernel: [ 878.888698] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0

    BEIM ABZIEHEN:

    Feb 16 13:20:51 raspberrypi kernel: [ 983.448849] usb 1-1.3: USB disconnect, device number 4
    Feb 16 13:20:51 raspberrypi kernel: [ 983.449468] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
    Feb 16 13:20:51 raspberrypi kernel: [ 983.449563] ftdi_sio 1-1.3:1.0: device disconnected

    BEIM EINSTECKEN:

    Feb 16 13:22:08 raspberrypi kernel: [ 1059.961457] usb 1-1.3: new full-speed USB device number 5 using dwc_otg
    Feb 16 13:22:08 raspberrypi kernel: [ 1060.089715] usb 1-1.3: New USB device found, idVendor=0403, idProduct=6001
    Feb 16 13:22:08 raspberrypi kernel: [ 1060.089752] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    Feb 16 13:22:08 raspberrypi kernel: [ 1060.089771] usb 1-1.3: Product: Serial Converter
    Feb 16 13:22:08 raspberrypi kernel: [ 1060.089789] usb 1-1.3: Manufacturer: CTI GmbH
    Feb 16 13:22:08 raspberrypi kernel: [ 1060.089822] usb 1-1.3: SerialNumber: CTX1RSMJ
    Feb 16 13:22:08 raspberrypi kernel: [ 1060.099976] ftdi_sio 1-1.3:1.0: FTDI USB Serial Device converter detected
    Feb 16 13:22:08 raspberrypi kernel: [ 1060.100204] usb 1-1.3: Detected FT232RL
    Feb 16 13:22:08 raspberrypi kernel: [ 1060.100228] usb 1-1.3: Number of endpoints 2
    Feb 16 13:22:08 raspberrypi kernel: [ 1060.100246] usb 1-1.3: Endpoint 1 MaxPacketSize 64
    Feb 16 13:22:08 raspberrypi kernel: [ 1060.100263] usb 1-1.3: Endpoint 2 MaxPacketSize 64
    Feb 16 13:22:08 raspberrypi kernel: [ 1060.100279] usb 1-1.3: Setting MaxPacketSize 64
    Feb 16 13:22:08 raspberrypi kernel: [ 1060.102451] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB0
    Feb 16 13:22:21 raspberrypi kernel: [ 1072.887144] smsc95xx 1-1.1:1.0 eth0: unexpected urb length 0

    -----------------------------------------------------------------------


    Soviel mal dazu. Ich lasse ihn jetzt mal eine Weile laufen und versuche an die Meldungen unmittelbar nach einem Freeze zu kommen.


    EDIT: Was ich z.b. nicht begreife ist folgendes: Betrachte ich "messages" über den tail-Befehl, zeigt er mir die Meldungen mit korrektem Datum und Uhrzeit an. Öffne ich die Datei "messages" manuell, endet das Log am 7. Februar. Neuere Eintragungen sind nicht vorhanden. Kann mir das bitte mal jemand erklären?

    Einmal editiert, zuletzt von Carmichael (16. Februar 2014 um 13:38)

  • Moin,

    bitte schau mal in die /boot/cmdline.txt

    Code
    sudo nano /boot/cmdline.txt

    Bitte den Inhalt hier posten.

    Sofern nicht vorhanden dieses einfügen:

    Code
    dwc_otg.speed=1 dwc_otg.microframe_schedule=1 dwc_otg.fiq_fix_enable=1

    Bye

    Jürgen


    PS.: Damit wird USB mitgeteilt wie es kommuniziert, speed=1 = USB 1.1.
    Je nach USB device steigen diese bei USB 2 aus, ebenso können USB 2 Geräte bei der Vorgabe USB 1.1 hängen.
    Das könnte die Hänger und die hohe CPU Last erklären, könnte muss aber nicht :s

    Einmal editiert, zuletzt von rpivpn (16. Februar 2014 um 15:06)

  • Inhalt von cmdline.txt:

    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

    ------------------------------

    Wie ich schon im ersten Post erwähnt habe, ist diese Datei unverändert.
    Wenn ich die im Tutorial erwähnten Änderungen vornehme, bootet der Raspi nicht mehr.

    Zu den Zeilen, die ich laut dir einfügen soll eine Frage:

    Schreibe ich die einfach mir Leerzeichen hinter die bestehenden Einträge?

    Einmal editiert, zuletzt von Carmichael (16. Februar 2014 um 15:07)


  • ...root=/dev/mmcblk0p2...

    Schreibe ich die einfach mir Leerzeichen hinter die bestehenden Einträge?


    .... da hätten wir auch die mmcblk0p2 :thumbs1:

    Moin,

    wie Dr. Guttenberg, copy & paste oder über die Tastatur, händisch an den Anfang der Datei mit einem Leerzeichen hinter der letzten 1.
    Speichern und

    Code
    sudo reboot


    Bye

    Jürgen

    Einmal editiert, zuletzt von rpivpn (16. Februar 2014 um 15:17)

  • Ich weiß, dass das jetzt wahrscheinlich eine der schlimmsten Linux-Noob Fragen ist, die man stellen kann, aber was solls....ist der Ruf erst ruiniert....:

    Weil ich deine Antwort nicht abwarten konnte und es ausprobieren wollte, habe ich die Instruktionen schon reingepastet...allerdings ans Ende der cmdline.txt.

    Wenn du fertig bist mit lachen :D : Macht das einen Unterschied?

    Update: Bis jetzt funktioniert das System, zumindest bei Zugriff über Remote Desktop einwandfrei.

    Hab eben grad mal auf "Desktopbetrieb" umgebaut um auch das zu checken. Funktioniert alles, bis auf die Tastatur. Er erkennt sie einfach nicht. Damit könnte ich aber leben, da das System sowieso für Remote Desktop-Betrieb gedacht ist.

    Einmal editiert, zuletzt von Carmichael (16. Februar 2014 um 16:09)

Jetzt mitmachen!

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