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.
or use syntax as follows for using second “newid” Parameter
Determining the VendorID and DeviceID
To determine the VendorID and DeviceID do the following:
- Boot from the latest ZENworks Imaging bootcd found on download.novell.com
- At the imaging menu select “Manual mode”.
- An error will occur saying that the network module was not loaded, select”OK”.
- This will get the user to a bash prompt.
- Once at a bash prompt type ‘hwinfo –netcard’.This will give information about the network card in the workstation.
- Look for Vendor, Device and Driver:
- Example: Vendor: pci 0x14e4 “Broadcom” and Device: pci 0x169b and Driver: tg3
- The hex values will be the numbers passed using the newid parameter. Write the hex values down for vendor and device IDs
Testing the String
Test the newid string as follows:
- Reboot the workstation and get back to the Imaging menu.
- Once at the imaging menu type a newid command – in our example here it would be this:
(Make sure quotes are used as in this example and the only space that’s used is between the two hex values.)
- Then select Manual mode and see what happens. If it does not load automatically it is more than likely a new driver will be needed and compiled. For compiling drivers see documentation on Adding or updating LAN cards.
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.
Adding the newid string for a bootcd
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.
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:
Add the deviceid parameter to the z_auto.cmd and z_maint.cmd files found in the sys\tftp\cmds directory.
Add the deviceid parameter to the z_auto.cfg and z_maint.cfg files found in /srv/tftp on Linux servers.
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
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.