Problem beim Erstellen einer LFS-Toolchain

Ralph41

Grünschnabel
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
 
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.
 
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
 
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.
 
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
 
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.
 
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
 
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
 

Neue Beiträge

Zurück