Kirjoittaja Aihe: lfs?  (Luettu 7917 kertaa)

hpne

  • Käyttäjä
  • Viestejä: 118
    • Profiili
lfs?
« : 07.10.06 - klo:02.22 »
Onkos kellään kokemuksia lfs:ssän testailusta/asentamisesta?

http://www.linuxfromscratch.org/lfs/

Olen päivänä muutamana yrittänyt tuohon tutustua ja asennella paketteja, mutta aina on johonkin jumittanut. Isäntälinuxit eivät ole toimineet kuten minä (vähäisillä linuxtaidoillani) olisin toivonut tai lfs:ssän livecd on mennyt niskat nurin. Onko kukaan saanut koko systeemiä toimivaksi, ja jos on, niin millä distrolla?

krike

  • Käyttäjä
  • Viestejä: 6
    • Profiili
Re: lfs?
« Vastaus #1 : 07.10.06 - klo:12.29 »
Isäntäjärjestelmäksi käy vaikka joku vanhempi distro: esim Redhat 6.2, tai Debian 3.0,  jossa on tarvittavat käänöstyökalut kuten : libc-devel, binutils, gcc (>= 2.95.3), gnu-autotools (automake,autoconf,libtool) ja perl -skriptikieli.
Asenna myös gpm(General Purpose Mouse)-paketti, ellei jo ole.
Hae Links niminen konsolipohjainen web-selain lähdekoodipakettina ja käännä+asenna se:

links-2.1pre23 >./configure --prefix=/usr --disable-graphics --without-gpm --without-x &&
> make &&
> make install

Jos tuo kääntyy ja käynnistyy (komento: links), niin isäntäjärjestelmän kääntäjä on kunnossa.
Hae LFS ja BLFS kirjat koneelle.

käynnistyy komentoriviltä linksiin näin: cd LFS-BOOK...
links ./index.html

Tuon hiirituen poisjättämisen linksistä ideana on se, että että links ei varaa hiirtä linkkien klikkailuun vaan toimii yleistilassa, jolloin voi kopioida ja liittää kirjasta noita komentoriviä siihen konsoliin, jossa järjestelmää käännetään.

Tee sitä ykkösvaihetta(Temporary system) varten shell-skripti, joka säästää aikaa ja vaivaa, jos koneen joutuu boottaamaan.
skriptin tulisi säätää komentotulkin (bash) asetukset ja ympäristömuuttujat oikein.


se voi olla vaikka tämmönen:

cat > ./prepare-stage1.sh << "EOF"
set +h  #TÄRKEÄ BASHIA KÄYTETTÄESSÄ
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
PATH=/tools/bin:$PATH  # TÄRKEÄ, JOTTA STAGE1 OHJELMAT ON HETI KÄYTÖSSÄ KUN VALMISTUU
CFLAGS="-O2 -s"
CXXFLAGS="-O2 -s"
LDFLAGS="-s"
export LFS LC_ALL PATH CFLAGS CXXFLAGS LDFLAGS
unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD
EOF

tuo sitten käynnistetään nimenomaan seuraavasti:

. prepare-stage1.sh

eli
piste väli prepare-stage1.sh

Tarkottaa sitä, että ladataan nykyiseen komentotulkkiin.

perusjärjestelmälle kannattaa tehä vastaavanlainen skripti, joka mounttailee asettaa $LFS:n ja $TOOLDIR:n uudelleen ja
mounttailee /proc, /sys, /dev ja /dev/pts virtuaalitiedostojärjestelmät. ja vaihtaa chroot-ympäristöön asettaen samalla ympäristön perusjärjestelmää varten oikein.
CFLAGS ja CXXFLAGS kannattaa asettaa perusjärjestelmän binutilsiin asti arvoihin

export CFLAGS="-O2 -s"
export CFLAGS="$CXXFLAGS"
tuo set +h ja polku ($PATH) asetetaan chroot-komennossa, kuten kirjassa.

Noiden kriittisimpien ohjelmien(libc, gcc, binutils) jälkeen voi jo optimoida enemmän esim:
export CFLAGS="-O2 -march=i686 -mtune=pentiumpro -fomit-frame-pointer -s"
export CFLAGS="$CXXFLAGS" LDFLAGS="-s"
-O3 optimointia en itse käytä, kun multimediakirjastoja kääntäessä, kuten grafiikkakirjastot ja äänenpakkauskirjastot.

Boottimanagerin (grub) kanssa kannattaa olla varovainen. Suosi olemassaolevaa boottimanageria, jos mahdollista.
Varmista kuitenkin, että saat toimivan järjestelmän käyntiin, jos LFS ei käynnistykään oikein.

Kopioi nuo LFS ja BLFS -kirjat sinne chroot-ympäristöön ja käännä sinne LFS-kirjan ohi gpm ja links ilman hiiritukea ja vaikka GNU nano editoriksi, jos ei tykkää vim-editorista.
Ohjeet noiden 3 ohjelman kääntämiseen on BLFS-kirjassa.

Jos LFS käynnistyy, sielä on ainakin editori, web-selain ja hiirituki, jolla voi kopioida kirjasta komentorivejä ja liittää siihen konsoliin, jossa käännöstä suoritetaan.

Jos perus-LFS järjestelmä osottautuu toimivaksi, niin kannattaa pakata se /tools-hakemisto, jotta säästää aikaa, kun järjestelmä käännetään uudelleen (voi jatkaa chroot-kohasta).
Tuo paketti on käyttökelponen ainakin niin kauan, kun sen libc ja gcc on samaa versiota, kun kirjassa, jonka mukaan.käännellään perusjärjestelmä.

Sitten voi jo siirtyä BLFS-kirjaan.
BLFS:stä sitten käännellään alkaen niistä tarpeellisista kirjastoista ja ohjelmista, jotka ei ole riippuvaisia semmosista kirjastoista tai ohjelmista, joita ei ole vielä käännetty.

Jos koneessa on vähintään 512MB muistia, niin noihin CFLAGS ja CXXFLAGS muuttujiin voi lisätä -pipe parametrin, joka putkittaa tiedon eri käännösvaiheiden välillä (cpp|gcc|as).

Mitä nopeampi kone, sen vaivattomampaa on kääntää järjestelmä uudestaan.
Mulla 1.300MHz celeron, 512MB. Kestää kääntää (skriptipohjaisesti(automaattisesti)) noin 1vrk.
Tähän kääntyy stage1 - glibc-2.4 - gcc 4.1.1 - yleishyödylliset kirjastot -  grafiikkakirjastot - multimediakirjastot - XOrg 7.0(haastava lukuisista paketeista koostuva juttu) - firefox - KDE 3.5.4 - koffice - emulaattorit(fceu,vice,spectemu) - multimedia (ffmpeg,xiine,amarok,kaffeine) ja järjestelmätyökaluja.


hpne

  • Käyttäjä
  • Viestejä: 118
    • Profiili
Re: lfs?
« Vastaus #2 : 16.10.06 - klo:23.26 »
Kiitoksia vinkeistä! On ollut lfs vähän jäissä viime aikoina, mutta pitää taas jatkaa kunhan aikaa löytyy. LFS on muhimassa Zenwalkin kautta, vaikuttaa toimivan toistaiseksi varsin hyvin.