Alpha/FAQ

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


Diese FAQ ist dazu gedacht, einige der am häufigsten gestellten Fragen zu Alpha auf Gentoo und Alpha auf Linux im Allgemeinen zu beantworten.

Einleitung

Dieses Dokument enthält Antworten auf die am häufigsten gestellten Fragen zu Gentoo/Alpha und Alpha/Linux. Es richtet sich sowohl an neue Benutzer als auch an erfahrene Benutzer.

Über das Alpha-Projekt

Was ist Alpha?

Das Alpha-Projekt ist dafür verantwortlich, die Gentoo-Distribution für die Alpha-Plattform zu aktualisieren und auf dem neuesten Stand zu halten. Dies beinhaltet vor allem das keywording von Paketen, die Portierung von Software und die Erstellung neuer Versionen. Das Alpha-Projekt zielt darauf ab, eine benutzbare Umgebung sowohl für Desktops als auch für Server bereitzustellen.

Die Alpha-Architektur

Ist die Alpha-Architektur nicht tot?

Irgendwie schon, ja. HP hat die Annahme von Bestellungen für neue Alpha-Systeme am 27. April 2007 und für Alpha-Optionen und Upgrades am 25. April 2008 eingestellt.

Kann ich 32-Bit-Anwendungen ausführen?

Nein, alle Alpha-Systeme verwenden einen reinen 64-Bit-Kernel und ein reines 64-Bit-Userland. Sie können gcc nicht einmal dazu zwingen, 32-Bit-Code auszugeben, indem Sie das Compiler-Flag verwenden.

Ist Alpha Big Endian oder Little Endian?

Alpha-Systeme sind Little-Endian-Systeme. Ein großes Cray-System mit Alphas war Big Endian, aber Linux wird es nie unterstützen.

Kann ich Linux/x86-Anwendungen auf Alpha ausführen?

Nein, nicht ohne einen x86-Emulator wie QEMU. In der Vergangenheit unterhielten DEC/Compaq/HP ein Programm namens em86, mit dem Linux/x86-Anwendungen auf Linux/Alpha-Systemen ausgeführt werden konnten.

Warum Gentoo auf Alpha installieren?

Zugegeben, es gibt schnellere 64-Bit-Systeme, wie amd64. Das bedeutet jedoch nicht, dass Alpha-Systeme nutzlos sind. Im Folgenden finden Sie einige gute Gründe, warum Sie Linux auf dieser Art von Hardware installieren sollten:

  • Sie können einen alten Computer in etwas Nützliches verwandeln. Ältere Alphas eignen sich hervorragend als Router und Server. Ihre Desktop-Leistung ist auch nicht so schlecht.
  • Sie lernen etwas über ungewöhnliche Computerhardware.
  • Es ist cool. Wie viele Leute können sagen, dass sie Linux auf einem Alpha laufen haben.

Wo kann ich Alpha-Hardware kaufen?

Alpha-Hardware ist im Allgemeinen nicht in ihrem örtlichen Computerladen erhältlich. eBay ist in der Regel eine gute Option, vorausgesetzt, der Versand ist nicht zu teuer. Es gibt mehrere Händler fü gebrauchte Geräte, die über Google gefunden werden können, allerdings verlangen die meisten von ihnen zu viel.

Hardware

Ich habe das Gehäuse eines AlphaServers geöffnet und jetzt lässt er sich nicht mehr einschalten, was kann ich tun?

Vergewissern Sie sich, dass die obere Platte des Gehäuses aufgesetzt und richtig befestigt ist. In der Mitte der oberen Abdeckung des Gehäuses befindet sich ein kleines Metallstück, das nach unten zeigt. Wenn die obere Abdeckung wieder richtig aufgesetzt ist, drückt das kleine Metallstück auf einen Schalter. Wenn der Schalter nicht nach unten gedrückt wird, lässt sich das System nicht einschalten.

Alpha-spezifische Compiler-Flags

Wird die Verwendung von Alpha-spezifischen Compiler-Flags empfohlen?

Wie bei allen Compiler-Optimierungen sollten Sie es nicht übertreiben. Verwenden Sie diese Flags mit Bedacht, und Sie werden ein stabiles, schnelles System erhalten; verwenden Sie sie zu aggressiv, und Sie könnten ihr System ernsthaft beschädigen. Im Zweifelsfall lassen Sie sie einfach aus. Wenn Sie weitere Informationen benötigen, lesen Sie die gcc Manpage.

Wie kann ich für einen bestimmten Befehlssatz und ein bestimmtes Scheduling-Modell optimieren?

You can optimize for a specific instruction set and scheduling model with -mcpu=XXX, where XXX is your cpu type. Valid cpu types are ev4, ev45, ev5, ev56, pca56, ev6 and ev67. If you do not use the -mcpu=XXX flag, then gcc will default to the cpu type of the machine it was compiled on. -mcpu= is equivalent to the -march= flag on x86.

Notiz
AlphaServer 800 users should set ev5. There are known issues setting ev56 particularly with Xorg causing a full system lock up.

How do I specify the scheduling model without changing the instruction set?

You can specify the scheduling model without changing the instruction set with -mtune=XXX, where XXX is your cpu type. Valid cpu types are ev4, ev45, ev5, ev56, pca56, ev6 and ev67. -mtune= is implied by -mcpu=, so you don't need to specify this with if you set -mcpu=. -mtune= is equivalent to the -mcpu= flag on x86.

How do I enable software assisted floating point numbers?

You can enable software assisted floating point numbers with -mieee. This will enable software assistance to correctly support denormalized numbers and exceptional IEEE values such as not-a-number and plus/minus infinity.

This should be in your global CFLAGS unless you really know what you are doing.

How do I specify the memory latency of my system?

You can specify the memory latency of your system with -mmemory-latency=XXX, where XXX is the number of clock cycles. This sets the latency time that the scheduler should assume for memory references. gcc has some predefined "typical" values that are also accepted by -mmemory-latency=XXX. Those values are L1 for Dcache, L2 for Scache, L3 for Bcache, and main for main memory.

This flag should probably not be use in your global CFLAGS as the value you choose is highly dependent on the memory access pattern of the application you are compiling.

How do I specify that static data should be placed in the small data area?

You can specify that static data should be placed in the small data area with -msmall-data. This will cause gcc to take advantage of some features of the Alpha architecture by storing heavily used pieces of data in specific sections called the small memory sections. The sections are limited to 64KiB which means accessing anything stored in them will only take one instruction.

-fPIC will override-msmall-data, so you should use the-fpic flag instead if you do not want-msmall-data to be overridden.

This flag should probably not be used in your global CFLAGS as some objects require more than 64KiB to be stored, and this will cause a gp_overflow ld error.

How do I specify that object code should be placed in the small text area?

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 (webchat), 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 page 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 because 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 each article's associated history page.