===== Frequently Asked Questions ===== Short answers to the questions most often asked about Linux on Alpha, with links to the pages that answer them in full. Terms are explained in the [[:glossary|Glossary]]. ==== Hardware and firmware ==== === Will a current distribution run on my Alpha? === Only if it has an EV56 (21164A) or later processor. Linux 6.10 removed support for the EV4, EV45, and EV5 generations, so systems such as the Multia, AlphaStation 200 and 400, and the EB164 can run nothing newer than Linux 6.9, and no current distribution. Systems sold with an EV5 that also accept an EV56, such as the AlphaStation 500 and 600, work once the processor is upgraded. [(>[[https://git.kernel.org/torvalds/c/a4184174be36|"alpha: drop pre-EV56 support"]], Linux 6.10)] See [[status#processor_baseline|Current Status]], and the current kernel column of the [[hardware:systems|Systems]] table. === Which firmware does my system need? === For Linux, the [[software:firmware:srm|SRM console]], wherever the system has it. The ARC and AlphaBIOS firmware were written for Windows NT, and boot Linux only through [[software:boot_loaders:milo|MILO]], which no distribution has shipped for many years. SRM boots Linux with [[software:boot_loaders:aboot|aboot]], the boot loader that current distributions install, and it is the only firmware that can boot Linux on multiprocessor systems. Every 21264 system has it. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1998-July.mbox#L37024|"Re: SMP for AlphaServer?"]], Jay Estabrook, axp-list, 14 Jul 1998)] * **Systems with only SRM**, such as the AlphaServers, need nothing further. Update to the last SRM version; see [[software:firmware:srm#final_versions|Final versions]]. * **Systems with both**, such as the Personal Workstation, the AlphaStation 500 and 600, and the 21264 workstations and servers, should be switched to SRM. See [[software:firmware:arc#switching_to_srm|Switching to SRM]]. * **Systems whose flash holds only one firmware**, such as the AlphaPC 164LX and 164SX sold with AlphaBIOS, can be reflashed with SRM. See [[software:firmware:srm#updating_firmware|Updating firmware]]. * **Systems with no SRM**, the Alpha XL 366 and 433 (XLT), the AlphaPC 164UX (Ruffian), and the AlphaPC 164RX, can only boot Linux with MILO, and no current kernel has yet been reported booting through it. See [[documentation:installation#arc-only_systems|ARC-only systems]] and [[software:boot_loaders:milo|MILO]]. === Which Alpha should I get? === For a current distribution, a system with an EV56 (21164A) or later processor and an SRM console. The single-processor 21264 systems, the AlphaServer DS10 and DS15 and the AlphaStation XP1000, are the most practical; the multiprocessor servers are faster but power-hungry. See [[hardware:systems#choosing_a_system_today|Systems: Choosing a system today]]. === Are multiprocessor systems supported? === Yes, with an SMP kernel booted from SRM. MILO does not support multiprocessor systems. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1998-July.mbox#L37024|"Re: SMP for AlphaServer?"]], Jay Estabrook, axp-list, 14 Jul 1998)] See [[status#hardware|Current Status: Hardware]]. === Does X work, and which graphics cards? === ATI Radeon cards with the kernel's ''radeon'' modesetting driver are the only graphics cards known to work with current X.Org on Alpha. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/debian-alpha-mbox/2016-April.mbox#L636|"Re: Multia state of support"]], Michael Cree, debian-alpha, 3 Apr 2016)] The firmware must also be able to initialize the card; see [[hardware:other#graphics|Other Hardware: Graphics]]. === Is there a desktop and a web browser? === Debian Ports has packages for Xfce, MATE, LXQt, and LXDE and for the NetSurf, Dillo, and Epiphany browsers, but there is no Firefox or Chromium for Alpha. [(>[[https://deb.debian.org/debian-ports/dists/unstable/main/binary-alpha/|debian-ports unstable binary-alpha Packages]], deb.debian.org, 23 Sep 2026)] See [[status#desktop_use|Current Status: Desktop use]]. === My system forgets its settings and the time when it is unplugged === The console settings and the clock are kept in memory backed by a battery on the motherboard, and after twenty or more years that battery is usually dead. Replace it. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2010-August.mbox#L757|"Minifridge"]], Jay Estabrook, axp-list, 20 Aug 2010)] See [[hardware:systems#common_problems|Systems: Common problems]]. === How do I get a serial console? === ''set console serial'' and ''init'' at the SRM prompt, and ''console=ttyS0'' on the kernel command line. Both are needed. The ES47, ES80, and GS1280 need ''console=srm'' instead of ''console=ttyS0''. See [[documentation:srm#serial_console|Using the SRM Console]]. === Can I try Alpha/Linux without Alpha hardware? === Yes, with QEMU, which emulates an ES40-class system and runs current Debian and Gentoo. See [[documentation:qemu|QEMU]]. ==== Installing and booting ==== === How do I install a distribution? === Update the SRM firmware, set up a serial console, partition the disk with a BSD disklabel, and boot the distribution's install CD from SRM. [[documentation:installation|Installation]] describes each step, and [[:distributions|Distributions]] lists the current distributions and their install media. === Why can't fdisk create a partition table SRM will boot? === SRM needs a BSD disklabel, and ''fdisk'' from util-linux cannot create one. Use ''parted'' with ''mktable bsd''. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/gentoo-alpha-mbox/2024-April.mbox#L85|"Re: [gentoo-alpha] fdisk on mini-installer iso"]], Matt Turner, gentoo-alpha, 8 Apr 2024)] See [[documentation:installation#partitioning|Installation: Partitioning]]. === Will a distribution kernel boot my DS25, ES45, or ES47? === Debian's kernel is built for them: it is built without ''CONFIG_ALPHA_LEGACY_START_ADDRESS'', as the Titan, Wildfire, and Marvel systems require, and its installer uses the same kernel. [(>[[https://salsa.debian.org/kernel-team/linux/-/blob/debian/7.2/forky/debian/config/alpha/defines.toml|debian/config/alpha/defines.toml]], Debian linux 7.2.7-1)] Gentoo's minimal install CD boots a kernel built with the option by default, but also carries ''gentoo_nolsa'', built without it, which is booted with ''-flags 1'', or ''-flags 3'' for a serial console. Gentoo's ''gentoo-kernel'' package is built without the option. A kernel built from the kernel's own ''defconfig'' also has the option on. See [[documentation:installation#distribution_kernels|Installation: Distribution kernels]] and [[documentation:kernel#kernel_start_address|Kernel: Kernel start address]]. === aboot says "unknown compression method" === aboot tries to load the kernel uncompressed and then compressed, and prints this if both fail, whatever the actual cause. Usually the path or partition number is wrong. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2004-December.mbox#L2652|"New Red Hat 7.2 Alpha install on DEC PWS 600au"]], Jim McCarthy, axp-list, 11 Dec 2004)] Boot with ''-flags i'' and use aboot's ''d'' command to list the partition's contents. See [[software:boot_loaders:aboot#known_issues|aboot: Known issues]]. === The kernel panics with "Unsupported system type" === The kernel was configured for a different system. Use a generic kernel, or configure it for this system; see [[documentation:kernel#configuring_for_a_system|Kernel: Configuring for a system]]. ==== Running programs ==== === What do "unaligned trap" messages mean? === Messages such as dbus-daemon(366): unaligned trap at 0000020000080bf0: 00000000f6857c0e 28 18 mean that the program read or wrote a 2, 4, or 8 byte value at an address that was not a multiple of its size. Alpha cannot do that in hardware, so the kernel traps the access, performs it in software, and logs the message. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/debian-alpha-mbox/2021-March.mbox#L470|"Bug#986009: installation-reports: document qemu workarounds and bug in newer d-i image (fwd)"]], Thorsten Glaser, debian-alpha, 27 Mar 2021)] The program keeps running and gets the right result, but each such access is far slower than an aligned one. The message gives the program name and PID, the address of the faulting instruction, the data address, the opcode, and the register. The cause is almost always a bug in the program, typically a pointer cast from a ''char'' buffer to a wider type, and the same code is undefined behavior on every architecture. It should be reported to the program's developers. How to find the instruction and fix the code is described in [[documentation:porting:unaligned_access|Unaligned Access]]. === A program dies with "Floating point exception" === The program performed floating-point arithmetic that produced or used a NaN, an infinity, or a denormal, and was not compiled with ''-mieee''. Alpha handles these cases only with help from the compiler, which ''-mieee'' requests, and without it the processor raises ''SIGFPE''. Debian and Gentoo build with ''-mieee'' by default, [(>[[https://salsa.debian.org/toolchain-team/gcc/-/blob/master/debian/patches/alpha-ieee.diff|alpha-ieee.diff]], Debian GCC packaging)] [(>[[https://github.com/gentoo/gcc-patches/blob/master/17.0.0/gentoo/05_all_alpha-mieee-default.patch|05_all_alpha-mieee-default.patch]], Gentoo GCC patchset 17.0.0)] but upstream GCC does not, [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1997-May.mbox#L18387|"Re: log(-1) raises SIGFPE"]], Richard Henderson, axp-list, 14 May 1997)] so software built with another compiler or with explicit flags may lack it. See [[documentation:porting:floating_point|Floating Point]]. === Linking fails with "relocation truncated to fit" === Alpha code addresses global data through the global pointer with a 16-bit displacement, which limits some tables to 64 KiB. The error appears when one of them overflows: [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1996-November.mbox#L43360|"ld reports 'relocation truncated to fit'"]], Topi Kanerva, axp-list, 24 Nov 1996)] * In a shared library, the usual cause is that it was compiled with ''-fpic'', which on Alpha implies ''-msmall-data''. Compile with ''-fPIC'' instead, which implies ''-mlarge-data''. [(>[[https://gcc.gnu.org/onlinedocs/gcc/DEC-Alpha-Options.html|DEC Alpha Options]], GCC manual)] * In a program compiled with ''-msmall-data'', drop the option. * In a large kernel module, build the driver into the kernel instead. See [[documentation:toolchains#relocation_truncated_to_fit|Toolchains]] for the details. === A program dies with "Illegal instruction" === The program was built for a newer processor than the one running it: for example, code built with ''-mcpu=ev67'' on a 21164A, which lacks the FIX and CIX instructions. Rebuild with a lower ''-mcpu''; see [[documentation:toolchains#selecting_a_processor|Toolchains: Selecting a processor]]. The [[documentation:amask|amask]] instruction shows which extensions the processor implements. === A program cannot find libc.so.6 === Alpha's C library is ''libc.so.6.1''. Code that hard-codes ''libc.so.6'', for example in a ''dlopen()'' call or in a language's foreign function interface, fails on Alpha. See [[documentation:porting:libc_soname|Why Alpha Has libc.so.6.1]]. === What page size does Alpha use? === 8 KiB, and the kernel has no other option. [(>[[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/alpha/Kconfig?h=v7.3-rc1|arch/alpha/Kconfig]], Linux 7.3)] Code that assumes 4096-byte pages fails on Alpha; the page size should be read with ''sysconf(_SC_PAGESIZE)''. See [[documentation:porting:abi#page_size|Linux ABI Differences: Page size]]. === Why is a program built with long double so slow? === ''long double'' is the 128-bit IEEE quadruple format on Alpha, and every operation on it is a library call. See [[documentation:porting:abi#long_double|Linux ABI Differences]]. === Is there Clang, Rust, or Go for Alpha? === No Clang, and no ''rustc'', because LLVM has no Alpha back end. Alpha support is being worked on in rustc_codegen_gcc, a GCC back end for ''rustc''. [(>[[https://github.com/rust-lang/rustc_codegen_gcc/issues/742|"DEC Alpha support"]], rustc_codegen_gcc issue #742)] ''gccgo'' builds Go code, but its library is that of Go 1.18, so software that needs a newer Go release does not build with it. [(>[[https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libgo/VERSION|libgo/VERSION]], GCC)] See [[status#what_is_missing|Current Status]]. ==== Getting help ==== === Where can I ask a question? === On the linux-alpha mailing list, in **#alpha** on Libera.Chat, in the alphalinux organization's [[https://github.com/orgs/alphalinux/discussions|GitHub Discussions]], or on a distribution's own Alpha list. See [[:community|Community]]. Report bugs to the affected project; see [[tasks:bugs|Bugs]]. {{tag>faq}}