Newsgroup: it.comp.os.linux.development
Titolo: busybox 0.51 e glibc: impazzire!

Volevo preparare 2 floppy in tutto e per tutto compatibili, in pratica
dei cloni belli e buoni del'installazione della Slackware,
tutto per fare una installazione direttamente su (Linux-)XFS, lo so
che e' ancora sperimentale, ma non vedo perche' tutti gli interessati
debbano per forza usare la RedHat :-)
In fondo gli script usati nella Slack sono abbastanza malleabili,
basta cambiare poche righe per aggiungere/sostituire xfs a/con
reiserfs.
in particolare quelli in slackware-current/bootdsks.144/2.4.5/bare.i
e rootdsks/color.gz
ho installato una versione ridotta della slackware-current mi sono
preparato tutto... e oops mkfs.xfs vuole tassativamente la glibc-2.2
mentre tutto color.gz si basa sulla 2.1.1, ma come?
non la 2.1.3, cosa che potrei anche capire, ma la 2.1.1??
Penso sia stata una scelta di comodo per risparmiare preziosi bytes e
vado avanti...
aggiorno le librerie in /lib sulla color.gz
e un'altra sorpresa busybox 0.51 non fa' piu' ne' halt, ne' poweroff,
ne' reboot!!
decido di ricompilare solo busybox e mi ritrovo peggio di prima...
make test e' a dir poco disastroso quindi spero di trovare una
versione piu' recente e glibc-2.2.3 compatibile.
Oltre a quello che segue non vanno nemmeno expr, ifconfig... una
tragedia insomma!
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FAILED: ../busybox dd if=/dev/urandom of=O bs=1k count=1 ; ../busybox
ls -l O ; ../busybox  rm O
FAILED: ../busybox df -h
FAILED: ../busybox df -m
FAILED: ../busybox du -s
FAILED: ../busybox du -h
FAILED: ../busybox du -m
FAILED: ../busybox free
FAILED: ../busybox id
FAILED: ../busybox ls -l ../e*
FAILED: ../busybox ls -s ../e*
FAILED: ../busybox mkdir D ; ../busybox  ls -ld D ; ../busybox  rmdir
D
FAILED: ../busybox mount
FAILED: ../busybox sort -n tester.sh
+					[ $DEBUG -ge 1 ] && echo
"FAILED: $line" | tee -a $LOGFILE
-					[ $DEBUG -ge 1 ] && echo
"FAILED: $line" | tee -a $LOGFILE
FAILED: ../busybox echo "please tee me!" | ../busybox  tee A B C ;
../busybox  cat A B C
FAILED: ../busybox echo "please tee me!" | ../busybox  tee A B C ;
../busybox  echo "tee me too!" | ../busybox  tee -a A B C ; ../busybox
cat A B C ; ../busybox  rm A B C
FAILED: ../busybox uptime
FAILED: ../busybox ls -1 ../e* | ../busybox  xargs
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Sulla ML di BusyBox ho trovato un messaggio recentissimo di un certo
Goetz riguardo al fatto che find_pid_by_name() non va.
Questa funzione fa' parte di libbb.a e si trova in un file find_****.c
ed ha due "gusti":
il primo usa un fantomatico devps, in pratica un modo per sbrigarsi,
c'e' una patch al 2.2 allegata nella tarball, ma ho visto sul sito il
rifiuto di Linus alla proposta di adottare questo ulteriore dev per
una informazione che gia' si trova in /proc
il secondo "gira" dentro /proc alla ricerca della stringa, nel nostro
caso init
Il problema tuttavia risulta diverso rispetto a quello citato da
Goetz:
sh, nel color.gz della Slack non e' un link a busybox, ma un binario
indipendente. Il problema, almeno per riavviare la macchina a fine
installazione, si riduce a costruire uno script che elabori attraverso
sed l'output di ps alla ricerca del pid del primo init che trova. Non
dovrebbe essere difficile visto che sed e ps funzionano, previo un bel
umount -a (2.11b, non quello di BB).
Che rabbia mi sono messo a ricompilare senza accorgermi che mi mancava
il Config.h usato dalla Slack (vattelo a trovare... nella cartella
source/rootdsks non c'era), una volta trovato quello giusto i
segfaults erano ancora li', una volta trovata la funzione
incriminata... manca il programmatore, che bestia che sono, nemmeno un
po' di C su glibc!!!

kill `ps | grep 'init' | cut -d 'r' -f 1 | head -n 1`
anche se va bene solo per un "reboot" e non per un "power off"

 e rootdsks/color.gz
Se vuoi posso darti una mano, il disco di boot di "Bad Penguin"(D)
e' abbastanza flessibile, puoi scaricarlo da
 
http://ftp.badpenguin.org/pub/badpenguin/stage1.img
Ciao,
	Antonio Gallo (AGX)
 
www.badpenguin.org

	
http://ftp.badpenguin.org/pub/badpenguin/stage1.img
Ti ringrazio, voglio proprio farmi una panoramica di cosa c'e' di
"customizzabile" in giro!
Credo di aver risolto, ho aggiornato tutto il color.gz rootdisk a
glibc 2.2.3, ma sono rimasto scottato per ls: 
a parte 15 KB in piu' rispetto alla 3.x
mi si sono aggiunti svariati KB dovuti a librt(?).so.?
e libptrhread.?.so.?
Avrei preferito che ls 4.1 andasse secco a caricare libc, come faceva
il suo antenato. Aggiornare ls mi e' anche costato andare a rivedermi
tutto per correggere qualche cut in giro per usr/lib/setup e rivedere
anche filesize.
dovrei riuscire mettere in rete per questa settimana 2-3 bei dischetti
da 1.68 per fare una installazione molto custom della Slackware 8 su
filesystem xfs, anche via NFS e anche con schede di rete PCMCIA.
Ora che ci penso una bella installazione dei moduli del dischetto sul
sistema non guasterebbe visto che i moduli sul cd servono a poco una
volta messo il 2.4.5-xfs-1.0.1
faccio anche un paio di tarball con qualche script di supporto per
capire come e dove vanno messi i files, mettero' tutto su
http://village.flashnet.it/users/fn048069/linux-xfs.html
Ho notato che ora la Slakware 8 quando parte da cd ha una specie di
menu che consente di scegliere il kernel con cui bootare: bella idea!
Era ora!
initrd.img e' rimasto unico, voglio dare un occhiata e vedere come
cambia rispetto al color.gz
L'ideale sarebbe poter montare in loopback le immagini dei pcmcia.dsk
o dei network.dsk direttamente sul cd. l'ideale per fare una bella
installazione direttamente da cd dai pc sfigati senza lettore floppy,
come il mio povero secondo pc che uso a casa che ha solo il
masterizzatore e la scheda di rete a disposizione :-(
Mi piace l'idea di avere poche immagini che possono essere utilizzate
su diversi supporti e che possono essere aggiornate senza problemi,
come nel caso dei cd multisessione che usavo per testare la 8.0 quando
era "current".

 o dei network.dsk direttamente sul cd.
Questo sull'immagine che ti ho segnalato lo faccio... pero' non ti ho
dato il link "stage2.img" perche' sono 18MB ;-)
Antonio

l'immagine Eltorito?
Posso indicarti un buon mirror, ma ci sono piu' files da vedere:
ftp://ftp.edisontel.it/pub/Slackware_Mirror/slackware-8.0/isolinux/isolinux.bin
ma leggiti il README.TXT perche' io certe cose con cdrecord non le ho
mai fatte... non so se mi spiego! :-)
credo che sia piccolo e che carichi initrd.img e un kernel nella
directory (isolinux/)kernel appunto. 
Forse sul sito di syslinux ci sono informazioni piu' generali e buone,
non so.
Grazie del pensiero, pero' hai davvero ragione 18MB cosi' tanto per
provare con la linea di casa "normale" sono troppi, appena mi capita
una T3 provvedero'! :-)