FreeBSD 11 mit CUL system unresponsive

Begonnen von André., 21 November 2016, 14:52:03

Vorheriges Thema - Nächstes Thema

André.

Hallo zusammen,

in Ermangelung eines FreeBSD Forums schreibe ich mal hier. Wahrscheinlich handelt es sich eher um ein FreeBSD Kernel Problem aber da hier viele den CUL verwenden mal die Frage ob noch jemand Probleme unter FreeBSD 11 hat.

Mein lief CUL seit fast einem Jahr problemlos unter FreeBSD 10.3. Seit dem ich letzte Woche auf FreeBSD 11 aktualisiert habe hängt nach einigen Stunden Betrieb der Server.  Es scheint als ob der CUL das komplette USB System blockiert und damit alle Prozesse die darauf zugreifen.
Auch login per SSH ist dann nicht mehr möglich. Vermutlich weil das root-Dateisystem via USB eingebunden ist.

Ein auf der Konsole laufendes top, dass noch bedienbar ist zeigt den fhem Prozess im Status tx->tx hängen:

https://i.imgur.com/Uti9GEN.png

Im system log finde ich nichts auffälliges, was allerdings vermutlich daran liegt, dass sobald der kritische Zustand erreicht ist wohl auch keine logs mehr geschrieben werden können.

Wenn ich fhem ohne den CUL starte, oder den CUL via Netzwerk einbinde kommt es nicht zu Problemen.
Falls noch jemand Erfahrungen mit dem CUL unter FreeBSD 11 hat, oder sonst eine Idee hat gerne melden.

LG
André

rudolfkoenig

Ich wuerde noch Netzwerk via localhost testen, aber eher aus Debugginghilfe fuer die Kernel-Entwickler.
culfw verwendet eine ziemlich alte Version von LUFA. Evtl. hilft der update auf eine aktuelle Version.

André.


André.

Habe eben mal die LUFA in der culfw durch die die aktuelle GIT Version ersetzt und compiliert:


In file included from ../../lufa/Drivers/USB/Core/USBController.h:150:0,
                 from ../../lufa/Drivers/USB/Core/USBTask.h:47,
                 from ../../lufa/Drivers/USB/USB.h:386,
                 from CUL.c:16:
../../lufa/Drivers/USB/Core/AVR8/USBController_AVR8.h:84:5: error: #error F_USB is not defined. You must define F_USB to the frequency of the unprescaled USB controller clock in your project makefile.
    #error F_USB is not defined. You must define F_USB to the frequency of the unprescaled USB controller clock in your project makefile.
     ^


Bei einem solchen Versions-Sprung hätte ich allerdings auch nicht erwartet das alles klappt. Die aktuelle Version ist 160328 und culfw benutzt zur Zeit 090810. Sieben Jahre ist die alt  ;)

rudolfkoenig

War das mit F_USB eine Frage? Dann in culfw/Devices/CUL/makefile die Zeile mit -D F_CLOCK mit einem weiteren define ergaenzen.
Sonst: wozu aendern, wenn es tut? :)

André.

Mehr so gemurmel  :D
Ich hab's schon hinzugefügt:


F_USB = $(F_CPU)

LUFA_OPTS += -D F_USB=$(F_USB)UL
CFLAGS += -DF_USB=$(F_USB)UL


Allerdings hat sich die lufa api wohl ein bisschen geändert im laufe der Jahre:


../../clib/Descriptors.c:41:44: error: macro "VERSION_BCD" requires 3 arguments, but only 1 given
   USBSpecification:       VERSION_BCD(01.10),
                                            ^
../../clib/Descriptors.c:41:27: error: 'VERSION_BCD' undeclared here (not in a function)
   USBSpecification:       VERSION_BCD(01.10),
                           ^
../../clib/Descriptors.c:73:32: error: 'USB_CONFIG_ATTR_BUSPOWERED' undeclared here (not in a function)
       ConfigAttributes:       (USB_CONFIG_ATTR_BUSPOWERED),
                                ^
../../clib/Descriptors.c:130:32: error: 'ENDPOINT_DESCRIPTOR_DIR_IN' undeclared here (not in a function)
       EndpointAddress:        (ENDPOINT_DESCRIPTOR_DIR_IN |
                                ^
../../clib/Descriptors.c:154:32: error: 'ENDPOINT_DESCRIPTOR_DIR_OUT' undeclared here (not in a function)
       EndpointAddress:        (ENDPOINT_DESCRIPTOR_DIR_OUT | CDC_RX_EPNUM),
                                ^
../../clib/Descriptors.c:205:1: error: conflicting types for 'CALLBACK_USB_GetDescriptor'
CALLBACK_USB_GetDescriptor(const uint16_t wValue,


Ggf. kommt noch mehr wenn das fixt. Eventuell schaue ich mit das am Wochenende mal genauer an.