www.mikrocontroller.net

Forum: PC-Programmierung FTDI245 und linux


Autor: Martin de Wendt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche von FTDI den USB Chip 245 unter linux zm Laufen zu
bekommen. Dafür habe ich mir von der ftdi Seite das Linuxpaket
libftd2xx??.tar.gz heruntergeladen. Beim Beispiel simple gibt er aber
immer simple: relocation error: /usr/local/lib/libftd2xx.so: undefined
symbol: usb_init aus. Hat schon jemand Erfahrungen damit gesammelt und
kann mir etwas weiterhelfen?



Martin

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmh
schwere frage
wenn ich zugrieff haette keonnte ich dir evtl etwas helfen..

was sagt denn "tail -f /var/log/syslog" ?? oder messages wenn du den
chip anschliesst??

Gruss Jens

Autor: Wiesi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich mich recht erinnere brauchst du die SOftware von der
Herstellerseite nicht. Seit einiger Zeit (frag nicht seit wann)
ist der Treiber schon fix beim Kernelsource dabei.

Wenn er nicht einkompiliert ist oder das Modul fertig ist,
musst es selbst kompilieren. Aus irgendeinem Grund ist der
Treiber nämlich "experimental" gekennzeichnet.

   Wiesi

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
evtl ist der kernel aber auch nur zu alt =) und man muss einen neuen
backen ;)

Autor: Wiskas(TM)-Jäger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine Güte, was bin ich froh das ich mich bei dem extrem guten Windows
XP nicht mit so einem Blödsinn wie Kernelkompilierung herumschlagen
muß.

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Blödsinn??

Blödsinn ist dein post, der hier nichts zu suchen hat
schmier dir diese kommmentare in den papierkorb ehh sry der kennt ja
nur dateien und sonnst nichts..

Ach ja, Blödsinn ist es, in windows, dass alles an treibern etc immer
mit geladen werden muss

Blödsinn ist es, wenn man auf eine neue version updaten will gleich
format c machen muss, da sonnst nichts mehr laeft

also lass den scheiss und spiel weiter mit windows rum

Autor: Wiskas(TM)-Jäger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach ich, mein Lieber! Und du kompilier mal fleißig Kernels...

Autor: Martin de Wendt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

der FTDI Support hat mir zuerst die Treiberversion 4.3 geschickt. Damit
hatte ich dann weiter einen usb_init Fehler. Nach weiterem Nachfragen
bekam ich dann die Version 4.1. Diese produzier zwar keinen usb_init
Fehler mehr sondern FT_ListDevices(18).
Jemand schonmal diesen Fehler gehabt. Unter Windows lief alles
innerhalb von einem Tag :-)
Ist es richtig das  bei Linux unter /proc/bus/usb/devices das device
mit driver=serial erscheint?


Martin

Autor: hebel23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Martin,

also bei mir lief der FT245 unter Linux (Suse 9.2) auch innerhalb von
einem Tag ;o).
Im Prinzip sind die einfachen Seriell<->USB Treiber ab dem Kernel 2.4.2
mit drin (Module ftdi_sio und fusbserial). Ich habe mich aber auch für
den Weg entschieden, die Treiber von der FTDI-Page
(ftd2xxpackage_v1.tar.gz) zu nehmen. Dazu muss man allerdings zunächst
die Kerneltreibermodule mit

rmmod ftdi_sio und
rmmod usbserial deaktivieren

Ich habe dann anschließend alles wie in der Readme.dat beschrieben
installiert und  und es klappte auf Anhieb. Was sagt den "usbview"
und die Status-LED am USB-Chip wenn das Teil eingestöpselt ist?

Andreas

Autor: Martin de Wendt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas,

so soweit habe ich jetzt auch alles hinbekommen. Nur etwas lästig ist
dieses ständige rmmod nach einem Abstöpseln des FT245.
Aber ich habe mit dem Support von FTDI gesprochen: die arbeiten an
einer Version die das ganze selbstständig macht.

Martin

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
such evtl mal nach hotplug, damit kann man dies automatisieren..
kann zumidnest nutzen, um USB (Massen)Speicher automatisch zu mounten

Gruss Jens

Autor: hebel23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...gemounted wird der USB-Chip schon automatisch, da man ja auch den
entsprechenden Eintrag in der fstab macht. Nur das die Kernelmodule
sich immer "vordrängeln" ist halt lästig. Sicher kann man das
"rmmod" auch irgendwie automatisieren - hatte aber noch keine Zeit,
um mich damit zu beschäftigen.

@Jens: vielleicht meintest Du aber auch genau das ;o)

Andreas

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
echt in der fstab kann man automatisch USB devices mounten hmmh

nein ich weiss nicht, wie hotplug funktioniert :( leider

ich koennte mir vorstellen, dass du im hintergrund ein kleines script
laufen laesst, welches nach dem USB Device sucht und wenn nicht
gefunden aber modul geladen das modul entläd
sollte machbar sein

Gruss Jens

Autor: ope (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Nur das die Kernelmodule sich immer "vordrängeln" ist halt lästig.

früher (lange kein active linux kernel && system mehr gemacht), konnte
man in der /etc/config.mod Bedingungen angeben, auch Reihenfolge etc,
ein keyword war preload (sicher nutzlos hier), aber es gab weitere. Mit
Kernel 2.6 sind die module-init-tools und nicht mehr die modutils für
das Laden von Modulen zuständig. Aber in der Doku sollte etwas dazu
stehen (zumindest stand's noch vor 2.6.x).

Viele Grüße
Olaf

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

einie Mails weiter mit dem Support von FTDI: der neue Treiber von denen
(interne Version 4.4) soll angeblich das automatische rmmod
unterstützen. Funktioniert bei mir aber nicht. Das Problem scheint wohl
zu sein das ich nicht als root an meinem System arbeiten will.
Hat jemand eine gute Quelle was alles in welcher Reihenfole passiert
wenn man ein USB Gerät einsteckt?


Martin

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schau dir mal syslog an

und zum thema root
fakeroot ;)

Gruss

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich benutze sudo. Meine Frage zielte eher in dei Richtung wo es Infos
gibt in welcher Reihenfolge was geladen wird. Im syslog findet sich da
nicht so viel drüber.


Martin

Autor: Rudi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hat einer schon den FTDI als normaler User zum laufen bekommen? Als
root läuft alles einwandfrei, aber ich will auch nicht immer mit sudo
das Programm aufrufen müssen.


Rudi

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe in /etc/udev/rules/50-udev.rules
SUBSYSTEM=="usb", ACTION=="add", ENV{PRODUCT}=="403/6010/*",\
RUN+="/bin/chmod go+rw $env{DEVICE}"
Das setzt die Zugriffsrechte fuer das Device. Mit libusb und
usb_detach_kernel_driver_np()kann man dann das Interface from
Kerneltreiber abkoppeln

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Mit libusb und usb_detach_kernel_driver_np()
Wie machst du das ?

wenn das init vom libusb schiefgeht (: -5 unable to claim usb device.
Make sure ftdi_sio is unloaded!)
dann ist ja das usbdevice geschlossen (libusb.c, vorm return -.5 steht
nen usb_close())

Deshalb (?) scheitert bei mir auch folgender Code:
int f = ftdi_usb_open(&ftdi, 0x0403, 0x6001); 

  //ftdi_sio loaded, try to unload!
  if (f == -5){
    //unload/unbind module
    f = usb_detach_kernel_driver_np(ftdi.usb_dev, ftdi.interface);
    printf("usb unload: %d [%s]\n",f,usb_strerror());

    //retry open
    f = ftdi_usb_open(&ftdi, 0x0403, 0x6001);  
  }

Wie machst du das ?

Anonsten ist die libusb echt klasse. Bekomme locker 840KByte/s
rübergeschoben (evtl bekommt man mit größerem buffer noch die 1000 hin,
840 reichen mir aber :) ).
Und das mit nur 40 Zeilen C-Code ohne großartig Ahnung von USB zu haben
:)


Gruss, Simon

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ups, fehlermeldung vom unload vergessen:
usb unload: -22 [could not detach kernel driver from interface 0:
Invalid argument]

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.