Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
03.08.2020, 22:17:09

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
  • Mitglieder insgesamt: 24348
  • Letzte: rakuschka
Statistiken
  • Beiträge insgesamt: 675105
  • Themen insgesamt: 54737
  • Heute online: 542
  • Am meisten online: 2287
  • (22.01.2020, 19:20:24)
Benutzer Online

Autor Thema:  Problem bei der Treiberkompilierung (serielle Schnittstelle, 128.000 Baud)  (Gelesen 7745 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Re: 128.000 Baud
« Antwort #15 am: 27.04.2014, 19:18:41 »
Hallo Hanuman!

Das wenig Hilfreiche bezieht sich ausschließlich auf das Posting von aexe.

Ich habe zuerst alle anderen Antworten beantwortet.
Und ich bin eine Langsamschreiber :(
Bevor ich auf dein Posting antworten kann, muss ich zuerst etwas tun :D
Und selbstverständlich werde ich meine Erkenntnisse hier mitteilen.
Vorerst Danke für den Hinweis.

Gruß
Manfred


Schade, war wenig Hilfreiches dabei :(

naja, das tut jetzt aber auch weh - oder bist du den Hinweisen von garfield121 oder meiner Wenigkeit mal wenigstens ansatzweise nachgegangen?

Und ja? Was ist dabei heraus gekommen?

Hanuman

  • Gast
Re: 128.000 Baud
« Antwort #16 am: 27.04.2014, 20:01:48 »
Hallo Hanuman!

Das wenig Hilfreiche bezieht sich ausschließlich auf das Posting von aexe.
jo, so ist er halt unser aexe  :P (duck´n wech)  ;D

Zu deinem Thema, von "bauds" hab ich heut in deinem Beitrag hier zum ersten mal gehört, hab dann aus Neugierde mal weiter gelesen und gesehen, dass du Probleme beim Paketbau hast.

Dafür aber wiederum sind die von mir als zu installiernd genannten Pakete zwingend notwendig - meine Intension hierbei ist jetzt augenblicklich nur, sicherzustellen, dass diese installiert sind.

Mehr kann/können ich/wir aktuell ohne weitere Infos nicht für dich tun.

Der Lösungsweg von garfield121 ist ein etwas anderer, möglicherweise sogar einfacher - du mußt das einfach ausprobieren.

Was da jetzt letztendlich die Lösung bringt - wer weiß?

Wichtig für uns ist, dass du uns immer ausgiebig mit Infos versorgst, sprich alles, was du machst auch detailliert  schilderst.

Ob dann letztendlich ne zufrieden stellende Lösung raus kaommt - schau mer mal  ;D

gutes Gelingen

H.

Die besagten Pakete waren hier mit Sicherheit installiert. Sonst gäbe es nicht die Ausgaben aus dem Eröffnungspost.
Also build-essential evtl. als solches nicht, aber das ist ja nur ein Metapaket, also als solches egal. make und Gnu-Compiler waren installiert.
« Letzte Änderung: 27.04.2014, 20:14:16 von leonidas »

Re: 128.000 Baud
« Antwort #18 am: 27.04.2014, 22:48:17 »
Hallo Hanuman!
Mehr kann/können ich/wir aktuell ohne weitere Infos nicht für dich tun.
Der Lösungsweg von garfield121 ist ein etwas anderer, möglicherweise sogar einfacher - du mußt das einfach ausprobieren.
Was da jetzt letztendlich die Lösung bringt - wer weiß?
Wichtig für uns ist, dass du uns immer ausgiebig mit Infos versorgst, sprich alles, was du machst auch detailliert  schilderst.
Ob dann letztendlich ne zufrieden stellende Lösung raus kaommt - schau mer mal  ;D
gutes Gelingen
H.

Ich tue ja (fast immer) was man mir sagt:
alf@Gustaf ~ $ sudo apt-get install build-essential dkms
[sudo] password for alf:
Sorry, try again.
[sudo] password for alf:
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Statusinformationen werden eingelesen... Fertig
dkms ist schon die neueste Version.
Die folgenden zusätzlichen Pakete werden installiert:
  dpkg-dev g++ g++-4.6 libalgorithm-diff-perl libalgorithm-diff-xs-perl
  libalgorithm-merge-perl libdpkg-perl libstdc++6-4.6-dev
Vorgeschlagene Pakete:
  debian-keyring g++-multilib g++-4.6-multilib gcc-4.6-doc libstdc++6-4.6-dbg
  libstdc++6-4.6-doc
Die folgenden NEUEN Pakete werden installiert:
  build-essential dpkg-dev g++ g++-4.6 libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl
  libstdc++6-4.6-dev
0 aktualisiert, 9 neu installiert, 0 zu entfernen und 5 nicht aktualisiert.
Es müssen 9.120 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 26,9 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]? J
Hole:1 http://archive.ubuntu.com/ubuntu/ precise/main libstdc++6-4.6-dev i386 4.6.3-1ubuntu5 [1.643 kB]
Hole:2 http://archive.ubuntu.com/ubuntu/ precise/main g++-4.6 i386 4.6.3-1ubuntu5 [6.745 kB]
Hole:3 http://archive.ubuntu.com/ubuntu/ precise/main g++ i386 4:4.6.3-1ubuntu5 [1.444 B]
Hole:4 http://archive.ubuntu.com/ubuntu/ precise-updates/main libdpkg-perl all 1.16.1.2ubuntu7.2 [180 kB]
Hole:5 http://archive.ubuntu.com/ubuntu/ precise-updates/main dpkg-dev all 1.16.1.2ubuntu7.2 [469 kB]
Hole:6 http://archive.ubuntu.com/ubuntu/ precise-updates/main build-essential i386 11.5ubuntu2.1 [5.796 B]
Hole:7 http://archive.ubuntu.com/ubuntu/ precise/main libalgorithm-diff-perl all 1.19.02-2 [50,7 kB]
Hole:8 http://archive.ubuntu.com/ubuntu/ precise/main libalgorithm-diff-xs-perl i386 0.04-2build2 [12,9 kB]
Hole:9 http://archive.ubuntu.com/ubuntu/ precise/main libalgorithm-merge-perl all 0.08-2 [12,7 kB]
Es wurden 9.120 kB in 11 s geholt (829 kB/s)                                   
Vormals nicht ausgewähltes Paket libstdc++6-4.6-dev wird gewählt.
(Lese Datenbank ... 191619 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacken von libstdc++6-4.6-dev (aus .../libstdc++6-4.6-dev_4.6.3-1ubuntu5_i386.deb) ...
Vormals nicht ausgewähltes Paket g++-4.6 wird gewählt.
Entpacken von g++-4.6 (aus .../g++-4.6_4.6.3-1ubuntu5_i386.deb) ...
Vormals nicht ausgewähltes Paket g++ wird gewählt.
Entpacken von g++ (aus .../g++_4%3a4.6.3-1ubuntu5_i386.deb) ...
Vormals nicht ausgewähltes Paket libdpkg-perl wird gewählt.
Entpacken von libdpkg-perl (aus .../libdpkg-perl_1.16.1.2ubuntu7.2_all.deb) ...
Vormals nicht ausgewähltes Paket dpkg-dev wird gewählt.
Entpacken von dpkg-dev (aus .../dpkg-dev_1.16.1.2ubuntu7.2_all.deb) ...
Vormals nicht ausgewähltes Paket build-essential wird gewählt.
Entpacken von build-essential (aus .../build-essential_11.5ubuntu2.1_i386.deb) ...
Vormals nicht ausgewähltes Paket libalgorithm-diff-perl wird gewählt.
Entpacken von libalgorithm-diff-perl (aus .../libalgorithm-diff-perl_1.19.02-2_all.deb) ...
Vormals nicht ausgewähltes Paket libalgorithm-diff-xs-perl wird gewählt.
Entpacken von libalgorithm-diff-xs-perl (aus .../libalgorithm-diff-xs-perl_0.04-2build2_i386.deb) ...
Vormals nicht ausgewähltes Paket libalgorithm-merge-perl wird gewählt.
Entpacken von libalgorithm-merge-perl (aus .../libalgorithm-merge-perl_0.08-2_all.deb) ...
Trigger für man-db werden verarbeitet ...
libdpkg-perl (1.16.1.2ubuntu7.2) wird eingerichtet ...
dpkg-dev (1.16.1.2ubuntu7.2) wird eingerichtet ...
libalgorithm-diff-perl (1.19.02-2) wird eingerichtet ...
libalgorithm-diff-xs-perl (0.04-2build2) wird eingerichtet ...
libalgorithm-merge-perl (0.08-2) wird eingerichtet ...
libstdc++6-4.6-dev (4.6.3-1ubuntu5) wird eingerichtet ...
g++-4.6 (4.6.3-1ubuntu5) wird eingerichtet ...
g++ (4:4.6.3-1ubuntu5) wird eingerichtet ...
update-alternatives: /usr/bin/g++ wird verwendet, um /usr/bin/c++ (c++) im Auto-Modus bereitzustellen.
build-essential (11.5ubuntu2.1) wird eingerichtet ...

Ist das, was du meintest, dabei?

Gustaf alf # dkms add -m cp210x -v 0.09k128

Creating symlink /var/lib/dkms/cp210x/0.09k128/source ->
                 /usr/src/cp210x-0.09k128

DKMS: add completed.
Gustaf alf # dkms build -m cp210x -v 0.09k128

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area....
make KERNELRELEASE=3.2.0-60-generic -C /lib/modules/3.2.0-60-generic/build SUBDIRS=/var/lib/dkms/cp210x/0.09k128/build modules....(bad exit status: 2)
Error! Bad return status for module build on kernel: 3.2.0-60-generic (i686)
Consult /var/lib/dkms/cp210x/0.09k128/build/make.log for more information.

Das Ergebnis ist leider das Selbe.
Auch in /var/lib/dkms/cp210x/0.09k128/build/make.log steht, bis auf das Datum, das Selbe drin:
DKMS make.log for cp210x-0.09k128 for kernel 3.2.0-60-generic (i686)
Son Apr 27 22:24:28 CEST 2014
make: Gehe in Verzeichnis '/usr/src/linux-headers-3.2.0-60-generic'
make[1]: *** Keine Regel vorhanden, um das Target »/var/lib/dkms/cp210x/0.09k128/build/cp210x.c«,
  benötigt von »/var/lib/dkms/cp210x/0.09k128/build/cp210x.o«, zu erstellen.  Schluss.
make: *** [_module_/var/lib/dkms/cp210x/0.09k128/build] Fehler 2
make: Verlasse Verzeichnis '/usr/src/linux-headers-3.2.0-60-generic'

Keine Ahnung, welche Regel da fehlt, was sie regeln soll, wer sie aufgestellt haben soll.....

Gruß
Manfred

Zeig bitte mal
dpkg -l | grep linux | grep generic

Hallo leonidas!

Bitte schön:
alf@Gustaf ~ $ dpkg -l | grep linux | grep generic
ii  linux-generic                            3.2.0.60.71                             Complete Generic Linux kernel
ii  linux-headers-3.2.0-23-generic           3.2.0-23.36                             Linux kernel headers for version 3.2.0 on 64 bit x86 SMP
ii  linux-headers-3.2.0-60-generic           3.2.0-60.91                             Linux kernel headers for version 3.2.0 on 32 bit x86 SMP
ii  linux-headers-generic                    3.2.0.60.71                             Generic Linux kernel headers
ii  linux-image-3.2.0-23-generic             3.2.0-23.36                             Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-60-generic             3.2.0-60.91                             Linux kernel image for version 3.2.0 on 32 bit x86 SMP
ii  linux-image-generic                      3.2.0.60.71                             Generic Linux kernel image

Zeig bitte mal
dpkg -l | grep linux | grep generic
5:45 Uhr ist für mich mitten in der Nacht  ;D

Gruß
Manfred

Für mich auch, aber ich muss trotzdem den Tag dann beginnen. Nicht freiwillig.  :)

Aha, ich wollte nur schauen, ob die Kernel-Headers auch sicher bei Dir installiert sind. Das ist so. Dann weiß ich leider nun auch keine Antwort oder auch sonst nichts mehr auf Deine völlig berechtigte Frage
Zitat
welche Regel da fehlt, was sie regeln soll, wer sie aufgestellt haben soll.....

Fullpower

  • Gast
Hallo,
schon eine Lösung gefunden?
Was eventuell eine Möglichkeit wäre wenn du dir hier
http://www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx
den Linux 3.x.x Treiber herunterlädst die cp210x.c nach der Vorgabe editierst
@@ -431,9 +431,7 @@
        else if (baud <= 64111)    baud = 64000;
        else if (baud <= 77608)    baud = 76800;
        else if (baud <= 117028)   baud = 115200;
-       else if (baud <= 129347)   baud = 128000;
-       else if (baud <= 156868)   baud = 153600;
-       else if (baud <= 237832)   baud = 230400;
+       else if (baud <= 237832)   baud = 128000;
        else if (baud <= 254234)   baud = 250000;
        else if (baud <= 273066)   baud = 256000;
        else if (baud <= 491520)   baud = 460800;
und mit make kompilierst.

Wenn es zu Fehlermeldungen kommt, so wie bei mir, ich verwende den Kernel 3.11 dann hier
https://www.kernel.org/
Den 3.2 er Kernel herunterladen und entpacken.
Die cp210x.c findest du unter "drivers > usb > serial" dann die in dem Paket durch diese ersetzen und wieder nach Vorgabe editieren und mit make kompilieren.
nach dem kompilieren die originale cp210x.ko durch die kompilierte ersetzen.
Auszug aus der Readme des Paketes.
Zitat
Ubuntu:
1. make ( your cp210x driver )
2. cp cp210x.ko to /lib/modules/<kernel-version>/kernel/drivers/usb/serial
3. insmod /lib/modules/<kernel-version/kernel/drivers/usb/serial/usbserial.ko
4. insmod cp210x.ko

Ach ja noch was bevor du die Datei mit dem Befehl ersetzt
sudo cp cp210x.ko to /lib/modules/<kernel-version>/kernel/drivers/usb/serial
würde ich die alte Datei auf jeden fall umbenennen .
sudo mv /lib/modules/<kernel-version>/kernel/drivers/usb/serial/cp210x.ko /lib/modules/<kernel-version>/kernel/drivers/usb/serial/cp210x.ko.old
Gruß
 
« Letzte Änderung: 28.04.2014, 19:28:48 von Fullpower »

Hallo Fullpower!
Hallo,
schon eine Lösung gefunden?

Leider nein  :(
Zitat
Was eventuell eine Möglichkeit wäre wenn du dir hier
http://www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx
den Linux 3.x.x Treiber herunterlädst die cp210x.c nach der Vorgabe editierst
@@ -431,9 +431,7 @@
        else if (baud <= 64111)    baud = 64000;
        else if (baud <= 77608)    baud = 76800;
        else if (baud <= 117028)   baud = 115200;
-       else if (baud <= 129347)   baud = 128000;
-       else if (baud <= 156868)   baud = 153600;
-       else if (baud <= 237832)   baud = 230400;
+       else if (baud <= 237832)   baud = 128000;
        else if (baud <= 254234)   baud = 250000;
        else if (baud <= 273066)   baud = 256000;
        else if (baud <= 491520)   baud = 460800;
und mit make kompilierst.


Das klingt so einfach.
Mangels detaillierter Kenntnisse, weiß ich manchmal nicht einmal so genau, was ich tue.
Wenn es dann nicht funktioniert, steh ich da wie der Ochs vor dem neuen Stalltor.  ;)

Gustaf Linux_3.x.x_VCP_Driver_Source # make cp210x.c
make: Für das Ziel »cp210x.c« ist nichts zu tun.

Versucht mit Silabs 3.x.x und mit dem aus linux-3.2.57

Gruß
Manfred

Fullpower

  • Gast
Hallo,
nur make ohne cp210x.c dahinter.
Gruß

Hallo Fullpower!
Hallo,
nur make ohne cp210x.c dahinter.
Gruß
Danke für den Hinweis, wie du siehst, fehlt bei mir noch einiges Hintergrundwissen.
Aber wie schon Reinhard Mey sang:"Man lernt eben täglich dazu!" ;D

Schon gestern Abend habe ich folgendes gemacht:
Kernel 3.3.57 von  kernel.org heruntergeladen, cp210x.c entnommen und der Anleitung entsprechend geändert.
Gespeichert als cp210x.c und NICHT als  cp210x_k128.c, wie ich es bis jetzt immer immer gemacht habe.
Ich habe ursprünglich einen anderen Namen verwendet, um ja nichts kaputt zu machen, dies aber später vergessen und deshalb auch nicht erwähnt.

SCHANDE über MICH :o

Gustaf alf # dkms add -m cp210x -v 0.09k128
Gustaf alf # dkms build -m cp210x -v 0.09k128

liefen fehlerfrei, auf
Gustaf alf # dkms install -m cp210x -v 0.09k128
habe ich im Eifer des Gefechts vergessen.
Kein Wunder, dass ein Test negativ verlief.

Jetzt habe ich dkms install nachgeholt und mit
Gustaf alf # stty -F /dev/ttyUSB0 230400
stty: /dev/ttyUSB0: es ist nicht möglich, alle angeforderten Operationen durchzuführen
Gustaf alf # stty -F /dev/ttyUSB0
speed 0 baud; line = 0;
eof = <undef>; min = 0; time = 0;
ignbrk -brkint -icrnl -imaxbel
-opost
-isig -icanon -iexten -echo noflsh
Gustaf alf #
versucht, die Baudrate einzustellen.
Was mit einer Fehlermeldung quittiert wurde.
Stört mich aber recht wenig, weil

ES FUNKTIONIERT!

Ich weiß zwar nicht warum (früher habe ich immer gesagt, es ist mit lieber etwas funktioniert nicht, und ich weiß warum, als umgekehrt. Inzwischen bin ich etwas milder geworden). ;)

Ich vermute (auf Grund der Ausgaben von dkms install, dass ich genau das gemacht habe, was du empfohlen hast, nämlich das original cp210x.ko durch ein manipuliertes zu ersetzen.
Diese Vermutung wird gestärkt durch dem Umstand, dass cp210x.ko im Verzeichnis /lib/modules/3.2.0-60-generic/kernel/drivers/usb/serial den String /var/lib/dkms/cp210x/0.09k128/build/cp210x.c enthält.

Vielen Dank an alle, die sich meines Problems angenommen haben und noch einmal sorry für meine Blödheit.
Erklärungen über Zusammenhänge sind nach wie vor willkommen, für mich noch recht nebulös das Ganze.

Gruß
Manfred


Fullpower

  • Gast
Off-Topic:
Hallo noch mal,
könntest du mir eventuell noch sagen welche Software du für den Lader verwendest.
Logview funktioniert ja leider unter Linux nicht. Dann könnte ich mir ja vielleicht auch ein FTDI-Interface
für meinen Jamara Lader zusammen stricken.
Gruß
Ah! glaube habe es schon gefunden "OpenSerialDataExplorer" ?  muss ich mir mal genauer ansehen.
« Letzte Änderung: 29.04.2014, 19:57:29 von Fullpower »

Hallo Fullpower!
Off-Topic:
Hallo noch mal,
könntest du mir eventuell noch sagen welche Software du für den Lader verwendest.
Logview funktioniert ja leider unter Linux nicht. Dann könnte ich mir ja vielleicht auch ein FTDI-Interface
für meinen Jamara Lader zusammen stricken.
Gruß
Ah! glaube habe es schon gefunden "OpenSerialDataExplorer" ?  muss ich mir mal genauer ansehen.

Ich verwende LogView V2.7.6 Test unter wine. (Ist eine (die letzte?) Betaversion. Kann endlich die eingestellte Zeit auch im File abspeichern)
Läuft problemlos, jetzt auch mit 128.000 bps  ;D
Installiert, link erstellt, den Rest kennst du ja.
In LogView bei der Auswahl von Gerät und Schnittstelle [X] Linux kompatibel markieren

alf@Gustaf~/.wine/dosdevices $ ls -l
insgesamt 0
lrwxrwxrwx 1 alf  alf  10 Mär 26 23:38 c: -> ../drive_c
lrwxrwxrwx 1 root root 12 Apr  7 02:06 com2 -> /dev/ttyUSB0
lrwxrwxrwx 1 alf  alf   8 Mär 26 23:38 d:: -> /dev/sr0
lrwxrwxrwx 1 alf  alf   8 Apr  6 23:17 e:: -> /dev/sdb
lrwxrwxrwx 1 alf  alf   1 Mär 26 23:38 z: -> /

Gruß
Manfred

Fullpower

  • Gast
Off-Topic:
Vielen Dank für die Info.
Logview unter wine ist natürlich eine Möglichkeit. Wusste nur nicht, das es läuft
weil viele nach einem Programm wie Logview unter Linux fragen.
Ich hatte ja gestern noch das hier gefunden. Wenn du es noch nicht kennst, kannst
du es dir ja mal ansehen. Dein Lader wird auch unterstützt.

http://www.nongnu.org/dataexplorer/index.de.html

Danke nochmal.


Hallo, da bin ich wieder :(

Wollte auf meinem zweiten Rechner das Selbe machen.
Dabei wird leider beim build eine lange Listen an Fehlern ausgegeben.
Der Unterschied: auf diesem Rechner habe ich Linux mint 16 (Petra) installiert, mit Kernel-Version 3.11.0-12.
Versucht habe ich das Ganze mit den cp210x.c Versionen aus Kernel 3.2.58 (wie bei mint 13) und 3.10.39 von kernel.org, und dem 3.xx von Silabs.
Was könnte ich noch versuche, bzw, wo liegen die Probleme ?

Ich möchte auf beiden Rechnern Version 17 LTS installieren, befürchte jetzt aber, dass ich die 128.000 bps nicht hinbekommen werde.


Gruß
Manfred