9.3: Tecra 8000: suspend-to-disk
Hallo zusammen, hat jemand einen Toshiba Tecra 8000 und darauf unter SUSE 9.3 das Suspend to Disk hinbekommen ? Ich hab's kuerzlich mal ausprobiert. Der Suspend scheint noch funktioniert zu haben. Zumindest hat sich das Schleppi ausgeschaltet. Beim Wiederanlauf hate es jedoch mitten im Laden der Pages abgebrochen und neu gebootet. Danach hatte ich Lesefehler von der Disk, so dass ich es bisher noch nicht wieder versucht habe. Aus diesem Grund habe ich auch nicht mehr und genauere Fehlermeldungen. Hat jemand mehr Erfolg ? Danke fuer Hinweise. Gruss Werner Franke PS: Ich habe das Teil erst seit ein paar Tagen.
Am Dienstag, 21. Juni 2005 10:46 schrieb Werner Franke:
Hallo zusammen,
hat jemand einen Toshiba Tecra 8000 und darauf unter SUSE 9.3 das Suspend to Disk hinbekommen ?
Ich hab's kuerzlich mal ausprobiert. Der Suspend scheint noch funktioniert zu haben. Zumindest hat sich das Schleppi ausgeschaltet. Beim Wiederanlauf hate es jedoch mitten im Laden der Pages abgebrochen und neu gebootet.
Danach hatte ich Lesefehler von der Disk, so dass ich es bisher noch nicht wieder versucht habe. Aus diesem Grund habe ich auch nicht mehr und genauere Fehlermeldungen.
Hat jemand mehr Erfolg ?
Danke fuer Hinweise. Gruss Werner Franke
PS: Ich habe das Teil erst seit ein paar Tagen.
Hallo Werner, ich habe seit etwa 4 Jahren einen TECRA 8000 unter SUSE im Einsatz. Seit 9.2 ging suspend to disk und suspend to ram fast makellos. Mit SuSE 9.3 habe ich auch Probleme, wobei bei mir der shutdown Befehl, sowie suspend den Rechner nicht mehr ausschalten. Shutdown (bzw. das Programm /sbin/halt mach ein Segment Violation und Suspend einen Kernel Panic bevor der Rechner ausgeschaltet wird (bzw. er schaltet durch den Fehler nicht aus), Meine naeheren Untersuchungen lassen vermuten, dass der Fehler in Verbindung steht mit dem Powermanagement des Soundtreibers fuer den OPL3SA2 Chip. Zur Verifizierung beantworte mir bitte folgenden Fragen: 1. Hat Dein Tecra ebenfalls einen Yamaha OPL3SA2 Soundchip ? 2. Wenn Dein Soundsystem geladen ist, gibt es bei Dir unter /sys/devices/platform/ ein Directory snd_generic_pm.0, auf das Du zugreifen kannst ? 3. Wenn du mit "rcalsasound stop" die Soundmodule entlaedts, gibt es dann diesen Eintrag unter /sys/devices/platform immer noch und fuehrt ein Zugriff darauf zum Crash des zugreifenden Programms (z.B. mit "ls /sys/devices/platform/snd_generic_pm") ? Bin gespannt auf Deine Antworten. Solltest Du alle Fragen mit Ja beantworten koennen, vermute ich einen Bug im neuen Kernel-Code (neu seit 9.3) im Modul /usr/src/linux/sound/core/init.d, der durch eine Kernel Config Variable namens CONFIG_SND_GENERIC_PM default maessig eingeschaltet ist. Habe dann einen Workaround parat, der bei mir geholfen hat. Gruss Dieter Schenk
Hallo Dieter, Sorry fuer die spaete Reaktion, aber meine erste Antwort ging an die falsche Liste. Nachdem ich nichts mehr von Dir gehoert hatte, habe ich nun mal nachgesehen. Bingo. Am Dienstag, 28. Juni 2005 15:40 schrieb Hans-Dieter Schenk:
Am Dienstag, 21. Juni 2005 10:46 schrieb Werner Franke:
Hallo zusammen,
hat jemand einen Toshiba Tecra 8000 und darauf unter SUSE 9.3 das Suspend to Disk hinbekommen ?
[...]
Hallo Werner,
ich habe seit etwa 4 Jahren einen TECRA 8000 unter SUSE im Einsatz. Seit 9.2 ging suspend to disk und suspend to ram fast makellos. Mit SuSE 9.3 habe ich auch Probleme, wobei bei mir der shutdown Befehl, sowie suspend den Rechner nicht mehr ausschalten. Shutdown (bzw. das Programm /sbin/halt mach ein Segment Violation und Suspend einen Kernel Panic bevor der Rechner ausgeschaltet wird (bzw. er schaltet durch den Fehler nicht aus),
Meine naeheren Untersuchungen lassen vermuten, dass der Fehler in Verbindung steht mit dem Powermanagement des Soundtreibers fuer den OPL3SA2 Chip. Zur Verifizierung beantworte mir bitte folgenden Fragen:
1. Hat Dein Tecra ebenfalls einen Yamaha OPL3SA2 Soundchip ? 2. Wenn Dein Soundsystem geladen ist, gibt es bei Dir unter /sys/devices/platform/ ein Directory snd_generic_pm.0, auf das Du zugreifen kannst ? 3. Wenn du mit "rcalsasound stop" die Soundmodule entlaedts, gibt es dann diesen Eintrag unter /sys/devices/platform immer noch und fuehrt ein Zugriff darauf zum Crash des zugreifenden Programms (z.B. mit "ls /sys/devices/platform/snd_generic_pm") ?
Bin gespannt auf Deine Antworten. Solltest Du alle Fragen mit Ja beantworten koennen, vermute ich einen Bug im neuen Kernel-Code (neu seit 9.3) im Modul /usr/src/linux/sound/core/init.d, der durch eine Kernel Config Variable namens CONFIG_SND_GENERIC_PM default maessig eingeschaltet ist. Habe dann einen Workaround parat, der bei mir geholfen hat.
3 x Ja. Interresanterweise sind alle meine Versuche das Soundmodul zu entfernen gescheitert. rcalsasound stop und anschliessendes modprobe -r snd_opl3... brachten zwar keine Fehlermeldung, aber beim anschliesenden 'runterfahren, kam die Fehlermeldung, dass alle snd* Module busy sind und ausschalten ging immer noch nicht. Kann mich auch schwach erinnern, dass der Tecra sich gleich nach der Linux- installation schon mal ausgeschaltet hatte. Das muss dann vor dem Einrichten des Sounds gewesen sein. Bin auf Deinen Workaround gespant. Gruss Werner -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Donnerstag, 7. Juli 2005 12:41 schrieb Werner Franke:
Hallo Dieter,
Sorry fuer die spaete Reaktion, aber meine erste Antwort ging an die falsche Liste. Nachdem ich nichts mehr von Dir gehoert hatte, habe ich nun mal nachgesehen.
Bingo.
Am Dienstag, 28. Juni 2005 15:40 schrieb Hans-Dieter Schenk:
Am Dienstag, 21. Juni 2005 10:46 schrieb Werner Franke:
Hallo zusammen,
hat jemand einen Toshiba Tecra 8000 und darauf unter SUSE 9.3 das Suspend to Disk hinbekommen ?
[...]
Hallo Werner,
ich habe seit etwa 4 Jahren einen TECRA 8000 unter SUSE im Einsatz. Seit 9.2 ging suspend to disk und suspend to ram fast makellos. Mit SuSE 9.3 habe ich auch Probleme, wobei bei mir der shutdown Befehl, sowie
3 x Ja. Interresanterweise sind alle meine Versuche das Soundmodul zu entfernen gescheitert. rcalsasound stop und anschliessendes modprobe -r snd_opl3... brachten zwar keine Fehlermeldung, aber beim anschliesenden 'runterfahren, kam die Fehlermeldung, dass alle snd* Module busy sind und ausschalten ging immer noch nicht.
Hallo Werner, es scheint, dass Deine Installation die gleichen Fehler aufweist. Allerdings habe ich einige unterschiedliche Fehlermeldungen im File /var/log/messages beim Entladen der Soundtreiber durch "rcalsasound stop": Jul 4 23:22:25 bflsk1 kernel: ALSA sound/core/memory.c:71: Not freed snd_alloc_ Jul 4 23:22:25 bflsk1 kernel: ALSA sound/core/memory.c:80: kmalloc(204) from d0 Jul 4 23:23:03 bflsk1 kernel: Unable to handle kernel paging request at virtual Jul 4 23:23:03 bflsk1 kernel: printing eip: oder auch Jul 5 20:27:48 bflsk1 kernel: Device 'snd_generic_pm.0' does not have a release Jul 5 20:27:48 bflsk1 kernel: Badness in device_release at drivers/base/core.c: Jul 5 20:27:48 bflsk1 kernel: [<c01d07e9>] kobject_cleanup+0x69/0x70 Jul 5 20:27:48 bflsk1 kernel: [<c01d07f0>] kobject_release+0x0/0x10 Bitte ueberpruefe dies doch einmal in Deinem System. Um wirklich sicher zu sein, dass mein Vorschlag zum Erfolg fuehrt (damit verbunden ist ein Kernel Neubau, bzw. Neuuebersetzung des Soundmodules snd.ko) boote Dein System, ohne dass das Alsasound System geladen wird. Das heisst Du musst vorher den Link auf das Startscript in /etc/init.d/rc3.d S12alsasound loeschen, entweder direkt oder durch den Runleveleditor von YAST2. Auch musst Du dafuer sorgen, dass der Suund nicht ueber das Hotplug System geladen wird (Backup und Loeschen des Files /etc/sysconfig/hardware/hwcfd-static-1, es enthaelt die Anweisung snd-opl3sa2 zu laden, eventuell auch anderer Name). Da der Start einer Soundapplikation ebenfalls das Soundsystem nachlaedt (was fuer den Test vermieden werden soll) solltest Du nicht KDE laden, sondern im Runlevel 3 booten, durch Angabe einer 3 im Bootmenu (oder Editieren des Files inittab in /etc). Nach dem Boot, Einloggen und pruefen mit "lsmod | grep snd", dass wirklich kein Soundmodul geladen ist. Wenn das alles OK ist, fahre den Rechner mit "powersave -U" in den Suspend to Disk. Dies sollte funktionieren und den Rechner ausschalten. Nach dem Wiedereinschalten und Boot des vorigen Kernels sollte alles richtig funktionieren (natuerlich ohne Sound). Wenn das so ist, sollte das folgenden Vorgehen zum Erfolg fuehren. Dazu muss das Modul init.c in /usr/src/linux/sound/core modifiziert werden. Ab etwa Zeile 844 findest Du den Kode --------------- * Registers the power-management and sets the lowlevel callbacks for * the given card. These callbacks are called from the ALSA's common * PM handler and from the control API. */ int snd_card_set_generic_pm_callback(snd_card_t *card, int (*suspend)(snd_card_t *, pm_message_t), int (*resume)(snd_card_t *), void *private_data) { card->pm_dev = snd_generic_device_register(card); if (! card->pm_dev) return -ENOMEM; snd_card_set_pm_callback(card, suspend, resume, private_data); return 0; } --------------- Diesen aenderst Du durch Einfuegen der #if 0 / #endif Konstruktion in --------------- * Registers the power-management and sets the lowlevel callbacks for * the given card. These callbacks are called from the ALSA's common * PM handler and from the control API. */ int snd_card_set_generic_pm_callback(snd_card_t *card, int (*suspend)(snd_card_t *, pm_message_t), int (*resume)(snd_card_t *), void *private_data) { #if 0 card->pm_dev = snd_generic_device_register(card); if (! card->pm_dev) return -ENOMEM; snd_card_set_pm_callback(card, suspend, resume, private_data); #endif return 0; } --------------- d.h. die Routine snd_card_set_generic_pm_callback kehrt sofort zurueck. Damit wird der neue verdaechtige Kode, der ueber die Konfig Variable CONFIG_SND_GENERIC_PM eingebunden wird, unwirksam gemacht. Es erfolgt eine Neuuebersetzung des Soundmoduls mit make modules und eine Installation mit make modules_install (Oder einem manuellen cp des Modules snd.ko nach /lib/modules/2.6.11.4-27-default/kernel/sound/core). Mit dem neuen Modul snd.ko sollte alles OK sein. Nach einem Powersave sollte allerdings mit "rcalsasound restart" das Soundsystem neu initialisiert werden. Natuerlich geht dann nicht nur Suspend to Disk (powersave -U) sondern auch Suspend to Memory (powersave -u) bzw. Schliessen des Laptop Deckels. Letzteres allerdings nur im X-Window Betrieb und nicht im Runlevel 3 (Schirm wird mit Framebuffer Device nicht richtig zurueckgesetzt). Zu beachten ist, dass nach Resume der Screensaver eingeschaltet und der Schirm gelockt ist. Dies ist ein Workaround. Eine bessere Loesung waere natuerlich den Kode zu korrigieren (??) oder aber als Zwischenschritt die Variable CONFIG_SND_GENERIC_PM auf false zu setzen, was aber aus verschiedenen weiteren bereits erkannten Fehlergruenden nicht funktioniert. Hoffe, dass dies Dir weiterhilft und nicht zu starker Tobak ist. Bin aber weiter gern behilflich und zur Klaerung weiterer Merkwuerdigkeiten beim Powersave Vorgang bereit. Bin gespannt auf Deine Resultate. Gruss Dieter
Am Donnerstag, 7. Juli 2005 12:41 schrieb Werner Franke: ...
Interresanterweise sind alle meine Versuche das Soundmodul zu entfernen gescheitert. rcalsasound stop und anschliessendes modprobe -r snd_opl3... brachten zwar keine Fehlermeldung, aber beim anschliesenden 'runterfahren, kam die Fehlermeldung, dass alle snd* Module busy sind und ausschalten ging immer noch nicht. Kann mich auch schwach erinnern, dass der Tecra sich gleich nach der Linux- installation schon mal ausgeschaltet hatte. Das muss dann vor dem Einrichten des Sounds gewesen sein.
Bin auf Deinen Workaround gespant.
Gruss Werner
Hallo Werner, im Nachtrag zu meinem Workaround, habe ich einen einfacheren Weg gefunden, der nicht mit einer Neucompilierung des Moduls verbunden ist. Da die Aenderung im Sourcecode von init.c sehr gering ist, habe ich ueber einen binaeren Patch des Original Moduls snd.ko im Verzeichnis /lib/modules/2.6.11.4-21.7-default/kernel/sound/core das gleiche erreicht. Folgende Schritte musst Du dazu machen (an ein Backup des Originalfiles denken): 1. Suchen des Offsets in die Datei snd.ko, wo die Routine snd_card_set_generic_pm_callback beginnt. 2. Ueberschreiben von drei Bytes beginnend am Offset (entspricht return 0;) 3. Abspeichern und Kopieren des neuen Files nach /lib/modules/2.6.11.4-21.7-default/kernel/sound/core Die zu ueberschreibende Position ist bei mir 0x15B0 (ermittelt mit objdump), sie muss die Bytefolge 0x57 0x89 0xD7 0x56 0x89 0xCE 0x53 0x89 enthalten. Ueberschrieben werden hiervon die ersten 3 Bytes mit 0x31 0xC0 0xC3 Als Werkzeug fuer diese Manipulation habe ich den mcedit benutzt, der es ermoeglicht Hexzeichen zu suchen, sie zu aendern und das File wieder abzuspeichern. Ich habe dies mit Erfolg ausprobiert, es geht wesentlich schneller als der Weg ueber eine Neucompilierung des Treibers. Viel Erfolg Gruss Dieter
Am Sonntag, 10. Juli 2005 12:13 schrieb Hans-Dieter Schenk:
Ich habe dies mit Erfolg ausprobiert, es geht wesentlich schneller als der Weg ueber eine Neucompilierung des Treibers.
Es mag im Einzelfall schneller sein, aber es ist weder transparent noch portabel ... -- Eckhard Rüggeberg E.Rueggeberg@t-online.de "One OS to rule them all, One OS to find them, One OS to bring them all and in the darkness bind them In the Land of Redmond, where the Shadows lie."
Hallo Dieter, Am Sonntag, 10. Juli 2005 12:13 schrieb Hans-Dieter Schenk:
Am Donnerstag, 7. Juli 2005 12:41 schrieb Werner Franke: ...
[...]
Hallo Werner,
im Nachtrag zu meinem Workaround, habe ich einen einfacheren Weg gefunden, der nicht mit einer Neucompilierung des Moduls verbunden ist. Da die Aenderung im Sourcecode von init.c sehr gering ist, habe ich ueber einen binaeren Patch des Original Moduls snd.ko im Verzeichnis /lib/modules/2.6.11.4-21.7-default/kernel/sound/core das gleiche erreicht.
Folgende Schritte musst Du dazu machen (an ein Backup des Originalfiles denken):
1. Suchen des Offsets in die Datei snd.ko, wo die Routine snd_card_set_generic_pm_callback beginnt. 2. Ueberschreiben von drei Bytes beginnend am Offset (entspricht return 0;) 3. Abspeichern und Kopieren des neuen Files nach /lib/modules/2.6.11.4-21.7-default/kernel/sound/core
Die zu ueberschreibende Position ist bei mir 0x15B0 (ermittelt mit objdump), sie muss die Bytefolge
0x57 0x89 0xD7 0x56 0x89 0xCE 0x53 0x89
enthalten. Ueberschrieben werden hiervon die ersten 3 Bytes mit
0x31 0xC0 0xC3
Als Werkzeug fuer diese Manipulation habe ich den mcedit benutzt, der es ermoeglicht Hexzeichen zu suchen, sie zu aendern und das File wieder abzuspeichern.
Ich habe dies mit Erfolg ausprobiert, es geht wesentlich schneller als der Weg ueber eine Neucompilierung des Treibers.
Danke fuer Deine ausfuehrliche erste und zweite Mail. Werde wahrscheinlich die binaere Methode zuerst nutzen, weil auf dem Notebook keine Kernel-Sourcen installiert sind und ich keinen weiteren 32Bit PC mit Linux drauf habe. Werde mich wieder melden, wenn ich weitere Infos habe. Gruss Werner
Hallo Dieter,
Am Dienstag, 12. Juli 2005 10:02 schrieb Werner Franke: Hallo Dieter,
Am Sonntag, 10. Juli 2005 12:13 schrieb Hans-Dieter Schenk:
Am Donnerstag, 7. Juli 2005 12:41 schrieb Werner Franke: ...
[...]
Werde mich wieder melden, wenn ich weitere Infos habe.
Ich habe den Tecra ins Buero mitgebracht und bin nun da am testen. Nachdem ich ALSA ausgesperrt hatte, so wie Du beschrieben hast, hatte ich im Runlevel 3 gebootet und powersave -U eingegeben. Der PC ist runtergefahren und hat abgeschaltet. Nach dem anschliessenden Einschalten ist er hochgefahren und an der gleichen Stelle gelandet, an der ich powersave -U gemacht hatte. Inclusice Bildschirminhalt. Nur, ich habe keine Tastatur mehr bzw. diese reagiert nicht. Ein Cursorblock ist in der Mitte des Bildschirms zu sehen. Mehr nicht. Kannst Du mir bitte die wahrscheinlich hierfuer vollstaendige Config schicken. Ich nehme mal an, es liegt daran. Oder ? Gruss Werner
Nochmal Hallo Dieter, Am Dienstag, 12. Juli 2005 12:51 schrieb Werner Franke:
Hallo Dieter,
Am Dienstag, 12. Juli 2005 10:02 schrieb Werner Franke: Hallo Dieter,
Am Sonntag, 10. Juli 2005 12:13 schrieb Hans-Dieter Schenk:
Am Donnerstag, 7. Juli 2005 12:41 schrieb Werner Franke: ...
[...]
Werde mich wieder melden, wenn ich weitere Infos habe.
Ich habe den Tecra ins Buero mitgebracht und bin nun da am testen. Nachdem ich ALSA ausgesperrt hatte, so wie Du beschrieben hast, hatte ich im Runlevel 3 gebootet und powersave -U eingegeben. Der PC ist runtergefahren und hat abgeschaltet. Nach dem anschliessenden Einschalten ist er hochgefahren und an der gleichen Stelle gelandet, an der ich powersave -U gemacht hatte. Inclusice Bildschirminhalt. Nur, ich habe keine Tastatur mehr bzw. diese reagiert nicht. Ein Cursorblock ist in der Mitte des Bildschirms zu sehen. Mehr nicht.
Kannst Du mir bitte die wahrscheinlich hierfuer vollstaendige Config schicken. Ich nehme mal an, es liegt daran.
Habe das ganze nochmal MIT X11 gemacht. In KDE den Knopf 'Suspend PC' gedrueckt und der PC fuhr herunter und schaltete sich aus. Beim Einschalten kam dann: Stopping tasks: ==| Freeing memory... done (357 pages freed) PM: Reading swsusp image. swsusp: reading pagedir (35 pages) hda: dma_intr: status=0x51 {DriveReady SeekComplete Error } hda: dma_intr: error=0x40 {UncorrectableErrorm }, LPAsect=11513284, sector=11513281 ide: failed opcode was: unknown end_request: I/O error, dev hda, sector 11513281 Kernel panic - not syncing: I/O error reading memory image Hmmm. Habe ich da ein grundsaetzliches Problem ? Gruss Werner
Am Dienstag, 12. Juli 2005 13:41 schrieb Werner Franke: ..
Nachdem ich ALSA ausgesperrt hatte, so wie Du beschrieben hast, hatte ich im Runlevel 3 gebootet und powersave -U eingegeben. Der PC ist runtergefahren und hat abgeschaltet. Nach dem anschliessenden Einschalten ist er hochgefahren und an der gleichen Stelle gelandet, an der ich powersave -U gemacht hatte. Inclusice Bildschirminhalt. Nur, ich habe keine Tastatur mehr bzw. diese reagiert nicht. Ein Cursorblock ist in der Mitte des Bildschirms zu sehen. Mehr nicht.
Wie schon vorher gesagt, habe ich auch Probleme mit der Reinitialisierung des Bildschirms, allerdings nur bei Suspend to Ram (powersave -u). Ich fuehre das auf Probleme mit dem Framebuffer zurueck. Deshalb mein Vorschlag zur Fehlereinkreisung, den Rechner in einem normalen VGA Mode hochzufahren (in /boot/grub/menu.lst vga=0x317durch vga=ask ersetzen und beim Booten im VGA Menue VESA Mode mit 80x25 anwaehlen) und dann den Test wiederholen. Sind im /var/log/messages Fehlermeldungen beim Runterfahren zu erkennen ?
Kannst Du mir bitte die wahrscheinlich hierfuer vollstaendige Config schicken. Ich nehme mal an, es liegt daran.
Glaube ich nicht, da ich das originale .config benutzt habe, Du findest diese Konfigurationsdatei unter /proc/config.gz. Ich gehe davon aus , dass Dein System auf der unveraenderten SuSE9.3 mit Kernel 2.6.11.4-21.7-default beruht.
Habe das ganze nochmal MIT X11 gemacht. In KDE den Knopf 'Suspend PC' gedrueckt und der PC fuhr herunter und schaltete sich aus.
Ich nehme an, dass das snd.ko noch nicht gepatcht war, aber alsasound geladen ist ? Auch hier die Frage nach Fehlermeldungen im syslog.
Beim Einschalten kam dann:
Stopping tasks: ==| Freeing memory... done (357 pages freed) PM: Reading swsusp image. swsusp: reading pagedir (35 pages)
Soweit ist das OK
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error } hda: dma_intr: error=0x40 {UncorrectableErrorm }, LPAsect=11513284, sector=11513281 ide: failed opcode was: unknown end_request: I/O error, dev hda, sector 11513281 Kernel panic - not syncing: I/O error reading memory image
Das sieht allerdings auf den ersten Blick nach einem Diskproblem aus. (Fehler beim Lesen eines Sektors aus der swap-Partition) Mache einen simplen Test und pruefe, ob alle Sektoren Deiner Disk gelesen werden koennen: dd if=/dev/hda of=/dev/null Dieser Test macht zwischendurch keine Ausgabe und kann entsprechend Deiner Diskkapzitaet dauern. Er sollte ohne Fehlermeldung mit der Ausgabe xxxx+0 records in xxxx+0 records out enden. Wie gross ist Deine Platte insgesamt, Deine Swap Partition und Dein Memory ? Gruss Dieter
Hallo Dieter, Am Dienstag, 12. Juli 2005 15:01 schrieb Hans-Dieter Schenk:
Am Dienstag, 12. Juli 2005 13:41 schrieb Werner Franke: ..
[...]
Wie schon vorher gesagt, habe ich auch Probleme mit der Reinitialisierung des Bildschirms, allerdings nur bei Suspend to Ram (powersave -u). Ich fuehre das auf Probleme mit dem Framebuffer zurueck. Deshalb mein Vorschlag zur Fehlereinkreisung, den Rechner in einem normalen VGA Mode hochzufahren (in /boot/grub/menu.lst vga=0x317durch vga=ask ersetzen und beim Booten im VGA Menue VESA Mode mit 80x25 anwaehlen) und dann den Test wiederholen.
Sind im /var/log/messages Fehlermeldungen beim Runterfahren zu erkennen ?
Ich habe mal in /etc/sysconfig/powersave/common den Wert von POWERSAVED_DEBUG auf 8 (Info) gesetzt. Keine Fehlermeldungen beim Runterfahren zu erkennen.
Kannst Du mir bitte die wahrscheinlich hierfuer vollstaendige Config schicken. Ich nehme mal an, es liegt daran.
Glaube ich nicht, da ich das originale .config benutzt habe, Du findest diese Konfigurationsdatei unter /proc/config.gz. Ich gehe davon aus , dass Dein System auf der unveraenderten SuSE9.3 mit Kernel 2.6.11.4-21.7-default beruht.
Sorry, ich meinte nicht die Config vom Kernel. Ich meinte die in /etc/sysconfig/powersave, wo die ganzen Module eingetragen werden muessen/sollen. (Aus anderem Thread 'suspend to disk nur ein Mal?' in suse-linux) /etc/sysconfig/powersave/sleep ? POWERSAVE_UNLOAD_MODULES_BEFORE_SUSPEND2DISK POWERSAVE_UNLOAD_MODULES_BEFORE_SUSPEND2RAM POWERSAVE_SUSPEND2DISK_RESTART_SERVICES usw.
Habe das ganze nochmal MIT X11 gemacht. In KDE den Knopf 'Suspend PC' gedrueckt und der PC fuhr herunter und schaltete sich aus.
Ich nehme an, dass das snd.ko noch nicht gepatcht war, aber alsasound geladen ist ? Auch hier die Frage nach Fehlermeldungen im syslog.
Stimmt. War noch nicht gepatcht und einige snd Module waren wohl geladen, jedoch nicht das opl3sa2. Geladen sind, wenn ich KDE hochfahre: snd_mixer_oss, snd, soundcore Bevor ich da weiter mache, muss erst mal das Disk-Problem behoben sein. Siehe unten.
Beim Einschalten kam dann:
Stopping tasks: ==| Freeing memory... done (357 pages freed) PM: Reading swsusp image. swsusp: reading pagedir (35 pages)
Soweit ist das OK
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error } hda: dma_intr: error=0x40 {UncorrectableErrorm }, LPAsect=11513284, sector=11513281 ide: failed opcode was: unknown end_request: I/O error, dev hda, sector 11513281 Kernel panic - not syncing: I/O error reading memory image
Das sieht allerdings auf den ersten Blick nach einem Diskproblem aus. (Fehler beim Lesen eines Sektors aus der swap-Partition) Mache einen simplen Test und pruefe, ob alle Sektoren Deiner Disk gelesen werden koennen:
dd if=/dev/hda of=/dev/null
Dieser Test macht zwischendurch keine Ausgabe und kann entsprechend Deiner Diskkapzitaet dauern. Er sollte ohne Fehlermeldung mit der Ausgabe xxxx+0 records in xxxx+0 records out enden.
dd if=/dev/hda of=/dev/null Input/output error 10252736+0 records in 10252736+0 records out 5249400832 bytes (5.2 GB) copied dd if=/dev/hda2 of=/dev/null Input/output error 156352+0 records in 156352+0 records out 80052224 bytes (80 MB) copied Ich lasse seit gestern ein e2fsck -y -c -c /dev/hda1 und e2fsck -y -c -c /dev/hda2 unter Knoppix laufen. (die Swap Part habe ich desswegen in ein ext2 geaendert.) Das wird wohl noch etwas dauern. Danach werde ich's weiter versuchen.
Wie gross ist Deine Platte insgesamt, Deine Swap Partition und Dein Memory
Platte: 6 GB, Swap Part: 560 MB, Memory: 192 MB Gruss Werner
Am Donnerstag, 14. Juli 2005 12:20 schrieb Werner Franke:
Sorry, ich meinte nicht die Config vom Kernel. Ich meinte die in /etc/sysconfig/powersave, wo die ganzen Module eingetragen werden muessen/sollen. (Aus anderem Thread 'suspend to disk nur ein Mal?' in suse-linux)
Hier meine Einstellungen: POWERSAVE_UNLOAD_MODULES_BEFORE_SUSPEND2DISK="stir4200 usb_storage sbp2 ohci_hcd uhci_hcd ehci_hcd ohci1394 ipw2100 ipw2200 prism54 ath_pci aic7xxx" POWERSAVE_UNLOAD_MODULES_BEFORE_SUSPEND2RAM="stir4200 usb_storage sbp2 ohci_hcd uhci_hcd ehci_hcd ohci1394 ipw2100 ipw2200 prism54 ath_pci aic7xxx" POWERSAVE_SUSPEND2DISK_RESTART_SERVICES="hotplug" POWERSAVE_SUSPEND2RAM_RESTART_SERVICES="hotplug" POWERSAVE_UNLOAD_MODULES_BEFORE_STANDBY="" POWERSAVE_STANDBY_RESTART_SERVICES="" POWERSAVED_DISABLE_USER_SUSPEND2DISK="no" POWERSAVED_DISABLE_USER_SUSPEND2RAM="no" POWERSAVED_DISABLE_USER_STANDBY="no" POWERSAVE_SUSPEND2DISK_DELAY="0" POWERSAVE_SUSPEND2RAM_DELAY="0" POWERSAVE_STANDBY_DELAY="0" POWERSAVE_SUSPEND2DISK_SHUTDOWN_MODE="shutdown" POWERSAVE_SUSPEND2DISK_RESTORE_CLOCK="yes" POWERSAVE_SUSPEND2RAM_RESTORE_CLOCK="no" POWERSAVE_STANDBY_RESTORE_CLOCK="no" POWERSAVE_SUSPEND2DISK_IGNORE_KERNEL_MISMATCH="yes" POWERSAVE_SUSPEND2DISK_UNMOUNT_FATFS="yes" POWERSAVE_SUSPEND2RAM_UNMOUNT_FATFS="no" POWEPRSAVE_STANDBY_UNMOUNT_FATFS="no" Interessant scheint der Eintrag POWERSAVE_SUSPEND2DISK_SHUTDOWN_MODE="shutdown" zu sein, Defaultmaessig steht hier platform
Bevor ich da weiter mache, muss erst mal das Disk-Problem behoben sein. Siehe unten.
Auch meine Meinung.
dd if=/dev/hda of=/dev/null Input/output error 10252736+0 records in 10252736+0 records out 5249400832 bytes (5.2 GB) copied
dd if=/dev/hda2 of=/dev/null Input/output error 156352+0 records in 156352+0 records out 80052224 bytes (80 MB) copied
Dies bestaetigt meine Vermutung eines Diskproblems in der Swap Partition. und zwar etwa bei 80 MByte in die Partition hda2 hinein. Da zu befuerchten ist, dass weitere Fehler frueher oder spaeter auftreten, empfiehlt sich die Beschaffung einer neuen Platte. Ich habe gute Erfahrungen mit einer 40GByte Platte TOSHIBA MK4025GAS gemacht, ausgetauscht gegen die Original 10GByte Platte. Zur voruebergehenden Behebung, um erst mal weiter zu kommen, kannst Du die Swap Partition loeschen (z.B. unter KNOPPIX Live CD) und neu anlegen, wobei Du den Start der Partition um etwa 90 Gbyte hinter Deine erste Partition legst und damit die Fehlstelle in das unbenutzte Loch zwischen hda1 und hda2 verschiebst (vorausgesetzt es sind keine weiteren Fehler auf der Platte, siehe auch Test mit dem Programm badblocks). Gruss Dieter
Am Donnerstag, 14. Juli 2005 12:20 schrieb Werner Franke:
Ich habe mal in /etc/sysconfig/powersave/common den Wert von POWERSAVED_DEBUG auf 8 (Info) gesetzt. Keine Fehlermeldungen beim Runterfahren zu erkennen.
Kann auch nicht, da die DEBUG Variable bitweise interpretiert wird und die 8 nur fuer INFO steht (was dann haufenweise Meldungen im syslog generiert). Die standardmaessige 3 fuer Error und Warnings ist schon OK. Willst Du zusaetzlich alle INFO Meldungen sehen, musst Du die DEBUG_Variable auf 11 setzen. Uebrigens werden suspend Ablaufe in /var/log/suspend2disk.log bzw. suspend2ram.log angezeigt.
Sorry, ich meinte nicht die Config vom Kernel. Ich meinte die in /etc/sysconfig/powersave, wo die ganzen Module eingetragen werden muessen/sollen. (Aus anderem Thread 'suspend to disk nur ein Mal?' in suse-linux)
Ich habe nocheinmal meine powersave Konfiguration ueberarbeitet und deshalb hier eine etwas praezisere und genauere Antwort: Mit dem Script restore_default_config aus /usr/share/doc/packages/powersave habe ich alle Einstellungen auf den Standard zurueckgesetzt und dann meine Aenderungen gemacht im Directory /etc/sysconfig/powersave: In events: POWERSAVE_EVENT_BUTTON_LID_CLOSED="suspend_to_ram" In sleep: POWERSAVED_DISABLE_USER_SUSPEND2RAM="no" POWERSAVED_DISABLE_USER_STANDBY="no" POWERSAVE_SUSPEND2DISK_IGNORE_KERNEL_MISMATCH="yes" (Dieser Eintrag, weil mein Kernel Name nicht dem Standard folgt). Mit diesen Einstellungen und der schon dargestellten Aenderung am Soundmodule snd.ko, (und auch nur damit!!) geht suspend2ram und suspend2disk ueber den Befehl powersave -u bzw powersave -U wie geschmiert. Auch das Problem mit dem schwarzen Bildschirm nach einem suspend2ram bei Framebuffer Betrieb ist dank der zusaetzlichen Informationen im Directory /usr/share/doc/package/powersave/contrib geloest. Dank an Stefan Seyfried fuer die beiden Scripts vbestate_save und vbestate_restore. Einfach nach den Kommentaren vorgehen, allerdings ohne den Befehl "vbetool post". Das Programm vbetool habe ich auf einer Knoppix CD gefunden (oder im WWW). Waere schoen, wenn einer von SUSE zu dem offentsichtlichen Fehler im Modul snd.ko etwas sagen koennte, da nach meiner Meinung der Fehler nicht TECRA8000 spezifisch ist, sondern bei allen Laptops mit Soundmodulen auftritt, die ueber den ISA Bus angeschlossen sind (z.B der Yamaha OPL3-SA2, ESS18xx, AD1848 oder CS4248) und ueber die Kernel Konfigurationsvariable CONFIG_SND_GENERIC_PM im Kernel 2.6.11 neuen Kode einbinden. Gruss Dieter
Hallo Dieter, Am Samstag, 16. Juli 2005 18:31 schrieb Hans-Dieter Schenk:
Am Donnerstag, 14. Juli 2005 12:20 schrieb Werner Franke:
Ich habe mal in /etc/sysconfig/powersave/common den Wert von POWERSAVED_DEBUG auf 8 (Info) gesetzt. Keine Fehlermeldungen beim Runterfahren zu erkennen.
Kann auch nicht, da die DEBUG Variable bitweise interpretiert wird und die 8 nur fuer INFO steht (was dann haufenweise Meldungen im syslog generiert). Die standardmaessige 3 fuer Error und Warnings ist schon OK. Willst Du zusaetzlich alle INFO Meldungen sehen, musst Du die DEBUG_Variable auf 11 setzen. Uebrigens werden suspend Ablaufe in /var/log/suspend2disk.log bzw. suspend2ram.log angezeigt.
Sorry, ich meinte nicht die Config vom Kernel. Ich meinte die in /etc/sysconfig/powersave, wo die ganzen Module eingetragen werden muessen/sollen. (Aus anderem Thread 'suspend to disk nur ein Mal?' in suse-linux)
Ich habe nocheinmal meine powersave Konfiguration ueberarbeitet und deshalb hier eine etwas praezisere und genauere Antwort:
Mit dem Script restore_default_config aus /usr/share/doc/packages/powersave habe ich alle Einstellungen auf den Standard zurueckgesetzt und dann meine Aenderungen gemacht im Directory /etc/sysconfig/powersave: In events: POWERSAVE_EVENT_BUTTON_LID_CLOSED="suspend_to_ram" In sleep: POWERSAVED_DISABLE_USER_SUSPEND2RAM="no" POWERSAVED_DISABLE_USER_STANDBY="no" POWERSAVE_SUSPEND2DISK_IGNORE_KERNEL_MISMATCH="yes" (Dieser Eintrag, weil mein Kernel Name nicht dem Standard folgt).
Mit diesen Einstellungen und der schon dargestellten Aenderung am Soundmodule snd.ko, (und auch nur damit!!) geht suspend2ram und suspend2disk ueber den Befehl powersave -u bzw powersave -U wie geschmiert. Auch das Problem mit dem schwarzen Bildschirm nach einem suspend2ram bei Framebuffer Betrieb ist dank der zusaetzlichen Informationen im Directory /usr/share/doc/package/powersave/contrib geloest. Dank an Stefan Seyfried fuer die beiden Scripts vbestate_save und vbestate_restore. Einfach nach den Kommentaren vorgehen, allerdings ohne den Befehl "vbetool post". Das Programm vbetool habe ich auf einer Knoppix CD gefunden (oder im WWW).
vielen Dank fuer die ausfuehrlichen Infos. Da ein e2fsck in Verbindung mit badblocks und auch Dein Vorschlag mit dem Verschieben der Swap-Partition nichts gebracht hat, muss ich das suspend-to-disk erst mal auf Eis legen. Aber es hat fuer mich auf jeden Fall was gebracht. Jetzt sounded der Tecra wieder und schaltet sich beim Herunterfahren aus. Mal sehen, eventuellbesorge ich mir 'ne neue Disk. Die mit 6 GB war sowieso etwas klein. :-) Erst mal vilen Dank fuer alles. Grüsse Werner
participants (3)
-
Eckhard Rüggeberg
-
Hans-Dieter Schenk
-
Werner Franke