mehr als 4 serielle Schnittstelen

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
old_silver
Beiträge: 8
Registriert: 10.08.2007 21:17:02

mehr als 4 serielle Schnittstelen

Beitrag von old_silver » 10.08.2007 21:37:12

Hallo,

zuerst bin ich mir mal gar nicht so sicher, ob ich im richtigen Forumsbereich bin. Aber die anderen haben vom Titel her noch weniger gepaßt:
An sich bin ich mit Debian ja recht zufrieden. Stabil und nicht so hardwarehungrig. Nur heute leider nicht. Für meinen Job brauche ich einen Rechner, der über mehr als die üblichen 2 seriellen Schnittstellen verfügt. Deshalb setze ich eine 8-Port serielle Karte ein (PC/104). Bis zur vorletzten Version von Debian war es problemlos möglich, mit setserial alle 10 Schnittstellen zu aktivieren. Heute habe ich den Fehler gemacht, die letzte Version von Debian zu installieren. Kann mir irgend jemand sagen, in welchere config-Datei die Debian-Entwickler versteckt haben, daß es nur 4 serielle Schnittstellen geben darf? Nach einer Anlage der Einträge im /dev - Verzeichnis und anschließendem reboot sind wieder nur 4 Schnittstellen vorhanden. Selbst eine Verbannung von udev vom Rechner führt zu keinem anderen Ergebnis. /dev/MAKEDEV erzeugt die Einträge so (in /dev/.static/dev), daß sie von /etc/init.d/etc-serial nicht gefunden werden. Selbst, nachdem udev deinstalliert wurde, behauptet MAKDEV, daß udev aktiviert wurde. Ein ganzer Tag vergeudet für sowas. Selbst intesivstes Suchen im Internet brachte nur sehr unzureichende Ergebnisse. Und ich habe einfach keine Lust, nur wegen so einer Kleinigkeit weiterhin SuSE einzusetzen.

Vielleicht kennt ja irgend jemand einenAusweg aus dieser Misere. Für jede Hilfe währe ich sehr dankbar.Aber bitte nicht der Vorschlag, USB-zu-serial-Adapter einzusetzen. :evil:

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: mehr als 4 serielle Schnittstelen

Beitrag von cosmac » 10.08.2007 23:15:53

hi,
old_silver hat geschrieben:zuerst bin ich mir mal gar nicht so sicher, ob ich im richtigen Forumsbereich bin. Aber die anderen haben vom Titel her noch weniger gepaßt:
nee, ganz falsch, udev ist ja nun wirklich kein Kernel-Problem ;)
Aber hier bist du trotzdem richtig, willkommen im Debianforum!

Wenn ich dich richtig verstanden hab, funktioniert alles bis zum
nächsten Reboot. Dann würde ich ich udev komplett rauswerfen,
also auch Verzeichnisse unter /dev mit "udev" im Namen. Leider
kann ich nicht mehr sagen, wie die genau heißen, weil ich sie
nach der Installation immer sofort lösche.

Das MAKEDEV-Script sucht an mehreren Stellen nach Spuren von
udev, aber wenn's keine mehr findet, geht's wieder normal.

Du kannst die ttySx auch einfach aus /dev/.static/dev nach /dev
verschieben oder gleich einzeln von Hand anlegen:

Code: Alles auswählen

# cd /dev
# mknod --mode=0660 ttyS4 c 4 68
# mknod --mode=0660 ttyS5 c 4 69
Das hat den Vorteil, daß /dev nicht mit Scanner-, Video- usw. devs
vollgemüllt wird.
old_silver hat geschrieben:Kann mir irgend jemand sagen, in welchere config-Datei die Debian-Entwickler versteckt haben, daß es nur 4 serielle Schnittstellen geben darf?
Ich würde sagen, schlicht vergessen. In der udev-Abteilung weiß
wohl niemand mehr, wofür serielle Schnittstellen gut sind :(
Beware of programmers who carry screwdrivers.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 10.08.2007 23:26:18

Willkommen im Forum!
old_silver hat geschrieben: Ein ganzer Tag vergeudet für sowas.
wenn es wirklich nur an den fehlenden Devices liegt und du dich nicht mit udev auseinander setzen möchtest, bleibt immer noch ein einfacher und schnell implementierter Hack über die /etc/rc.local

Code: Alles auswählen

cd /dev
mknod ttyS4 c 4 68
mknod ttyS5 c 4 69
mknod ttyS6 c 4 70
mknod ttyS7 c 4 71
chown root:dialout ttyS*
Dieser Hack funktioniert unabhängig davon, ob du udev verwendest oder nicht.

Vermutlich hast du udev auch nur teilweise deinsatalliert ( kein "purge" verwendet ? )

Gruß
gms

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22454
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 10.08.2007 23:35:08

Code: Alles auswählen

aptitude install setserial
Die Config befindet sich in /var/lib/setserial/autoserial.conf

Code: Alles auswählen

dpkg-reconfigure setserial
läßt es sich mit konfigurieren.

PS Willkommen im Forum.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

old_silver
Beiträge: 8
Registriert: 10.08.2007 21:17:02

Beitrag von old_silver » 13.08.2007 15:14:51

Hallo,

zuerst einmal herzlichen Dank für die schnelle und vor allem wohlwollende Hilfe. Einige der Schritte habe ich ausprobiert. Funktionieren nicht:
udev raus und auch die Verzeichnisse löschen, nodes per Hand anlegen : Ergebnis wie vorher - nur ttyS0 bis ttyS3
der Hack mit rc.local: die devices werden zu spät angelegt (soweit ich mich erinnere, ist rc.local der letzte Dienst, der aufgerufen wird). Die devices sind vorhanden, aber wenn ich nachträglich /etc/init.d/etc-setserial aufrufe, kommt die Ausschrift, daß die devices nicht vorhanden sind. Irgendwie schaut das Teil dann doch noch wo anders nach ???
Und - natürlich habe ich setserial installiert.

Ich mache jetzt erst einmal einen break und installiere eine völlig frische Version von Debian aus dem Netz. Dann fange ich noch einmal ganz von unten an.

Interessant fand ich die Mitteilung, ob ich mich nicht mit udev beschäftigen möchte. Klar will ich das - nur habe ich gar nichts brauchbares an Dokumentation gefunden - weder bei Google noch in einschlägiger Literatur. Wenn es einen einfacheren Weg gibt als die Deinstallation von udev - herzlich gern.

Ich melde mich in kürze wieder mit den Ergebnissen nach der Neuinstalltaion.

MFG

old_silver
Beiträge: 8
Registriert: 10.08.2007 21:17:02

Zwischstand

Beitrag von old_silver » 14.08.2007 08:05:09

From old_silver:

Hello,
das Problem mit meinen seriellen Schnittstellen liegt viel tiefer: Auch nach einer Neuinstallation von Debian aus dem stable-Zweig und sofortiger Entfernung von udev gibt es nur 3 Schnittstellen. Hintergrund: in der aktuellen Kernelversion wird meine 8-Port-Schnittstellenkarte nicht erkannt. Während mit Kernel 2.6.8-2 in /proc/interrupts noch zu lesen war:

Code: Alles auswählen

10:   341    XT-PIC   serial
ist unter der aktuellen Kernelversion kein Hinweis auf den Interrupt 10 zu finden. Meine Karte ist auf Interrupt 10, IO-Adresse 100 eingestellt.
Ich gehe mal davon aus, daß die XT-Unterstützung 'rausoptimiert wurde.

MFG

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22454
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 14.08.2007 09:26:41

Das ist nicht richtig.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

old_silver
Beiträge: 8
Registriert: 10.08.2007 21:17:02

Beitrag von old_silver » 14.08.2007 17:27:12

Sorry,

es stimmt. In den Kernel sources ist per default der Support für Multiportkarten eingestellt. Vom Hersteller des Boards gibt es eine kleine readme. Darin sind die einzustellenden Kerneloptionen nachzulesen. Die Überprüfung ergab, daß sie bereits per default gesetzt sind. Deshalb glaube ich, daß ich keinen eigenen Kernel kompileren muß. Jetzt noch nicht. Wenn mit dem Standardkernel alles funktioniert, soll dann später sicher ein angepaßter Kernel verwendet werden.

Aber ich weiß nicht mehr weiter. Was ist von Kernel 2.6.8 zu 2.6.18 in der Richtung geändert worden? Nehme ich den alten Kernel, läuft alles gut, der neue arbeitet nicht.

Hat jemand in der Richtung eine IDEE?

Ich meine, im Readme des Herstellers stehen solche interessanten Passagen wie:

Code: Alles auswählen

The 2.6 kernel has support for the 8250 UART is <src>/drivers/serial/8250.c. You should be able to run our ISA serial cards(Echo, DFlex, Xtreme/104) with this driver and the proper Kernel configuration. 
You'll need to edit your serial.h file in <src>/include/asm and add in the extra serial ports of the card. 

Here's what I added in red for a 4 port Xtreme/104 card at I/O 300 and  IRQ 5. You can do the same with your card settings 

#define STD_SERIAL_PORT_DEFNS \ 

 /* UART CLK PORT IRQ FLAGS */ \ 
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \ 
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }, /* ttyS1 */ \ 
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS }, /* ttyS2 */ \ 
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM_FLAGS }, /* ttyS3 */ \ 
{ 0, BASE_BAUD, 0x300, 5, STD_COM_FLAGS }, /* ttyS4 */ \ 
{ 0, BASE_BAUD, 0x308, 5, STD_COM_FLAGS }, /* ttyS5 */ \ 
{ 0, BASE_BAUD, 0x310, 5, STD_COM_FLAGS }, /* ttyS6 */ \ 
{ 0, BASE_BAUD, 0x318, 5, STD_COM_FLAGS }, /* ttyS7 */ 

Re-Compiling the Kernel 
Was etwas unverständlich ist, ist die Tatsache, daß ich für kernel 2.6.8 nichts in der Richtung zu unternehmen brauchte.

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 14.08.2007 20:12:11

old_silver hat geschrieben:Sorry,

es stimmt. In den Kernel sources ist per default der Support für Multiportkarten eingestellt.
eingestellt wie "nicht mehr vorhanden" oder wie "konfiguriert"?

Der 2.6.18er Debian-Kernel bringt doch ein paar Module dafür mit:
- 8250_accent.ko
- 8250_boca.ko
- 8250_fourport.ko
- 8250_hub6.ko
8250_boca ist z.B. für 16 Ports ab 0x100 ausgelegt; zwar mit IRQ 12,
aber das wäre ja nicht das Problem. Mit etwas Glück brauchst du
nur "modprobe 8250_boca" und dann "mknod ttySx..."!

Evt. geht auch eins der anderen 8250-Module. Aber eine andere
Möglichkeit ohne eigenen Kernel auskommen sehe ich eigentlich
nicht. In "include/asm/serial.h" stehen ja wirklich nur 4 Ports drin.
Beware of programmers who carry screwdrivers.

old_silver
Beiträge: 8
Registriert: 10.08.2007 21:17:02

Beitrag von old_silver » 15.08.2007 08:10:28

Hi,

eingestellt wie soll gehen. Die verschiedenen 8250_xxx-module habe ich schon nacheinander und alle zusammen durchprobiert (ein bischen Windows-like: /etc/modules geändert und jedes mal neu gestartet :( ). Also werde ich mich heute darüber hermachen, einen eigenen Kernel zusammenzustricken. In letzter Instanz muß ich das sowieso tun, denn für die verwendete Hardware sind solche Features wie Sound oder WLAN nicht erforderlich.

Noch mal herzlichen Dank für die Hilfe/seelischen Beistand

MFG

Antworten