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/