What's currently in the Linux/Alpha SDK: There are several parts to the Linux/Alpha Software Developers' Kit. You do not need to download all of them; what you need depends on what you want to do. The parts of the SDK fall into several major categories: gzip documentation Cross-development tools Kernel sources Utility & Library sources File system templates Linux root filesystem ISP Alpha architecture simulator Following is an explanation of what is available in each category: GZIP All of the archives in this directory are compressed using "gzip". As a convenience, I have included gzip binaries for the following systems: File System ---- ------ intel_linux_gizp.tar Linux 386/486 alpha_osf_gzip.tar DEC OSF/1 Alpha risc_ultrix_gzip.tar DEC RISC/ULTRIX (MIPS) sparc_sunos_gzip.tar Sun SPARC running SunOS DOCUMENTATION Documentation, such as it is, is in the file doc.tar.gz. Right now it contains some short "howto" files relating to the use of the SDK. Download it and read it. It contians explanations you won't find anywhere else in the SDK. This file will be updated VERY frequently; if you didn't find something, check the latest version. If it STILL isn't there, then send me mail and we'll put it on the to-do list for the next spin of the documentation. CROSS-DEVELOPMENT TOOLS These are the tools that you need to build the Linux/Alpha software and to prepare it to be booted on the Alpha hardware. The cross-tools are based on version 2.6 of the Gnu C compiler (gcc 2.6), with configuration options and modifications for the 32-bit Linux/Alpha environment. Also included in the cross-tools suite are: the Gnu Assembler (gas), the Gnu debugger (gdb), the Gnu linker/loader (ld), the Gnu binary-manipulation utilities (binutils), Gnu make, and various support libraries. Building the cross-development suite from scratch is a daunting proposition. While the build process itself has been automated and is fairly straightforward, it can take several hours and consume up to 300 Mb of disk space. Therefore, the SDK includes both the sources to the cross-tool suite *and* several pre-built binary distributions for various architectures. Currently, we provide the following: cross_tools_src.tar.gz [55Mb unzipped, 250-350Mb to build!] Sources for the Linux/Alpha cross tools. Download this ONLY if we do not supply a pre-built verison that works on your system. intel_linux_cross_tools.tar.gz [14Mb unzipped] Binary distribution of the Linux/Alpha cross tools for i386/486/pentium systems running Linux 1.1 and above (it may work on 1.0, but I haven't tried it). alpha_osf_cross_tools.tar.gz [18Mb unzipped] Binary distribution of the Linux/Alpha cross tools for Digital Alpha-based systems running DEC OSF/1 version 2.0 and later. risc_ultrix_cross_tools.tar.gz [26Mb unzipped] Binary distribution of the Linux/Alpha cross tools for Digital MIPS-based systems running DEC RISC/ULTRIX 4.2 or later. sparc_sunos_cross_tools.tar.gz [18Mb unzipped] Binary distribution of the Linux/Alpha cross tools for Sun SPARC systems running SunOS 4.1 or later. The binary distributions are configured to be installed in /usr/local. The files were archived with relative pathnames from root (e.g. "usr/local/bin/alpha-dec-linux-gcc"). If you have sufficient disk space on the device that contains /usr/local, you may simply change directory to "/" and unpack the archive from there. If you do not have sufficient disk space and need to install the cross tools on another partition, the archive includes a shell script called "install.sh". This script creates directories and symbolic links in the /usr/local tree which reference the real locations of the files. Examples: To install the cross-tools in /usr/local on a Linux system, do the following: % su Password: # cd / # zcat intel_linux_cross_tools.tar.gz | tar xf - To install the cross-tools somewhere else on the same system, do the following: % su Password: # cd /home/joe/linux_alpha_cross_tools # zcat intel_linux_cross_tools.tar.gz | tar xf - # ./install.sh Links created. rmlinks.sh created uninstall.sh created The files "rmlinks.sh" and "uninstall.sh" are created by the "install.sh" script. The rmlinks.sh script deletes all of the symbolic links that were created by install.sh. The uninstall.sh script deletes all of the symbolic links *and* all of the installed cross-tool files. If you must build the cross tools from scratch, the procedure is as follows: - Make sure you have LOTS of disk space! - unpack the archive - Configure the sources for your system: % configure --target=alpha-dec-linux - Build the cross tools: % (cd make-3.71; make) % (cd gcc; make) % (cd utils; make) - Install them on your system % su Password: # (cd make-3.71; make install) # (cd gcc; make install) # (cd utils; make install) SOURCE AND FILESYSTEM ARCHIVES The source archives (kernel_src.tar.gz and util_lib_src.tar.gz) and the Linux root filesystem tree archive (linux_root_tree.tar.gz) all contain relative pathnames from a single directory, LINUX_ALPHA_SDK. These archives must all be unpacked in the same directory, as the build scripts in some archives depend on files in other archives. KERNEL SOURCES The archive kernel_src.tar.gz contains the sources for the Linux/Alpha kernel. This kernel is based on Linux 1.0, with modifications for Alpha. Although I have made every effort to isolate the Alpha-specific changes for this kernel, I have not tried to build an Intel kernel from these sources. Consider this an Alpha-only set of sources. UTILITY/LIBRARY SOURCES The archive util_lib_src.tar.gz contains the sources for the Linux/Alpha runtime libraries and utilities. The runtime library is currently a hacked-up version of gnu libc 4.4.4. The utilities are taken from the MCC distribution. FILE SYSTEM TEMPLATES I have not yet succeeded in porting the ext2 filesystem utilities to any platform other than Linux. In order to allow those doing cross developnent on non-Linux platforms to create Linux filesystems, I have provided file system templates. These are simply gzip'ped images of empty filesystems of various sizes. One many create a Linux ext2 file system by gunzip'ping from one of these files to the location where the file system is desired. For example: to create a 40Mb ext2 filesystem on /dev/rrz1a on an OSF system, issue the following command: gunzip < fs_templates/40Mb_ext2fs.gz > /dev/rrz1a LINUX ROOT FILESYSTEM There are two different archives that contain LINUX root filesystems. The first is linux_root_tree.tar.gz. This is a tar archive of a LINUX root filesystem, and it can be un-tarred onto any UNIX system to produce a directory tree containing all the files currently used in the Linux/Alpha root filesystem. The other archive is linux_root_fs_image.gz. This is a compressed image of a 20Mb ext2 filesystem containing the same files as in linux_root_tree.tar.gz. This may be uncompressed onto a disk that one may access from Linux (either Intel or Alpha). Note that linux_root_tree.tar.gz contains a utility (make_fs_image) to populate an ext2 filesystem from the contents of the tree. Therefore, the filesystem image is not strictly necessary, but it is provided as a convenience. ISP SIMULATOR For those who do not have access to an Alpha-based system, we have included an Alpha CPU simulator. This simulator, called "isp" is a software implementation of the 21064 CPU. Note that it supports only CPU, memory, and console. It does NOT simulate devices. Therefore, it is not useful for device driver development. It is also EXTREMELY slow. Nevertheless, it is useful as a demonstration platform and in certain debugging situations. The agreement we have with the isp developers requires us to distribute it in binary form only. Currently, there are versions available for Intel Linux and for DEC OSF/1 on Alpha. Support for additional platforms will be made available as demand and resources allow. ------------------------------------------------------------------------------ cross-tool sources cross_tools_src.tar.gz [55Mb unzipped, ~250Mb to build!] cross-tool binaries --------- i386-linux intel_linux_cross_tools.tar.gz [14Mb installed] alpha osf alpha_osf_cross_tools.tar.gz [18Mb installed] ultrix risc_ultrix_cross_tools.tar.gz [26Mb installed] sparc sparc_sunos_cross_tools.tar.gz [18Mb installed] kernel src kernel_src.tar.gz [6.5Mb unzipped, ~16Mb to build] util/lib src util_lib_src.tar.gz [17Mb unzipped, ~24Mb to build] root filesystem ---------- linux_root_tree.tar.gz [11Mb unzipped] linux_root_fs_image.gz [20Mb unzipped] filesystem templates fs_templates.tar [360Kb] isp binaries ---------- i386-linux isp_linux.tar.gz alpha osf isp_osf.tar.gz ultrix? TODO sparc? TODO gzip binary: ---------- i386-linux intel_linux_gzip.tar alpha osf alpha_osf_gzip.tar ultrix risc_ultrix_gzip.tar sparc sparc_sunos_gzip.tar other? TBD