Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

DMM-Image Compilierung mit SuSE 9.2 geht nicht

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Benutzeravatar
EgLe
Newbie
Newbie
Beiträge: 33
Registriert: 5. Dez 2004, 17:02
Wohnort: BaWü

DMM-Image Compilierung mit SuSE 9.2 geht nicht

Beitrag von EgLe »

Hallo,

ich möchte mit meinem SUSE-Linux 9.2 gerne für die Dreambox
ein Image Compilieren. Hierfür habe ich alle notwendigen Tools installiert.

http://cvs.tuxbox.org/cgi-bin/viewcvs.c ... n?rev=HEAD

Das benutzte ich als Grundlage....
Ist aber eigentlich für die D_Box, also um im CVS auszuchecken benutzte ich dann
folgende HilfeSeite bzw. Script um das richitge zu laden...

http://www.i-have-a-dreambox.com/diverses/README_5620/

Wenn ich nun die Sourcen downloaden und Compilieren will, bricht mir
der Vorgang mit folgenden Fehler ab:


creating Makefile
trap: usage: trap [-lp] [[arg] signal_spec ...]
make: *** [.binutils] Fehler 1
egle@amd1200:~/extra>

Dieser Fehler kommt aber "nur" bei SuSE9.2 vor, habe dort schon selbst mal angefragt.
Mit SuSE-9.1 oder Knoppix usw. geht es....

Was ist also Faul mit der neuen SuSE?

MfG EgLe
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3174
Registriert: 25. Aug 2004, 02:13

Beitrag von robi »

Wie es aussieht wird ein Kommando trap ( maskieren von Signalen) mit der falschen Syntax gestartet.

Wenn ich trap mit falschen Parametern im SUSE 9.1 starte bekomme ich
bash: trap: --: invalid option
trap: usage: trap [arg] [signal_spec ...] or trap -l
Hier scheint es wohl um eine neuere Version des Kommandos trap zu handeln. Die Option -l (ohne irgendwas dahinter) scheint wohl weggefallen zu sein, jedenfalls ist sie in deiner Fehlermeldung nicht mehr enthalten. Scheinbar hat man das in der Makefile oder der configure noch nicht berücksichtigen können.

robi
Benutzeravatar
EgLe
Newbie
Newbie
Beiträge: 33
Registriert: 5. Dez 2004, 17:02
Wohnort: BaWü

Beitrag von EgLe »

Hallo robi,

bedeutet das ich müste mit meinem SUSE-9.2 nun warten bis dort der
Fehler bekannt wird, und DIe im CVS das abändern, oder gibt es eine Krückenlösung wie man es denn unter SuSE 9.2 hinbekommen kann.

Bei wem müste man den sich dann Melden, damit der "Fehler" mal in Zukunft behoben werden kann?

Würde gerne bei der SuSE 9.2 bleiben, hier funktioniert wenigsten meine ganze Hardware Problemlos, unter SuSe 9.1 eben nicht ganz :oops:
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3174
Registriert: 25. Aug 2004, 02:13

Beitrag von robi »

Sicherlich gibt es da Krückenlösungen.
Ich kann das ganze jetzt hier nicht nachstellen, da ich uA. kein 9.2 da habe.

Meine Vermutung ist das hier bei der Abarbeitung von make bestimmte Signale maskiert werden sollen, um bestimmte Fehler Abbrüche bei der Kompilierung abzufangen. Wahrscheinlich ist es gar nicht elementar notwendig, diesen Befehl abzusetzen. Nur aus den 3 Zeilen wird so jedoch nicht ersichtlich an welcher Stelle das gemacht wird. (evtl. irgendwo in binutils , seinbar in der Makefile???? ) man müsste make dazu etwas gesprächiger machen, damit man genau sieht wo der Fehler auftritt. siehe man make ( glaube -d , bin mir aber nicht sicher). Vielleicht reicht es auch aus mit -i alle Fehler zu übergehen. Allerdings muss berücksichtig werden dass für jedes Unterverzeichniss make von make neu aufgerufen wird. Man müsste also schon export MAKE="make -OPTION" ; make -OPTION absetzen. Manche Makefile benutzen auch spezielle MAKEFLAG um die normal doch ziemlich umfangreichen Ausgaben einzudämmen. Man müsste so erst einmal die Datei finden, in der der trap-Befehl abgesetzt wird, um zu sehen was da gemacht werden soll und was da falsch dran ist. Notfalls mal per Hand alle Makefile und *.sh zusammensuchen und mit grep trap danach suchen.

Die zweite Möglichkeit am Befehl trap selbst anzusetzen. trap ist ein Befehl aus dem Befehlssatz der Shell selbst, also kann man dort nicht direkt ansetzen sondern kann nur versuchen, dass das make mit einer anderen Shell arbeitet. Vieleicht nützt es schon was, wenn man vor dem configure mal die Shell wechselt. Manchmal funktioniert sowas wenn man zB in eine ash oder in eine zsh wechselt. Oft wird aber beim configure speziell nach einer Shell gesucht und diese dann in der Makefile konfiguriert. Ausprobieren.

Dritte Möglichkeit, wenn du irgend wo in der Ecke noch 9.1 rumliegen hast, und noch etwas Platz auf den Festplatten ist, dann mal eine kleine 9.1 temporär zu installieren, braucht ja keine X-Oberfläche. Diese 9.1 kannst du ja dann später wieder löschen, wenn dir 9.2 besser gefällt.

Also alles in allem würde ich sagen "Jugend forscht".

robi
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3174
Registriert: 25. Aug 2004, 02:13

Beitrag von robi »

Ich glaube ich habe jetzt das Problem gefunden.
die neue bash 3.x unterstützt im POSIX-Mode nicht mehr trap SIGNAL sondern möchte trap - SIGNAL.
Wie es aussieht bist du nicht der erste der darüber stolpert.

robi
Benutzeravatar
EgLe
Newbie
Newbie
Beiträge: 33
Registriert: 5. Dez 2004, 17:02
Wohnort: BaWü

Beitrag von EgLe »

Hallo robi,
robi hat geschrieben:Ich glaube ich habe jetzt das Problem gefunden.
die neue bash 3.x unterstützt im POSIX-Mode nicht mehr trap SIGNAL sondern möchte trap - SIGNAL.
Wie es aussieht bist du nicht der erste der darüber stolpert.
Dann könnte es ja nutzten das man evtl. die bash der SuSE9.2 löscht und einfach die bash der SuSE9.1 installiert, oder liege ich da falsch?
Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3174
Registriert: 25. Aug 2004, 02:13

Beitrag von robi »

Dann könnte es ja nutzten das man evtl. die bash der SuSE9.2 löscht und einfach die bash der SuSE9.1 installiert, oder liege ich da falsch?
Das währe auch eine Möglichkeit, aber ich währe da ein bissel vorsichtig, die neue bash ist eine andere Major-Version und keine Ahnung was es da noch alles so für Abhängigkeiten gibt, die noch niemandem aufgefallen sind, und schließlich ist die bash eines der wichtigen Programme auf dem System, da mit ihr unzählige scripte abgearbeitet werden.
Ich würde die bash 3.0 dort lassen wo sie ist, und noch eine zusätzliche bash 2.05b in einem Verzeichniss /usr/local/old/bin/ installieren.
Damit sollte dein System problemlos mit der neuen bash arbeiten.
Wenn du kompilieren willst, dann gibst du in deinem Terminal folgendes ein.

Code: Alles auswählen

export PATH=/usr/local/old/bin:$PATH
bash
Dann solltest du mit bash --version die alte Version angezeigt bekommen und wenn jetzt configure nach einer bash sucht, dann wird es zuerst die alte Version finden und diese nehmen. Das wird aber natürlich nur dann funktionieren wenn nicht in etwaigen Scripten da schon ein #!/bin/bash oder #! /bin/sh drinnsteht, aber das sollte im Umfeld des Quelltextes ehr die Ausnahme sein.
Wenn du Probleme mit der Installation einer 2 bash in einem anderen Verzeichniss hast, dann mache bitte ein neues Thema bei "Installation mit Yast2" auf, aus den Installationsproblemen halte ich mich gerne raus und abgeschlossene Einzelprobleme sind beim suchen hier im Forum besser zu finden.

Aber eigentlich ist das nur die Zweitbeste Lösung. Die richtige Lösung ist wirklich alle trap-Befehle zu suchen und dort die Änderung vorzunehmen, da " trap - SIGNAL" auch kompatibel mit der alten bash ist. Über kurz oder lang werden wohl alle Scripte die die alte Schreibweise "trap SIGNAL" verwenden entsprechend geändert werden, aber das kann im Einzelfall natürlich dauern.

robi
Antworten