Eee PC Forum | die Asus Eee PC Community (http://www.eeepc.de/index.php)
- EeePC Software (http://www.eeepc.de/board.php?boardid=4)
-- Software - ASUS Xandros (http://www.eeepc.de/board.php?boardid=5)
--- Linux - Asus Xandros update: dpkg-preconfigure produziert Speicherfehler (http://www.eeepc.de/thread.php?threadid=3902)


Geschrieben von jepo am 04.10.2008 um 13:26:

  update: dpkg-preconfigure produziert Speicherfehler

Hallo zusammen,

ich habe Probleme mit der update-Funktion bei meinem Eee 900A und zwar produziert das Programm /usr/sbin/dpkg-preconfigure Speicherzugriffsfehler (segmentation fault). Dabei ist es unerheblich, wodurch das Programm aufgerufen wird. Sowohl unter synaptic, direktes apt-get, als auch vom Asus updatemanager kommen jeweils die die gleichen Fehlermeldungen (mal englisch, mal deutsch).
Selbst wenn man das Programm direkt manuell von der Kommandozeile aufruft (mit sudo), dann gibt es den Speicherzugriffsfehler.

Dieses Problem verhindert nun jeglichen Update, da im Hintergrund apt-get immer dieses Programm aufrufen möchte.

Ironischerweise scheitert somit selbst der ASUS Systemupdate, der angeblich Probleme mit dem Updatesystem lösen soll. geschockt

Mein Verdacht ist nun, dass das Programm dpkg-preconfigure irgendwie zerschossen ist.

md5sum über das Programm ergibt bei mir:
e88ae00334faaed919c2cbd21de853fe /usr/sbin/dpkg-preconfigure

Da meine Kenntnisse des Paketverwaltungssystems sehr begrenzt sind, würde ich mich auch über einen Tipp freuen, wie ich das Systemupdate von ASUS manuell installieren kann, oder zumindest das Programm dpkg-preconfigure da extrahieren kann (in der Hoffnung, dass es beim Update ersetzt wird).

Da ich gerade dabei bin, möchte ich noch loswerden, dass bei mir (wie anscheinend bei einigen anderen hier im Forum auch) seit kurzem auch einige Icons (Freemind, Webcam, Audioaufnahme, ein paar Spiele) vom Asus-Launcher verschwunden sind. Außerdem hat der Dateimanager beim Starten und bei jeglicher Aktion mehrere MINUTEN Reaktionszeit (so wie eigentlich jedes Programm, das auf mein Home zugreifen möchte).

Beste Grüße,

Jepo



Geschrieben von franz.hecuba.at am 04.10.2008 um 15:32:

  RE: update: dpkg-preconfigure produziert Speicherfehler

Hi jepo,

verschwundene Icons: das kommt daher, daß das Asus-Update die Datei /opt/xandros/share/AsusLauncher/simpleui.rc neu schreibt. Wenn Du Dir in einem Verzeichnis /home/user einen Ordner .AsusLauncher anlegst und diese Datei dorthin kopierst, wird diese verwendet und sie wird beim Update nicht überschrieben, Du kriegst dann aber auch keine neuen von Asus, die mußt Du dann händisch nachtragen, falls gewünscht.

Augenzwinkern franz



Geschrieben von tosty am 04.10.2008 um 19:54:

  RE: update: dpkg-preconfigure produziert Speicherfehler

Zitat:
Original von jepo
ich habe Probleme mit der update-Funktion bei meinem Eee 900A und zwar produziert das Programm /usr/sbin/dpkg-preconfigure Speicherzugriffsfehler (segmentation fault).


Ja, irgendwie habe ich so den Eindruck, das dies häufiger der Fall ist beim 900A. Gibt es einige Threads hier, wo simple Installation fehlschalgen.

Zitat:
Dabei ist es unerheblich, wodurch das Programm aufgerufen wird. Sowohl unter synaptic, direktes apt-get, als auch vom Asus updatemanager kommen jeweils die die gleichen Fehlermeldungen (mal englisch, mal deutsch).
Selbst wenn man das Programm direkt manuell von der Kommandozeile aufruft (mit sudo), dann gibt es den Speicherzugriffsfehler.


Ja, weil schlussendlich dieselben Programme und Dateien verwendet werden. Synaptic ist halt nur ne bunte Oberfläche, genauso wie der Asus Softwaremanager. "Darunter" alles eins.

Zitat:
Dieses Problem verhindert nun jeglichen Update, da im Hintergrund apt-get immer dieses Programm aufrufen möchte.

Ironischerweise scheitert somit selbst der ASUS Systemupdate, der angeblich Probleme mit dem Updatesystem lösen soll. geschockt


Ja, bevor Du die Installation nicht erfolgreich durchgeführt bzw. das Paket entfernt hast und damit den Fehler behoben, geht es für dich nicht weiter.

Zitat:
Mein Verdacht ist nun, dass das Programm dpkg-preconfigure irgendwie zerschossen ist.

md5sum über das Programm ergibt bei mir:
e88ae00334faaed919c2cbd21de853fe /usr/sbin/dpkg-preconfigure


Dein Verdacht ist falsch. Zudem darf ich dir vom Eee 701 berichten:

asus-1485xxxxxx:/root> md5sum /usr/sbin/dpkg-preconfigure
e88ae00334faaed919c2cbd21de853fe /usr/sbin/dpkg-preconfigure

Damit erübrig es sich auch ...

Zitat:
Da meine Kenntnisse des Paketverwaltungssystems sehr begrenzt sind, würde ich mich auch über einen Tipp freuen, wie ich das Systemupdate von ASUS manuell installieren kann, oder zumindest das Programm dpkg-preconfigure da extrahieren kann (in der Hoffnung, dass es beim Update ersetzt wird).


... das Programm zu ersetzen. Schau Dir die Fehlermeldung an und dort findest Du meist das entsprechende Paket, ggf. die Datei des Paketes, welches den Fehler verursacht. Dann das Debian-Paket manuall downloaden und abändern oder bspw. irgendwelche pre-/postinst Skripte abändern.

Genaueres kann ich Dir dazu nicht sagen, habe weder nen 900A, noch kenne ich das betroffene Paket, Fehlermeldung etc.

Also, wenn Du magst, poste mal die konkrete Fehlermeldung.

Wie gesagt, da ich den 900A nicht hab, kann ich dir auch bzgl. "Systemupdate" oder was auch immer wenig sagen. Die Erfahrung mit dem 701 lehrt einfach, a) bei Asus Updates vorsichtig zu sein und b) sich die zu installierenden Pakete genau anzuschauen, was da eigentlich installiert wird. Die Updates haben oft blumige Bezeichnungen mit knappen und nichtssagenden Beschreibungen.

Ob eines der Updates das wirklich löst kannst Du uns dann bestimmt berichten Augenzwinkern

Zum AsusLauncher hat ja Franz schon was gesagt Augenzwinkern



Geschrieben von jepo am 05.10.2008 um 00:11:

  RE: update: dpkg-preconfigure produziert Speicherfehler

Zitat:
Original von tosty

... das Programm zu ersetzen. Schau Dir die Fehlermeldung an und dort findest Du meist das entsprechende Paket, ggf. die Datei des Paketes, welches den Fehler verursacht. Dann das Debian-Paket manuall downloaden und abändern oder bspw. irgendwelche pre-/postinst Skripte abändern.

Genaueres kann ich Dir dazu nicht sagen, habe weder nen 900A, noch kenne ich das betroffene Paket, Fehlermeldung etc.

Also, wenn Du magst, poste mal die konkrete Fehlermeldung.


Also die Fehlermeldung ist wie folgt:
code:
1:
sh: line 1: 724 Segmentation fault dpkg-scanpackages . override >"/var/lib/apt/lists/_tmp_.cj1DR4yT_dists_tmp_main_binary-i386_Packages"/bin/sh: line 1: 934 Segmentation fault /usr/sbin/dpkg-preconfigure --apt/var/lib/dpkg/info/tk8.4.postinst: line 9: 1056 Segmentation fault update-alternatives --install /usr/bin/wish wish /usr/bin/wish8.4 841 --slave /usr/share/man/man1/wish.1.gz wish.1 /usr/share/man/man1/wish8.4.1.gzdpkg: error processing tk8.4 (--configure): subprocess post-installation script returned error exit status 139


Allerdings glaube ich nicht, dass das Paket konkret etwas damit zu tun hat, denn wenn man das Programm dpkg-preconfigure ohne Parameter (oder auch mit Parameter --apt oder -h) direkt an der Kommandozeile ausführt, gibt es genauso einen Speicherzugriffsfehler. jedes normale Programm würde doch da zumindest einen kurzen Hilfetext anbieten, wenn es nicht mit den korrekten Parametern oder ohne Parameter aufgerufen wird. Ausserdem habe ich gerade im debiananwenderhandbuch.de nachgelesen, dass -h ein gültiger Parameter ist. Dass dabei schon Speicherzugriffsfehler kommen, ist doch seltsam.

Ich hatte übrigens auch versucht, das Package tk8.4 zu deinstallieren, aber dummerweise führt genau diese Aktion auch zu einem Aufruf von dpkg-preconfigure.
Also hänge ich jetzt da fest.

Naja, wenn ich an dem Wochenende noch etwas Zeit finde, dann werde ich wohl etwas tiefer in die Paketverwaltung einsteigen (müssen).

Danke erst mal für die Tipps.

jepo



Geschrieben von tosty am 05.10.2008 um 07:35:

  RE: update: dpkg-preconfigure produziert Speicherfehler

Hmm, na ohne selbst einen 900A bzw. das drauf installierte Xandros zu haben (in ner VM meinetwegen) kann ich da absolut nichts fundiertes beitragen unglücklich geschockt

Wenn Du dpkg-preconfigure nicht mal mit der Option "-h" aufrufen kanst, ist das für sich erstmal nicht gut. Die Datei ist jedenfalls dieselbe wie bei mir auf dem 701 (wobei auch das Xandros auf dem 900/900A/901 in großen Teilen dasselbe ist).

Ich habe es nur verschiedentlich erlebt, das durchaus die Pakete in ihren Skripten die vor bzw. nach Installation/Deinstallation ausgeführt werden, Dinge tun, die beim dpkg-xxx zu Fehlern führen. Deine Fehlermeldung selbst spricht ja das "postinst" Skript von tk8.4 an (welches nach der Installation ausgeführt werden soll), das liegt laut deiner Fehlermeldung in /var/lib/dpkg/info/tk8.4.postinst

Zudem kommen solche Segmentation Fault tw. vor, wenn Binaries gegen Bibliotheken gelinkt irgenem Version gelinkt sind und dann andere Versionen verwendet werden. Gründe sind also sehr verschieden, fehlerhafte Programme oder inkompatible Systembibliotheken usw. Jedenfalls kann man den Fehler oftmals reproduzierbar "erzeugen". Andere Möglichkeit sind Hardwareprobleme (RAM, Prozessor etc.), hier eher unwahrscheinlich .. ich weiß es nicht Baby

Was mich SEHR wundert: Bei dem "dpkg-preconfigure" ist es aber so, das dies einfach ein Perl-Skript ist (reiner Quellcode). Auch "dpkg-scanpackages" ist ein Perl-Skript.

Zitat:
Ich hatte übrigens auch versucht, das Package tk8.4 zu deinstallieren, aber dummerweise führt genau diese Aktion auch zu einem Aufruf von dpkg-preconfigure.
Also hänge ich jetzt da fest.


Also so wie deine Fehlermeldung aussieht (postinst schlägt ja fehl) wurde tk8.4 nie richtig installiert (also der Installationsvorgang komplett abgeschlossen)? Oder gehört tk8.4. zum Lieferumfang (bei Eee 701 nicht) und Du wolltest es deinstallieren um Platz zu schaffen?

Was Du konkret mal machen kannst, ist das postinst Skript von tk8.4 von Hand aufzurufen (das Skript selbst tut nicht viel, ruft update-alternatives für wish, und die Manpage auf etc., update-menus sowie ldconfig).

sudo sh /var/lib/dpkg/info/tk8.4.postinst configure



Klappt das denn?



Geschrieben von jepo am 13.10.2008 um 22:36:

  RE: update: dpkg-preconfigure produziert Speicherfehler

Also inzwischen bin ich schlauer.

Es scheint ein prinzipielles Problem mit Perl zu geben.
Jeglicher Skript, der das open-Kommando enthält, führt zu einen Speicherfehler (segmentation fault)

Beispiel: test.pl
code:
1:
2:
3:
print "Hallo Welt\n";
open TEST, "strace.log";
print "schon die zweite Zeile!\n";


ergibt beim ausführen:
code:
1:
2:
Hallo Welt
Speicherzugriffsfehler


dabei liegt die datei strace.log harmlos in meinem home-Verzeichnis

In /usr/sbin/dpkg-preconfigure ist es der load-befehl, der die Konfigdateien von dPackage lesen will.

Durch Analyse der Ausgabe von strace findet man auch die Datei:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
read(3, "\nDebconf::Db->load;\n\nmy $apt=0;\n"..., 4096) = 3056
read(3, "", 4096)                       = 0
close(3)                                = 0
stat64("/root/.debconfrc", 0x814e0c8)   = -1 ENOENT (No such file or directory)
stat64("/etc/debconf.conf", {st_mode=S_IFREG|0644, st_size=2673, ...}) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 4269 detached

Im Debugger gdb sieht man sogar die Funktion, die schiefgeht.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
(gdb) bt
#0  0x0810ae08 in Perl_do_openn ()
#1  0x081030b0 in Perl_pp_open ()
#2  0x080bc3a9 in Perl_runops_standard ()
#3  0x08063bfd in perl_run ()
#4  0x0805ffd1 in main ()
(gdb) 


Inzwischen habe ich auch mal die Systemwiderherstellung mit F9 durchgeführt.

Gleiches Ergebnis.


Ergo würde ich mal stark annehmen, dass irgendwie das Perl Binary einen Schuss hat. Sonstige einfache Skripte funktionieren. Man darf bloss kein open benutzen.

Jetzt muss ich mal experimentieren, das perl irgendwoher in lauffähiger Form zu bekommen.

Danke für die Hilfe soweit.



Geschrieben von tosty am 13.10.2008 um 22:47:

  RE: update: dpkg-preconfigure produziert Speicherfehler

Hmm welche libperl ist denn drauf? libperl5.8 in Version 5.8.8-7 ?



Geschrieben von jepo am 16.10.2008 um 22:14:

  RE: update: dpkg-preconfigure produziert Speicherfehler

Zur perllib-Version:

in /usr/lib/perl/ gibt es einen Link von 5.8 auf 5.8.8

Also nehme ich mal an, dass die Perllib-Version 5.8.8 ist.

Jepo



Geschrieben von tosty am 22.10.2008 um 16:28:

  RE: update: dpkg-preconfigure produziert Speicherfehler

Hi jepo,

mußte den Thread erstmal wiederfinden heute ...

Schon mal daran gedacht, ein frisches Perl 5.8 auf dem Eee zu kompilieren und nach /usr/local bzw. /opt zu installieren und dann den Symlink von /usr/bin/perl temporär dorthin zu verlegen?



Geschrieben von Fellmer am 23.10.2008 um 10:10:

  RE: update: dpkg-preconfigure produziert Speicherfehler

ich habe das perl binary von debian etch drüberkopiert (orginal natürlich gesichert).
Das oben genannte Testscript lief damit fehlerfrei und ich konnte nun auch mit apt-get Pakete installieren

Fellmer



Geschrieben von tosty am 23.10.2008 um 10:24:

  RE: update: dpkg-preconfigure produziert Speicherfehler

Hallo Fellmer,

Welche Deb-Pakete im Detail? perl, perl-base, perl-modules, libperl zusammen?

Oder einfach nur das Binary einzeln (klingt jedenfalls so) Augenzwinkern



Geschrieben von Fellmer am 23.10.2008 um 13:46:

  RE: update: dpkg-preconfigure produziert Speicherfehler

jep, einfach schlicht und dreckig das perl Binary /usr/bin/perl getauscht, da ich nebean noch ein Debian 4.0 stehen hatte und da war ein scp nicht weit :-)
Das ist natürlich keine saubere Lösung.
Man solte einfach mal Asus fragen wie die sich das gedacht haben mit dem Perl_do_openn ()

Fellmer



Geschrieben von tosty am 23.10.2008 um 14:09:

  RE: update: dpkg-preconfigure produziert Speicherfehler

Hallo Fellmer,

Kannst Du mir einen Gefallen tun (aus Interesse)? Da Du ja bestimmt nur /usr/bin/perl ersetzt hast:

/usr/bin/perl -v

/usr/bin/perl5.8.8 -v

diff /usr/bin/perl5.8.8 /usr/bin/perl

(müßte ja im Prinzip das perl5.8.8 auf dem 900a gewesen sein)

Tnx a lot.

PS: Hab keinen 900A ... insofern kann ich meine Neugier nicht allein befriedigen



Geschrieben von jepo am 24.10.2008 um 08:41:

  RE: update: dpkg-preconfigure produziert Speicherfehler

OK.

Das mit dem Ersetzen des perl binaries ist wirklich die Lösung.
Wer kein Debian auf einem Zweitrechner rumliegen hat, kann meinem Vorgehen folgen und die Datei direkt von Asus herunterladen und manuell auspacken und das Perl-Binary überschreiben.

Interessanterweise ist das Perl-Binariy von der Asus-Update-Website vom gleichem Datum und gleicher Länge, aber der Inhalt ist anders als auf meinem 900A. Also scheint Asus beim Kopieren/Brennen des Images/usw einen Fehler erzeugt zu haben

Schritt-Für-Schritt-Anleitung
Als erstes lädt man sich folgende Datei herunter:
http://update.eeepc.asus.com/p701/pool/perl-base_5.8.8-7_i386.deb

Der Packetmanager wird versuchen, die Datei zu installieren, aber anmerken, dass sie bereits installiert ist und nichts weiter machen.

Dann wechselt man ins xterm (Strg-Alt-t) und gibt folgendes ein:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
 #werde superuser
sudo bash
#wechsele in das Verzeichnis, wo Firefox normalerweise die heruntergeladenen Dateien ablegt
cd /tmp
#erzeuge ein Unterverzeichnis zum arbeiten
mkdir perl
cd perl
#entpacke das Debian-Paket
ar -x ../perl-base_5.8.8-7_i386.deb
#entpacke den Teil, der die Binaries enthält
tar -xf data.tar.gz
#So, jetzt wird das Binary ersetzt (man beachte bitte die /)
cp usr/bin/perl /usr/bin/perl

Wenn man jetzt meinen Beispielskript von einem meiner alten Posts in diesem thread ausführt, dann sollte das hier erscheinen:
code:
1:
2:
3:
Hallo Welt
schon die zweite Zeile!

Wenn das funktioniert, dann kann man auch die Binary Datei /usr/bin/perl5.8.8 auf gleiche Weise ersetzen. Man muss nur den letzten befehl von oben leicht abgeändert wiederholen (man hängt jeweil "5.8.8" and die Quelle und das Ziel an):

Falls es schief gegangen ist, dann kann man /usr/bin/perl wieder aus /usr/bin/perl5.8.8 ins Original zurücksetzen.

Beste Grüße

jepo



Geschrieben von tosty am 24.10.2008 um 09:17:

  RE: update: dpkg-preconfigure produziert Speicherfehler

@jepo

Geht es nicht einfach, das Debian-Paket mit dpkg -i zu installieren?



Geschrieben von Sasch am 26.10.2008 um 15:19:

  RE: update: dpkg-preconfigure produziert Speicherfehler

Hi jepo
Ich habe auch einen eee 900a und habe versucht deiner Anleitung zufolgen und alle genauso zu machen, aber bei mir funktioniert der folgende Befehl nicht:
Zitat:
Original von jepo
code:
1:
2:
3:
ar -x ../perl-base_5.8.8-7_i386.deb


muss ich ".." durch estwas ersetzen. Ich habe versucht den durch den Pfad zu der vorher runtergeladenen Datei zuersetzen doch er hatt die Datei nicht gefunden.

Kannst du mir dabei helfen ???


Mfg Sasch



Geschrieben von tosty am 26.10.2008 um 15:27:

  RE: update: dpkg-preconfigure produziert Speicherfehler

Hi Sasch,

zur Not folgendes machen:

Zitat:
wget http://www.to-st.de/download/linux/eeepc/perl
sudo cp perl /usr/bin/


Halt das alte perl Binary überschreiben lassen...



Geschrieben von jepo am 26.10.2008 um 20:24:

  RE: update: dpkg-preconfigure produziert Speicherfehler

Hallo Sasch,

am einfachsten ist es wirklich dem Tipp von Tosty zu folgen und zusammenfassend folgendes zu machen (hier wird der download über wget statt mit firefox gemacht):
code:
1:
2:
3:
4:
sudo bash
cd /tmp
wget http://update.eeepc.asus.com/p701/pool/perl-base_5.8.8-7_i386.deb
dpkg -i perl-base_5.8.8-7_i386.deb

Das Programm dpkg macht dann alles automatisch, was bei mir noch umständlich von Hand gemacht werden musste. Bei mir hat das geklappt. Ich hatte vorher das /usr/bin/perl-Binary gelöscht.

Was bei Dir schief gegangen sein könnte:
du bist wahrscheinlich im falschen Verzeichnis. Wenn bei mir ar -x ../perl-base_5.8.8-7_i386.deb ausgeführt wird, dann befinde ich mich aktuell im Verzeichnis /tmp/perl und das *.deb-Paket befindet sich in /tmp. Wichtig ist natürlich auch das sudo bash.

Das aktuelle Verzeichnis bekommst du mit dem befehl pwd und mit ls kannst du dir das Verzeichnis auflisten lassen.

Beste Grüße

Jepo



Geschrieben von Martin Steen am 02.11.2008 um 00:41:

  RE: update: dpkg-preconfigure produziert Speicherfehler

Hallo,

ich bin seit neuestem auch stolzer Besitzer eines eee 900A und hatte
dasselbe Problem!

Und die Lösung mit dem Perl-Packet hat auch bei mir funktioniert!
Irgendwie habe ich es geschafft, den C und C++ Compiler zu installieren
und sogar meine selbstgeschriebenen OpenGL-Programme laufen jetzt.
(mehr darüber demnächst).

Danke und viele Grüße,Martin



Geschrieben von Sasch am 08.11.2008 um 11:18:

 

bei mir geht ess auch vilen Dank !!!Freude Freude


Software: BB 2.3.6, WoltLab GmbH