This FAQ is intended to answer some of the most frequently asked questions relating to Alpha on Gentoo and Alpha on Linux in general.
- 1 はじめに
- 2 About the Alpha Project
- 3 Alpha アーキテクチャ
- 4 ハードウェア
- 5 Alpha 特有のコンパイラーフラグ
- 5.1 Alpha に推奨されるコンパイラーフラグは何ですか？
- 5.2 How do I optimize for a specific instruction set and scheduling model?
- 5.3 How do I specify the scheduling model without changing the instruction set?
- 5.4 How do I enable software assisted floating point numbers?
- 5.5 How do I specify the memory latency of my system?
- 5.6 How do I specify that static data should be placed in the small data area?
- 5.7 How do I specify that object code should be placed in the small text area?
- 5.8 What do I do if any of these compiler flags cause a compile, linker, or runtime error?
- 6 Alpha Booting and Bootloaders
- 7 ソフトウェア
- 8 Alpha Linux カーネル
- 9 どのカーネルソースを利用すべきですか？
- 10 バージョン 2.6 系のカーネルは Alpha SMP をサポートしていますか？
- 11 Helping out the Alpha project
- 12 トラブルシューティング
- 13 その他の情報
この文書は、Gentoo/Alpha および Alpha/Linux に関する特によくある質問に答えており、初心者と経験者の両方に宛てられているものです。
About the Alpha Project
What is Alpha?
The Alpha project is responsible for keeping the Gentoo distribution updated and current for the Alpha platform. This primarily includes keywording packages, porting software, and making new releases. The Alpha project aims to provide a usable environment for both desktops and servers.
Kind of, yes. HP stopped taking orders for new Alpha systems on April 27, 2007. and for Alpha options and upgrades on April 25, 2008.
いいえ。Alpha システムは純粋な 64 ビットのカーネル及びユーザーランドを使用します。gcc に
-m32 コンパイラフラグを与えて 32 ビットコードを出力させることですら、不可能です。
Alpha システムは、リトルエンディアンです。Alpha を用いたある巨大な Cray システムはビッグエンディアンでしたが、Linux は一切サポートしません。
Alpha 上で Linux/x86 アプリケーションを実行することはできますか?
No, not without a x86 emulator like qemu. In the past DEC/Compaq/HP maintained a program called
em86 which allowed Linux/x86 applications to be run on Linux/Alpha systems. However, the program is closed source and no longer maintained upstream. There are no
em86 binaries available that are compatible with gcc-3's ABI.
なぜ Alpha に Gentoo をインストールするのでしょうか?
Admittedly, you can find faster 64-bit systems out there, like amd64. However, that doesn't mean that Alpha systems are useless. The following are a few good reasons why you'd want to install Linux on this sort of hardware:
- You can turn an old computer into something useful. Older Alphas make great routers and servers. Their desktop performance isn't that bad either.
- You will learn about unusual computer hardware.
- It's cool. How many people can say they've got Linux running on an Alpha?
どうしたら Alpha ハードウェアを購入することができますか？
一般的に、地元のコンピューター店では売られていません。eBay は大概、良い選択肢です。しかし、送料が高額になってコストが見合わないと思われます。Google で検索するといくつかの機器販売業者が見つかりますが、その多くは費用が高額です。
Make sure the top panel of the case is on and properly in place. The middle of the top panel of the case has a small piece of metal oriented downwards. When the top panel is put back in place properly, the small piece of metal will press down on a switch. When the switch isn't pressed down, the system will refuse to power on.
As with all compiler optimizations, don't over do it. Use these flags with care and they will give you a stable, speedy system; use them too aggressively and you could seriously break your system. When in doubt, leave it out. If you need further clarification, check the
gcc man page.
How do I optimize for a specific instruction set and scheduling model?
You can optimize for a specific instruction set and scheduling model with
-mcpu=XXX, where XXX is your cpu type. Valid cpu types are
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.
AlphaServer 800 users should set
ev5. There are known issues setting
ev56particularly 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
-mtune= is implied by
-mcpu=, so you don't need to specify this with if you set
-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.
Alpha Booting and Bootloaders
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.
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.
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?
aboot only supports booting kernels from
ext3 partitions. You may still use other files systems for your root partition, you just need to create a /boot partition with either
ext3 on it.
How is Java support in Alpha?
Compaq/HP offered binary packages, called
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?
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 カーネル
We recommend using
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.
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.
バージョン 2.6 系のカーネルは 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
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
- 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.
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.
Gentoo フォーラムに Alpha がないのはなぜですか？
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 email@example.com 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.