• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] serielle Verbindung mit Nullmodemkabel

Also zur Zeit benutze ich auf meinem Desktop Rechner Kubuntu (bitte schlagt mich nicht deswegen :D ) aber ich hab keine ahnung wie das unter linux mit der seriellen Verbindung funktioniert deswegen habe ich folgendes gefunden:

Also ich hab ein Alix Board und Kubuntu 9.04.

Hab mich jetzt mal nach der Anleitung gehalten. http://wiki.ubuntuusers.de/Alix#Konsole-auf-Ubuntu-bis-9-04

Erstes Problem: "Der Bootloader GRUB muss für die Ausgabe über die serielle Schnittstelle angepasst werden. Dazu muss die Datei /boot/grub/menu.lst bearbeitet werden [3]. Im allgemeinen Abschnitt trägt man Folgendes ein[6]:"

was ist bitteschön der allgemeine Abschnitt?

# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

serial --unit=0 --speed=38400
#terminal serial console
terminal serial
# defoptions=verbose console=ttyS0,38400n8 reboot=bios
# kopt=root=UUID=<UUID>

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

Ich hab das jetzt mal so angepasst hoffe dass das da an der richtigen Stelle steht.

Problem Nummer 2: "Damit die serielle Schnittstelle auch noch nach dem Bootloader benutzt wird, muss folgende Zeile in die /etc/inittab eingefügt werden."

Bei mir gibts keine datei oder verzeichnis namens "inittab"

Wäre nett wenn mir jemand helfen könnte.
 
A

Anonymous

Gast
Conax schrieb:
Problem Nummer 2: "Damit die serielle Schnittstelle auch noch nach dem Bootloader benutzt wird, muss folgende Zeile in die /etc/inittab eingefügt werden."

Bei mir gibts keine datei oder verzeichnis namens "inittab"
Die Datei /etc/inittab findest du nicht :???: Dann dürfte dein Rechner nicht recht starten wollen. Das ist die Konfigurationsdatei des init-Prozesses der erste und wichtigste Prozess im Linux. Der Dateiname währe wahrscheinlich nur durch Optionen beim Kompilieren zu ändern.

Eventuell suchst du an falscher Stelle. /etc ist das Verzeichnis :???:

robi
 
Conax nutzt (lt. einem anderen thread von ihm) Kubuntu, welches tatsächlich kein SysV-Init und somit keine /etc/inittab verwendet. Stattdessen wird upstart verwendet, welches aus/etc/init liest, aber wie das genau von statten geht und wie man das konfiguriert, weiß ich leider nicht (meine Ubuntu-Zeit war kurz und ist schon etwas her), aber dazu findet sich bestimmt näheres via google.
 
A

Anonymous

Gast
gropiuskalle schrieb:
welches tatsächlich kein SysV-Init und somit keine /etc/inittab verwendet. Stattdessen wird upstart verwendet, welches aus/etc/init liest
Naja, wenn jeder machen kann was er will, dann eben mit upstart ;)
Da sollte es ein Verzeichnis /etc/event.d/ geben dort müsstest du eine Datei ttyS0 mit den entsprechenden Einträgen anlegen.
Hab jetzt kein passendes System hier auch keine Doku dazu, aber ich denke mal das sollte etwa so aussehen
Code:
# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.

start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5
stop on runlevel 0

respawn
exec /sbin/getty -8 38400 -L ttyS0

robi
 
danke für deine Hilfe.

Also die Verzeichnisse ware aufjedenfall schon mal da hab auch die besagte Datei in dem von dir angegebenen Pfad erzeugt.

Leider konnte aber minicom immer noch keine Verbindung herstellen.

Willkommen zu minicom 2.3

Optionen: I18n
Übersetzt am Oct 24 2008, 06:47:12.
Port /dev/ttyS0

Drücken Sie CTRL-A Z für Hilfe zu speziellen Tasten

..........<-hier müsste jetzt eigentlich was stehen

also zumindest müsste das BIOS des alix boards angezeigt werden.

irgendwie scheint da was noch nicht hinzuhauen.

hab mir das auch nochmal durchgelesen:
http://www.linux-lernen.info/erkenntnisse-7.html

Code:
stefan@Linux-Conax:~$ ps -ef | grep tty
root      2460     1  0 00:09 tty4     00:00:00 /sbin/getty 38400 tty4
root      2461     1  0 00:09 tty5     00:00:00 /sbin/getty 38400 tty5
root      2464     1  0 00:09 tty2     00:00:00 /sbin/getty 38400 tty2
root      2467     1  0 00:09 tty3     00:00:00 /sbin/getty 38400 tty3
root      2468     1  0 00:09 tty6     00:00:00 /sbin/getty 38400 tty6
root      2469     1  0 00:09 ttyS0    00:00:00 /sbin/getty -8 38400 -L ttyS0 vt100
root      3146  3132  1 00:09 tty7     00:00:03 /usr/bin/X -br -nolisten tcp :0 vt7 -auth /var/run/xauth/A:0-UxcIwg
root      3425     1  0 00:09 tty1     00:00:00 /sbin/getty 38400 tty1
stefan    4000  3972  0 00:12 pts/1    00:00:00 grep tty
stefan@Linux-Conax:~$

hat leider trotzdem nix gebracht.
 
A

Anonymous

Gast
Na so einfach ist es mit Minicom nun auch nicht. Du musst zumindestens erst mal die richtigen Übertragungsparameter einstellen, per default sollte Minicom mit "9600 8N1" starten, du brauchst aber das was du eingestellt hast, "38400 8N1"

versuch mal "STRG + A" anschließend "P" und dann die Geschwindigkeit 38400 sollte wohl "G" sein. Wenn dann oben bei " Current: 38400 8N1 " steht ENTER damit die Änderungen wirksam werden.

Unten in der Statusleiste sollten jetzt auch die richtigen Parameter stehen.
..........<-hier müsste jetzt eigentlich was stehen
Stehen tut dort aber deswegen nicht in jedem Fall gleich was, wichtig hier, er muss hier erstmal auf die Tasten reagieren, also zB auf die Entertaste. Wenn hier Enter jetzt noch keine Reaktion zeigt, dann reboot mal dein alix. Es sind mehrere verschiedene Stationen die du konfiguriert hast.
die erste ist die reine Benutzung unter Grub.
die zweite, (bin ich mir nicht sicher ob du die eingestellt hast, bei den Kernelparametern console=ttyS0,38400n8 ) das ist die Ausgabe des Bootlogs und der Konsolmeldungen
und das letzte von oben ist die Möglichkeit des logins an dieser Seriellen Konsole.

selbst wenn eines wegen falscher Konfiguration nicht funktionieren sollte, müsstest du eventuell bei den anderen eine Reaktion durch Ausgabe von Meldungen sehen können. Kommen nur komische Sonderzeichen als Ausgabe, dann ist es wahrscheinlich das du an dieser Stelle mit den falschen Übertragungsparametern entweder im Minicom arbeitest oder falsche/andere konfiguriert hast. Tastatureingaben sind dann meist nicht möglich, da dein Enter und deine Eingaben dann auch falsch interpretiert werden.

robi
 
Also minicom hatte ich schon vorher eingestellt und zwar das überall übertragungsgeschwindigkeit gleich ist.

http://wiki.ipfire.org/de/installation/start
(da unten stand das auch nochma wie man minicom einrichtet)

Auch als ich in minicom "enter" gedrückt habe ist nix passiert.

das mit den kernelparametern etc. hab ich nicht ganz verstanden. Was sollte ich da deiner Meinung nach probieren (bitte schritt für schritt :eek:ps: )
 
A

Anonymous

Gast
das mit den kernelparametern etc. hab ich nicht ganz verstanden
brauchst du erstmal nicht unbedingt, erst wenn die Kiste mal beim booten in einem sehr frühem Stadium hängen bleibt, müsstest du dort hin. Ich hab jetzt auch die obrigen Link zu dem HOWTO nicht sonderlich aufmerksam gelesen, so das ich nicht genau weiß ob es nicht schon dabei ist. Wenn' mal soweit ist, und es so noch nicht funktionieren sollten, dann die obrige Option in die Grubkonfiguration in die entsprechende kernelzeile, dann kommen im Fehlerfall und beim Booten die Konsolausgaben auf der Seriellen Leitung. Aber lass das erst mal weg, wichtiger währe für dich eh erst mal das Anmelden nehme ich an.

Das Alix Board kenne ich nicht, ich denke mal es hat nur einen seriellen Anschluss. Der Rechner von dem du Minicom startest, hat der einen oder 2 serielle Anschlüsse. Dann musst du natürlich dort auf den ersten davon. Das Nullmodemkabel funktioniert hoffentlich, manche Kisten brauchen "Spezialverdrahtung", bei 90% sowie normaler PC-Hardware geht es aber mit einem StandardNullmodemkabel. Was hast du für Anschlüsse? sind beides 9Polige oder ist da etwa RJ45 (ähnlich LAN-Anschluss) oder gar ein USB-Serialwandler dazwischen. In diesem Fall wirds oft schwierig, da dort nicht alles immer richtig funktioniert.

Wie die Ausgabe von ps zeigt, scheint ein getty an sttyS0 bei dir aktiv zu sein. Wenn die Verdrahtung stimmt und die Parameter rechts und links gleich sind, sollte es normalerweise funktionieren. Zumindestens als normaler User sollte man sich hier anmelden können, für eine Rootanmeldung müssten dann eventuell ( zB bei SuSe) noch die /etc/securetty oder ähnliches angepasst werden.

reboote das Alix und schau mal ob sich irgendwas im Minicom tut, normalerweise sollten dort zumindestens ein paar Ausgaben rüber kommen, die du in der Minicom sehen solltest.

robi
 
Mein Mainboard hat nur einen seriellen anschluss.
Der ist verbunden mit diesem Slotblech.
http://www.amazon.de/Serielles-Slotblech-InLine%C2%AE-Stecker-Buchsenleiste/dp/B000MAFOK4/ref=sr_1_470?ie=UTF8&s=ce-de&qid=1261788413&sr=1-470
(hmm da fällt mir ein vielleicht hab ich den stecker verkehrt rum drin gleich ma prüfen)

Naja und dann ganz normales nullmodemkabel ans alix board.
Das Nullmodemkabel funktioniert da bin ich mir ziemlich sicher weil ich damit früher meinen Receiver geflasht habe.
 
A

Anonymous

Gast
Conax schrieb:
Mein Mainboard hat nur einen seriellen anschluss.
bist du dir sicher, die meisten Mainboards haben 2 solche uarts und dazugehörende Stecker oder Buchsen onboard, eventuell ist der 2. nur im Bios auskonfiguriert, seltener ist der 2. nicht eingelötet. Hier hilft dann nur noch mal ein Blick in das Handbuch zum Mainboard.

robi
 
Hab dieses mainboard:
http://www.asrock.com/mb/overview.asp?Model=M3A785GXH/128M

und hab ins Handbuch nochmal geschaut da ist nur ein serieller Anschluss.
 
A

Anonymous

Gast
Ok. da ist nur ein serieller Port ausgewiesen, der Connektor dazu ist wohl kaum zu verfehlen währe aber durchaus auch mit USB zu verwechseln. Der 2 Serielle Port ist bei diesem Board für Infrarot vorbereitet. Als nächstes im BIOS nachschauen

Advanced -> Super IO Chipset (Handbuch Board Seite 71)
das die Adresse dazu auch auf ttyS0 konfiguriert ist, also auf "3F8 / IRQ4"
Wenn du den Infrarot nicht nutzt, dann lass diesen Port disabled.

Bei laufenden Linux und installiertem Paket setserial sollte
Code:
setserial -a /dev/ttyS0
jetzt einen "UART: 16654" sehen.

Wenn es dann immer noch nicht geht, dann bin ich etwas ratlos.

robi
 
also die kabel stecken definitiv in den richtigen slots (steht ja aufn mainboard auch nochmal drauf).

Im BIOS ist das schon standardmäßig so drin das infrarot disabled ist und com1 auf 3F8 / IRQ4 steht.

Ich verstehs auch nicht woran das liegt. Ich frag nochmal Kumpel wie der das mal unter Ubuntu zum laufen gebracht hat (hat ebenfalls alix board) dachte nur ich bekomme das irgendwie selber hin aber serielle verbindung ist halt nicht wie usb.

Danke aufjedenfall für deine Hilfe falls ich herausbekomme wie ich das zum laufen bekomme werde ich die Lösung hier selbstverständlich posten.

(nebenbei das spuckt setserial aus)
stefan@Linux-Conax:~$ sudo /etc/init.d/setserial restart
Loading the saved-state of the serial devices...
/dev/ttyS0 at 0x03f8 (irq = 4) is a 16550A
 
Tja mein Kumpel konnte mir leider auch nicht helfen.

Hab jetzt die neue openSUSE 11.2 drauf. Hab jetzt mal folgende Dateien bearbeitet (siehe tutorial von ubuntuusers ganz oben)

Code:
# Modified by YaST2. Last modification on So Dez 27 23:55:56 CET 2009
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader

default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,2)/boot/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 11.2 - 2.6.31.5-0.1
    root (hd0,2)
    kernel /boot/vmlinuz-2.6.31.5-0.1-desktop root=/dev/disk/by-id/ata-SAMSUNG_HD501LJ_S0MUJ1FPB79921-part3 resume=/dev/disk/by-id/ata-SAMSUNG_H$
    initrd /boot/initrd-2.6.31.5-0.1-desktop

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.2 - 2.6.31.5-0.1
    root (hd0,2)
    kernel /boot/vmlinuz-2.6.31.5-0.1-desktop root=/dev/disk/by-id/ata-SAMSUNG_HD501LJ_S0MUJ1FPB79921-part3 showopts apm=off noresume edd=off po$
    initrd /boot/initrd-2.6.31.5-0.1-desktop

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.2 - 2.6.31.5-0.1
    root (hd0,2)
    kernel /boot/vmlinuz-2.6.31.5-0.1-desktop root=/dev/disk/by-id/ata-SAMSUNG_HD501LJ_S0MUJ1FPB79921-part3 showopts apm=off noresume edd=off po$
    initrd /boot/initrd-2.6.31.5-0.1-desktop

###Don't change this comment - YaST2 identifier: Original name: floppy###
title Diskette
    rootnoverify (fd0)
    chainloader +1


serial --unit=0 --speed=38400
#terminal serial console
terminal serial
# defoptions=verbose console=ttyS0,38400n8 reboot=bios
# kopt=root=UUID=<UUID>



Code:
#
# /etc/inittab
#
# Copyright (c) 1996-2002 SuSE Linux AG, Nuernberg, Germany.  All rights reserved.
#
# Author: Florian La Roche, 1996
# Please send feedback to http://www.suse.de/feedback
#
# This is the main configuration file of /sbin/init, which
# is executed by the kernel on startup. It describes what
# scripts are used for the different run-levels.
#
# All scripts for runlevel changes are in /etc/init.d/.
#
# This file may be modified by SuSEconfig unless CHECK_INITTAB
# in /etc/sysconfig/suseconfig is set to "no"
#

# The default runlevel is defined here
id:5:initdefault:

# First script to be executed, if not booting in emergency (-b) mode
si::bootwait:/etc/init.d/boot

# /etc/init.d/rc takes care of runlevel handling
#
# runlevel 0  is  System halt   (Do not use this for initdefault!)
# runlevel 1  is  Single user mode
# runlevel 2  is  Local multiuser without remote network (e.g. NFS)
# runlevel 3  is  Full multiuser with network
# runlevel 4  is  Not used
# runlevel 5  is  Full multiuser with network and xdm
# runlevel 6  is  System reboot (Do not use this for initdefault!)
#
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
#l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6

# what to do in single-user mode
ls:S:wait:/etc/init.d/rc S
~~:S:respawn:/sbin/sulogin

# what to do when CTRL-ALT-DEL is pressed
ca::ctrlaltdel:/sbin/shutdown -r -t 4 now

# special keyboard request (Alt-UpArrow)
# look into the kbd-0.90 docs for this
kb::kbrequest:/bin/echo "Keyboard Request -- edit /etc/inittab to let this work."

# what to do when power fails/returns
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
#pn::powerfail:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop

# for ARGO UPS
sh:12345:powerfail:/sbin/shutdown -h now THE POWER IS FAILING

# getty-programs for the normal runlevels
# <id>:<runlevels>:<action>:<process>
# The "id" field  MUST be the same as the last
# characters of the device (after "tty").
1:2345:respawn:/sbin/mingetty --noclear tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
#
#S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt102
#cons:12345:respawn:/sbin/smart_agetty -L 38400 console

#
#  Note: Do not use tty7 in runlevel 3, this virtual line
#  is occupied by the programm xdm.
#

#  This is for the package xdmsc, after installing and
#  and configuration you should remove the comment character
#  from the following line:
#7:3:respawn:+/etc/init.d/rx tty7


# modem getty.
# mo:235:respawn:/usr/sbin/mgetty -s 38400 modem

# fax getty (hylafax)
# mo:35:respawn:/usr/lib/fax/faxgetty /dev/modem

# vbox (voice box) getty
# I6:35:respawn:/usr/sbin/vboxgetty -d /dev/ttyI6
# I7:35:respawn:/usr/sbin/vboxgetty -d /dev/ttyI7

T0:23:respawn:/sbin/getty -L ttyS0 38400 vt100

# end of /etc/inittab


Wenn ich jetzt minicom aufrufe passiert folgendes:
linux-gbqd:/home/stefan # minicom
minicom: Fehler beim Öffnen der Datei »/dev/ttySO«: Datei oder Verzeichnis nicht gefunden
linux-gbqd:/home/stefan #


Es ist zum verrückt werden
 
A

Anonymous

Gast
Conax schrieb:
Hab jetzt die neue openSUSE 11.2 drauf. Hab jetzt mal folgende Dateien bearbeitet (siehe tutorial von ubuntuusers ganz oben)

Ein bischen genauer musst du dich schon ausdrücken. Wo hast du jetzt 11.2 drauf, auf dem Board oder auf dem PC auf welchem du minicom starten willst ? und aus welchem von beiden sind diese Konfigurationen.

robi
 
Also auf meinem PC ist jetzt Opensuse 11.2 und die besagten Dateiinhalte stammen auch aus OpenSuse11.2.

Auf meinem alix board ist immer noch alles wie gehabt (also ipfire)
 
Conax schrieb:
Wenn ich jetzt minicom aufrufe passiert folgendes:
linux-gbqd:/home/stefan # minicom
minicom: Fehler beim Öffnen der Datei »/dev/ttySO«: Datei oder Verzeichnis nicht gefunden
linux-gbqd:/home/stefan #


Es ist zum verrückt werden
Bist du da vielleicht Opfer eines Tippfehlers/Lesefehlers geworden? Hast du wirklich /dev/ttySO (mit dem großen Buchstaben O wie Oha!) anstelle von /dev/ttyS0 (mit 0 als Ziffer Null)? Wenn ja hakts sicherlich auch daran,denn da gehört /dev/ttyS0 (mit der Ziffer Null) hin und nichts mit dem Buchstaben O ;)
Vielleicht hilft das nun noch den letzten Restfehler zu finden ;)
Bis denne,
Tom
 
ok das mit SO und S0 hab ich vertauscht (das macht dann auch eher Sinn).

Code:
linux-gbqd:/home/stefan # ps -ef | grep tty
root      1693  1667  3 18:55 tty7     00:00:13 /usr/bin/Xorg -br -nolisten tcp :0 vt7 -auth /var/lib/xdm/authdir/authfiles/A:0-d3Qe4F
root      3906     1  0 18:55 tty1     00:00:00 /sbin/mingetty --noclear tty1
root      3907     1  0 18:55 tty2     00:00:00 /sbin/mingetty tty2
root      3910     1  0 18:55 tty3     00:00:00 /sbin/mingetty tty3
root      3912     1  0 18:55 tty4     00:00:00 /sbin/mingetty tty4
root      3914     1  0 18:55 tty5     00:00:00 /sbin/mingetty tty5
root      3916     1  0 18:55 tty6     00:00:00 /sbin/mingetty tty6

leider läufts trotzdem noch nicht :(
 
A

Anonymous

Gast
Conax schrieb:
leider läufts trotzdem noch nicht :(
Wenn du hin und wieder mal dazuschreiben würdest welcher Log jetzt von welchem Rechner ist :???: :???: :???:

Ich gehe jetzt einfach mal davon aus, das obrige ist von dem Board auf das du mit dem Nullmodem-Kabel drauf willst, und auf das du mittlerweile auch Suse draufgebügelt hast.

/etc/inittab
dort steht wahrscheinlich per default nach der Installation irgendwo
Code:
#S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt102
daraus machst du
Code:
S0:12345:respawn:/sbin/agetty -L 38400 ttyS0 vt102

rebooten - und dann solltest du dich mit dem Nullmodemkabel dort als User anmelden können.
Willst du dich dort auch als Root anmelden dann
dann noch in der /etc/securetty den Eintrag "ttyS0" zusätzlich mit eintragen.

Wenn du es brauchst, noch folgendes.
in der Datei /boot/grub/menu.lst in die entsprechenden Abschnitte für dein Linux jeweils in die Zeile die mit kernel beginnt hinten folgenden Eintrag anhängen " console=ttyS0,38400n8 "
Damit hast hast du deine Kernelmeldungen beim Start und im Fehlerfall auf der Seriellen Schnittstelle, und wenn das booten nicht funktioniert dann hättest du an der Seriellen deine Konsole um das zu reparieren. (Achtung, diese Ausgaben sind dann auch nicht mehr auf der tty1 auf der du das jetzt im Moment noch hast und du müsstest um zB an eine Systemkonsole im Runlevel 1 zu kommen, wirklich über die Serielle gehen. deshalb überlegen ob du das brauchst oder so haben willst)

Bleibt noch wie du die Steuerung von Grub dann auch noch direkt auf die ttyS0 legst, da bin ich mir nicht 100% sicher, da ich das noch nie gebraucht habe, wenn ich dem Ubuntu Howto glauben soll, müssten es die beiden Zeilen
Code:
serial --unit=0 --speed=38400
terminal serial
in der /boot/grub/menu.lst im globalem Teil bewirken. Notfalls müsste man hier zu noch mal bei Grub in die Doku sehen.

robi
 
Oben