# Problem beim Erstellen einer LFS-Toolchain



## Ralph41 (13. April 2007)

Hallo
ich versuche ein LFS 6.2 System zu instalieren und habe einige Anfängerfragen. 
Ich arbeite mit dem LFS Hostsystem und komme nur bis zu den Binutils-2.16.1 erster 
durchlauf. Dann gehen die Probleme los. Hier meine Vorgehensweise wie im Buch beschrieben:

Partitioniert hdc1 = Linux, hdc2 = swap                       /zwei Partitionen erstellt
mke2fs -jv /dev/hdc1                                          /erzeugen des Dateisystems
mkswap     /dev/hdc2                                          /swap Partition initialisieren
export LFS=/mnt/lfs                                           /mountpunkt gewählt
mkdir -pv $LFS                                                /Ordner LFS erstellen
mount -v -t ext3 /dev/hdc1 $LFS                               /Dateisystem einhängen
/sbin/swapon -v /dev/hdc2                                     /swappartition aktivieren
mkdir -v $LFS/sources                                         /Ordner sources erstellen
chmod -v a+wt $LFS/sources                                    /Atribute setzen
cp /lfs-sources/* $LFS/sources                                /benötigte Dateien in den                                                                Ordner sources kopieren
echo $LFS                                                     /mountpunkt korrekt gesetzt
mkdir -v $LFS/tools                                           /Ordner tools erstellen
ln -sv $LFS/tools /                                           /symbolischer Link als root
groupadd lfs                                                  /Benutzergruppe anlegen
useradd -s /bin/bash -g lfs -m -k /dev/nulllfs                /Benutzer anlegen
passwd lfs                                                    /Passwort vergeben
chown -v lfs $LFS/tools                                       /
chown -v lfs $LFS/sources                                     /lfs zum Besitzer der Ordner                                                                machen
su - lfs                                                      /Benutzer wechseln
cat > ~/.bash_profile << "EOF"                                /Bash Arbeitsumgebung                                                                         erstellen
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF
cat > ~/.bashrc <<"EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL Path
EOF
source ~/.bash_profile                                         /Profil der Arbeitsumgebung                                                                 einlesen
tar -xjvf $LFS/sources/binutils-2.16.1.tar.bz2                 /binutils entpacken
cd binutils-2.16.1                                             /in den Ordner wechseln
mkdir -v ../binutils-build                                     /Ordner anlegen
cd ../binutils-build                                           /in diesen wechseln
../binutils-2.16.1/configure --prefix=/tools --disable-nls     /zum Kompilieren vorbereiten
make                                                           /Kompilieren
make install                                                   /Instalieren
make -C ld clean                                               /Linker anpassen
make -C ld LIB_PATH=/tools/lib
cp -v ld/ld-new /tools/bin

Bis hierher funktioniert alles ganz prima. Erste Fragen:
Der Quellenordner der gelöscht werden sollte ist der Ordner Binutills-2.16.1 im Ordner sources. Ist das richtig? Und ist Binutills-build der Kompilierordner? Befehl zum löschen
rm -r?
Dann mache ich folgenderweise weiter und hier fangen folgende Probleme an:

tar -xjvf $LFS/sources/gcc-4.0.3.tar.bz2                       /gcc-4.0.3 entpacken OK
cd gcc-4.03                                                    /Verzeichniss wechseln OK
patch -Np1 -i $LFS/sources/gcc-4.0.3-specs-1.patch             /can't find file to patch
                                                                input line 19

Zweite Frage: Wie patche ich die Datei gcc-4.0.3 richtig? Habe es auch mit patch -Np1 -i
../gcc-4.0.3-specs-1.patch versucht. Funktioniert auch nicht!

Dritte Frage: Wenn ich versuche mit mkdir gcc -build anzulegen bekomme ich die folgende
Fehlermeldung: cannot create directory, no space left on device.

Bin wie oben geschrieben Anfänger möchte mich jedoch bis zu Ende durchkämpfen. Was mache ich 
ab gcc-4.0.3 falsch. In voraus schonmal vielen Dank für eure Hilfe.
Gruß Ralf


----------



## Dennis Wronka (13. April 2007)

Mir scheint als setzt Du die Variable *LFS* garnicht, sondern traegst sie eben nur im Shell-Startup-File ein, welches aber nie geladen wird, ausser Du loggst neu ein.
Auch scheint mir als kommst Du etwas durcheinander, denn beim ersten Durchgang wird GCC nicht gepatcht, erst beim zweiten wird dies gemacht.
Laut Deiner Beschreibung hapert es aber am ersten Schritt.

Wie sehen denn allgemein Deine bisherigen Linux-Kenntnisse aus? LFS ist ja nicht unbedingt was fuer Linux-Einsteiger, auch wenn das Buch ziemlich gut ist und wenn man sich ordentlich daran haelt sollte es kein Problem sein ein lauffaehiges System auf die Beine zu stellen.

Dass dort gemeldet wird "No space left on device" suggeriert, dass Du auf CD arbeitest.
Ich kenne die aktuelle LiveCD nicht (ich hab mit der von 6.1 gearbeitet), aber moeglicherweise hast Du etwas Platz den Du quasi auf der CD (real im Speicher) belegen kannst.
Dies wird auch unterstuetzt von meiner These, dass $LFS nicht gesetzt ist, was durchaus darin resultieren kann, dass Du auf der CD arbeitest.
Ich hab auch das 6.2er Buch nicht komplett gelesen, mein EasyLFS basiert auch groesstenteils auf den Beschreibungen der 6.1, aber ich kann mir eigentlich nicht vorstellen, dass Gerard dort etwas wichtiges vergessen hat. Moeglicherweise hast Du ja, wie ich auch bei meinen ersten Versuchen mit LFS, etwas uebersprungen was man besser nicht ueberspringen sollte.

Wo ich uebrigens EasyLFS schon erwaehne, vielleicht stellt es ja eine Alternative fuer Dich dar. 
Damit kannst Du Dir ein System installieren was genau wie LFS komplett aus den Sourcen gebaut wird, aber eben automatisch.
Im Wiki findest Du einige Informationen ueber mein "kleines" Projekt, und auch hier auf tutorials.de im EasyLFS Projektthread.


----------



## Ralph41 (13. April 2007)

Hallo Dennis
erst eimal Danke für deine schnelle Nachricht. Meine Linux Kenntnisse basieren nur auf  Instalationen von Suse Produkten. Habe eine Ausbildung als Informations Technischer Assistent wobei Windows Produkte den Vorrang hatten. Habe in DOS einige Batch Dateien Programiert, Grundlagen in C++ sind vorhanden usw. Das erste Problem, welches ich hier hatte war das Partitionieren. Habe dieses schon oft durgeführt und unter Windows war und ist es kein Problem (auch mit der Platte am IDE Controller). Also das LFS Image geladen und versucht mit fdisk zu Partitionieren. Keine Change. Meine Hardware: Raid System mit zwei Festplatten an externen PCI Raid Controller. Zusätzlich eine ältere Platte am IDE Controller. Werden in Bios korrekt erkannt. Diese Platte habe ich mit fdisk nicht partitioniert bekommen. Habe dann Gparted benutzt und es funktionierte. Denke das dies immer noch das Problem darstellt und ich nicht auf der Festplatte arbeite. Die Platte wird angezeigt aber beim schreiben der Partitionstabelle bekomme ich immer den Fehler 21 (mit fdisk). Konnte nicht geschrieben werden. Egal ob ich den Raid Controller eingesteckt oder ausgesteckt habe. Habe beides Ausprobiert. Aufgrund meiner Kenntnisse in DOS und wie du geschrieben hast der LFS Anleitung  dachte ich eigendlich, es sollte kein Problem darstellen diese durchzuarbeiten. Schritt für Schritt. Da sollten Fehler wie die Variable LFS nicht zu setzen eigendlich nicht vorkommen. Meine Motivation eine eigene Distribution zu erstellen begründet sich, 1. zu lernen wie ein Betriebssystem zusammengestrickt ist. 2. Mein Vertrauen in Windows Produkte wird immer weniger wenn ich höre das Geheindienste mitgearbeitet haben um Vista sicherer zu machen. Der Bundestrojaner. Die TR069 Schnitstelle die sie in neuere Modems per Update Instalieren usw. Ich habe nichts zu verbergen und trotzdem kommt es mir inzwischen nur noch hoch. Ich möchte gern wissen welche Dienste laufen, welche Dienste ich eigendlich nur brauche und auch darauf Einfluss zu nehmen. Dachte ich könnte mit der Anleitung mir mein Persöhnliches System zusammenstricken. Der Lerneffect mit Learning by Doing ist groß und ich habe Autodidaktisch schon eine Menge gelernt. Nun scheint es so das ich wieder am Anfang bin. Bein Partitionieren, Unglaublich! Habe deine Beiträge zum Automatisieren  auch schon gelesen und bin neugirig geworden. Na Ja mal schauen was die nächsten Tage so bringen.
Gruß Ralf


----------



## Dennis Wronka (14. April 2007)

Linux from Scratch ist auf jeden Fall ein gutes System, jedoch bringt es eine Menge Arbeit mit.
Und es ist ja auch nicht damit getan LFS zu installieren, denn damit bekommst Du ja "nur" ein Basissystem. Bis KDE, oder einem anderen Windowmanager Deiner Wahl, ist es dann immer noch ein gutes Stueck Arbeit. Auf einem aktuellen Rechner braucht allein KDE mehr oder weniger einen ganzen Tag da das KDE-Base-Paket einige Stunden kompiliert.

Aber das nur mal am Rande.

Bei Deinem RAID-Controller stellt sich mir nun die Frage von welchem Typ dieser ist. Ist dies ein richtiges Hardware-RAID welches also fuer das OS transparent ist oder eines welches eben nur durch die Hardware unterstuetzt wird und somit fuer das OS noch Treiber erforderlich ist, welches ja in der Regel bei Low-Budget- und Onboard-Controllern der Fall ist.
In jedem Fall duerfte Deine IDE-Platte als /dev/hd... zu finden sein und das RAID als /dev/sd..., da RAID, wenn ich mich recht erinnere, im Kernel ueber das SCSI-Subsystem laeuft. Wenn Du ein durch die Hardware unterstuetztes RAID hast duerfte sogar die Nutzung von /dev/sd... falsch sein da Du dann mit dmraid arbeiten musst und dann ueber den Device-Mapper zugreifst. Das hab ich mal bei einem Kollegen eingerichtet, weiss aber nicht mehr wie das genau ablief.

Wie Du schon sagst, anhand des LFS-Buches sollte es eigentlich moeglich sein alles vernuenftig zu installieren, und das ist eigentlich auch meine Erfahrung. Mein erstes LFS war Version 4.irgendwas wenn ich mich recht erinnere und jetzt 6.1.1 (hab gestern nochmal nachgeschaut). Das PDF zu 6.2 hab ich zwar runtergeladen aber bisher kaum genutzt. Ein paar Mal im Zuge der Erstellung meiner Scripts fuer EasyLFS, aber eben nicht wirklich oft.
Wenn ich die Zeit finde werde ich heute mal die ersten Abschnitte der Installation durchlesen und gucken ob alles okay ist, wovon ich aber eigentlich ausgehe.

LFS ist auf jeden Fall grossartig zum Lernen, vorausgesetzt man tippt nicht einfach nur alles stumpf ab. 
Und bei Bedarf kannst Du anschliessend ja BLFS nutzen um den Rest zu installieren, dort wird dann ja sogar die Installation von Monster-Paketen wie KDE und OpenOffice behandelt.


----------



## Ralph41 (14. April 2007)

Hallo Dennis 
der Raid Controller ist ein Silikon Image PCI Controller plus zusätzlichem Treiber. Habe gerade eben nochmal einige Schritte versucht. Hier das ergebniss:
1. LFS Live CD gestartet.
2. mit startx die graphische Oberfläche geladen.
3. Browser zu lesen der Anleitung und Konsole geöffnet.
4.fdisk -l eingegeben. Hier das Ergebniss. Blöcke nur mit xxx gekenntzeichnet.

Platte /dev/hdc 8606MB
255 Köpfe, 63 Sektoren/Spuren 1046 Zylinder

Gerät        boot        Anfang        Ende        Blöcke        ID        System
/dev/hdc1    *            1                765           xxx            83        Linux
/dev/hdc2                  766            1046         xxx            82        Linux Swap

Platte /dev/hde 82GB
255 Köpfe, 63 Sektoren/Spuren 10111 Zylinder

Festplatte /Dev/hde enthält keine gültige Partitionstabelle

Platte /dev/hdg 82GB
255 Köpfe, 63 Sektoren/Spuren 10111 Zylinder

Gerät        boot        Anfang        Ende        Blöcke        ID        System
/dev/hdg1    *            1                3952           xxx           7         NTFS
/dev/hgc2                  3953          20021         xxx           f          W95 LBA
/dev/hdg5                  151988       27717         xxx          40        Venix 80286

Die Festplatten werden zwar erkannt aber nicht als Raid. Die IDE Platte auf der ich das LFS Sytem instalieren möchte wird korrekt dargestellt so wie ich es mit Gparted partitioniert habe. Bin dann nochmals die ersten Schritte der Instalation Durchgegangen.

5.mke2fs -jv /dev/hdc1                            Dateisystem erstellt
6.mkswap /dev/hdc2                              Swappartition initialisiert/formatiert
7.export LFS=/mnt/lfs                            Mountpunkt gewählt
8.mkdir -pv $LFS                                   Ordner erzeugt
9.mount -v -t ext3 /dev/<xxx> $LFS        Dateisystem eingehangen
10./sbin/swapon -v /dev/hdc2                  Swap aktiviert
11.mkdir -v $LFS/sources                      Ordner sources angelegt
12.chmod -v a+wt $LFS/sources             Schreib und Sticky Berechtigung

nun habe ich mit cd $LFS versucht inden Ordner LFS zu wechseln. OK 
ls gibt dann in Blau aus Lost+found sources!
pwd gibt /mnt/lfs aus
kann jedoch mit cd sources nicht in den Ordner wechseln!
zeigt an der Eingabeaufforderung nur lfslivecd:#

?

Ich weiß das dieses LFS nur ein Grundsystem darstellt und dies eine menge an Arbeit erfordert. Wie du aber schon geschrieben hast ist auch der Lerneffekt sehr groß. Tippe nicht einfach nur die Befehle ab, sondern versuche zu verstehen was dort abgeht. Was mich etwas nachdenklich macht ist das die Swap Partition formatiert wird, die ext3 jedoch nicht. Für diese wird ein Mountpunkt erstellt und nachdem der Ordner LFS erstellt ist, wird das Dateisystem eingehangen. ?

Gruß Ralf


----------



## Ralph41 (14. April 2007)

Sorry 
habe soeben rausgefunden das mit mke2fs das Dateisystem formatiert wird!
Gruß Ralf


----------



## Dennis Wronka (14. April 2007)

Richtig, hab auch grad nochmal geschaut, und auf Seite 25, Punkt 2.3 wird die Partition formatiert.
Wenn Du ext3 statt ext2 willst solltest Du moeglichst mit *mkfs -t ext3 /dev/...* formatieren, ansonsten bekommst Du nur ext2.

Nachtrag: Ich seh grad, dass im Buch -j angegeben wird, das sollte ein Journal erstellen (mal so getippt ohne in die Man-Page zu schauen  ), dann ist der Befehl des Buches natuerlich voll okay.

War jetzt davon ausgegangen, dass dort mit ext2 formatiert wird da noch bis zur 6.1.1 mit ext2 formatiert wurde.


----------



## Ralph41 (14. April 2007)

Hallo Dennis
habe den Ordner sources angelegt. Kann auch zu diesen wechseln und mir den vorher rüberkopierten Inhalt ansehen. Würde gern überprüfen ob dieser Ordner auch wirklich auf der Festplatte liegt und nicht im Arbeitsspeicher. Habe hier eine dicke Befehlsreferens, kann jedoch nichts dazu finden!
Gruß Ralf


----------



## Ralph41 (14. April 2007)

Hallo Dennis 
habe das Konsolenfenster geschlossen und nochmals neu aufgemacht. Die Ungebungsvariable LFS gesetzt und versucht den Ordner LFS zu mounten. Sagt mir einhängepunkt mnt/lfs exestiert nicht. Schlußfolgere daraus das ich nicht auf der Festplatte arbeite.
Gruß Ralf


----------



## Dennis Wronka (14. April 2007)

Hast Du $LFS mit *mnt/lfs* oder */mnt/lfs* belegt? Letzteres sollte der richtige Wert sein.


----------



## Ralph41 (15. April 2007)

Hallo
mache wohl noch viele Anfängerfehler. Nach mehrfachen Versuchen hier meine vorgehensweise.
LFS neu gestartet
Konsole aufgerufen
export LFS=/mnt/$LFS
mount /dev/hdc1 $LFS
cd $LFS
ls
lost+found sources tools
df -h
396mb von 5,1 gb belegt
Habe nochmals von vorn angefangen und wieder der gleiche Fehler. Zu wenig Speicherplatz. Beim entpacken der gcc-4.0.3 tritt der Fehler schon auf. 
Gruß Ralf


----------



## Webstar (15. April 2007)

Ralph41 hat gesagt.:


> Hallo
> mache wohl noch viele Anfängerfehler. Nach mehrfachen Versuchen hier meine vorgehensweise.
> LFS neu gestartet
> Konsole aufgerufen





Ralph41 hat gesagt.:


> export LFS=/mnt/$LFS


Falsch!
Richtiger wäre!

```
export LFS=/mnt/hdc1
```

Und danach wie gehabt!


Ralph41 hat gesagt.:


> ....
> mount /dev/hdc1 $LFS
> ...



Schönen Tag noch, man liest sich. 
Euer Jens Ornot alias Webstar


----------



## Dennis Wronka (16. April 2007)

Uebrigens, gestern Abend war mir noch was eingefallen was mir an der 6.2 aufgefallen war, das hab ich heute Morgen nochmal gecheckt und es wurde bestaetigt.
Das ist uebrigens eine Sache die ich an der 6.2 nicht mag und nicht wirklich nachvollziehen kann, es werden naemlich 2 verschiedene Kernel genutzt, 2.6.12 fuer die Header und 2.6.16.27 fuer den Betrieb.


----------



## Webstar (16. April 2007)

Dennis Wronka hat gesagt.:


> Das ist uebrigens eine Sache die ich an der 6.2 nicht mag und nicht wirklich nachvollziehen kann, es werden naemlich 2 verschiedene Kernel genutzt, 2.6.12 fuer die Header und 2.6.16.27 fuer den Betrieb.


Die Gründe dafür, stehen z.B. hier mit im Text:
http://oss.erdfunkstelle.de/lfs-de/6.2/online/chapter05/linux-libc-headers.html

In der 6.1 waren es auch die 2.6.11.2er linux-libc-header und ein 2.6.11.12er Kernel.

Erst seit dem der 2.6.19er Kernel im LFS-Development-Zweig verwendet wird, werden wieder die "originalen" Kernel-header verwendet.

Bei mir sind übrigens immernoch die 2.6.12er Linux-Libc-Header installiert, laufen tut mein System momentan *problemlos* unter einem 2.6.20.6er Kernel.

Schönen Tag noch, man liest sich. 
Euer Jens Ornot alias Webstar


----------



## Dennis Wronka (16. April 2007)

Ich hab 6.1.1 gebaut, und meine mich zu erinnern, dass dort Kernel-Header und laufender Kernel gleich waren (auch wenn ich beide schon bei der Installation durch aktuellere Versionen ersetzt habe, wie auch grosse Teile der sonstigen Software  ). Kann mich aber auch irren.
Auf jeden Fall hab ich vor einiger Zeit meine Kernel-Header auf 2.6.19.irgendwas aktualisiert da QEmu mit den alten Headern absolut nicht kompilieren wollte.
Aktuell laufen hab ich 2.6.20.4.


----------



## Webstar (16. April 2007)

Dennis Wronka hat gesagt.:


> Ich hab 6.1.1 gebaut, und meine mich zu erinnern, dass dort Kernel-Header und laufender Kernel gleich waren (auch wenn ich beide schon bei der Installation durch aktuellere Versionen ersetzt habe, wie auch grosse Teile der sonstigen Software  ). Kann mich aber auch irren.
> Auf jeden Fall hab ich vor einiger Zeit meine Kernel-Header auf 2.6.19.irgendwas aktualisiert da QEmu mit den alten Headern absolut nicht kompilieren wollte.
> Aktuell laufen hab ich 2.6.20.4.


Vielleicht sollten wir einen separaten Thread zu dieser Problematik eröffnen?
Da Ralph41 ja ein anderes Problem zu bewältigen hat.

Ausserdem fände ich es besser, wenn Ralph den Threadtitel in einen treffenderen umbenennt.
Wie wäre es mit: "Problem beim Erstellen einer LFS-Toolchain"

Denn was Ralph41 bis jetzt geschrieben hat, lässt nicht auf einen Fehler beim GCC-Build schliessen,
sonderen auf einen generellen Fehler bei der Toolchain-Konfiguration hindeuten.
Dort müssen einige wichtige Variablen gesetzt bzw. Vorgehensweisen eingehalten werden.

Schönen Tag noch, man liest sich. 
Euer Jens Ornot alias Webstar


----------



## Dennis Wronka (16. April 2007)

Webstar hat gesagt.:


> Ausserdem fände ich es besser, wenn Ralph den Threadtitel in einen treffenderen umbenennt.
> Wie wäre es mit: "Problem beim Erstellen einer LFS-Toolchain"


Ich bin mal so frei.

@Topicsplit: Ich denk nicht, dass das noch noetig ist, es wurde ja soweit alles zu diesem kleinen -Exkurs gesagt.

Um noch was zum Thema zu sagen:
Was gibt Dir denn *df -h* aus nachdem Du die Zielpartition gemountet hast?


----------



## RedWing (16. April 2007)

Hallo,


Webstar hat gesagt.:


> Die Gründe dafür, stehen z.B. hier mit im Text:
> http://oss.erdfunkstelle.de/lfs-de/6.2/online/chapter05/linux-libc-headers.html
> 
> In der 6.1 waren es auch die 2.6.11.2er linux-libc-header und ein 2.6.11.12er Kernel.
> ...



Also die linux-libc-header sind ja nicht die Original Kernel Header, sondern dienen zur  Schnittstelle zwischen Userspace- Programmen und Kernelheader. Kernelcode darf ja gar nicht gegen die glibc gelinkt werden...
Und die Original Kernelheader (welche sich gewöhnlich im Verz. /usr/src/ befinden) sollten definitiv der Version des laufenden Kernel entsprechen. Alles weitere führt nur zu Inkonsistenzen beim Kompilieren von Treibern oder ähnlichem, denn /lib/modules/`uname -r`/build ist immer ein Link zu den Kernelheadern bzw Kernelsourcen des laufenden Kernels...

Gruß,
RedWing


----------



## Dennis Wronka (17. April 2007)

RedWing hat gesagt.:


> Alles weitere führt nur zu Inkonsistenzen beim Kompilieren von Treibern oder ähnlichem, denn /lib/modules/`uname -r`/build ist immer ein Link zu den Kernelheadern bzw Kernelsourcen des laufenden Kernels...



Wobei dieser Link scheinbar davon beeinflusst wird wo man denn baut, oder aber wo die Daten wirklich liegen (das muesste ich pruefen).
Ich bau meine Kernel in der Regel unter /download/linux, welches ein Link auf das Source-Verzeichnis ist. /usr/src/linux ist wiederum ein Link auf /download/linux.


----------



## RedWing (17. April 2007)

Hallo,


			
				Dennis hat gesagt.:
			
		

> Wobei dieser Link scheinbar davon beeinflusst wird wo man denn baut, oder aber wo die Daten wirklich liegen



Nicht nur scheinbar .  /usr/src war nur ein Beispiel.
Die Tatsache das sich die Sourcen je nach Nutzer an unterschiedlichen Stellen befinden können, und bspw. ein zu kompilierender Treiber das kbuild Makefile finden muss, was sich im Kerneltree an oberster Stelle befindet, gibt dem "build- link" in /lib/modules/`uname -r`/ seine Daseinberechtigung. Wo der "build- Link" hinzeigt ist letztlich egal, solange er auf die Sourcen bzw Header des aktuell laufenden Kernels zeigt, das hängt natürlich davon ab an welcher Stelle du deinen Kernel baust. 

Aber wir schweifen vom Thema ab 

Gruß,
RedWing


----------



## Ralph41 (18. April 2007)

Hallo
Platte wird korrekt erkannt. Habe sie mit cfdisk neu Partitoniert. Dann alles nochmal neu durchgearbeitet. Das Problem bleibt. Mit df -h zeigt er mir das die Swap Partition 100% ausgelastet ist. Runtergefahren und wie oben beschrieben versucht zu mounten. Sagt mir dann das der Einhängepunkt nicht exestiert. Irgendwo ist der Wurm drin. Schade!
Gruß Ralf


----------



## Ralph41 (18. April 2007)

Achso
Größe der Swap Partition 1,5 GB. Größe der Linux Partition 6,5 GB davon 391 MB 7% belegt. Hat es evl mit einem Fehler beim Partitionieren zu tun. Kann mich wage erinnern das da mal was mit einer Zylindergrenze war. Galt jedoch nur für zwei OS auf der selben Platte. Ist es egal ob die Linux oder die Swap Partition am Anfang der Platte liegen. Gebe nicht auf lach.
Gruß Ralf


----------



## Dennis Wronka (18. April 2007)

Frueher musste mal die gesamte Partition die /boot enthaelt innerhalb der ersten 1024 Zylinder der Platte liegen, aber das hat sich, soweit ich weiss, mittlerweile erledigt.
Damals konnte man dies so bewerkstelligen indem man eine kleine (10MB reichen da voll aus, meine hat 30MB, wovon 4MB belegt sind  ) Partition anlegt die nur /boot enthaelt, dahinter kann man dann machen was man will.
Meine Partitionierung ist z.B. so:


> bash-3.1# sfdisk -d /dev/hda
> Warning: extended partition does not start at a cylinder boundary.
> DOS and Linux will interpret the contents differently.
> # partition table of /dev/hda
> ...


----------



## Ralph41 (4. Mai 2007)

Hallo 
habe nochmals die Anleitung durchgearbeitet. Der Fehler bleibt.

Als root in den Ordner $LFS gewechselt. Die Verzeichnisse sources und tools sind vorhanden.
Mit df sources bekomme ich die Meldung /dev/hda1  ... mnt/lfs. Also bis hier ist noch alles in Ordnung.
Nachdem ich den temporären Benutzer lfs und mit den cat Befehl die Toolchain eingerichtet habe, kommt es zu dem Fehler. Habe binutils entpackt und mit df binutils überprüft. 
Dann bekomme ich folgende Meldung: /dev/mapper/lfs-cd. Wie ihr schon richtig erkannt habt liegt der Fehler wohl im Einrichten der Toolchain. Habt ja auch freundlicherweise die Überschrift geändert. Nun bin ich persöhnlich schon einen Schritt weiter. 
Habe nochmals mit echo $LFS geprüft und er gibt mir /mnt/lfs aus. Der symbolische Linkt ist auch gesetzt. 
Denke das der Fehler im anlegen der bash_profile oder der bashrc liegt. Habe schon einiges über die bash gelesen (login und nicht login shell usw.). Leider finde ich den Fehler noch nicht. Sieht für mich und meinem Verständniss eigendlich OK aus. HMMM
Hier die beschriebene Vorgehensweise.

cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF  

cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL PATH
EOF

Gruß Ralf


----------



## Twinsetter (4. Mai 2007)

Hallo Ralph,

habe selbst im März mit dem Bau eines LFS-Systems (6.2) begonnen und bin mit dem Build bis Kap.5 step 8 gekommen - also ein bisschen weiter als Du. Seit dem ruht das Projekt da ich mich dann erst einmal mit was anderem beschäftigen mußte. Es soll aber weiter gehen.
Ich habe für das Einrichten der Toolchain mir ein Script geschrieben. Ebenso für jedes Paket welches kompiliert werden muß. Falls Du Interesse hast würde ich Dir diese zusenden. Die Scripts sind ausreichend kommentiert und vielleicht findest Du dadurch Deinen Fehler.
Im Unterschied zu Dir habe ich mir allerdings ein komplettes Debian-Etch als Hostsystem installiert, um LFS zu bauen. Hat bis jetzt auch wunderbar funktioniert.

Habe übrigens die gleichen Fehler wie Dennis gemacht und auch versucht was zu überspringen bzw. vorzuziehen.

Gruß

Thomas


----------



## Dennis Wronka (4. Mai 2007)

Twinsetter hat gesagt.:


> Im Unterschied zu Dir habe ich mir allerdings ein komplettes Debian-Etch als Hostsystem installiert, um LFS zu bauen. Hat bis jetzt auch wunderbar funktioniert.


Das ist meiner Meinung nach eigentlich unnoetig, und im Hinblick auf Plattenplatz auch eher unpraktisch. Die LFS-LiveCD bringt doch alles mit was man braucht.
Mein erster Exkurs zu LFS ging von einer Suse 6.2 aus. Mein letzter Exkurs (das System nutze ich jetzt grad auch) ging von der LiveCD aus.
Und wenn ich EasyLFS 0.3 fertig habe werd ich wohl mein aktuelles LFS durch eben dieses ersetzen. 



Twinsetter hat gesagt.:


> Habe übrigens die gleichen Fehler wie Dennis gemacht und auch versucht was zu überspringen bzw. vorzuziehen.


Hab ich irgendwo was vorgezogen/uebersprungen?
Hab grad nochmal fix durch den Thread geschaut, konnte aber auf die Schnelle nichts entdecken. Und erinnern kann ich mich auch nicht.
Aber ich kann mich auch irren und was uebersehen. Falls dem so ist waere ein Zitat nett, damit ich mich auch wieder dran erinnere.


----------



## Ralph41 (4. Mai 2007)

Hallo Thomas
an deinem Srcipt hätte ich Interesse. Dann bekomme ich nebenbei gleich mit wie soetwas unter Linux funktioniert. Wäre ja nach dem Bau des LFS Systems der nächste Schritt. Evl hast du recht und ich finde den Fehler. Mit meinen wenigen Kenntnissen und dem was ich bis hieher gelernt habe, ist die beschriebene Vorgehensweise recht Logisch. Trotzdem ist irgendwo der Wurm drin. Habe im Profil das Schreiben von E-mails aktiviert. Bis hierher erst mal allen die hier geschrieben haben besten Dank.
Gruß Ralf


----------



## Twinsetter (4. Mai 2007)

@Dennis hier das gewünschte Zitat


Dennis Wronka hat gesagt.:


> Moeglicherweise hast Du ja, wie ich auch bei meinen ersten Versuchen mit LFS, etwas uebersprungen was man besser nicht ueberspringen sollte.



@Ralph
Geht in Ordnung schreibe noch kurz was zusammen und packe dann alles in ein tar. Wo soll ich das ganze dann hinschicken
Denke, daß ich es noch heute abend auf die Reihe bekomme.


----------



## Dennis Wronka (5. Mai 2007)

Danke fuer den Link, jetzt muesste ich nur noch wissen was ich damit gemeint hab. 
Naja, egal.

Lassen sich Deine Scripts auch von der LiveCD aus einsetzen oder nur innerhalb eines vollstaendig installierten Systems?
Hoert sich so an als haettest Du Dir da was aehnliches gestrickt wie ich fuer EasyLFS geschrieben habe.


----------



## Ralph41 (5. Mai 2007)

Hallo Thomas
vielen Dank für deine Scripte. Konnte den Fehler bis jetzt leider nicht finden. Übersprungen habe ich eigendlich nichts! Obwohl mit dem Befehl debugfs -R feature /dev/hda1 keine zusätzlichen Erweiterungen anzeigt werden, würde ich gern mit dem Paket
e2fsprogs-1.39 das Dateisystem anlegen. Evl ist ja hier der Fehler zu finden. Leider finde ich den Pfad zum Verzeichniss e2fsprogs-1.39 auf der CD nicht! Muß ja vorher mit tar -xjvf ... entpackt werden.
Gruß Ralf


----------



## Twinsetter (5. Mai 2007)

@Dennis
Ich weis ja nicht was Du Dir für Scripte geschrieben hast, nehme aber mal an das es ähnlich sein wird. Bin auch noch nicht so weit gekommen. Mein Stand momentan Kap.5 Step 8.
Will aber unbedingt weiter machen. Mit den Scripten habe ich eigentlich nur angefangen weil ich verschiedene Server jeweils ein minimales Linux haben möchte. Auf einem cvs-Server z.B. brauche ich den ganzen Schnickschnack, den die gängigen Distris im allgemeinen installieren nicht. Selbst wenn man ohne X11 installiert schleppt man meines Erachtens immer noch viel zu viel Overhead mit. Ich denke mal, daß ich ein LFS da minimaler und auf meine Bedürfnisse angepaßt auslegen kann. Das Bauen des Systems erfolgt auf einem Athlon Dualcore Prozessor, während das Zielsystem ein 486'er ist. Beim Crosscompiling müssen ja noch mehr Parameter angegeben werden und da war/bin ich halt der Meinung, daß ich da mit Scripten flexibler und auch schneller bin, wenn ich noch mal ran muß.
Außerdem ist das auch wieder mal ne gute Gelegenheit sich in Scripting zu üben. Letzendlich habe ich auch mal an die Weitergabe gedacht.
Ob meine Scripts sich von der Live-CD einsetzen lassen kann ich Dir nicht sagen. Ich sage jetzt einfach mal ja, da ich eigentlich keine festen Pfade eingebaut habe.
Wenn Du Interesse hast könnte ich Dir die Scripte auch zusenden - ach was ich häng sie gleich an mein Post mit dran. Sind sind schließlich kein Geheimnis. Kann natürlich nicht für Fehlerfreiheit und Funktion  garantieren - Benutzung erfolgt auf eigenes Risiko! Weitergabe ist gestattet, würde es aber nett finden, wenn Verweise auf den Urheber, sofern sie in den Scripten vorhanden sind, nicht entfernt werden. Die in der README benannte tgz-Datei ist im ZIP, da es sonst mit dem Hochladen nicht get hätte.

Anhang anzeigen README.pdf

Anhang anzeigen lfs_scripts.zip


@Ralph
Ich habe meine Partition mit dem fdisk des Hostsystems angelegt und anschließend mit

```
mkfs -t ext2 /dev/...
```
die Partition formatiert. Hat bestens funktioniert. Dann habe ich einfach mein Script new_lfs.sh rennen lassen. Legst Du vielleicht ein Journalingsystem (ext3, Reiser) an. Habe da irgendwo mal gelesen, daß es da Probleme geben könnte. Bin mir da aber nicht mehr 100% sicher.


----------



## Ralph41 (9. Mai 2007)

Hallo 
habe den Fehler gefunden. Manchmal sieht man den Wald vor lauter Bäumen nicht. Habe ihm nicht gesagt wohin er die Pakete entpacken soll. Jetzt geht es weiter. Bin schon bis Kapitel 5.7 vorgedrungen Doch eine weitere Frage habe ich noch. Der Dynamische Linker kann mit dem Befehl readelf -l <Name einer Binärdatei> | grep interpreter herausgefunden werden. Suche nun im Hostsystem eine Binärdatei. Im Ordner lib des Hostsystems stehen viele Werte die ich noch nicht zuordnen kann. Ist folgendes richtig? Binärdateien unter Linux sind alle Dateien außer Textdateien. Wie sind diese farblich gekennzeichnet. 
Gruß Ralf


----------



## andy72 (9. Mai 2007)

Eine direkte farbliche Kennzeichnung gibt es nicht, da dies anhängt von den Einstellungen in /etc/DIRCOLORS, welche von den coreutils installiert wird bzw du auch selbst generieren/editieren kannst (siehe "man ls"). Grundsätzlich sind Binär-Dateien entweder ausführbar, ergo ein Programm oder es ist eine Bibliothek (endet mit .so). Das, was Du meinst, kann sein, dass Du zB im Midnight Commander alles in grün angezeigt bekommst, wenn eine Datei ausführbar ist - das kann in DIESEM Fall aber auch etwas irreführend sein, da Shell-Scripte und CGI's (Perl-Scripte) ebenfalls ausführbar sein KÖNNEN, sofern ein chmod auf dem File liegt, dass es ausführbar macht (siehe "man chmod") - es muss ABER dennoch keine Binär-Datei sein 

LG
Andy


----------

