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.
You can upload a customized kernel to use in a distribution.
Note - If you intend to use a customized kernel on a Sun Fire |
For more information on creating a payload, profile or client, see the appropriate procedure in Chapter 2, AllStart Features.
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
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
Perform a search on "e1000 4.4.19" and you will find the appropriate tar file to download.
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/
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
Once you get past the boot stage and the client is loading the RPMs, the installation should work correctly.
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:
If the DHCP server is not running or if the file controlling the PXE boot contains errors in it, the boot stage will fail.
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.
2. Ensure that xinted is running.
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.
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.
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.
In the Configure Install Boot Information screen for the client, add the following entries to the kernel parameters.
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. |
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):
If using NFS, ensure that the portmap and nfs services are started.
If 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.
For Sun JDS: correct the errors in the file:
/scs/share/allstart/config/ay-$mac.xml.
For 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.
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.
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.
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.
Error message: "Press <RETURN> to see the video modes available, <SPACE> to continue or wait 30 secs."
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 does not start when the build process on the Sun JDS client is completed.
Ensure that the frame buffer is working correctly. Correcting any frame-buffer problems is the quickest way to ensure that X11 runs correctly.
Copyright © 2004, Sun Microsystems, Inc. All rights reserved.