Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Compile NIC driver?

Status
Not open for further replies.

ADB100

Technical User
Mar 25, 2003
2,399
GB
OK, bear with me here as I'm no Linux user at all...

Last year I remastered a Puppy Linux Live CD to include an application, start DHCP on the 1st two detected NICs and set a few defaults - The application is a network testing daemon and the PC acts as a sort of drone. This was puppy version 4.0 based on kernel 2.6.21.7 (?).
Now I need to use this live CD again but it doesn't work with the latest laptops we have at work as they have an Intel NIC that requires the e1000e driver which isn't in this distribution. The latest releases of Puppy (4.1.2 & 4.2.1) apparently contain the e1000e driver so I thought I would just remaster the Live CD as I wrote myself some instructions when I last did this. Unfortunately the laptops fail to boot from either the 4.1.2 or 4.2.1 Live CD's (I have tested the CD's on some desktops and they boot fine). The laptops start to boot but hang at a point where it says starting services or something similar?

So I am a bit stuck. I have searched for an e1000e driver for kernel 2.6.21.7 but can't find one. I have the source files from Intel (e1000e-1.0.2.5.tar.gz) but I have no idea how to compile the driver - I need an e1000e.ko file apparently?

Can anyone talk me through what I need to do build the driver? The readme from Intel has some steps but other than un-tar'ing the file I can't get any further -
Code:
1. Move the base driver tar file to the directory of your choice.  For
   example, use /home/username/e1000e or /usr/local/src/e1000e.

2. Untar/unzip archive:

     tar zxf e1000e-x.x.x.tar.gz

3. Change to the driver src directory:

     cd e1000e-x.x.x/src/

4. Compile the driver module:

     # make install

   The binary will be installed as:

     /lib/modules/<KERNEL VERSION>/kernel/drivers/net/e1000e/e1000e.[k]o

   The install locations listed above are the default locations.  They
   might not be correct for certain Linux distributions. 

5. Load the module using either the insmod or modprobe command:

     modprobe e1000e

     insmod e1000e

   Note that for 2.6 kernels the insmod command can be used if the full
   path to the driver module is specified.  For example:

     insmod /lib/modules/<KERNEL VERSION>/kernel/drivers/net/e1000e/e1000e.ko

   With 2.6 based kernels also make sure that older e1000e drivers are 
   removed from the kernel, before loading the new module:

     rmmod e1000e; modprobe e1000e

Thanks, Andy
 
those instructions assume that you have a build system installed.
You may also need the kernel source installed.

But those directions are correct to build the system

tar -zxvf driver_name
cd driver_name
make install
modprobe e1000e
insmod e1000e


post any errors you are getting...
 
The 'make' command doesn't work. I just get the error 'bash: make: command not found'. I assume this is something that is part of the 'build system'?

Thanks, Andy
 
Yup, you probably do not have the build tools installed as it is a Live CD. Also, even if you did build the driver it would only work till the next reboot as you would loose everything if you didnt save to a USB or local disk.
 
Personally I'd try and figure out why the newer versions were hanging rather than backporting drivers to the older version; where *exactly* is it stopping? i.e. starting which services? How long have you waited while it was hanging?

Annihilannic.
 
This may sound odd, but try pressing or holding a key or the power button while the process is hung.

I suggest this baserd on past experience, where the default Ubuntu version 7 or 8 (can't recall) would hang on boot up with my laptop. It turned out that there was an issue with the ACPI power managment and I needed to turn the option off, but I was able to get passed it by pressing a key.
 
I was trying to minimise the amount of work I need to do. The exisitng live CD I built is perfect apart from the lack of the e1000e driver. I don't really need any updated features from Puppy 4.1 or 4.2 - the application runs in the background so there is no need to even logon or start the GUI.
After trying both 4.1.2 and 4.2.1 live CD's and both hanging at the same point I thought it might be easier to just include the driver in the old build.
As for where it hangs it seems to get some exception when booting, then continues and hangs at the line that says something about starting services (I think it has networking, printing etc' in brackets?). I haven't got a CD to hand at the moment as I am at work but will try again when I get home later.

Andy
 
OK just tried it again. It starts to boot, does the the 'loading puppy... copying to ram. This completes and then a couple of other things start OK, there is then a exception and I can't make it out as it happens to quickly. The end messages mention:
Code:
[<c025f32f>] acpi_bus_register_driver_0x0/0x38
[<c015b801>} sys_read+0x41/0x70
[<c0103f96>] sysenter_past_esp+0x5f/0x89
[<c0370000>] setup_cpu_cache_0xa0/0x199
=======================
Code: ff eb 0d 90 90 90........(a load more hex)
EIP: [<c0376d3b>] __mutex_lock_slowpath+0x1b/0x80 SS:ESP 0068:f6dd9b44
---[ end trace e33ab398ba51a9a9 ]---
udevd-event[2129]: run_program: '/sbin/pup_event_backend_modprobe' abnormal exit

Marking TSC unstable due to: TSC halts in idle.
It then detects the graphics hardware, speaker, MMC and SDHCI hardware and reports these over 10 lines (which I think looks OK). It then says:
Code:
Waiting for modules to complete loading... pcmcia usb    done
Setting up services (network, printing, etc.)...
and at this point it hangs. It does the same with 4.1.2

Andy
 
There is a Beta version of Puppy 4.3 so I thought I would have a go with this. Anyway 20-minutes later I have a new Live CD with Puppy 4.3 Beta that starts DHCP on the 1st NIC's, has the Network testing application integrated and boots to a login prompt :eek:)

I have tested it on the new laptops with the e1000e NIC's as well as some older machines and it works on all so far.

Its a good job I kept the instructions on what extra steps were needed when remastering the Live CD.

Anyway alls well that ends well as they say....

Andy
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top