Newsgroup: it.comp.os.linux.sys
Titolo: Linux QUASI-From-Scratch

Allora... la mia è una richiesta un po' particolare, e mi rendo conto
che quello che vorrei fare non è semplicissimo, però... in fondo c'è
gente che fa cose del genere facendo girare Linux su cose tipo Game Boy
o Playstation, quindi...
Mi interesserebbe creare una sorta di installazione (notare che non ho
detto "distribuzione", ma "installazione") minimale di Linux, con:
- un kernel personalizzato e ottimizzato per un processore specifico, e
che non supporti niente di inutile
- pochi moduli che supportino poche cose (non serve il suono, forse non
serve una modalità grafica diversa dalla console, mentre serve il
supporto per le schede di rete, etc...)
- i comandi di sistema di base
- bash
- filesystem ext3 (mi serve il journaling)
- tutto deve essere installato in un'unica partizione (quindi le cose
sono più semplici da questo punto di vista)
- ovviamente ci deve essere tutto quello che serve per far partire e
gestire il sistema, quindi init, login, i files di configurazione,
etc...
- poi il sistema deve esssere il più pulito e sgombro possibile, senza
quasi niente avviato all'avvio (niente server che partono e fanno cose
che non mi servono, etc...) e troppe cose nel filesystem
- in seguito potrebbe essere utile aggiungere perl, python, e magari
ssh per il controllo remoto della macchina
Tutto questo mi servirebbe per creare una sorta di... "render slave",
da usare con progetti come Pixie, Yafray o PovRay.
Ora... credo non sia molto proficuo iniziare davvero da zero,
compilando tutto quello che mi serve, reperendo i sorgenti, etc (anche
se comnque credo che il libro "Linux From Scratch" mi risulterà utile
per capire tante cose).
Credo sia più utile partire da una distribuzione e selezionare via via
i pacchetti che mi servono, estraendone i contenuti dai pacchetti,s
eguendo poi magari qualche tutorial per la creazione di boot disk o
live CD, per capire come mettere su un sistema funzionante.
Che ne pensate?
E comunque, secondo voi, ne vale la pena?
Il punto è che vorrei un sistema che sia il più ottimizzato possibile
per quello che voglio fare, che non sia invaso da un sacco di roba che
non mi serve, e che possa metterci ano facilmente in un secondo tempo
modificando direttamente i files che vanno modificati.
Immagino che, per iniziare, debba partire da:
- kernel
- grub o lilo
- init
- login e programmi simili
- bash
- comandi di sistema di base
- demone per la rete e programmi di configurazione della rete
Grazie!
PS. Se per caso qualcuno volesse aiutarmi nell'impresa, non sarebbe
male...! ;-)

Dimenticavo...
Non sarebbe male, in un secondo tempo, poter scegliere si sostituire il
kernel e i moduli Linux, con kernel e servizi Hurd (non è detto che lo
farò, però sarebbe comodo poterlo fare facilmente, in caso decidessi
di farlo).

 - demone per la rete e programmi di configurazione della rete
Ho ovviamente dimenticato di specificare come minimo la libc...

 i pacchetti che mi servono, estraendone i contenuti dai pacchetti,s
Se parti da una Slack, basta mettere su solo i pacchetti base e 
praticamente sei nelle condizioni che hai descritto.
-- 
Fabrizio "Hermooz" Ermini

 live CD, per capire come mettere su un sistema funzionante.
Forse sarà una cosa scontata ma... perché non partire da Gentoo? Stage 1 e
fai tutto quello che ti serve, ottimizzato sulle tue reali necessità...
Ci sono anche istruzioni per creare il LiveCD sul sito di Gentoo
-- 
Stéphane Bisinger
Webmas... well...

Eh, in effetti avevo pensato proprio di partire da una Slackware, visto
che tipicamente usa pacchetti "puliti", senza troppe personalizzazioni,
ed è facile estrarre i contenuti dei pacchetti e usarli come voglio.

 [...]
Parti da una debian netinst senza selezionare nessun pacchetto, quando
rebootti togli qualche altro pacchetto, dopo ficca tutto in un file
formattato ext3 e montalo in loopback su un linux debian "completo" sul
quale compilerai il kernel e ti potrai chroot-tare nel nuovo sistema a
piacimento. Io ci ho fatto cosi` un sistema embedded su piattaforma tmz
104 (
http://www.mpi.ch/item446.html
), con in piu` il root filesystem in
cloop (compresso quindi), e ci ho messo il sistema base, con un tot di
roba su, in 25mb compressi. Ci ho messo quel mattone che e` il jre1.5
(che sono 90mb) e sono salito a 62mb compressi. Non c'e` male direi. Non
vale la pena rifarsi tutto il sistema di init e partire proprio da zero,
credimi. Io mi sono fatto da zero un initrd abbastanza complesso e ci e`
voluto parecchio tempo, non oso immaginare rifare *tutto* l'initsysv
come mi par che voglia fare tu.
Ciao
-- 
err: signature too big

Io consiglierei Gentoo cmq, è pulita e priva di fronzoli. In fondo il
fatto di partire dai sorgenti non è una grande difficoltà, richiede
solamente un pò di tempo in più...
--
kwisatz
http://godelblog.splinder.com

 detto "distribuzione", ma "installazione") minimale di Linux, con:
[...]
Sto giusto facendo una cosa del genere per una sorta di sistema minimale 
con boot su flash card e hardware basato su Via Epia.
Un primo tentativo l'ho fatto con gentoo (gentoo embedded) con uclibc, 
ma per alcuni programmi avevo problemi di compilazione, quindi son 
passato a glibc. Col tempo mi sono accorto pero' di aver bisogno di 
diverse variazioni, e il sistema di gentoo, anche se molto flessibile, 
cominciava a starmi stretto.
Ora sto facendo un ulteriore tentativo proprio con LFS.
Il mio consiglio è che se ti basta una installazione pulita ma 
abbastanza standard usa Gentoo.
Se invece pensi di aver bisogno di qualcosa di molto piu' flessibile 
(per esempio per poter implementare un sistema a plugin dei pacchetti), 
allora parti da LFS.
Nel caso: 
nob...@nowhere.cc
 | sed "s/nobody/nemesis/g"

Grazie mille a tutti per la disponibilità e l'aiuto.
In effetti, stavo pensando di partire proprio nel modo più minimale
possibile.
Più che partire da una installazione, per quanto minimale, e poi
togliere ulteriormente degli elementi, pensavo proprio di fare il
contrario, partendo proprio da zero, aggiungendo e configurando poco a
poco qello che mi serve.
Pensavo di partire da un kernel minimale, che supporti pochissime cose,
e da un bootloader che si limiti a caricarlo.
A questo punto, oltre alla libc che ovviamente ci deve stare, dovrei
aggiungere init, però... invece di costruirmi da zero tutta la init
sequence, etc... stavo pensando di partire con qualcosa di ancora più
minmale e semplice, eliminando del tutto init, sostituendolo con
qualcosa di più semplice.
Nel caso estremo, pensavo addirittura di lanciare una sorta di script
di inizializzazione, piuttosto semplice, interpretato da bash, che si
limita a caricarew i moduli del kernel che servono e i servizi base
(per ora... praticamente solo il logger e i servizi di rete), passando
alla fine il controllo a getty, per avere il login.
Pensavo inoltre di sempliciare al massimo la struttura del filesystem,
limitandomi praticamente alle sole cartelle con i file di sistema, le
librerie, root, home, etc, tmp e poco altro.
Vorrei un sistema che facesse il boot in pochissimo tempo, e che avesse
pochissimi files, e dove sappia ESATTAMENTE dove mettere mano.

E se partissi da una installazione Slackware in una partizione, e
iniziassi a mettere, in un'altra partizione, i soli singoli elementi
che mi servono, ovvero, dopo aerla formattata, un kernel minimale, la
libc, fstab e poco altro, bach, col suo file di configurazione, e i
vari getty, login, e i comandi di sistema?
L'idea di aggiungere, quasi uno alla volta, i programi e librerie che
mi servono, adattando di volta in volta i files di configurazione, mi
piace perché, oltre ad avere un sistema pulitissimo e piccolissimo,
capirei esattamente come funziona il tutto, e dove mettere mano in
futuro.

 vari getty, login, e i comandi di sistema?
E' un'alternativa. Nel mio caso avevo bisogno quanto piů possibile di 
compilare i programmi con -Os, quindi sono partito da zero.

Beh, io vorrei partire... quasi da zero.
Per ora vorrei usare i binari forniti con Slackware, iniziandoli a
mettere nel sistema poco a poco.
Tu quindi sei riuscito a partire veramente da zero, inserendo poco a
poco i vari componenti, e creando i files di configurazione da zero?

Marco Iannaccone ha scritto:

Con Gentoo ero riuscito a compilare solo i pacchetti che mi servivano e 
a scrivere i vari rcscript funzionanti con solo cio' che mi serviva, 
partendo da una flashcard vfat, e il filesystem su squashfs montato via 
loop.
Ora con LFS sono ancora un po' indietro a dire la verita'.

 Grazie!
Forse potrebbe esserti d'aiuto dare un'occhiata a questo vecchio ma 
istruttivo howto:
http://www.tldp.org/HOWTO/Bootdisk-HOWTO/index.html
Ma una volta non esisteva pure una versione di Slackware "ridotta", 
chiamata ZipSlack (perché entrava comodamente in un disco Iomega ZIP da 
100 MB)? Anche quella potrebbe fare al caso tuo: controlla sul sito se 
la fanno ancora. Io l'avevo provata anni fa e mi era sembrata interessante.
ciao
Francesco

 100 MB)? 
Posso confermati che esiste/esisteva ma non so se la fanno ancora....

 la fanno ancora. Io l'avevo provata anni fa e mi era sembrata interessante.
Adesso c'e questo:
http://www.damnsmalllinux.org/
 che puoi installare su una chiavetta usb 
da 64 Mb
-- 
Sidewinder
"Oops!" - Shannon Foraker, Ashes of Victory

Grazie mille! :-)
ZipSlack comunque è qui:
http://www.slackware.com/zipslack/

Ottimo, grazie! :-)