USB - Seriell Treiber in DS-Mod

1. Sehr gut - ich habe mir jetzt einmal den Digitus Adapter und den FTDI Chip bestellt. Den Adapter zum Testen und den Chip fuer mein Layout.

2. Und die in den Kernelsourcen vorhandenen USB-Seriell Treiber funktionieren nicht mit dem FDTI Chip? Wo und wie muss ich denn dann den Treiber von FDTI kompillieren damit ich das Kernelmodul fuer die FBF erhalte?

3. Hab meine Sig mal aktualisiert ;-)


Gruss

Mode
 
Hallo Mode!

mode schrieb:
2. Und die in den Kernelsourcen vorhandenen USB-Seriell Treiber funktionieren nicht mit dem FDTI Chip? Wo und wie muss ich denn dann den Treiber von FDTI kompillieren damit ich das Kernelmodul fuer die FBF erhalte?

Gruss

Mode

Hier mal die Schritte für die Cross-Compilierung von DS-mod 0.2.x unter Linux:
1. Download von "ds-0.2.9-opensrc-04.06.tar.bz2"
Siehe: http://www.ip-phone-forum.de/showthread.php?t=85371

2. Auspacken mit:
tar -jxvf ds-0.2.9-opensrc-04.06.tar.bz2

3. Dann folgende Zeilen:
--- schnipp ---
menu "usb"

config DS_MODULE_usbserial
bool "usbserial.o"
default n

config DS_MODULE_ftdi_sio
bool "ftdi_sio.o"
default n

endmenu
--- schnapp ---

am Ende der folgenden Datei:

ds-0.2.9/kernel/Config.in

hinzufügen.

4. Dann muß das Ganze noch konfiguriert und compiliert werden. Die benötigen
Sourcen für CrossCompiler, Linker, Kernel-Image, etc. werden automatisch aus
dem Internet heruntergeladen und übersetzt. Dauert je nach Rechner ein
paar Stunden.

cd ds-0.2.9
make menuconfig # Box und Pakete auswählen
make toolchain # Toolchain bauen
make libs # Libs bauen

make kernel-precompiled # Kernel bauen
make # Fritzbox-Image bauen

Gruß Harald
 
Zuletzt bearbeitet:
Soo hab jetzt alles so gemacht bis make kernel-precompiled. Ohne Probleme..

Nur wo packe ich nun die SourceCodes von der FTDI Homepage hin? Habe da noch eine .c und eine .h Datei die wohl den Treiber darstellen. Brauche ich die jetzt garnicht mehr? Oder muss ich die erst mit dem neuen Toolchain erstellen?

Ich hab mal probiert die .c Datei des Treibers mit dem ds-0.2.9/toolchain/target/bin/mipsel-linux-gcc Kompiler zu kopillieren doch das gab nur 1000 Fehlermeldungen :-( Im Wiki steht was von Configure:

---
Optionen für ./configure:
./configure --build=i386-linux-gnu --target=mipsel-linux --host=mipsel-linux
---

DOch was fuer ein configure ist da gemeint? Beim Treiber ist keins dabei..


Gruss

Mode
Gruss

Mode
 
Dann gibts da bestimmt schon ein Makefile, welches du bearbeiten kannst. Es muss mindestens noch irgendwo der Pfad zu den Kernelsourcen angegeben werden.

In dem Fall ist es die Variable INCLUDEUSBSER, welche auf die Kernel-Sourcen im ./source/ref-.../... Verzeichnis zeigen muss und nicht auf die des Hostkernels.

Mfg,
danisahne
 
mode schrieb:
Soo hab jetzt alles so gemacht bis make kernel-precompiled. Ohne Probleme..

Nur wo packe ich nun die SourceCodes von der FTDI Homepage hin? Habe da noch eine .c und eine .h Datei die wohl den Treiber darstellen. Brauche ich die jetzt garnicht mehr? Oder muss ich die erst mit dem neuen Toolchain erstellen?

mode schrieb:
Ich hab mal probiert die .c Datei des Treibers mit dem ds-0.2.9/toolchain/target/bin/mipsel-linux-gcc Kompiler zu kopillieren doch das gab nur 1000 Fehlermeldungen :-( Im Wiki steht was von Configure:

---
Optionen für ./configure:
./configure --build=i386-linux-gnu --target=mipsel-linux --host=mipsel-linux
---

DOch was fuer ein configure ist da gemeint? Beim Treiber ist keins dabei..
Mode

Hallo Mode!

Bis hier hin ist alles richtig!
Du brauchst die "sourcecodes" von der FTDI-Homepage nicht, da sie schon in den Kernelsourcen vorhanden sind!

Am Ende der Compiler-Session sollte es ein Image für die Fritzbox geben:

~/ds-0.2.?/firmware_fon_wlan_7170.de.image

Wenn die Kernel-Module für den FTDI-Chip richtig erstellt wurden, sollte es in dem Verzeichnis:

~/ds-0.2.?/build/modified/filesystem/lib/modules/2.4.17_mvl21-malta-mips_fp_le/kernel/drivers/usb/serial

zwei Kernel-Module mit dem Namen:

usbserial.o
ftdi_sio.o

geben. Falls nicht, hast Du sie vielleicht NICHT bei:

make menuconfig

mit angegeben.

mode schrieb:
Ich hab mal probiert die .c Datei des Treibers mit dem ds-0.2.9/toolchain/target/bin/mipsel-linux-gcc Kompiler zu kopillieren doch das gab nur 1000 Fehlermeldungen :-( Im Wiki steht was von Configure:

---
Optionen für ./configure:
./configure --build=i386-linux-gnu --target=mipsel-linux --host=mipsel-linux
---

DOch was fuer ein configure ist da gemeint? Beim Treiber ist keins dabei..
Mode

Dies ist nur für eigene Programme die man für die Fritz!Box selber schreiben, übertragen und ausführen will wichtig! So zu sagen, dass Setzen für die richtigen Umgebungsvariablen der Crosscompiler-Umgebung!

Gruß Harald
 
Soo nun habe ich auch die IMage Datei. Nur leider gibt es in /ds-0.2.?/build/modified/filesystem/lib/modules/2.4.17_mvl21-malta-mips_fp_le/kernel/drivers/usb/ kein serial - also scheinbar alles umsonst?
in make menuconfig hab ich unter Kernel Moduls -> USB -> usbserial.o und ftdi_sio.o ausgewaehlt.

Ich habe make toolchain und make libs aber vor der og. Aenderung in make menuconfig ausgefuehrt. Kann das das Problem darstellen?


Gruss
 
muss ich unter make kernel-menuconfig auch den serial converter support aktivieren?
 
Werden bei "make kernel-precompiled" die Module mitgebaut?

MfG Oliver
 
Alles klar,
Hab einfach noch mal alles mit make gemacht und vorher ein kernel-dirclean und nun sind die Files da. Wunderbar. Ich glaub ich mache mich heu tabend mal ans flashen. Wnen ich also nicht mehr online erscheine is was schief gelaufen ;-)

Unter welchem Device spreche die die virtuelle Serielle denn nun an und wie stelle ich Baudrate, Start und Stopbits etc ein?


Gruss

Mode
 
mode schrieb:
Alles klar,
Unter welchem Device spreche die die virtuelle Serielle denn nun an und wie stelle ich Baudrate, Start und Stopbits etc ein?

Hallo Mode!
1.) Bei mir heißt das Device:

/dev/usb/tts/0

vorher mußt Du aber noch mit z.B.:

modprobe ftdi_sio

das Kernelmodul für den FTDI-Chip laden.

2.) Anzeigen bzw. Einstellen der Parameter der Schnittstelle kann man z.B. mit:

stty -F /dev/usb/tts/0 [param]

Siehe auch: man stty

3.) Lesen von der Schnittstelle geht z.B. so:

cat < /dev/usb/tts/0

und schreben so:

echo "Hello world" > /dev/usb/tts/0

4.) Noch mehr Informationen findest Du hier:
* Serial HOWTO
http://www.tldp.org/HOWTO/Serial-HOWTO.html
* Serial Programming HOWTO
http://www.faqs.org/docs/Linux-HOWTO/Serial-Programming-HOWTO.html

Gruß Harald
 
Harald, Heini, Oli und DaniS. - vielen Dank euch allen fuer eure Hilfe. Es funktioniert alles. Image ist geflasht und das was ich in das USB Device schicke, erscheint auf meinem HyperTerminal. Morgen baue ich die Hardware fuer die Relais und das LCD.


Gruss

Mode
 
Hallo,

da meine Eltern zur Zeit am Überlegen sind, ob wir nicht eine Solaranlage aufs Dach bauen sollen, kam mir eine Idee. Ich habe ein bisschen nach Wechselrichtern gesucht und natürlich auch gefunden. Dann habe ich entdeckt, dass die meisten eine serielle Schnittstelle haben. Daher bin ich auf die Idee gekommen, ich könnte ja vielleicht, falls Softwareseitig möglich, den Wechselrichter an die Fritz anschließen und diese ein Logfile über die Erträge machen lassen. Daher noch 3 kleine Fragen:
1) Ist sowas realisierbar?
2) Wie lang darf ein Serielles Kabel sein?
3) Diese Adapter müssten doch auch an einem USB-Hub funktionieren?
 
1) Ja
2) Kommt drauf an mit wievielen Baud der Wechselrichter sendet, was du fuer ein Kabel nimmst etc
3) Wenn USB Hubs an der FBF funktionieren ja, aber USB Kabel duerfen passiv auch nur 5M lang sein...
 
Gibts auch nen Treiber für PL-2303 USB => Serial-Converter für den DS-Mod ??? würde mich mal interessieren, da alle meine Converter auf diesen Chip basieren... und mir fallen auf anhieb 1000 und 1 anwendung dafür ein ;)

Gruß Neo.
 
Hallo,

habe mal ne Frage. Hab ein PL2303 USB2Seriell..

Unter Windows wird ja ein virtueller Comport erstellt der eine io und irq Adresse bekommt. Com3 0x3e8 irq 4

Doch wie ist es unter Linux. Es entsteht ein Device /dev/ttyUSB0..

Ich kann jetzt fein ein Hardlink auf ttyS0 machen was mir aber nichts nützt..

Mein Problem ist, ich hab ein Gerät was an den Konverter soll, wessen Treiber unbedingt eine Angabe der io bzw. irq adresse braucht.

Ein setserial auf /dev/ttyUSB0 ist nicht möglich und endet mit einem Fehler..

Wer kann helfen?
 
sd8rdb schrieb:
PL2303 USB2Seriell..

Unter Windows wird ja ein virtueller Comport erstellt der eine io und irq Adresse bekommt. Com3 0x3e8 irq 4

Doch wie ist es unter Linux. Es entsteht ein Device /dev/ttyUSB0..

Mein Problem ist, ich hab ein Gerät was an den Konverter soll, wessen Treiber unbedingt eine Angabe der io bzw. irq adresse braucht.
Das heisst wohl: Treiber umschreiben. Der Treiber sollte die Baudrate etc. setzen, nicht direkt in irgendwelche Register schreiben, die es nur auf dem x86 PC gibt.

Windows erstellt virtuelle IOs und IRQs. Linux müsste ein spezielles Treibermodul für den direkten Zugriff auf die serielle Schnittstelle mitbringen (so wie es ppdev.ko für den Parallelport ist). - Selbst wenn es das gibt, muss es dann dasselbe für die USB-Emulation geben.

spblinux
 
Hallo,

mal ne Frage,

wie integrier ich am besten ein Hardlink von ttyUSB0 auf ttyS0 in die Firmware?
 
Hallo,

mal nur zur Info an die, die auch danach suchen, ich hab mich beim Finden ob und wie das geht auch schwer getan:
Ein "USB nach seriell" Adapter läuft auch auf einer Original-Firmware, bei mir konkret ein PL2303 auf einer FritzBox 7170 mit Kernel 2.6 VPN-Labor Firmware. Ich habe dazu die ds-mod toolchain verwendet und so konfiguriert, das sie Code für eine Original Firmware erstellt, danisahne hat das ja prima erklärt. Beim "make kernel-menuconfig" dann den gewünschten USB-Adapter als Module auswählen und kernel generieren (vielleicht geht's auch schneller, aber so geht's). Dann die gewünschten Module (usbserial.ko und in meinem Fall pl2303.ko) auf die Box kopieren und mit
insmod usbserial.ko
insmod pl2303.ko
starten. Dann bleibt noch das Anlegen des Devices,
mknod /dev/ttyUSB0 c 188 0
geht leider nicht, da /dev schreibgeschützt ist. Aber ein
mknod /var/ttyUSB0 c 188 0
tut, und der Zugriff darüber auch, so man denn ein Programm hat, das diesen etwas ungewöhnlichen Pfad akzeptiert...
 
Zuletzt bearbeitet:

Statistik des Forums

Themen
246,382
Beiträge
2,251,164
Mitglieder
374,041
Neuestes Mitglied
Baffalo
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.