Handbook:SPARC/Blocks/Kernel

From Gentoo Wiki
Jump to: navigation, search


Architecture specific options

Activate the correct bus-support:

KERNEL Activating SBUS/UPA
Console drivers --->
  Frame-buffer support --->
    [*] SBUS and UPA framebuffers             
      [*] Creator/Creator3D support     (Only for UPA slot adapter used in many Ultras)
    [*] CGsix (GX,TurboGX) support      (Only for SBUS slot adapter used in many SPARCStations)

Of course enable support for the OBP:

KERNEL Activating OBP Support
Misc Linux/SPARC drivers --->
  [*]  /dev/openprom device support

Enable SCSI-specific support:

KERNEL Activating SCSI-specific support
SCSI support --->
  SCSI low-level drivers --->
    <*> Sparc ESP Scsi Driver             (Only for SPARC ESP on-board SCSI adapter)
    <*> PTI Qlogic, ISP Driver            (Only for SBUS SCSI controllers from PTI or QLogic)
    <*> SYM53C8XX Version 2 SCSI support  (Only for Ultra 60 on-board SCSI adapter)

To support the network card, select one of the following:

KERNEL Activating networking support
Network device support --->
  Ethernet (10 or 100Mbit) --->
    <*> Sun LANCE support                   (Only for SPARCStation, older Ultra systems, and as Sbus option)
    <*> Sun Happy Meal 10/100baseT support  (Only for Ultra; also supports "qfe" quad-ethernet on PCI and Sbus)
    <*> DECchip Tulip (dc21x4x) PCI support (For some Netras, like N1)
  Ethernet (1000Mbit) --->
    <*> Broadcom Tigon3 support (Modern Netra, Sun Fire machines)

With a 4-port Ethernet machine (10/100 or 10/100/1000) the port order is different from the one used by Solaris. Use sys-apps/ethtool to check the port link status.

When using a qla2xxx disk controller, install sys-block/qla-fc-firmware and add support for loading external firmware.

KERNEL Enabling external firmware
Device Drivers  --->
   Generic Driver Options  --->
   ()  External firmware blobs to build into the kernel binary
   ()  Firmware blobs root directory

Set "External firmware blobs" to ql2200_fw.bin and "Firmware blobs root directory" to /lib/firmware/.

Compiling and installing

With the kernel configured, it is time to compile and install it. Exit the configuration and start the compilation process:

root #make && make modules_install
Note
It is possible to enable parallel builds using make -jX with X being the number of parallel tasks that the build process is allowed to launch. This is similar to the instructions about /etc/portage/make.conf earlier, with the MAKEOPTS variable.

When the kernel has finished compiling, check the size of the resulting file:

root #ls -lh arch/sparc/boot/image
-rw-r--r--    1 root     root         2.4M Oct 25 14:38 image

If the (uncompressed) size is bigger than 7.5 MB, reconfigure the kernel until it doesn't exceed these limits. One way of accomplishing this is by having most kernel drivers compiled as modules. Ignoring this can lead to a non-booting kernel.

Also, if the kernel is just a tad too big, try stripping it using the strip command:

root #strip -R .comment -R .note arch/sparc/boot/image

Finally copy the kernel image to /boot/.

root #cp arch/sparc/boot/image /boot/kernel-3.16.5-gentoo