Newsgroup: it.comp.os.linux.sys
Titolo: Come compilare un kernel linux per processori NON Intel

Salve a tutti...
Sono riuscito a mettere le mani su una vecchia sparc, e vorrei installarci
sopra linux, perchč solaris 8 per questa macchina č troppo pesante.
Sono in grado di compilare discretamente il kernel su processori intel, ma
non ho idea di come fare per processori diversi.
Infatti nei sorgenti, sono presenti anche i codici di processori diversi, ma
facendo il make menuconfig, xconfig, o altro, la scelta dei processori č
obbligatoria solo per processori intel.
Purtroppo pur avendo una Suse per sparc, questa non bootta regolarlemente, e
fa' andare in crasch il loading del kernel, ed č questa la ragione, per cui
devo farmi un floppy di boot partendo dai sorgenti e su una macchina intel.
Salute a tutti.

 non ho idea di come fare per processori diversi.
Fai come sempre, ma aggiungi ARCH=sparc ad ogni make.
Per esempio:
        make config ARCH=sparc
nota:
make bzImage ARCH=sparc potrebbe non funzionare perche' "bzImage" e'
specifico per l'architettura Intel e non so quale sia l'equivalente
per la SPARC, forse "Image"..
-- 
Lorenzo

devo farmi un floppy di boot partendo dai sorgenti e su una macchina intel.
A parte che: non esistono immagini di boot per architetture non Intel?
In generale temo che dovrai configurarti gcc per operare come cross
compiler, e sottolineo temo.
-- 
"Give me something to sing about.
I need something to sing about."
(Buffy, "Once More, With Feeling" BTVS 6.07)

Fammi capire, su una macchina intel io compilo cosi' un kernel per sparc
senza usare un cross compiler? sei sicuro? sicuro sicuro? palle sul
ciocchetto? ;-)


Mi era sfuggito questo piccolo particolare fondamentale :)
Sono abituato a compilare UML con ARCH=um e..
-- 
Lorenzo

senza usare un cross compiler? sei sicuro? sicuro sicuro? 
Però c'è da dire che (e a parziale correzione di quello che ho scritto in
questo thread), il kernel è tutto auto-contenuto, quindi e sopratutto
non usa libc o altro. Per cui la compilazione del kernel potrebbe non
essere così rognosa come la compilazione di un qualsiasi altro programma
(che tragicamente e a cascata potrebbe richiedere di ripassare al
cross compiler tutte le librerie usate da quel programma e di cui non si
avesse un eseguibile nel formato della piattaforma desiderata. So di una
persona che l'ha fatto per un processore ARM, ancora non si è ripresa :)).
Dubito comunque che questo sia sufficiente, perchè uno può anche avere
un kernel per Sparc, ma una shell, un ls, un paio di comandi dovrà pure
averli, sennò l'è dura :)


Intanto ringrazio tutti per l'interessamento...
comunque per completezza aggiungo, che la macchina in questione per cui
dovrei compilare il kernel, č una Sparc 5 AXi OEM quindi costruita da terze
parti.
In pratica il cabinet, č di un normale PC, mentre la mother board č
originale Sun, con tanto di loghi vari sui componenti. Vi allego la
descrizione della sua composizione:
Ultra AXi System
SPARCengine Ultra AXi Mother Board
Ultra Iii-360 Module for mother board.
SYMBIOS 53C876 on board.
ATI Videoboost w/4MB Graphics adapter
EDO Memory 512 Mb Ram
IBM 9.1 Gb Ultra Wide SCSI
Plextor Scsi CDROM
Antares PCI Modem
Ho provato a scaricare le immagini di boot di varie distribuzioni (Suse,
Debian etc.etc.) che supportassero sia il kernel 2.4 che il 2.2, ma su tutte
ho sempre ricevuto questo errore:
Uncompressing image...
Loading initial ramdisk...
Remapping the kernel... done.
Booting Linux...
PCI: Bogus PROM assignment. BUS[80] DEVFN[18]
PCI: Phys [02801810:00000000:00000000] size[00000000:01000000]
PCI: RES [0000000001000000-->0000000001ffffff:(200)]
Please mail this information to 
da...@redhat.com
Program Terminated
Ok
con inevitabile ritorno all' open-boot (il bios di questa macchina), ed č
questa la ragione che mi spinge a dovermi creare un kernel, provando a
disattivare alcune opzioni relative al bus pci, e a farmi un floppy di boot.
Una volta fatto il boot, vorrei montarmi il cdrom e continuare
l'installazione dai cd della Suse per sparc, per cui anche il problema di
compilarmi un shell e i comandi di base, dovrebbero svanire.
Ho anche provato a scrivere in diverse mailing-list e ng, spiegando l'errore
etc.etc, ma non ho mai ricevuto risposta da nessuno.
Ora mi rimangono 2 cose... o provo a far andare linux, oppure mi devo
scaricare le immagini iso di una versione di solaris 8..... francamente
preferirei la prima alternativa, perchč (lo sņ che č stupido, ma cosa volete
farci)... come dire.... mi sento a casa... :):).

 per la SPARC, forse "Image"..
make vmlinux.
Comunque se la macchina in questione e' un Ultra Sparc, non puoi
compilare il kernel su una macchina intel (il kernel e' a 64bit
e la compilazione la si fa con l'egcs64). Ho forti dubbi che ci
si riesca anche se e' una sparc a 32bit es. SS4, 10, 20).
-- 
Saluti
Leonardo
Per rispondermi in privato: 
leon...@firenze.linux.it

 farci)... come dire.... mi sento a casa... :):).
Direi che e' la via migliore. Solaris e' un gran sistema operativo, ma
di una tristezza incredibile : ) .
Comunque se non risolvi niente, posso provare io a compilarti un kernel
per Sparc64 "generico" e vedere se con quello funziona.


La butto li', non e' che per qualche motivo astrale ti si e' sputtanata la
openprom? a me e' successo, e dopo aver reperito una openprom nuova,
attraverso un doc, sono riuscito a ripristinarne il contenuto , se cerchi su
google openprom-fix dovresti trovarlo

No non credo, prima avevo una openboot 3.10.8 e non funzionava.
Ora l'ho aggiornata ad 3.10.10, ed è rimasto lo stesso tipo di errore...

Ho reperito un'altro particolare dal vecchio proprietario...
Questo afferma che in origine questa macchina aveva 128 Mbyte, poi, per sue
necessità l'aveva espansa a 512 (come è adesso), ma mi ha riferito che NON
ha settato niente sulla openboot, poichè la sparc ha riconosciuto
regolarmente la ram (infatti in fase di boot compare regolarmente 512 Mb ram
etc.etc.).
Puo' essere questa la causa ??? Forse và settata la quantità di ram in
qualche paramentro ?????

Intanto ti ringrazio di avermi risposto, e di volermi dedicare del tuo tempo
per aiutarmi con il kernel.
Allora, l'errore in questione che dici sia causato dal OpenBoot, viene
generato da qualsiasi kernel, che hp provato.
Nel messaggio, l'errore era generato dall' ultima SUSE 7.3 per Sparc, quindi
dovrebbe avere il kernel 2.4.10.
l' OpenBoot della mia macchina v. 3.10.10, per cui non dovrebbe essere tanto
vecchia.
Questo invece è il messaggio di errore generato da un floppy boot di debian
sun4u:
Uncompressing image...
pci_add_vma: Wheee, overlapping MEM PCI vma's
pci_add_vma: vp[0000000000000000:0000000000ffffff]
new[0000000000000000:00000000007fffff]
EBUS: fatal error, no range property.
Program Terminated
Ok.
grazie ancora

 averli, sennò l'è dura :)
Mai sentito parlare di sash, vero? ;)
Un Henryx e le soluzioni per tutto
-- 
Bilancia
Amore: siete mai stati a Lourdes?
	-- da Rat-Man num. 15