LFS 7.4: Succes!

Door Sjaaksken op vrijdag 18 april 2014 11:19 - Reacties (9)
Categorie: -, Views: 3.241

Enkele maanden geleden begon ik met het trage proces om een LFS build (linux from scratch) zelf te compileren. Na in het verleden reeds enkele mislukte pogingen ondernomen te hebben, is het mij ditmaal toch gelukt om deze build te vervolledigen.

Waarom je het eigenlijk zo moeilijk maken, als er toch zoveel linuxdistrubities zijn die veel meer tweaks en grafische pracht allemaal voorgeconfigureerd hebben, vraagt men mij meestal. Het antwoord is simpel: "omdat het kan" (en omdat ik het wil kunnen). Het leert je trouwens ook om de technologie die achter linux steekt, stapje voor stapje te beginnen begrijpen. De structuur van het systeem wordt er op deze manier echt ingeramd en de onmisbare tools tonen snel waarom ze zo onmisbaar zijn: indien je ergens in het proces één fout maakt, kan je meestal vanaf 'scratch' herbeginnen ofwel vanaf je laatste backup.

Toch heeft LFS ook veel voordelen: je hebt volledige controle over de software, en je kan op elk moment een backup nemen, waardoor je bv. verschillende versies van je systeem kan maken met elk een ander doel, zonder al te veel werk opnieuw te moeten doen. Je kan bv. een router/firewall maken en gebaseerd op dezelfde LFS build, een NAS systeem of een ftp server. Wie bv. een LFS systeem in een gevirtualiseerde omgeving bouwt, kan zo snel heel specifieke systemen maken, geoptimaliseerd en afgeslankt voor dat ene doel. Met de moderne distributies zoals ubuntu, die gebruiksvriendelijkheid en beheersbaarheid voorop plaatsen, is dat veel moeilijker. Hoe minder paketten te onderhouden zijn, hoe minder kans op kwetsbaarheden, desalnietemin vraagt het up-to-date houden van een LFS systeem wel meer handmatig werk dan een moderne distro met packagemanager.

Hoe begin je nu aan een LFS systeem? Eigenlijk door leentje-buur te spelen bij een al bestaand linux systeem (op een livecd of reeds geïnstalleerd). Je gebruikt de daar aanwezige paketten om zelf eerst een tijdelijk systeem te compileren. Dat tijdelijk systeem bevat eigenlijk de core-tools nodig om linux te kunnen compileren. Eens dit tijdelijk systeem alle nodige paketten bevat, mag je nog eens opnieuw beginnen met het compileren van deze zelfde paketten, maar ditmaal wel voor écht. Als je de lijst van paketten (dat zijn er nog wel wat) één voor één afgewerkt hebt, kan je beginnen aan het klapstuk: de kernel compileren. Spannend!

De kernel is echt dé kern (el) van je OS. Hierin zitten alle benodigde features om het systeem en de hardware correct te laten lopen. Met LFS dien je dit slechts éénmaal te compileren. Als je later een BLFS systeem bouwt (Beyond LFS), dan wordt een kernel compilatie echt routine, aangezien je voor veel specifieke hardware een optie moet activeren in de kernel en deze kernel dan gehercompileerd dient te worden. Maar daarover meer in een volgende blog. (zie BLFS).

Hetgeen volgt is pure ComputerLinuxRomantiek: het installeren van de bootloader én booten in je verse lean mean LFS machine. Als je alle stappen dusver doorlopen hebt is het installeren van een bootloader een makkie, waarna je de hele boel mag herstarten. Grub (de bootloader) komt te voorschijn en als alles goed gaat: BAM --> LFS.

LFS Kernel configuration

htop screenshot


En nu kan het echte werk beginnen!

edit:screenshots toegevoegd

Volgende: BLFS: the scenic route! 05-'14 BLFS: the scenic route!

Reacties


Door Tweakers user Snowmiss, vrijdag 18 april 2014 11:38

Is alweer 8 jaar geleden dat ik LFS draaiende heb gekregen op mijn toenmalige PC (PIII 500MHz). Heeft heel wat avonden geduurd en voor de zekerheid de PC maar niet uit gezet tussendoor, want dan wist ik niet zeker of ik wel op de juiste plek terug in het proces zou komen.

Een blog als dit doet mij eraan herinneren een nieuwe pc te willen en dan kan deze (E8500, 3,16GHz) ingezet worden om weer eens te gaan pielen. Heb een paar jaar terug nog een poging gewaagd een LFS virtueel te compileren, maar dat liep toch minder goed dan ik dacht.

Door Tweakers user chucky, vrijdag 18 april 2014 11:38

Ik heb iets soortgelijks gedaan in mijn tienerjaren met Gentoo. Dat was toen -de- distro om je eigen system from scratch te builden.
2 dagen compilen op X11, een halve dag op OpenOffice, of je kernel, super tof was dat. Zeker goed om te leren hoe Linux, maar eigenlijk elk OS, is opgebouwd en hoe dingen onderhuids werken.

Nu ik wat ouder ben kan ik vol genoegen een Ubuntu installatie doen, half-wetende wat er allemaal precies onderhuids gebeurd, en kan ik problemen makkelijker oplossen als de automagische package managers een keer niet magisch blijken te zijn.

Success!

Door Tweakers user himlims_, vrijdag 18 april 2014 12:13

Snowmiss schreef op vrijdag 18 april 2014 @ 11:38:
Is alweer 8 jaar geleden dat ik LFS draaiende heb gekregen op mijn toenmalige PC (PIII 500MHz). Heeft heel wat avonden geduurd en voor de zekerheid de PC maar niet uit gezet tussendoor, want dan wist ik niet zeker of ik wel op de juiste plek terug in het proces zou komen.
hahahah 'open-office' compile ding fuckign daaagen mee bezig :+ goeie ouwe tijd

Door Tweakers user Demo, vrijdag 18 april 2014 13:14

LFS is erg leerzaam, maar tegelijk ook behoorlijk masochistisch.. voor praktische toepassingen is http://buildroot.net/ een mooi alternatief. Ontworpen voor embedded systemen (uClibc ipv glibc, busybox), downloadt alle sources voor je en bouwt een toolchain.
Misschien iets minder leerzaam dan LFS, maar je krijgt alsnog een hoop mee over de werking van een systeem. Je zal ook een hoop moeten configureren en customizen voordat je een werkende mini-distro hebt.

Door Tweakers user Sjaaksken, vrijdag 18 april 2014 13:17

Demoniac schreef op vrijdag 18 april 2014 @ 13:14:
LFS is erg leerzaam, maar tegelijk ook behoorlijk masochistisch.. voor praktische toepassingen is http://buildroot.net/ een mooi alternatief. Ontworpen voor embedded systemen (uClibc ipv glibc, busybox), downloadt alle sources voor je en bouwt een toolchain.
Misschien iets minder leerzaam dan LFS, maar je krijgt alsnog een hoop mee over de werking van een systeem. Je zal ook een hoop moeten configureren en customizen voordat je een werkende mini-distro hebt.
thanks voor de info, misschien mijn volgende project :)

Met 'embedded' systemen, bedoel je dan ook ARM systemen als tablets ed?

Door Tweakers user Tiny, vrijdag 18 april 2014 15:00

Dit lijkt me erg gaaf een keer te doen, echter mis ik de kennis en, het meest belangrijke, de wil om zoveel tijd er aan te spenderen.


Ik heb verder niets veel nuttigs toe te voegen anders dan "RESPECT!"
_/-\o_

Door Tweakers user Dreeke fixed, vrijdag 18 april 2014 21:14

Dit heb ik in '98 ook eens gedaan met slackware op cd's.
Boot flop gemaakt en alles werkend gekregen op X na.

Door Tweakers user Demo, vrijdag 18 april 2014 22:34

Sjaaksken schreef op vrijdag 18 april 2014 @ 13:17:
Met 'embedded' systemen, bedoel je dan ook ARM systemen als tablets ed?
Check! Het bouwt een cross-compiler toolchain voor het target wat je kiest. Dat kan een i386 of amd64 zijn, maar ik heb vandaag toevallig een build gemaakt voor een Raspberry Pi. Er zit een standaard config in voor de Pi, Beagleboard, Sheevaplug en andere leuke hardware, maar je kan het in principe configureren voor alle hardware die Linux ondersteunt.
Het resultaat na wat tweaken is een root filesystem van ongeveer 5 MB :D Je kan er niet veel meer mee dan een beetje heen en weer bladeren door directory's, maar dat is de volgende uitdaging :)

Door debiandude, donderdag 1 mei 2014 17:54

super bedankt voor je goede idee! ik ben nu zelf ook begonnen door het LFS boek door te lezen, en langzaam maar wat te gaan compilen, inderdaad erg leerzaam en foutgevoelig... heb binnen 2 dagen meer commando's geleerd dan dat ik ooit gekend heb :P

Reactie formulier
(verplicht)
(verplicht, maar wordt niet getoond)
(optioneel)