CRUX : Home

Home :: Documentation :: Download :: Development :: Community :: Wiki :: Ports :: Bugs :: Links :: About

Installing CRUX

Supported Hardware

Packages on the official CRUX ISO image are compiled with optimization for i686 (Pentium-Pro/Celeron/Pentium-II or better) processors. Do not try to install it on an i586 (Pentium, AMD K6/K6-II/K6-III) or lower processor, since it simply will not work. To install CRUX on an i586 system you need to download the i586 version of the CRUX ISO image.

The kernel used during installation, i.e. when booting from the CRUX ISO image (El Torito), is compiled with the following disk controllers and USB support:

SubsystemDriver(s) included in bootkernel
IDEGeneric PCI IDE chipset
SATAServerWorks Frodo/Apple K2, Intel PIIX/ICH, Promise, Silicon Image, VIA, VITESSE VSC-7174
SCSI7000FASST, ACARD, Adaptec AACRAID, Adaptec AIC7xxx, Adaptec AIC79xx U320, AdvanSys, Always IN2000, AMI MegaRAID, BusLogic, Compaq Fibre Channel, NCR5380/53c400, IBM ServeRAID, SYM53C8XX, Tekram DC390(T) and Am53/79C974
USBUSB device filesystem, EHCI HCD (USB 2.0) support, UHCI (Intel PIIX4, VIA, ...) support, OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support, USB Mass Storage support, USB Human Interface Device (full HID) support, HID input layer support

In order to install CRUX, your disk controller must be present in the list above. If your hardware is not supported or you have other problems installing CRUX you might find a solution in Section "Alternative Installation Methods".

Installing From CD-ROM

 $ md5sum crux-2.3.iso

Compare the output with the file crux-2.3.md5sum, which can be found in the same directory as the ISO image on the download site. If the checksums match the download was successful and you can continue by burning the ISO image on a CD.

 $ fdisk /dev/hd?
 $ mkreiserfs /dev/hd??
 $ mkswap /dev/hd??

Note

Please keep in mind that SATA harddisks are usually detected as SCSI devices. The first SATA disk is called /dev/sda instead of /dev/hda. For more information about harddisk naming conventions please checkout this HOWTO.

The amount of disk space you need depends on how many packages you choose to install. I recommend having at least a 1G root partition (CRUX will use about 200MB-500MB depending on your configuration).

Using ReiserFS is recommended, but there is support for Ext2fs/Ext3fs, XFS and JFS as well. Further, I highly recommend separating system data from user data, i.e. use a separate partition for /home (and possibly /var) since that will make your life a lot easier the day you want to upgrade/reinstall/remove your system.

Note

Make sure that any BIOS Virus Protection option is DISABLED as this option may prevent fdisk from writing new partitions correctly.
 $ mount /dev/hd?? /mnt

If you want the installation to span more than one partition, mount those partitions as well. For example, if you want to have a different partition for /home or /var, then do:

 $ mkdir /mnt/var
 $ mount /dev/hd?? /mnt/var
 $ swapon /dev/hd??

Once it has installed the selected packages, the setup script will display an installation log. Make sure the last line in the log says “0 error(s)”.

If you at a later stage find that you need some additional packages you can just mount the CRUX CD-ROM and use pkgadd to install them.

Note

There is no package dependency checking. This means that it is up to you to figure out that if you for example install the exim package you also need to install the db package.

Screenshots of setup

 $ mount --bind /dev /mnt/dev
 $ mount --bind /tmp /mnt/tmp
 $ mount -t proc proc /mnt/proc
 $ mount -t sysfs none /mnt/sys
 $ chroot /mnt /bin/bash

Note

There is a short-cut command for creating the chroot environment: setup-chroot. This will execute all these steps at once.
 $ passwd
 $ cd /usr/src/linux-2.6.20.3
 $ make menuconfig
 $ make all
 $ make modules_install
 $ cp arch/i386/boot/bzImage /boot/vmlinuz
 $ cp System.map /boot

If you plan to use GRUB (which is included in the ISO) make sure you read the installation notes in the appendix of this document.

Upgrading From CD-ROM

 $ md5sum crux-2.3.iso

Compare the output with the file crux-2.3.md5sum, which can be found in the same directory as the ISO image on the download site. If the checksums match the download was successful and you can continue with burning the ISO image on a CD.

 $ mount /dev/hd?? /mnt

If your installation spans over more than one partition, then mount these partitions as well. For example, if you have a different partition for /var, then do:

 $ mount /dev/hd?? /mnt/var
 $ swapon /dev/hd??

Note

The setup script uses the /etc/pkgadd.conf of the target system to determine which files to upgrade and which files not to upgrade. The files that are not upgraded are put in /var/lib/pkg/rejected/ (Section "Upgrading a Package").

When the setup script has upgraded the selected packages an upgrade log will be displayed. Make sure the last line in the log says “0 error(s)”. If you at a later stage find that you need some additional packages you can just mount the CRUX CD-ROM and use pkgadd to install them (e.g. pkgadd /mnt/crux/opt/package#1.0-1.pkg.tar.gz).

 $ mount --bind /dev /mnt/dev
 $ mount --bind /tmp /mnt/tmp
 $ mount -t proc proc /mnt/proc
 $ mount -t sysfs none /mnt/sys
 $ chroot /mnt /bin/bash

Note

There is a short-cut command for creating the chroot environment: setup-chroot. This will execute all these steps at once.

Important

If you upgrade your system from CRUX 2.1 to CRUX 2.3 you have to change all disk/cdrom/floppy device names in your /etc/fstab file. Starting with 2.2 CRUX does no longer use the devfs name scheme (/dev/discs/discX/partY). Two (new) examples: /dev/hda1 would specify the first partition at your primary-master harddisk (standard IDE ATA bus). /dev/sda2 specifies the second partition at your first SCSI or SATA harddisk. More information
udev reads files in /sys/* and /proc/*. Make sure that those pseudo filesystems are enabled in your kernel configuration and available during system-startup. Also note that unlike devfsd, udev doesn't automatically mount /dev/pts. Terminal applications such as xterm(1) will not work if you forget to mount it. If you want udev to detect your connected USB hardware you'll need the USB-Filesystem mounted on /proc/bus/usb. We highly recommend you check your fstab file:
# <dev> <dir>         <type> <options> <dump> <pass>
[..]
devpts  /dev/pts      devpts defaults  0      0
sysfs   /sys          sysfs  defaults  0      0
proc    /proc         proc   defaults  0      0
usb     /proc/bus/usb usbfs  defaults  0      0

If you plan to use GRUB (which is included in the ISO) make sure you read the installation notes in the appendix of this document.

Alternative Installation Methods

Building Your Own Bootkernel

If you are unable to install CRUX from CD-ROM because your hardware is not supported by the bootkernel you can build your own bootkernel and add whatever hardware support you need. To do this you need a 1.44Mb floppy disk, access to another Linux box and the CRUX ISO image burned on a CD. Basic knowledge about how to configure and compile the Linux kernel is of course also required.

 $ cd mkbootfloppy
 $ ./mkbootfloppy /path/to/linux/kernel/arch/i386/boot/bzImage
 1440+0 records in
 1440+0 records out
 mke2fs 1.27 (8-Mar-2002)
 Added CRUX *
 $ dd if=boot.img of=/dev/fd0

Network Installation

If you do not have a CD burner, are unable to boot your machine using the CRUX CD-ROM or for any other reason are unable to install CRUX the normal way (Section "Installing From CD-ROM") you might want to check out HOWTO install CRUX via NFS? by Jürgen Daubert.