C H A P T E R  3

Customized Kernels and Troubleshooting Issues

This chapter explains how to use a customized kernel in a distributions.

It also discusses the items to verify when troubleshooting problems encountered at the boot stage or installation stage.


Using a Customized Kernel

You can upload a customized kernel to use in a distribution.



Note - If you intend to use a customized kernel on a Sun Firetrademark V60x or Sun Fire V65x server, ensure that you have the most current SCSI and ethernet drivers.

See Required Device Drivers for Sun Fire V60x and Sun Fire V65x Servers.



For more information on creating a payload, profile or client, see the appropriate procedure in Chapter 2, AllStart Features.

To use a customized kernel:

1. In the "Upload Distribution..." tables in the Sun Control Station UI, upload the distribution from the ISO files or CD-ROMs.

For complete information, see the procedure Adding a Distribution.

2. Download the customized kernel(s) to the control station.

The customized kernels must be in a directory by themselves.

3. On the control station, make a new directory. For example:

mkdir /tmp/update 
cd /tmp/update 


Note - You can name this directory anything you want. Ensure that the directory contains only the kernels and no other files.



4. Copy the customized kernel(s) into the directory you created (for example, /tmp/update).



Note - If you are using the Lights Out Management (LOM) module, ensure that you include the kernel-source RPM.



/usr/mgmt/sbin/as_distro_update.pl -n "NAME" -d /tmp/update 

where NAME is the name of the distribution you created.

/usr/lib/anaconda-runtime/genhdlist /scs/data/allstart/<distro_num>/ 

where <distro_num> is the distribution number. To get his distro_num, run the command:

/scs/sbin/as_distro.pl 

5. Create the payload.

6. Create the profile.

7. Create the client.

8. Enable the client.

9. Net boot the client.

Required Device Drivers for Sun Fire V60x and Sun Fire V65x Servers

Ethernet Driver

The gigabit ethernet controller on the Sun Fire V60x and Sun Fire V65x servers requires an Intel PRO/1000 Network Interface (e1000) driver.

Sun recommends that customers install version 4.4.19 or later of this driver. Version 4.4.19 was the ethernet driver used within Sun for compatibility testing; it was shown to install consistently and successfully run a set of pre-defined test cases.

The Intel README file in the e1000 source tar file contains the instructions for building the driver. This information is also available online in HTML format at: http://www.intel.com/support/network/adapter/1000/e1000.htm

To download any Intel drivers, visit the support site at: http://appsr.intel.com/scripts-df/support_intel.asp

single-step bulletPerform a search on "e1000 4.4.19" and you will find the appropriate tar file to download.

SCSI Driver

The Sun Fire V60x server and Sun Fire V65x server have an Ultra 320 SCSI controller that is supported by only the most recent distributions.

If you intend to use only Sun-qualified add-on cards, then you must install version 1.3.7 or later of this driver. If you intend to use non-Sun-qualified PCI-33 add-on cards, then you must install version 1.3.10 or later of this driver.

Both versions (1.3.7 and 1.3.10) were used within Sun for compatibility testing; they were shown to install consistently and successfully run a set of pre-defined test cases.

The latest SCSI drivers can be downloaded from the developer site at: http://people.freebsd.org/~gibbs/linux/


Customizing the Configuration Files

You can customize the configuration files.

To do so, you simply add a comment (Allstart: static) to the configuration file that signals to the Allstart module that it should not overwrite this configuration.

The comment can be placed anywhere in the file but it must appear at the beginning of a line. Some examples are:

/etc/exports => # Allstart: static 
/etc/dhcpd.conf => # Allstart: static 
/tftpboot/pxelinux.cfg/* => # Allstart: static 
/scs/share/allstart/config/ks-*.cfg => # Allstart: static 
/scs/share/allstart/config/ay-*.xml => <!-- # Allstart: static -->

Files generated by Allstart now have a <comment> <date> entry.

Files that might need to share configurations with other services now support customizations. Add your customized lines below following line in the configuration file:

Put custom additions below (Do not change/remove this line) 

 

Two configuration files support this syntax:

/etc/dhcpd.conf 
/etc/exports 


Troubleshooting

Once you get past the boot stage and the client is loading the RPMs, the installation should work correctly.

Terminal Windows

Terminal windows are a valuable tool when you are trying to debug a problem during the build process.

You can jump between terminal windows by pressing ctrl-alt-<Fx> on the client being built. The terminal windows are:

Problems at Boot Stage

Issues with the DHCP server or the PXE boot

If the DHCP server is not running or if the file controlling the PXE boot contains errors in it, the boot stage will fail.

Resolution

Run the following commands:

run tftp localhost 
tftp> get pxelinux.0 

You should receive a response similar to this:

Received 10205 bytes in 0.1 seconds 

 

If this does not work, verify the following items.

1. Ensure that tftp is enabled.

chkconfig --list |grep tftp

2. Ensure that xinted is running.

/etc/init.d/xinetd restart

3. Ensure that /tftpboot/pxelinux.0 exists, with the permissions set to 644.

4. Ensure that the permissions are set to 755 on /tftpboot.

5. Ensure that dhcpd is started and that the entry for the client MAC address is in the file /etc/dhcpd.conf.

6. Ensure that /tftpboot/pxelinux.cfg/netboot-$mac exists.

7. The hex files in the file /tftpboot/pxelinux.cfg that symlink to netboot-$mac should be the IP address in hex format entered when creating the client.

Install process hangs after pxelinux.0 has been loaded

Resolution

Enable logging on the tftp daemon.

As the root user on the Sun Control Station server, edit the file /etc/xinetd.d/tftp. Add the following option to server_args line:

server_args = -l -s /tftpboot 


Note - Older versions of tftp in Red Hat 7.3 might use the -v option instead of -l. To verify this, check the man page for in.tftpd.



Next, while net booting a client, run the command:

tail -f /var/log/messages 

On the control station server, you should see messages similar to the following:

Mar  7 19:03:28 lx50 in.tftpd[31083]: sending pxelinux.0 Mar  7 19:03:28 lx50 in.tftpd[31084]: sending pxelinux.cfg/0A010A15 Mar  7 19:03:28 lx50 in.tftpd[31085]: sending JDSSUN-8.1-linux Mar  7 19:03:29 lx50 in.tftpd[31086]: sending JDSSUN-8.1-initrd 

If you see that only JDSSUN-8.1-linux is being sent and you have USB devices connected the client (including a keyboard and mouse), disconnect the devices and try to net boot the client again.

Another possible solution is to turn off USB Legacy support in the BIOS.

Possible problem in client configuration

Resolution

Ensure that the boot interface selected in the client configuration matches the interface over which the DHCP request is sent.

In a terminal window, press ctrl-alt-F3 to view the install messages.

Build process hangs while kernel is booting

Resolution

In the Configure Install Boot Information screen for the client, add the following entries to the kernel parameters.

First try:

apm=off acpi=off 

If that does not work, enter the parameters for the failsafe mode:

ide=nodma apm=off acpi=off vga=normal nosmp noapic 


Note - See Add a New Client and FIGURE 2-28 for the Kernel Parameter field.



Problems at Installation

The installation is most likely to fail if the system cannot find the file ay-$mac.xml (for Sun JDS) or ks-$mac.cfg (for Red Hat) listed in /tftpboot/pxelinux.cfg/netboot-$mac.

The installation will also fail at this stage if it does not detect the hardware needed for the installation (for example, it cannot load the correct SCSI driver):

single-step bulletIf using NFS, ensure that the portmap and nfs services are started.

single-step bulletIf using HTTP, try browsing to http://x.x.x.x/allstart/ksconfig/ where <x.x.x.x> is the IP address of your client.

If there are errors in the ksconfig file, the problem will show up here. This includes such things as invalid disk-partitioning schemes or an invalid package configuration.

single-step bulletFor Sun JDS: correct the errors in the file:

/scs/share/allstart/config/ay-$mac.xml. 

single-step bulletFor Red Hat: correct the errors in the file:

/scs/share/allstart/config/ks-$mac.cfg. 

Once you get past the boot stage and the client is loading the RPMs, the installation should work correctly.

Re-building an Allstart Client

When re-building a client from one operating system (OS) to another, you might experience disk-partitioning errors. To correct this, try the following:

1. Perform a hard reset of the client system: power the system off and then back on again.

Now start the build process again on that client by rebooting the client.

2. If that does not correct the errors, perform a low-level format of your hard disk drives.

Again, start the build process on that client by rebooting the client.

Interrupting Serial-Console Output While Building a Sun JDS Client

You can redirect your output to a serial console during a build process for a Sun JDS client. If you do so, do not disconnect from the serial console during the build process.

If you disconnect during the build process, the build will be interrupted or the build process might be killed.

Once you reconnect to the serial console, the build process might continue or it might not. This depends on your serial-console software.

Kernel Parameters on Sun JDS Clients



Note - See Add a New Client and FIGURE 2-28 for the Kernel Parameter field mentioned below.



When you are creating a Sun JDS client, you need to specify the following kernel parameters:

This turns off the Advanced Configuration and Power Interface (ACPI) feature.

This turns off the Advanced Power Managment (APM) feature.

If these parameters are not set, modify the client so that they are. See "Modifying a Client.

Building a Sun JDS Client

Frame-Buffer Problems

Error message: "Press <RETURN> to see the video modes available, <SPACE> to continue or wait 30 secs."

Resolution

If you see this error message, the selection for your frame buffer is invalid. This can cause X11 not to start correctly once the client is built.

This frame-buffer value is based on the resolution and color-depth settings configured in the X11 Configuration Options of the profile for this client (see X Window Configuration). If you selected "Automatically Detect X11 Settings", the default value is 1024 x 768 x 16.

If necessary, you can override this parameter in the Configure Install Boot Information screen for the client. Add the following line in the kernel parameters for the client:

No frame buffer install: 
vga=normal 

Set the frame buffer to a different mode. Scan for a mode you like at the above prompt and enter the corresponding hex value here. For example,

vga=0x31e 


Note - See Add a New Client and FIGURE 2-28 for the Kernel Parameter field.



If you do not want to change this parameter through the control station UI, you can edit the file /tftpboot/pxelinux.cfg/netboot-*, where * is the MAC address or the default-[name], depending the type of client. Modify the vga= parameter in this file.



Note - The control station UI overwrites these changes if you modify the payload, profile or client. For more information, see Customizing the Configuration Files.



If you have already built a unit and are still receiving this error message and want to remove it you, you need to edit the file /boot/grub/menu.lst Change the vga= parameter as shown above.

For further information, visit the following Web site:

http://www.tldp.org/HOWTO/Framebuffer-HOWTO.html

X11 Configuration Problem

X11 does not start when the build process on the Sun JDS client is completed.

Resolution

Ensure that the frame buffer is working correctly. Correcting any frame-buffer problems is the quickest way to ensure that X11 runs correctly.

See Frame-Buffer Problems.