ioctl(...,VT_ACTIVATE,...) bringt system zum Absturz

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
chr.gogolin
Beiträge: 441
Registriert: 12.10.2005 23:09:28
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

ioctl(...,VT_ACTIVATE,...) bringt system zum Absturz

Beitrag von chr.gogolin » 26.09.2007 09:15:29

Es geht wieder um mein altes Problem mit dem Abstürzen [1].

Ich weiß jetzt schon sehr genau was der Fehler ist und jetzt brauche ich wirklich eure Hilfe.

Der Absturz wird durch den Aufruf von

Code: Alles auswählen

ioctl(fd,VT_ACTIVATE,num)
(C Code)

des Programms "/bin/chvt" aus dem Paket "kbd" bzw. des Programms "/usr/bin/chvt" aus dem Paket "console-tools" verursacht, je nach dem welches ich installiert habe.

Was diese beiden Aufrufe machen ist sehr gut unter [2,3] erklärt, bitte werft mal einen Blick darauf.

Da das schon ein ziemliches Spezialproblem zu seien scheint, schätze ich, dass ich zu endgültigen Lösung des Problems einen für den Passenden Teil von Linux zuständigen Entwickler brauchen werde. Aber ich weiß nicht mal an wen ich mich wenden soll.

Bitte, bitte Helft mir! Wie man unter [1] sehen kann habe ich jetzt wirklich eine kleine Odyssee hinter mir und will jetzt nicht kurz vor dem Ziel scheitern.


[1] http://www.debianforum.de/forum/viewtop ... c&start=15
[2] http://www.linuxjournal.com/article/2783
[3] http://linux.die.net/man/2/ioctl

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 26.09.2007 11:33:26

Dieser Aufruf macht ja nichts anderes, als einfach nur das Terminal zu wechseln. Deshalb würde ich ja immer von Hand auf eine Textkonsole schalten und schauen, ob dann immer noch Abstürze auftreten. Macht es eigentlich Probleme, wenn du ganz oft von Hand zwischen X und einer Textconsole wechselst? Bzw. automatisch chvt aufrufst, so dass es zum Beispiel alle 5 Sekunden zwischen Terminal 1 und Terminal 7 wechselt? So könnte man den Fehler eventuell unabhängig vom Shutdown eingrenzen.
Im Verdacht hätte ich dann eventuell den Grafikkartentreiber -- zumindest beim fglrx-Treiber bestand das Problem ja IIRC für eine längere Zeit.
Nutzt die einen Framebuffer für die Textkonsolen? Wenn ja, dann schalte ihn mal aus.
Ich kam leider noch nicht zu weiteren Tests, habe gerade keinen Zugriff auf die Kiste.
Beim Thema Suspend To Ram hoffe ich einfach mal, dass wir von diesem (gefixten) Bug getroffen wurden: http://kerneltrap.org/Linux/Suspend_and ... _with_ACPI
Das könnte nämlich zumindest erklären, warum die Notebooks nicht mehr aufwachen.
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

chr.gogolin
Beiträge: 441
Registriert: 12.10.2005 23:09:28
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von chr.gogolin » 26.09.2007 11:59:39

Wie ich unter [1] bereits erwähnt hatte, lässt sich der Fehler durch durch automatisches Wechseln zwischen den Terminals mittels "chvt" reproduzieren.

Beim letzten Absturz wurde das auf

Code: Alles auswählen

ioctl(fd,VT_ACTIVATE,num)
folgende Kommando, nämlich

Code: Alles auswählen

ioctl(fd,VT_WAITACTIVE,num)
auch noch ausgeführt, ich habe jetzt wischen die beiden Aufrufe mal eine Pause von 10 Sekunden gesetzt um ganz sicher heraus zu finden was wirklich den Absturz hervorruft, das Wechseln oder das Warten auf das Ende des Wechsels.

Ich verwende für meine Grafikkarte den default Intel Treiber. War nach der Installation so eingestellt.

Code: Alles auswählen

Section "Device"
	Identifier	"Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller"
	Driver		"intel"
	BusID		"PCI:0:2:0"
EndSection
Die Konsole läuft so wie sie am Anfang eingestellt war, da habe ich nix verändert. Wie teste ich ob sie mit Framebuffer läuft?

Wer kennt sich denn mit den Interna eines solchen Aufrufs wirklich aus? Die Maintaner des Pakets "kbd" oder "console-tools"? Oder sollte man sich lieber an die für die "glibc6" zuständigen Leute wenden? Das "glibc6-dev" Paket enthält nämlich die Header Datei "vt.h" in der "VT_ACTIVATE" und "VT_WAITACTIVE" definiert werden und die "/usr/include/sys/ioctl.h", welche die Funktion "ioctl()" bereit stellt.

Ich denke, da muss ein Experte her, nur welcher?

[Edit]

Ich habe da grade noch einen Auszug aus einer Newsgroup entdeckt, das scheint irgendwie etwas damit zu tun zu haben, cih verstehe aber leider nicht sehr viel... http://www.ussg.iu.edu/hypermail/linux/ ... /0408.html

[1] http://www.debianforum.de/forum/viewtop ... c&start=15

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 26.09.2007 13:12:00

Sodele, gerade in #debian-x:
:12:58:29:. trigger| where does one search the failure, when a system crashes, when switching between X and another VT with chvt?
.:12:58:52:. trigger| is this a bug in the driver? intel in this case...
.:13:00:21:. MrCooper| most likely
Habe den Bug dann auch gleich gefunden: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=427811
Viel Erfolg beim Lesen :)
Hab nur ganz kurz Quergelesen, aber es kann wohl unter anderem an einem Konflikt mit dem Wlan-Treiber liegen (oder an was auch immer ;)).
Am besten schilderst du dann deinen Fall auch mal dort.
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

chr.gogolin
Beiträge: 441
Registriert: 12.10.2005 23:09:28
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von chr.gogolin » 26.09.2007 15:21:50

Sehr gut!

Man muss nur die richtigen Leute Fragen!

chr.gogolin
Beiträge: 441
Registriert: 12.10.2005 23:09:28
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von chr.gogolin » 17.12.2007 11:15:22

Es scheint endlich einen Patch in experimental zu geben.

Ich hoffe mal es dauert nicht mehr zu lange bis die neuer Version in Testing ist.
"Linux supports the notion of a command line or a shell for the same reason that only children read books with only pictures in them." - Bill Garrett

Antworten