Hallo zusammen,
ich setze einen Cubietruck mit dem Igor Image 3.4.107 ein. Da der standartmässig mitgelieferte cp210x Treiber nicht so recht mit dem OWL Energiemesser arbeitet muss der Treiber gepatched bzw. der gepatchte neu kompiliert werden.
Hier die Diff angaben:
--- drivers/usb/serial/cp210x.c.orig 2015-02-10 22:37:33.172408517 +0100
+++ drivers/usb/serial/cp210x.c 2015-02-10 22:41:58.569142037 +0100
@@ -410,8 +410,9 @@
*/
static unsigned int cp210x_quantise_baudrate(unsigned int baud)
{
- if (baud <= 300)
- baud = 300;
+ if ( baud == 0 )
+ baud = 250000; /* KLUDGE for Owl Energy Monitor, Use baud rate (B0 Hang up) that is unlikley to be of any use */
+ else if (baud <= 300) baud = 300;
else if (baud <= 600) baud = 600;
else if (baud <= 1200) baud = 1200;
else if (baud <= 1800) baud = 1800;
Der neue Treiber lässt sich auch ohne Fehlermeldung kompilieren aber wenn ich ihn lade kommen folgende Fehlermeldungen:
Message from syslogd@localhost at May 5 19:46:01 ...
kernel:[95248.722493] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Segmentation fault
root@cubietruck:~/cp210#
Message from syslogd@localhost at May 5 19:46:01 ...
kernel:[95249.734682] Process modprobe (pid: 15622, stack limit = 0xee4d22f0)
Message from syslogd@localhost at May 5 19:46:01 ...
kernel:[95249.744552] Stack: (0xee4d3ee0 to 0xee4d4000)
Message from syslogd@localhost at May 5 19:46:01 ...
kernel:[95249.758183] 3ee0: ee140a80 bf52b860 00000000 c0082014 bf52b86c 00007fff 00000000 c00cbde8
Message from syslogd@localhost at May 5 19:46:01 ...
kernel:[95249.771937] 3f00: eeb5f234 00000000 00000124 c007fdd4 ee4d2030 f0c79ed8 b6f4ed50 f0c79714
Message from syslogd@localhost at May 5 19:46:01 ...
kernel:[95249.785659] 3f20: f0c79988 f0c79eb0 ee417c00 00000000 00000000 00000000 00000000 00000000
Message from syslogd@localhost at May 5 19:46:01 ...
kernel:[95249.799479] 3f40: 00000000 f0c75000 00007275 f0c79988 f0c7982b f0c7b648 000029b4 00002e14
Message from syslogd@localhost at May 5 19:46:01 ...
kernel:[95249.813260] 3f60: 00000000 00000000 00000021 00000022 00000019 00000016 00000012 00000000
Message from syslogd@localhost at May 5 19:46:01 ...
kernel:[95249.827023] 3f80: 08000071 00000000 b8b08360 b8b08280 00000080 c000eac4 ee4d2000 00000000
Message from syslogd@localhost at May 5 19:46:01 ...
kernel:[95249.840761] 3fa0: 00000000 c000e940 00000000 b8b08360 b6d92000 00007275 b6f4ed50 00000002
Message from syslogd@localhost at May 5 19:46:01 ...
kernel:[95249.854469] 3fc0: 00000000 b8b08360 b8b08280 00000080 00000000 b6f4ed50 00007275 00000000
Message from syslogd@localhost at May 5 19:46:01 ...
kernel:[95249.868155] 3fe0: 00040000 bede08d4 b6f48b07 b6ecb264 60000010 b6d92000 00000000 00000000
Message from syslogd@localhost at May 5 19:46:01 ...
kernel:[95249.908430] Code: e5943154 e5911014 e2833004 e7922101 (e7931002)
Ich habe keine Idee was da schief läuft
Gibt es denn hier wirklich keinen der sich mit dieser Materie auskennt ?
Wie hast Du es kompiliert? gegen welche Kernelquellen? Kernelquellen = Kernel?
Die Kernelquellen sind im Igor Image vorhanden
3.4.107-cubietruck
mit folgendem Makefile:
obj-m = cp210x.o
KVERSION = $(shell uname -r)
all:
make -C /lib/modules/$(KVERSION)/build M=$(shell pwd) modules
clean:
make -C /lib/modules/$(KVERSION)/build M=$(shell pwd) clean
Beim Kompilieren tritt kein Fehler auf
Gucke bitte mal, welcher Kernel läuft
uname -a
Das ungepatchte Modul kannst Du kompilieren und starten?
Der ungepatchte ist ja schon vorhanden und der lässt sich starten
Die Ausgabe von uname -r steht im obigen Beitrag
uname -a
Linux cubietruck 3.4.107-cubietruck #14 SMP PREEMPT Wed Apr 29 11:57:42 CEST 2015 armv7l GNU/Linux
Hast Du mal probiert, den kompletten Kernel neu zu bauen?
Mich wundert wirklich:
Segmentation fault
Nein habe ich nicht, kann es auch nicht. So tief stecke ich nicht im Linux
Du könntest in einem Forum fürs Image probieren .... hier wirst Du, befürchte ich, für Dein Problem keine Lösung finden ...
Könnte dies funktionieren ?
cp cp210x.ko to /lib/modules/<kernel-version>/kernel/drivers/usb/serial
insmod /lib/modules/<kernel-version/kernel/drivers/usb/serial/usbserial.ko
insmod cp210x.ko
und bleibt das auch nach einem Reboot bestehen ?
In dem von Dir genannten verzeichnis sind alle Module, d.h. wenn Du dort eine Datei austauscht ist es selbstverständlich bootsave, wenn beim booten der "Treiber" geldaden wird.
Aber .. warum sollte das klappen und was Du vorher gemacht hat, klappt nicht? Oder hast Du uns noch etwas verschwiegen?
Nein, verschwiegen habe ich nichts. Es hat ja auch nicht geklappt.
Ich habe jetzt den Kernel mit dem Bananapi Treiber neu kompiliert. Nun wird er auch sauber geladen und lädt auch automatisch den usbserial wiue es auf dem Raspberry funktioniert.
Nur dmesg zeigt unterschiedliche Ergebnisse:
Auf dem Cubietruck:
[95589.225566] usb 2-1.5.4: new full-speed USB device number 11 using sw-ehci
[95589.327675] cp210x 2-1.5.4:1.0: cp210x converter detected
[95589.402384] usb 2-1.5.4: reset full-speed USB device number 11 using sw-ehci
[95589.492578] usb 2-1.5.4: cp210x converter now attached to ttyUSB0
mit dem Ergebnis von lsusb
Bus 002 Device 002: ID 0835:8500 Action Star Enterprise Co., Ltd
Bus 005 Device 002: ID 413c:2105 Dell Computer Corp. Model L100 Keyboard
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 0835:8501 Action Star Enterprise Co., Ltd
Bus 002 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 002 Device 007: ID 0835:8500 Action Star Enterprise Co., Ltd
Bus 002 Device 008: ID 0835:8502 Action Star Enterprise Co., Ltd
Bus 002 Device 011: ID 0fde:ca05
Auf dem Raspberry:
[160818.121261] usb 1-1.3.1: new full-speed USB device number 11 using dwc_otg
[160818.439934] usb 1-1.3.1: New USB device found, idVendor=0fde, idProduct=ca05
[160818.439970] usb 1-1.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[160818.439992] usb 1-1.3.1: Product: OWL Wireless Electricity Monitor USB version is connected
[160818.440010] usb 1-1.3.1: Manufacturer: Silicon Labs
[160818.440027] usb 1-1.3.1: SerialNumber: 006DFBA7
[160818.446936] cp210x 1-1.3.1:1.0: cp210x converter detected
[160818.521324] usb 1-1.3.1: reset full-speed USB device number 11 using dwc_otg
[160818.836274] usb 1-1.3.1: cp210x converter now attached to ttyUSB0
mit lsusb:
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0930:6544 Toshiba Corp. Kingston DataTraveler 2.0 Stick (2GB)
Bus 001 Device 005: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 011: ID 0fde:ca05
Bus 001 Device 007: ID 03eb:204b Atmel Corp. LUFA USB to Serial Adapter Project
Bus 001 Device 008: ID 03eb:204b Atmel Corp. LUFA USB to Serial Adapter Project
Bus 001 Device 009: ID 1b1f:c00f
Ich kann mir die unterschiedlichen Ausgaben nicht erklären
also .. einiges ist verständlich:
da es unterschiedliche USB Chips auf Serverseite werden unterschiedliche USB-treiber verwendet:
[160818.121261] usb 1-1.3.1: new full-speed USB device number 11 using dwc_otg
[95589.225566] usb 2-1.5.4: new full-speed USB device number 11 using sw-ehci
und das "interessante" ist doch gleich:
[160818.446936] cp210x 1-1.3.1:1.0: cp210x converter detected
[160818.521324] usb 1-1.3.1: reset full-speed USB device number 11 using dwc_otg
[160818.836274] usb 1-1.3.1: cp210x converter now attached to ttyUSB0
Damit die lsusb-Augabe gleich aussiehst, kannst Du mal probieren (weiß nur nicht ob es den auf den "Kisten" gibt)
update-usbids