Editor's Note: Rich's original article caught the interest of our technical reviewer, Shaun Pond. He thought parts of it could be streamlined, and he sought the advice of Kurt Finlayson, a regular contributor to the Imaging forums. Kurt suggested some important changes to steps 1 and 8, which Rich pronounced "GENIUS!" Here's the improved version.
Items needed to complete this:
- A Linux PC for compiling the driver. Must be non-hyper-threading with at least 256 mb ram and a USB port
- Thumb drive to transfer files back and forth between Linux and Windows PC
- Windows PC with CD burning software and ISO editing software
- SLES 9 rc 5
- SLES 9 SP2
- SLES 9 SP3 - only if you are using the Zen7 SP1 bootcd as it uses the 7.6.5-7.244 kernel
- Current NIC driver. For this, I will use the Intel e1000 7.2.9 driver (e1000-7.2.9.tar.gz)
- ZENworks 7 boocd.iso
- 1 blank CD-R, or get a CD-RW, I have saved myself literally hundreds of CDs by using a CD-RW that I can re-use over and over again.
ZENworks Boot CD not recognizing new NIC
NOTE: copying and moving and renaming files will be done graphically. If you want to move or rename a file from the prompt, knock yourself out.
Step 1 - Get the IDs of the NIC that is not being loaded
- Get to a bash prompt.
- Get the Vendor ID and the Device ID of the network card that is not being loaded.
- This is done by typing "hwinfo --netcard"
- This will display a list of information for the network card.
- Look for the "Vendor:" and "Device:" information.
Example: Vendor: pci 0x8086 "Intel Corporation", Device: pci 0x109a
Another Example: Vendor: pci 0x1002 "AMD", Device: pci 0x2000 "PCnet - Fast 79C971"
- Write down the hex values for Vendor and Device. 0x8086 and 0x109a
Step 2 - Extracting the INITRD to edit
On a Windows PC open up the Zen7 bootcd.iso using ISO editing software and copy the initrd file from the /boot/loader directory to your thumb drive.
NOTE: Steps 3-6 expects that you know what the NIC is in your computer, and that you know what the driver name is for it. This process expects that you will need to compile a NIC driver. If you do not need to compile a NIC driver, skip directly to Step 6. You will, however need a PC with Linux loaded on it in order to complete this process, regardless of if you need to compile a new NIC driver.
Step 3 - Get the latest NIC driver from the vendor
Download the latest driver for the NIC (e1000-7.2.9.tar.gz) from the vendor's web site and copy it to your thumb drive.
Step 4 - Install SLES 9 and patch it to build the driver and edit files
NOTE: This PC should be a spare PC that you can wipe clean.
NOTE: For ZEN7sp1, replace the steps concerning SP2 with SP3.
WARNING: YOU CAN LOSE ALL THE DATA ON THIS PC'S HARD DRIVE. PROCEED AT YOUR OWN RISK.
- Boot your PC with disk 1 in it, and select INSTALLATION and hit Enter.
- Click I Agree.
- Select language and click Accept.
- Select New Installation if it prompts you and click OK.
- Click on CHANGE and select SOFTWARE.
- Click Detailed Selection.
- Filter should be set at SELECTIONS.
- Deselect Print Server and Authentication Server.
- Click on the group C/C++ Compiler and Tools, in the left group, select GCC, GLIBC-DEVEL, NCURSES-DEVEL
- Click on the group Various Linux Tools, in the left group, select KERNEL SOURCE
- Change the Filter to SEARCH
- Search for QT3, and select QT3-DEVEL
- Click on ACCEPT.
- On the AUTOMATIC CHANGES pop up, accept the defaults and click on CONTINUE.
- Leave the rest as default and click on ACCEPT.
- If prompted, click on YES, INSTALL to start the installation.
- Follow the prompts for changing CDs.
- Put in a password for the Root user and click Next.
- Accept defaults for network config and click Next.
- Click NO to skip testing the connection to the internet, and click Next.
- Click Skip Configuration for the CA Management setup and click Next.
- Leave Authentication Method at default (local) and click Next.
- Leave user info empty and click Next. Click Yes at the prompt to continue.
- On Release Notes, click Next.
- Leave defaults for Hardware configuration and click Next.
- Click Finish.
- Login as Root.
- Put in CD 1 of SLES 9 SP2
- Start YAST.
- Click on Patch CD Update.
- Leave defaults and click on Next.
- Accept default selection of patches and click Accept.
- Click Install Patch.
- Switch CDs as needed and click OK to continue the patch.
- Click OK for fetchmail update or any other updates that pop up.
- Click Finish.
- Close YAST.
- Logout and restart the computer.
- Login as Root.
- Open up a shell and make sure you are at the correct kernel level.
- Confirm the kernel version is 7.6.5-7.191-default by typing in:
# uname -r
Step 5 - Compile the NIC driver
- Plug in your thumb drive with the NIC driver and INITRD on it, into the SLES 9 computer.
- Copy the NIC driver to the /root directory (e1000-7.2.9.tar.gz).
- Compile the NIC driver as per the instructions given with the NIC driver.
Step 6 - Mount the INITRD
- Copy the Initrd from the thumb drive to the /root directory.
- Create a folder in /root called work.
- Rename the initrd file to initrd.gz
- Unzip the file from the shell:
# gunzip initrd.gz
- Mount the file:
# mount -o loop initrd work
NOTE: if you are not adding any drivers, skip Step 7.
Step 7 - Copy the NIC drivers to INITRD
Copy the compiled e1000.ko driver from /lib/modules/2.6.5-7.191-default/kernel/drivers/net/e1000 into /root/work/lib/modules/2.6.5-override-default/initrd
Step 8 - Add parameter newid to linuxrc.config file
Add the parameter newid="" to the linuxrc.config file found at the root of the initrd.
- Change directories to where you mounted the initrd file.
- Open linuxrc.config with a text editor, example 'vi linuxrc.config'
- Add the following line to the end of the file.
Step 9 - Get INITRD ready to go back into the bootcd.iso
- In the terminal session, unmount the work folder:
# umount work
- Zip the initrd file:
# gzip -v9c initrd > initrd.gz
- Rename the file from initrd.gz to initrd
- Copy the new initrd back to the thumb drive. You may want to create a new folder on the thumb drive to keep the old and new ones separate.
Step 10 - Make the new bootcd.iso
- Take the thumb drive with the new INITRD over to the Windows PC.
- On the windows PC open up the Zen7 bootcd.iso with your ISO editing software and replace the initrd in the \boot\loader with the new initrd
- You may want to edit the SETTINGS.TXT file at this time if needed for your new CD.
- Burn the new bootcd.iso.
Step 11 - boot the laptop/PC with the new bootcd
- Boot up the problem computer and confirm that the network card is recognized and loads properly and you can image from the network.
- Quickest way is to select MANUAL from the boot menu, and when at the #, ping the imaging server:
- You should get a response and be able to start imaging.
Disclaimer: As with everything else at Cool Solutions, this content is definitely not supported by Novell (so don't even think of calling Support if you try something and it blows up).
It was contributed by a community member and is published "as is." It seems to have worked for at least one person, and might work for you. But please be sure to test, test, test before you do anything drastic with it.