Gentoo Linux/Alpha: Domande frequenti (FAQ)
1.
Riguardo a questo documento
Introduzione
Questo documento contiene risposte alle domande più comuni riguardanti
Gentoo/Alpha e Alpha/Linux. È rivolto sia ai nuovi utenti sia a quelli esperti.
Il Progetto Gentoo/Alpha
L'architettura Alpha
Hardware
Flag di compilazione specifiche per Alpha
Avvio e bootloader Alpha
Software
Alpha Linux Kernel
Aiutare il progetto Gentoo/Alpha
Risoluzione dei Problemi
Altre risorse
2.
Il Progetto Gentoo/Alpha
Che cos'è Gentoo/Alpha?
Il progetto Gentoo/Alpha è responsabile di mantenere aggiornata la distribuzione
Gentoo per la piattaforma Alpha. In primo luogo ciò implica apporre le keyword,
effettuare il porting del software, e creare nuove release. Il progetto
Gentoo/Alpha mira a fornire un ambiente utilizzabile sia per desktop che per
server.
Qual è lo stato attuale del progetto Gentoo/Alpha?
E' possibile conoscere lo stato attuale del progetto Gentoo/Alpha nei nostri
status report. Questi report mirano a tenere informato il pubblico su cosa si
sta facendo. Nuovi status report su Gentoo/Alpha verranno postati circa ogni 6
mesi. Status report passati e presenti possono essere trovati nella Status Reports Project page.
3.
L'architettura Alpha
L'architettura Alpha non è morta?
Non del tutto! HP ha terminato l'accettazione di ordini per nuovi sistemi Alpha
il 27 aprile 2007. Accetterà invece ordini e per aggiornamenti e opzioni Alpha
fino al 25 Aprile 2008. Vedere la loro pagina di
pianificazione per maggiori dettagli.
Posso eseguire applicazioni a 32 bit?
No, tutti i sistemi Alpha utilizzano un kernel puro a 64 bit ed un ambiente a
64 bit altrettanto puro. Non si può neanche forzare gcc ad emettere codice a
32 bit usando la flag di compilazione -m32.
Alpha è big endian o little endian?
Tutti i sistemi Alpha supportano sia little che big endian. Tuttavia, Linux
usa solo little endian.
Posso far girare applicazioni Linux/x86 su Alpha?
No, non senza un emulatore completo di un sistema x86, come bochs. In passato DEC/Compaq/HP
mantenevano un programma chiamato em86, che consentiva di far girare
applicazioni Linux/x86 sui sistemi Linux/Alpha. Tuttavia, il programma è a
sorgente chiuso e non è più mantenuto. Non esistono binari em86 che siano
compatibili con l'ABI di gcc3.
Perchè installare Gentoo su Alpha?
Effettivamente, esistono sistemi a 64 bit più veloci, come amd64. Tuttavia,
questo non significa che i sistemi Alpha siano inutili. Ecco alcune buone
ragioni per cui si potrebbe installare Linux su questo tipo di hardware:
-
Si potrebbe trasformare un vecchio computer in qualcosa di utile. Gli Alpha
più vecchi sono eccellenti sia come router che come server. Neanche le loro
prestazioni come desktop sono poi tanto male.
- Si avrà la possibilità di imparare riguardo ad un hardware inusuale.
-
E' bello. Quante persone possono dire di avere Linux che gira su un Alpha?
Dove posso acquistare hardware Alpha?
Generalmente l'hardware Alpha non è disponibile nei negozi di computer. Se si
desidera un sistema Alpha nuovo, è necessario contattare l'HP. Se si desidera un Alpha
usato (più economico), eBay di solito è una
buona opzione, sempre che le spese di spedizione non siano troppo alte. Ci sono
diversi altri rivenditori che possono essere trovati attraverso Google, ma la
maggior parte di essi hanno prezzi troppo alti.
4.
Hardware
Ho aperto il case di un AlphaServer e ora non vuole accendersi, cosa
fare?
Bisogna assicurarsi che il pannello superiore del case sia a posto e
opportunamente collocato. La parte centrale della pannello superiore ha un
piccolo pezzo di metallo orientato verso il basso. Quando il pannello superiore
viene ricollocato nella propria sede in maniera opportuna, il piccolo pezzo di
metallo preme un interruttore. Se l'interruttore in questione non risulta
premuto il sistema rifiuterà di accendersi.
5.
Flag di compilazione specifiche per Alpha
L'uso di flag di compilazione specifiche per Alpha è
raccomandato?
Come per tutte le ottimizzazioni, è bene non esagerare. Se si usano queste flag
con attenzione si avrà un sistema stabile e veloce; utilizzandole con troppa
aggressività si potrebbe danneggiare seriamente il proprio sistema. Se si è in
dubbio, è meglio lasciare perdere. Per maggiori informazioni, è opportuno
consultare la pagina man di gcc.
Come ottimizzare per uno specifico set di istruzioni e per uno specifico
modello di programmazione?
Si può ottimizzare per uno specifico set di istruzioni e per uno specifico
modello di programmazione con -mcpu=XXX, dove XXX è il tipo di CPU. Tipi
validi di cpu sono ev4, ev45, ev5, ev56,
pca56, ev6 e ev67. Se non si utilizza il flag
-mcpu=XXX, gcc userà in modo predefinito il tipo di cpu su cui è
stato compilato. -mcpu= equivale alla flag -march= sui sistemi
x86.
Nota:
Gli utenti che usano AlphaServer 800 dovrebbero impostare ev5. Vi è un
problema noto nell'impostare ev56, soprattutto con Xorg che causa un
completo blocco del sistema.
|
Come specificare il modello di programmazione senza cambiare il set di
istruzioni?
Si può specificare il modello di programmazione senza cambiare il set di
istruzioni con -mtune=XXX, dove XXX è il tipo di CPU. Validi tipi di cpu
sono ev4, ev45, ev5, ev56, pca56, ev6
e ev67. -mtune= è sottinteso da -mcpu=, quindi non serve
specificare questo flag se si ha già impostato -mcpu=. -mtune=
equivale al flag -mcpu= sui sistemi x86.
Come abilitare i numeri in virgola mobile assistiti dal software?
E' possibile abilitare i numeri in virgola mobile assistiti dal software con
-mieee. Questo attiverà l'assistenza software per supportare
correttamente numeri denormalizzati e valori IEEE eccezionali, come un "non
numero" o un più/meno infinito.
Questa flag dovrebbe stare nelle CFLAGS globali, a meno che non si sia
veramente sicuri ciò che si sta facendo.
Come specificare la latenza della memoria del mio sistema?
E' possibile specificare la latenza della memoria del sistema con
-mmemory-latency=XXX, dove XXX è il numero dei cicli di clock. Questa
flag imposta il periodo di latenza che lo scheduler dovrebbe assumere per le
referenze di memoria. gcc ha alcuni valori "tipici" predefiniti, che sono
accettati anche da -mmemory-latency=XXX. Questi valori sono L1 per
Dcache, L2 per Scache, L3 per Bcache, e main per la memoria
principale.
Questa flag probabilmente non dovrebbe essere presente nelle CFLAGS
globali, dato che il valore da scegliere dipende molto dal tipo di accesso
alla memoria richiesto dall'applicazione che si sta compilando.
Come specificare che i dati statici dovrebbero essere posti nell'area
small data?
E' possibile specificare che i dati statici dovrebbero essere posti nell'area
small data con -msmall-data. Questo farà si che gcc tragga
vantaggio di alcune caratteristiche dell'architettura Alpha salvando i dati
molto utilizzati in sezioni specifiche chiamate sezioni di small memory. Queste
sezioni sono limitate a 64kb, il che significa che accedere a qualunque cosa vi
sia stata salvata richiederà una sola istruzione.
-fPIC ha la precedenza su -msmall-data, quindi bisognerebbe
utilizzare la flag -fpic se non si vuole che -msmall-data sia
ignorato.
Questa flag probabilmente non dovrebbe essere usata nelle CFLAGS globali,
dato che alcuni oggetti necessitano di più di 64kb per essere salvati, e questo
causerebbe un errore ld gp_overflow.
Come specificare che il codice oggetto dovrebbe essere posto nell'area
small text?
È possibile specificare che il codice oggetto dovrebbe essere posto nell'area
small text con -msmall-text. Questo farà si che gcc presupponga
che l'intero programma (o libreria) entri in 4MB, e sia quindi raggiungibile con
una branch instruction. Questo riduce il numero di istruzioni richieste per una
chiamata di funzione da 4 a 1.
Questa flag probabilmente non dovrebbe essere usata nelle CFLAGS globali,
dato che alcuni programmi (o librerie) sono più grandi di 4MB, e questo
causerebbe un errore ld.
Cosa fare se una di queste flag di compilazione causa un errore di
compilazione, di collegamento o di esecuzione?
Come già menzionato, è opportuno utilizzare queste
CFLAGS con cautela. Esse possono danneggiare il sistema. Se si notano
problemi, è bene provare ad usare CFLAGS meno aggressive prima di
segnalare un bug.
6.
Avvio e bootloader Alpha
Che cos'è SRM?
SRM è basato su Alpha Console Subsystem, che fornisce un ambiente operativo per
i sistemi operativi OpenVMS, Tru64 UNIX, e Linux. Vedi l' SRM Howto per maggiori
informazioni su SRM.
Che cos'è ARC?
ARC è basato su Advanced RISC Computing (ARC), che fornisce un ambiente
operativo per Windows NT.
Come sapere quale tipo di firmware ha la mia macchina Alpha: ARC o
SRM?
Se si sta usando SRM, all'accensione del sistema si vedrà apparire una schermata
con sfondo blu e testo bianco. Se si sta usando ARC invece, si vedra apparire un
sistema di boot grafico.
Quale bootloader usare?
Se il sistema Alpha supporta SRM, bisognerebbe usare aboot. Se il sistema
supporta sia SRM sia gli ARC (ARC, AlphaBIOS, ARCSBIOS), sarebbe opportuno
seguire the SRM Firmware
Howto per passare a SRM e usare aboot. Se il sistema utilizza solo
gli ARC (Ruffian, nautilus, xl, etc.) bisogna scegliere milo.
Aboot è in grado di avviare kernel da partizioni xfs, reiserfs, o
jfs?
No, aboot suppporta l'avvio di kernel solo da partizioni ext2 e
ext3. Per la propria partizione di root si possono tranquillamente
utilizzare altri file system, a patto di creare una partizione per
/boot formattata con i file system ext2 o ext3.
E' pianificato il supporto per reiserfs e xfs. Infatti sono disponibili patch
che aggiungono il supporto per questi due file system. Tuttavia l'uso di tali
patch non è supportato.
7.
Software
Com'è il supporto Java su Gentoo/Alpha?
C'è una sola opzione per Java VM e Java SDK su Gentoo/Alpha. I pacchetti si
chiamavano compaq-jre e compaq-jdk. Purtroppo Compaq/HP ha
terminato qualsiasi tipo di supporto ed è stato rimosso da Gentoo l'11 Ottobre
2006.
Ci sarà mai un supporto Java funzionante?
Lo speriamo veramente. Stiamo seguendo lo sviluppo di jdk da SableVM. Non è ancora pronto, ma speriamo che
con il tempo si potrà avere un jdk completamente nuovo.
Come è supportato .NET in Gentoo/Alpha?
Nessuno dei due principali progetti opensource,mono e DotGNU, supporta l'architettura
Alpha.
Cosa è necessario per il supporto a .NET?
Portare .NET su alpha non è un compito facile. Fare ciò implica riscrivere
tutte le macro di generazione di codice assembly per il compilatore JIT (just
in time) e scrivere funzioni specifiche per l'architettura (allocatore dei
registri, ecc).
8.
Alpha Linux Kernel
Quali sorgenti del kernel dovrei usare?
La raccomandazione è quella di usare i gentoo-sources ma anche i
vanilla-sources sono supportati da Gentoo/Alpha. Per capire quali tra
questi soddisfano le proprie necessità è possibile leggere la Guida ai Kernel Gentoo Linux.
Il mio sistema non funziona con un kernel 2.6. Posso utilizzare la
versione 2.4?
Il supporto di Gentoo/Alpha al kernel 2.4 è stato interrotto nel gennaio del
2008. Tecnicamente è possibile costruire un sistema Gentoo basato sul kernel
2.4, il kernel è ancora nell'albero, ma è necessario mascherare manualmente
tutti i pacchetti relativi alla versione 2.6 e non si ha più a disposizione il
supporto da parte degli sviluppatori.
Gentoo/Alpha sta cercando di rivedere tutti i bug report relativi ai sistemi con
kernel 2.6 non funzionanti e sta cercando di offrire tutto il supporto che è
nelle proprie possibilità.
Gli hardened-sources sono supportati?
La risposta breve è no. Questo supporto era inizialmente presente, ma l'hardware
è stato abbandonato e i mantenitori hanno rinunciato e quindi gli
hardened-sources non sono più supportati. Se si ha interesse nel continuare il
lavoro già intrapreso per cortesia contattateci.
Il kernel 2.6 kernel supporta Alpha SMP?
In passato, alcune volte, tale supporto veniva meno. Tuttavia è noto che i
kernel 2.6.15.1 e 2.6.16.19 lavorano bene. Se si hanno problemi
con il supporto SMP e si vuole tale supporto, sarà necessario utilizzare una
delle versioni di kernel precedentemente citate oppure usare un kernel 2.4. Se
realmente si ha la necessità di utilizzare l'ultima versione del kernel 2.6 su
una SMP box e non vi interessa che solo uno dei processori sia utilizzato allora
è possibile configurare il kernel 2.6 senza il supporto per SMP.
9.
Aiutare il progetto Gentoo/Alpha
Come segnalare i bug?
Se si trova un bug o si vuole mandare delle patch, sarà necessario creare un
bug report. Richiede solo un momento, e l'aiuto di ognuno sarà molto apprezzato.
Per aprire un bug report seguire la Guida alla Segnalazione di Bug in
Gentoo.
Come aiutare il progetto Gentoo/Alpha?
Gli utenti possono aiutarci:
Esiste un progetto Alpha Arch Tester?
Sì, consultare la pagina Gentoo Linux Alpha
Arch Testers Project per ulteriori dettagli.
10.
Risoluzione dei Problemi
Come mai Xorg blocca Alpha?
Normalmente questo si verifica a causa dell'errata impostazione della flag
-mcpu. Ad esempio AlphaServer 800 richiede la compilazione con la flag
ev5 per xorg e glibc. Non fare ciò può portare a risultati
indesiderati.
11.
Altre risorse
Perchè non c'è un forum dedicato a Gentoo su Alpha?
Sui Forum di Gentoo ci sono diverse
categorie specifiche per architettura, come Gentoo su PPC e
Gentoo su Sparc.
Non c'è una categoria Gentoo su Alpha semplicemente perchè non c'è abbastanza
attività riguardante Gentoo/Alpha da garantirne una. Tutti i post relativi ad
Alpha dovrebbero andare nella categoria Gentoo su Architetture
Alternative.
Dove posso ottenere maggiori informazioni su Gentoo/Alpha?
Se qualche domanda non ha trovato risposta qui, si può tentare con altre
risorse, come il Manuale
Gentoo Linux Alpha o l'homepage del
nostro progetto. Si può anche chiedere nel canale #gentoo-alpha su
irc.freenode.net, sul Gentoo on Alternative
Architectures Forum, o sulla mailing list
gentoo-alpha@lists.gentoo.org.
Dove posso ottenere maggiori informazioni o aiuto su Alpha/Linux?
AlphaLinux.org è il repository centrale
per tutto ciò che riguarda Alpha/Linux.
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|