Alpha/FAQ (Domande frequenti)

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Alpha/FAQ and the translation is 45% complete.

Other languages:
English • ‎italiano • ‎日本語 • ‎한국어 • ‎polski • ‎русский • ‎中文(中国大陆)‎

Queste FAQ vogliono rispondere ad alcune delle domande più frequenti riguardo a Gentoo e Linux in generale.

Contents

Introduzione

Questo documento contiene risposte ad alcune delle domande più frequenti riguardo a Gentoo/Alpha e Linux/Alpha. E' indicato sia per utenti esperti che novizi.

Riguardo il progetto Alpha

Cos'è Alpha?

Il progetto Alpha è responsabile del mantenimento della distribuzione Gentoo su piattaforme Alpha. Questo include prima di tutto l'amministrazione delle Keyword dei pacchetti, il porting del software e fare nuovi rilasci. Il progetto Alpha mira a fornire un ambiente utilizzabile sia per desktop che per server.

L'Architettura Alpha

Ma l'architettura Alpha non è morta?

Da un certo punto di vista, sì. HP ha interrotto la possibilità di fare ordini per nuovi sistemi Alpha il 27 Aprile 2007 e gli aggiornamenti il 25 Aprile 2008.

Posso farci girare applicazioni a 32 bit?

No, tutti i sistemi Alpha usano un kernel a 64 bit "puri" ed uno userland analogo. Non potete nemmeno forzare gcc in output utilizzando la flag del compilatore -m32.

Alpha è big endian o little endian?

I sistemi Alpha sono little endian. Un grande sistema Cray con Alpha fu big endian, ma Linux non lo supporterà mai.

Posso far girare applicazioni Linux/x86 su Alpha?

No, non senza un emulatore come qemu. In passato DEC/Compaq/HP manteneva un programma chiamato em86 che permetteva alle applicazioni Linux/x86 di girare su sistemi Linux/Alpha. Comunque, il programma è proprietario e non più mantenuto. Non ci sono binari em86 disponibili che siano compatibili con le ABI di gcc-3.

Perchè installare Gentoo su Alpha?

A dire il vero, potete trovare sistemi a 64 bit più veloci, come amd64. Comunque, questo non significa che i sistemi Alpha sia inutili. Le seguenti sono alcune buone ragioni per installare Linux su questo tipo di hardware:

  • Potete trasformare un vecchio computer in qualcosa di utile. I vecchi sistemi Alpha sono ottimi server e/o router. Nemmeno le loro prestazioni come desktop sono male.
  • Imparerete qualcosa di inconsueto riguardo all'hardware.
  • E' figo. Quante persone possono dire di avere una Linux che gira su Alpha?

Dove posso comprare dell'hardware Alpha?

L'hardware Alpha solitamente non è disponibile nel negozio vicino casa. eBay di solito è una buona opzione, sempre ammesso che le spedizioni non vi costino troppo. Ci sono diversi rivenditori di usato rintracciabili via Google, anche se molti di loro ricaricano troppo sul prezzo.

Hardware

Ho aperto il case di un AlphaServer ed ora non si accende, che faccio?

Assicuratevi che il pannello superiore sia insertito ed in posizione corretta. Il centro del case ha un piccolo pezzo di metallo a faccia in giù. Quando il pannello superiore è rimesso in sede in modo appropriato, il pezzo di metallo premerà su un interruttore. Se l'interruttore non è tenuto giù, il sistema si rifiuterà di partire.

Flag di compilazione specifiche per Alpha

L'utilizzo di flag di compilazione specifiche per Alpha è raccomandato?

Come per tutte le ottimizzazioni di compilazione, non abusatene. Utilizzare queste flag con cura e queste vi daranno un sistema stabile e veloce; un uso troppo aggressivo può portare invece a seri problemi. Quando siete in dubbio, lasciate stare. Se avete bisogno di maggiori chiarimenti, controllate la pagina man di gcc.

Come faccio l'ottimizzazione per uno specifico set di istruzioni e modello di scheduling?

Potete ottimizzare per uno specifico set di istruzioni e scheduling model con -mcpu=XXX, dove XXX è il vostro tipo di CPU. Tipi di CPU validi sono ev4, ev45, ev5, ev56, pca56, ev6 and ev67. Se non utilizzate la flag -mcpu=XXX, allora gcc utilizzerà per default il tipo di CPU della macchina sulla quale è stato compilato. -mcpu= è equivalente alla flag -march= su x86.

Note
Gli utenti di AlphaServer 800 dovrebbero utilizzare ev5. Ci sono alcune issue conosciute con ev56, in particolare con Xorg che causa una blocco totale del sistema.

Come specifico un modello di scheduling senza modificare il set di istruzioni?

Potete specificare un modello di scheduling senza modificare il set di istruzioni con -mtune=XXX, dove XXX è il vostro modello di CPU. Modelli di CPU validi sono ev4, ev45, ev5, ev56, pca56, ev6 ed ev67. La flag -mtune= è automaticamente inclusa da -mcpu=, quindi non è necessario specificarla se viene settato -mcpu=. -mtune= è l'equivalente della flag -mcpu= su x86.

Come abilito i numeri in virgola mobile "con assistenza software"?

E' possibile abilitare i numeri in virgola mobile con assistenza software utilizzando -mieee. Questo abiliterà l'assistenza software per supportare correttamente numeri de-normalizzatati e valori IEEE eccezionali come "non-numeri" e più/meno infinito.

Questo dovrebbe essere inserito nelle CFLAGS globali, a meno che non sappiate veramente cosa state facendo.

Come specifico la latenza di memoria per il mio sistema?

Potete specificare la latenza di memoria con -mmemory-latency=XXX, dove XXX è il numero di cicli di clock. Questo imposta il tempo di latenza che lo scheduler dovrebbe assumere per riferirsi alla memoria. Il compilatore gcc ha alcuni valori "tipici" predefiniti, anch'essi accettati 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 specifico 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 da 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 avrà la precedenza su -msmall-data, quindi dovreste utilizzare la flag -fpic se non volete che -msmall-data venga ignorata.

Questa flag non dovrebbe essere utilizzata nelle vostre CFLAGS globali, dato che alcuni oggetti richiedono più di 64KiB per essere memorizzati e questo causa errori di tipo ld gp_overflow.

Come specifico che il codice oggetto dovrebbe essere posto nell'area small text?

You can specify that object code should be placed in the small text area with -msmall-text. This will cause gcc to assume that the entire program (or library) fits in 4MB, and is thus reachable with a branch instruction. This reduces the number of instructions required for a function call from 4 to 1.

This flag should probably not be used in your global CFLAGS as some programs (or libraries) are larger than 4MB, and this will cause an ld error.

What do I do if any of these compiler flags cause a compile, linker, or runtime error?

As CFLAGS, please use these CFLAGS cautiously. They may break your system. If you experience problems, try using less aggressive CFLAGS before bugs.

Alpha Booting and Bootloaders

What is SRM?

SRM is based on the Alpha Console Subsystem specification, which provides an operating environment for OpenVMS, Tru64 UNIX, and Linux operating systems. See the SRM Howto for more information about SRM.

What is ARC?

ARC is based on the Advanced RISC Computing (ARC) specification, which provides an operating environment for Windows NT.

How can I tell if which firmware my Alpha has, ARC or SRM?

When you power your system on you will see a screen with a blue background and white text if it is using SRM. You will see a graphical boot system if it is using ARC.

Which bootloader do I use?

If your Alpha system supports SRM, then you should use aboot. If your system supports both SRM and ARCs (ARC, AlphaBIOS, ARCSBIOS), then you should follow the SRM Firmware Howto for switching to SRM and use aboot. If your system can only use ARCs (Ruffian, xl, etc.) then you will need to choose milo.

Can aboot boot kernels from EXT4, XFS, ReiserFS, or JFS partitions?

No, aboot only supports booting kernels from ext2 and ext3 partitions. You may still use other files systems for your root partition, you just need to create a /boot partition with either ext2 or ext3 on it.

Support for ext4 is planned. In fact, there are patches floating around that add support for ReiserFS, XFS, and ext4.

Software

How is Java support in Alpha?

Compaq/HP offered binary packages, called compaq-jre and compaq-jdk. They stopped all support, and the packages were removed from Gentoo on October 11, 2006. Since then, we haven't supported Java.

Will there ever be working Java support?

It's possible to use icedtea on Alpha, but we have no plans to support it, due to the high maintenance costs involved with testing hundreds of additional packages.

How is .NET support in Alpha?

Neither of the two main open source efforts, mono nor DotGNU, support the alpha architecture.

What is needed for .NET support?

Bringing .NET to Alpha isn't a simple task. It requires coding all of the assembly language code generation macros for the JIT (just in time) compiler and coding architecture specific functions (register allocators, etc).

Alpha Linux Kernel

Which kernel sources should I use?

We recommend using gentoo-sources but vanilla-sources is also supported by Alpha. You should read the Gentoo Kernel Guide to determine which one is right for your needs.

My system is broken with kernel-2.6, Can I build a 2.4 based system?

Alpha stopped supporting 2.4 kernel and profile in January 2008. Technically you can build a 2.4 Gentoo System (the kernel is in the tree) but you will have to mask all the 2.6 only packages by yourself and you won't have support from developers.

Alpha will review all bug reports about non-working 2.6 systems and will try to help as much as we can.

Are hardened-sources supported?

Short answer is no. They were supported some time ago, but we lost the hardware and the maintainer so now they are not supported. If you are interested and want to continue the initial work, please let us know.

Does the 2.6 kernel support Alpha SMP?

There were some times in the past when it was broken. However, modern kernel versions are known to work well.

Helping out the Alpha project

How do I report bugs?

If you find a bug or you want to send us patches, then you need to file a bug report. It only takes you a little bit of your time, and your help is really appreciated. Please follow the Gentoo Bug Reporting Guide.

How can I help the Alpha project?

Users can help us by:

  • Filing clear and concise bugs.
  • Testing software that does not yet have the ~alpha keyword.
  • Answering questions on the mailing lists, forum and IRC channel.
  • Sending patches
  • Becoming an AT

Is there an Alpha arch testers project?

Yes, see the Alpha arch testers project page for details.

Troubleshooting

Why is Xorg locking up my Alpha?

This is usually caused by a bad -mcpu setting. For example, the AlphaServer 800 needs to be compiled with the ev5 flag for xorg and glibc. Failing to do so will cause undesired results.

Other Resources

Why is there no Gentoo on Alpha forum?

On the Gentoo Forums there are several arch specific categories like Gentoo on PPC and Gentoo on Sparc. There is no Gentoo on Alpha category because there simply isn't enough Alpha activity on the forums to warrant one. All Alpha related posts should go in the Gentoo on Alternative Architectures category.

Where can I get more help or information about Alpha?

If any of your questions weren't answered here, you can try other resources like the Alpha Handbook or our project homepage. You can also ask us at #gentoo-alpha on irc.freenode.net, Gentoo on Alternative Architectures Forum, or on the gentoo-alpha@lists.gentoo.org mailing list.

Where can I get more help or information about Alpha on Linux?

AlphaLinux.org is a central repository for all things Alpha/Linux.
This article is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Thomas Cort, Brian Evans, nightmorph, Matt Turner
They are listed here as the Wiki history does not allow for any external attribution. If you edit the Wiki article, please do not add yourself here; your contributions are recorded on the history page.