Re: Building latest e1000 driver against 2.6.10-ssi_3develsmp kernel fails

"Roger Tsang" <[email protected]>
Newsgroups gmane.linux.cluster.ssic.user
Message-ID <[email protected]>
Does /usr/src/linux/include/cluster/synch_types.h exist?

Does /lib/modules/2.6.10-ssi_3develsmp/build contain the
2.6.10-ssi_3develsmp kernel sources?  At /usr/src/linux?

Roger

On 8/1/07, Isaac Colley <[email protected]> wrote:
> Hello,
>
> Does anyone know of instructions on how to successfully build the latest
> Intel e1000 driver against the Fedora Core 3 2.6.10-ssi_3develsmp kernel
> (or any thing else that will work)?
>
> I am trying to PXE boot a node that uses the e1000 NIC drivers.
> However, after retrieving and booting initrd, I get an error stating
> "Could not find the NIC used to add this node to the cluster".  This is
> because the e1000 driver (5.5.4-k2-NAPI) with the FC3
> 2.6.10-ssi_3develsmp kernel does not support my Intel PRO/1000 PL NIC.
>
> I have followed the install document dilligently.  An e1000 alias has
> been added to /etc/modprobe.conf and I have correctly done a
> mkinird/ssi-ksync.  In fact, I mounted the initrd in /tftpboot and
> verified the lib/e1000.ko module and the 'insmod e1000.ko' line in the
> linuxrc script.
>
> Here is my setup:
> Distro:  Fedora Core 3
> Kernel:  2.6.10-ssi_3develsmp
> gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)
> glibc-2.3.3
>
> The entry for the NIC in this version of /usr/share/hwdata/pci.ids does
> not exist, but in a newer version of hwdata (e.g.
> hwdata-0.200-1.fc7.noarch.rpm) would read:
> 109a 82573L Gigabit Ethernet Controller
>         8086 109a PRO/1000 PL Network Connection
>
> If I can get the driver compiled, I will hack the hwdata file manually
> (because newer hwdata rpms required upgrading glibc).
>
> So, I downloaded and tried to install the newest e1000 driver
> (7.6.5-NAPI) from Intel. Using these steps:
>
> rpm -i kernel-ssi-2.6.10-ssi_3devel.src.rpm
> rpmbuild -tb e1000-7.6.5.tar.gz  (fails)
>
> + make -C src INSTALL_MOD_PATH=/var/tmp/e1000-7.6.5-root
> MANDIR=/usr/share/man install
> make: Entering directory `/usr/src/redhat/BUILD/e1000-7.6.5/src'
> make -C /lib/modules/2.6.10-ssi_3develsmp/build
> SUBDIRS=/usr/src/redhat/BUILD/e1000-7.6.5/src modules
> make[1]: Entering directory `/lib/modules/2.6.10-ssi_3develsmp/build'
>   CC [M]  /usr/src/redhat/BUILD/e1000-7.6.5/src/e1000_main.o
> In file included from include/linux/module.h:10,
>                  from /usr/src/redhat/BUILD/e1000-7.6.5/src/e1000_main.c:29:
> include/linux/sched.h:38:33: cluster/synch_types.h: No such file or
> directory
> include/linux/sched.h:45:43: cluster/ssi/mosixll/mosixtask.h: No such
> file or directory
> In file included from include/linux/module.h:10,
>                  from /usr/src/redhat/BUILD/e1000-7.6.5/src/e1000_main.c:29:
> include/linux/sched.h:632: error: syntax error before "EVENT_T"
> include/linux/sched.h:632: warning: no semicolon at end of struct or union
> include/linux/sched.h:654: error: syntax error before ':' token
> include/linux/sched.h:749: error: syntax error before '}' token
> include/linux/sched.h: In function `process_group':
> include/linux/sched.h:753: error: dereferencing pointer to incomplete type
> include/linux/sched.h: In function `pid_alive':
> ...
>
> It appears that the errors are coming from within the SSI modified
> kernel headers (Maybe some gcc flags that are too strict?).
>
> I tried to "make install" the e1000 drivers manually, and got the same
> errors.  I even commented out the cluster/synch_types.h
> cluster/ssi/mosixll/mosixtask.h include directives in sched.h, but still
> got the "warning: no semicolon at end of struct or union" error/warning.
>
> Finally, I tried to compile the module against a vanilla 2.6.10 from
> kernel.org and force insmod to load it:
> bunzip2 linux-2.6.10.tar.bz2
> tar zxf linux-2.6.10.tar
> ln -s /root/linux-2.6.10 /usr/src/linux
> cd /root/e1000-7.6.5/src
>   (edit the e1000 Makefile to use the headers in /usr/src/linux first)
> make install
>   (no errors!)
> install -D -m 644 e1000.ko
> /lib/modules/2.6.10-ssi_3develsmp/kernel/drivers/net/e1000/e1000.ko
> mkinitrd --cfs -f /boot/initrd-2.6.10-ssi_3develsmp.img 2.6.10-ssi_3develsmp
> ssi-ksync
> zcat /tftpboot/initrd > /tmp/initrd.img
> mount -o loop /tmp/initrd.img /mnt
> cd /mnt
>   (edit linuxrc to:
>    insmod e1000.ko --force)
> umount /mnt
> gzip -9 /tmp/initrd.img
> mv /tmp/initrd.img.gz /tftpboot/initrd
>   (boot the PXE node...
>    Fails insmod struct_module version mismatch
>    "Could not find the NIC used to add this node to the cluster")
>
> Sorry for being so painfully detailed, I have run out of ideas on how to
> get my NIC recognized.  Any suggestions?
>
> Thanks,
> Isaac Colley
> eSoft, Inc
>
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems?  Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >>  http://get.splunk.com/
> _______________________________________________
> Ssic-linux-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ssic-linux-users
>

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.