Application Delivery Management
Application Modernization & Connectivity
CyberRes
IT Operations Management
Editor's Note: This article was excerpted from this TID. Before using this information please refer to the actual TID, as Support occasionally updates the information after we have highlighted it.
There are many times when Linux cannot recognize new hardware with new workstations being released to the public. Often this calls for a new hardware driver. Once the new compiled driver is added to the Linux kernel, Linux will still not recognize the new driver and will not load the driver automatically. (However, if you load it manually it will work.)
To solve this issue follow these steps to get the Linux kernel to load the driver automatically.
The following parameter must be passed to the kernel at boot time to get this to work.
newid=","
or use syntax as follows for using second "newid" Parameter
newid=","newid=","
To determine the VendorID and DeviceID do the following:
Test the newid string as follows:
If the driver is loaded automatically then this parameter can be added to a file for PXE or one of two different files for the bootcd. See below for details.
Option 1
The newid string can either be added to the linuxrc.config file in the initrd or the /boot/i386/loader/isolinux.cfg from the bootcd.iso. It's much easier to add it to the isolinux.cfg from the bootcd.iso.
To modify the /boot/i386/loader/isolinux.cfg from the bootcd.iso, open the iso file with a utility like winiso and add the parameter to both of these append lines in the isolinux.cfg:
Example of isolinux.cfg BEFORE modification:
label linux
kernel linux
append initrd=initrd ramdisk_size=67584 vga=0x0314 splash=silent mode=2 CDBOOT=YES showopts
label manual
kernel linux
append initrd=initrd ramdisk_size=67584 vga=0x0314 splash=silent mode=5 CDBOOT=YES showopts
Example of isolinux.cfg AFTER modification:
label linux
kernel linux
append initrd=initrd ramdisk_size=67584 vga=0x0314 splash=silent mode=2 CDBOOT=YES showopts newid="0x14e4 0x169b,tg3"
label manual
kernel linux
append initrd=initrd ramdisk_size=67584 vga=0x0314 splash=silent mode=5 CDBOOT=YES showoptsnewid="0x14e4 0x169b,tg3"
Important: The newid string needs to be on the same line as the APPEND line.
Option 2
The second way to add the newid string for the bootcd is more difficult: modify the initrd and linuxrc.config file for the bootcd, seeModifiying and updating the Imaging resource files.
How to add the newid string for PXE:
NetWare:
Add the deviceid parameter to the z_auto.cmd and z_maint.cmd files found in the sys\tftp\cmds directory.
Linux:
Add the deviceid parameter to the z_auto.cfg and z_maint.cfg files found in /srv/tftp on Linux servers.
Windows:
Add the deviceid parameter to the z_auto.cfg and z_maint.cfg files found in C:\Program Files\ZEN Preboot Services\tftp\Data\cmds on Windows server.
NOTE: See ZDM 7 Imaging File Locations
Example of CMD / CFG file before modification:
KERNEL boot/linux
APPEND initrd=boot/initrd vga=0x314 install=tftp://$TFTPIP/boot rootimage=/root PROXYADDR=$PROXYADDR TFTPIP=$TFTPIP splash=silent PXEBOOT=YES mode=5
Example of CMD /CFG file after modification:
KERNEL boot/linux
APPEND initrd=boot/initrd vga=0x314 install=tftp://$TFTPIP/boot rootimage=/root PROXYADDR=$PROXYADDR TFTPIP=$TFTPIPsplash=silent PXEBOOT=YES mode=5newid="0x14e4 0x169b,tg3"
Important: the newid string needs to be on the same line as the APPEND line.
For more information on adding ANY parameter to PXE see: FAQ ACPI and PCMCIA.
To determine whether the imaging version you are using has the driver you need, boot up with the BootCD and go into maintenance mode to get to a bash prompt. From the bash prompt do either:
modprobe -l |grep
or
ls /lib/modules/-default/updates/initrd/
NOTE: If you use ENGL Imaging Toolkit as a replacement to initrd for pxe boot, the z_*.cmd files are not used. See TID 2007020 at the ENGL site for instructions on using defmenu.dat.