PreviousNextContents        Last Update: 6 June 1999


Configuring A Kernel

This section is a (lengthy) overview, not a tutorial....

Configuring and compiling the Linux kernel is a task that requires a moderate amount of knowledge and experience. You are not required to do this, but running a customized kernel has many significant benefits such as reduced size, increased stability, and possible performance increases.

Once you are convinced your machine is stable you should reconfigure and recompile a kernel of your own. This will be smaller and faster than the 'stock' kernel supplied here. Another benefit of compiling a kernel is this- if your new installation survives a full compile of a Linux kernel, its most likely going to be stable because a kernel compile is probably the most extensive test of system operation imaginable.

Please note that all kernel configuration and compile operations assume you are logged in as the root user.

If you haven't already, you need to install the kernel sources:

  If kernel source is a RedHat RPM file:

rpm -i <path>kernel-source-x.y.zz.rpm to install source for the first time, or

rpm -U <path>kernel-source-x.y.zz.rpm to upgrade an existing kernel source.

 

  If kernel source is a normal gzipped tar file (tar.gz) such as 2.0.36 kernel downloaded from Sunsite and extract to the /usr/src directory:

cd /usr/src

tar -xvzf   <path>linux-x.y.zz.tar.gz

Example: tar -xvzpf linux-2.0.36.tar.gz

Note: install the most recent (stable) source package available. Post questions to the newsgroup or mailing list if unsure. At this time the only m68k Linux kernels you should use are 2.0.33pl1, 2.0.36, and 2.2.1pre2 (unless you are a kernel hacker). These images are m68k-specific, and are NOT the same kernels found on kernel.org.

 

  If kernel source is a bzip2 file (linux-2.2.8.tar.bz2) as found in the master kernel tree (non-m68k) :

cd /usr/src

rm linux

mkdir linux-2.2.8

ln -sv linux-2.2.8 linux

bunzip2 -c linux-2.2.8.tar.bz2 | tar -xv

if patches are necessary; follow this basic form:

bunzip2 -c patch-2.2.8-ac1.bz2 | patch -p1


Before tearing into the config process, take a look at the (intel biased) Kernel-HOWTO document on Sunsite/LDP.

There is also a mini-howto on upgrading modules on the RedHat site which provides some background info on upgrading modules, and creating an initrd. You probably won't need to use anything here, but it provides a glimpse into some of the issues you should consider when upgrading a kernel or kernel-modules.


To configure a kernel you should cd to the /usr/src/linux directory. There are several ways to configure your Linux kernel:

  make config ( text-based, slow and tedious )

  make menuconfig ( a lot better, but still slow )

  make xconfig ( while running X, [ not really intended for first-timers, and its currently broken on m68k ] ).

Although it takes a bit of work to setup, there is no easier way to config your kernel than using make xconfig, but you must have X running on some machine (I usually run this from a hi-res display on a pentium-based Linux machine in the next room). If you are using an X-term on some other system, X does not have to be running on the Amiga for this to work.

  While running Amiga X, simply enter make xconfig from the keyboard.

  From another Linux machine running X:

      1. Enter the command xhost <amiga machine-name or IP> which allow your current X-session to accept X-messages from Amiga.
      2. 'telnet' into your Amiga as a non-root user ( you did create another user account, right? ).
      3. 'su' login as root on your Amiga: ( su - ).
      4. 'cd' to directory /usr/src/linux
      5. Assuming you are using a bash shell, indicate your display device (machine):
      6. Type export DISPLAY=<x machine-name or IP>:0 (example: export DISPLAY=crash:0 )

      7. Enter the command: make xconfig.
      8. Make all your changes using the convenient X graphical interface.

 Answer the config questions. I don't have time to write the book it would take to answer all the questions, but most choices offered by the config scripts feature a help selection- try it.

I suggest that you:

  Enable kernel-daemon support. (See Loadable Module Support in the .config-file below).
  Enable the SCSI/IDE controller for your system (not as a module).
  Enable your Ethernet card (not as a module).
  Enable ext2 filesystem (not as a module).
  Disable minix filesystem support.
  Enable AFFS (Amiga Fast File System) disk filesystem as a module.
  If you need it, enable MSDOS filesystem as a module.
  If you need it, enable NFS filesystem as a module.
  If you need it, enable VFAT-32 (win95) filesystem as a module.
  If you need it, enable ISO9660 (CDROM) filesystem as a module.
  If you need it, enable SMB (Samba [win95 networking]) as a module, and enable the fix.
  DO NOT enable Advanced Processor Options, especially if you have an Amiga.
  Enable RAMDISK support (as a module).
  Enable loopback support (as a module).
  Disable support of any Amiga video chipset you are not expecting to use.
  Disable support of any SCSI/IDE/Network hardware you are not expecting to use.
  If you want to your system to act as an Internet Gateway, see the
Masquerade Homepage for a description of required kernel option settings.

Config Cautions:

  Enabling ALL the wd33C93A SCSI drivers caused my machine to crash.


As a hint, here are the xconfig screens resulting from my A2000 configuration session. Do not blindly copy my configuration, customize the specific screens and system setup options to reflect your own machine. (these are getting old, and need updating)

The system described below is a:

  Amiga A2000.
  GVP Gfroce 68040, with GVP scsi controller with SCSI hard disks and cdrom attached.
  Ariadne ethernet card.

 

Warning: Advanced Processor Options should not be enabled on Amigas.

 

 

 


 

As another hint, here is a copy of the /usr/src/linux. .config file for my current 040-based A2000 system:

 Commented values followed with "is not set" are disabled, or set to N.
 Values followed by "=y" are enabled.
 Values followed by "=m" are modules.

 

#
# Automatically generated make config: don't edit
#
 
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
 
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
CONFIG_KERNELD=y
 
#
# Platform dependant setup
#
CONFIG_AMIGA=y
# CONFIG_ATARI is not set
# CONFIG_MAC is not set
 
#
# Processor type
#
# CONFIG_M68020 is not set
# CONFIG_M68030 is not set
CONFIG_M68040=y
# CONFIG_M68060 is not set
CONFIG_OPTIMIZE_040=y
# CONFIG_ADVANCED_CPU is not set
 
#
# General setup
#
CONFIG_NET=y
CONFIG_SYSVIPC=y
CONFIG_BINFMT_AOUT=m
CONFIG_BINFMT_ELF=y
CONFIG_KERNEL_ELF=y
CONFIG_ZORRO=y
# CONFIG_AMIGA_PCMCIA is not set
CONFIG_AMIFB_OCS=y
CONFIG_AMIFB_ECS=y
# CONFIG_AMIFB_AGA is not set
# CONFIG_FB_CYBER is not set
# CONFIG_FB_CV3D is not set
# CONFIG_FB_CLGEN is not set
 
#
# Floppy, IDE, and other block devices
#
CONFIG_BLK_DEV_FD=m
# CONFIG_BLK_DEV_IDE is not set
# CONFIG_AMIGA_Z2RAM is not set
 
#
# Additional Block Devices
#
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_MD is not set
# CONFIG_BLK_DEV_RAM is not set
 
#
# Networking options
#
# CONFIG_FIREWALL is not set
# CONFIG_NET_ALIAS is not set
CONFIG_INET=y
# CONFIG_IP_FORWARD is not set
# CONFIG_IP_MULTICAST is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_RST_COOKIES is not set
# CONFIG_IP_ACCT is not set
# CONFIG_IP_ROUTER is not set
# CONFIG_NET_IPIP is not set
 
#
# (it is safe to leave these untouched)
#
# CONFIG_INET_PCTCP is not set
# CONFIG_INET_RARP is not set
# CONFIG_NO_PATH_MTU_DISCOVERY is not set
CONFIG_IP_NOSR=y
# CONFIG_SKB_LARGE is not set
 
#
#  
#
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_AX25 is not set
# CONFIG_BRIDGE is not set
# CONFIG_NETLINK is not set
 
#
# SCSI support
#
CONFIG_SCSI=y
 
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=m
CONFIG_BLK_DEV_SR=m
CONFIG_CHR_DEV_SG=m
 
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
CONFIG_SCSI_CONSTANTS=y
 
#
# SCSI low-level drivers
#
# CONFIG_A3000_SCSI is not set
# CONFIG_A2091_SCSI is not set
CONFIG_GVP11_SCSI=y
# CONFIG_CYBERSTORM_SCSI is not set
# CONFIG_CYBERSTORMII_SCSI is not set
# CONFIG_BLZ2060_SCSI is not set
# CONFIG_BLZ1230_SCSI is not set
# CONFIG_FASTLANE_SCSI is not set
# CONFIG_A4000T_SCSI is not set
# CONFIG_A4091_SCSI is not set
# CONFIG_WARPENGINE_SCSI is not set
 
#
# Network device support
#
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
# CONFIG_SLIP is not set
CONFIG_PPP=m
 
#
# CCP compressors for PPP are only built as modules.
#
# CONFIG_EQUALIZER is not set
CONFIG_ARIADNE=y
# CONFIG_A2065 is not set
# CONFIG_HYDRA is not set
 
#
# Filesystems
#
# CONFIG_QUOTA is not set
CONFIG_MINIX_FS=y
# CONFIG_EXT_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_XIA_FS is not set
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
# CONFIG_UMSDOS_FS is not set
CONFIG_PROC_FS=y
CONFIG_NFS_FS=m
CONFIG_SMB_FS=m
CONFIG_SMB_WIN95=y
CONFIG_ISO9660_FS=m
# CONFIG_HPFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_AUTOFS_FS is not set
CONFIG_AFFS_FS=m
CONFIG_AMIGA_PARTITION=y
# CONFIG_UFS_FS is not set
 
#
# Character devices
#
CONFIG_PRINTER=m
# CONFIG_MULTIFACE_III_LP is not set
CONFIG_AMIGAMOUSE=y
CONFIG_AMIGA_BUILTIN_SERIAL=m
# CONFIG_GVPIOEXT is not set
# CONFIG_MULTIFACE_III_TTY is not set
# CONFIG_WHIPPET is not set
# CONFIG_USERIAL is not set
# CONFIG_WATCHDOG is not set
# CONFIG_UMISC is not set
 
#
# Sound support
#
CONFIG_SOUND=m
CONFIG_DMASOUND=m
 
#
# Kernel hacking
#
# CONFIG_PROFILE is not set


PreviousNextContents