cp210x.ko kompilieren für Raspberry

Begonnen von jostmario, 01 November 2013, 12:05:36

Vorheriges Thema - Nächstes Thema

Daku123

Hallo,
hat jemand schon den Treiber für Kernel 3.12.22+ oder höher, damit er im Raspberry B+ auch läuft?

Danke
Daniel
Raspberry B+ als FHEM-Server
CUL868 mit HM-LC-SW4-PCB, HM-WDS10-TH-O, HM-SEC-MDIR und 2x HM-SEC-RHS
JeeLink mit 1x TX25IT (Zisternenüberwachung), 5xTX29IT (2x Temperatur und 3x als Fenster/Torkontakt), 11xTX29DTH-IT

Daku123

Ich würde Thema gern nochmal aufgreifen. Hat jemand einen funktionierenden Treiber für einen Kernel, der auch mit dem Raspberry Pi B+ läuft?

Raspberry B+ als FHEM-Server
CUL868 mit HM-LC-SW4-PCB, HM-WDS10-TH-O, HM-SEC-MDIR und 2x HM-SEC-RHS
JeeLink mit 1x TX25IT (Zisternenüberwachung), 5xTX29IT (2x Temperatur und 3x als Fenster/Torkontakt), 11xTX29DTH-IT

dany2k

#17
Hi,

versuche es mal hiermit:

cd $HOME
wget http://sourceforge.net/projects/electricowl/files/v2.3_v0.2_linux_driver/linux_cm160_driver_v0.2.tgz && tar zxvf linux_cm160_driver_v0.2.tgz
cd linux_cm160_driver/raspberrypi_cp210x_driver/
sudo ./install
sudo reboot



Gruß dany2k

Daku123

Hallo,

ist zwar jetzt schon etwas her, aber dank deines Tipps läuft der OWL jetzt mit dem Raspberry B+ und Kernel 3.12.22+.

Mit diesem Kernel musste ich auch nur die schon vorhandene Micro-SD Karte aus dem Adapter des Raspi B nehmen und einfach in den B+ stecken.
Hat alles sofort wieder funktioniert. Keine Änderung an irgendwelchen Files war nötig, herrlich.
Raspberry B+ als FHEM-Server
CUL868 mit HM-LC-SW4-PCB, HM-WDS10-TH-O, HM-SEC-MDIR und 2x HM-SEC-RHS
JeeLink mit 1x TX25IT (Zisternenüberwachung), 5xTX29IT (2x Temperatur und 3x als Fenster/Torkontakt), 11xTX29DTH-IT

jostmario

Hallo

Habe leider ein update gemacht auf die kernelversion 3.12.28+
jetzt geht mein OWL nicht mehr
hab jetzt das so eingegeben.

Zitatcd $HOME
wget http://sourceforge.net/projects/electricowl/files/v2.3_v0.2_linux_driver/linux_cm160_driver_v0.2.tgz && tar zxvf linux_cm160_driver_v0.2.tgz
cd linux_cm160_driver/raspberrypi_cp210x_driver/
sudo ./install
sudo reboot

er geht aber nicht zeigt disconnect an im Fhem.
wer kann Helfen ..........

Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

netbus


Zitat von: jostmario link=topic=15993.msg216923#
wer kann Helfen ..........

Gruß Josty
/quote]
Kompilieren ist angesagt

jostmario

Hallo

ja kenne mich in Linux nicht viel aus kannst du mir helfen beim kompilieren.
wie geht das ?

Gruß josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

Newbee

Hallo,

Zitat von: dany2k am 05 Oktober 2014, 10:53:59
Hi,

versuche es mal hiermit:

cd $HOME
wget http://sourceforge.net/projects/electricowl/files/v2.3_v0.2_linux_driver/linux_cm160_driver_v0.2.tgz && tar zxvf linux_cm160_driver_v0.2.tgz
cd linux_cm160_driver/raspberrypi_cp210x_driver/
sudo ./install
sudo reboot



Gruß dany2k

Bei mir hat es mit dem Vorschlag von dany2k funktioniert. Kernel war zu dem Zeitpunkt schon 3.12.28+

Gruß NewBee
Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

platypus

Hallo

Ich habe Ubuntu 14.04 mit dem Kernel 3.13.0-43-generic im Einsatz. Leider bekomme ich meinen OWL CM160 in Verbindung mit Linux einfach nicht zum Laufen. Diverse Anleitungen zum kompilieren des Treibers cp210x brachten keinen Erfolg :-(

Hat jemand von Euch einen entsprechenden Treiber hinbekommen? Was habe ich für andere Möglichkeiten?
Es scheint ja ein laufendes Problem zu sein,  sobald wieder ein neuer Kernel kommt.
Ich kenne Linux schon ein paar Jahre, bin aber kein Crack und wenn's um's kompilieren geht sogar blutiger Anfänger ...

Danke für Eure Hilfe

Gruss

Daniel

Newbee

Zitat von: platypus am 25 Dezember 2014, 22:55:42
Hallo

Ich habe Ubuntu 14.04 mit dem Kernel 3.13.0-43-generic im Einsatz. Leider bekomme ich meinen OWL CM160 in Verbindung mit Linux einfach nicht zum Laufen. Diverse Anleitungen zum kompilieren des Treibers cp210x brachten keinen Erfolg :-(

Hat jemand von Euch einen entsprechenden Treiber hinbekommen? Was habe ich für andere Möglichkeiten?
Es scheint ja ein laufendes Problem zu sein,  sobald wieder ein neuer Kernel kommt.
Ich kenne Linux schon ein paar Jahre, bin aber kein Crack und wenn's um's kompilieren geht sogar blutiger Anfänger ...

Danke für Eure Hilfe

Gruss

Daniel

Hallo Daniel,

habe es auf meinem ubuntu 14.04 nun endlich hinbekommen!

Bin wie folgt vorgegangen.

Grundsätzliche Schritt für Schritt Anleitung findest Du hier.
http://unix.stackexchange.com/questions/75558/ubuntu-make-fails-with-no-such-file-or-directory-lib-modules-3-4-0-build
einfach nach unten scrollen bis  "Building cp210x for your kernel version"

Bitte entsprechend deiner Kernel-Version die jeweiligen richtigen Pfade und Dateien auswählen.

Bevor Du dann "Compiling usbserial kernel module" bitte folgende Zeile (ca. 409) in der Datei cp210x.c ergänzen bzw. anpassen.

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;


Dann usbserial kompilieren und es sollte funktionieren.

Gruß Newbee
Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

spltunes

Hallo Leute,

ich hab heute mein FHEM vom RaspiB auf nen Raspi2 umgezogen. Alles läuft soweit (hmland,fhemduino,velux-stick,milight) nur bei der Eule komme ich ins Stottern.

Ich habe Raspian mit dem Kernel 3.18.5-v7+ am laufen. Nun würde ich gerne den Treiber kompilieren, da es für den Kernel keine fertige cp210x.ko mit den eulenspezifischen Anpassungen gibt.

Gibt es für den Kernel eine passende Quelle oder muss ich die allgemeine Quelle nehmen und selber anpassen?

Beste Grüße
Daniel

mahowi

#26
Wie von Newbee beschrieben mußt Du die /usr/src/linux/drivers/usb/serial/cp210x.c patchen. Hier mal der diff für die Datei im aktuellen Kernel 3.18.6+:
--- 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;


Anbei auch das fertige Modul für pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.18.6+ #753 PREEMPT Sun Feb 8 14:47:22 GMT 2015 armv6l GNU/Linux
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

spltunes

Danke mahowi,

war gestern Abend dann soweit, dass ich die Kernel Source geladen hatte, aber beim makefile Probleme hatte, da die Bibliothek "mach/barriers.h" im Kernel für den BCM2709 nicht vorhanden ist und somit das Programm nicht kompiliert werden konnte. Dafür gibt es wohl aktuell auch noch keine Lösung. (https://github.com/raspberrypi/linux/issues/806)

Deine cp210x.ko funktioniert leider auch nicht, da der Raspi2 auf ARMv7 Architektur basiert und deine Datei unter ARMv6 kompiliert wurde.

root@raspberrypi:~# sudo modprobe cp210x
ERROR: could not insert 'cp210x': Exec format error


Bleibt mir also nix als abzuwarten bis die barriers im Kernel integriert wurden und ich selber kompilieren kann.

Beste Grüße
Daniel

mahowi

#28
Ich habe immer rpi-source benutzt um die passenden Kernelsourcen herunterzuladen. Aber ich sehe gerade, daß das Tool nicht mit dem Pi2 funktioniert:
ZitatDiscontinued
2015-02-11
I haven't got the time to maintain this anymore. If anyone want's to pick it up, please do.
It doesn't work with the Pi2 kernel.
:-\
Damit wird nämlich alles installiert, damit man Module zum installierten Kernel auf dem Pi bauen kann. Vor allem muß man nicht den ganzen Kernel kompilieren.
Ich habe einfach die cp210x.c aus dem Kernel in einen Ordner kopiert, gepatcht und mit dem angehängten Makefile kompiliert. Damit kommt auch der Pi klar, ohne Stunden zu brauchen.  :)

Edit: barriers.h sollte eigentlich in den Sourcen vorhanden sein, zumindest bei den für den Pi gepatchten:
pi@raspberrypi ~ $ locate barriers.h
/usr/src/linux-772fa1092af0c1109890fe93a151b36c012afca1/arch/arm/mach-bcm2709/include/mach/barriers.h
/usr/src/linux-772fa1092af0c1109890fe93a151b36c012afca1/arch/arm/mach-omap2/include/mach/barriers.h
/usr/src/linux-772fa1092af0c1109890fe93a151b36c012afca1/arch/arm/mach-realview/include/mach/barriers.h

Die arch/arm/mach-bcm2709/include/mach/barriers.h dürfte wohl die benötigte Header-Datei sein.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

spltunes

Es hat mich viel Schweiss und einige fast schlaflose Nächte gekostet, aber nachdem ich die korrekten Kernel Headers gestern gefunden habe (http://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/) konnte ich den Treiber heute für den Raspi2 mit Kernel 3.18.7-v7 kompilieren.

Anbei der Treiber.

Grüße
Daniel