Hi Friends, I recently purchased a LAN Card and the LAN Card CD contains drivers for Linux. But when I am trying to compile the driver on Centos4.4 I am getting below errors. [root@ankush1 sc92031]# make ***************************** sc92031.o built for 2.6.9-42.EL SMP Disabled ***************************** In file included from /lib/modules/2.6.9-42.EL/build/include/asm/processor.h:18, from /lib/modules/2.6.9-42.EL/build/include/asm/thread_info.h:16, from /lib/modules/2.6.9-42.EL/build/include/linux/thread_info.h:21, from /lib/modules/2.6.9-42.EL/build/include/linux/spinlock.h:12, from /lib/modules/2.6.9-42.EL/build/include/linux/capability.h:45, from /lib/modules/2.6.9-42.EL/build/include/linux/sched.h:7, from /lib/modules/2.6.9-42.EL/build/include/linux/module.h:10, from sc92031.c:19: /lib/modules/2.6.9-42.EL/build/include/asm/system.h: In function `__set_64bit_var': /lib/modules/2.6.9-42.EL/build/include/asm/system.h:193: warning: dereferencing type-punned pointer will break strict-aliasing rules /lib/modules/2.6.9-42.EL/build/include/asm/system.h:193: warning: dereferencing type-punned pointer will break strict-aliasing rules In file included from /lib/modules/2.6.9-42.EL/build/include/asm/smp.h:18, from /lib/modules/2.6.9-42.EL/build/include/linux/smp.h:96, from /lib/modules/2.6.9-42.EL/build/include/linux/sched.h:23, from /lib/modules/2.6.9-42.EL/build/include/linux/module.h:10, from sc92031.c:19: /lib/modules/2.6.9-42.EL/build/include/asm/mpspec.h:6:25: mach_mpspec.h: No such file or directory In file included from /lib/modules/2.6.9-42.EL/build/include/asm/smp.h:18, from /lib/modules/2.6.9-42.EL/build/include/linux/smp.h:96, from /lib/modules/2.6.9-42.EL/build/include/linux/sched.h:23, from /lib/modules/2.6.9-42.EL/build/include/linux/module.h:10, from sc92031.c:19: /lib/modules/2.6.9-42.EL/build/include/asm/mpspec.h: At top level: /lib/modules/2.6.9-42.EL/build/include/asm/mpspec.h:8: error: `MAX_MP_BUSSES' undeclared here (not in a function) /lib/modules/2.6.9-42.EL/build/include/asm/mpspec.h:23: error: `MAX_IRQ_SOURCES' undeclared here (not in a function) In file included from /lib/modules/2.6.9-42.EL/build/include/linux/irq.h:20, from /lib/modules/2.6.9-42.EL/build/include/asm/hardirq.h:6, from /lib/modules/2.6.9-42.EL/build/include/linux/hardirq.h:6, from /lib/modules/2.6.9-42.EL/build/include/linux/interrupt.h:11, from /lib/modules/2.6.9-42.EL/build/include/asm/highmem.h:24, from /lib/modules/2.6.9-42.EL/build/include/linux/highmem.h:14, from /lib/modules/2.6.9-42.EL/build/include/linux/skbuff.h:27, from /lib/modules/2.6.9-42.EL/build/include/linux/if_ether.h:107, from /lib/modules/2.6.9-42.EL/build/include/linux/netdevice.h:29, from sc92031.c:26: /lib/modules/2.6.9-42.EL/build/include/asm/irq.h:16:25: irq_vectors.h: No such file or directory In file included from /lib/modules/2.6.9-42.EL/build/include/asm/hardirq.h:6, from /lib/modules/2.6.9-42.EL/build/include/linux/hardirq.h:6, from /lib/modules/2.6.9-42.EL/build/include/linux/interrupt.h:11, from /lib/modules/2.6.9-42.EL/build/include/asm/highmem.h:24, from /lib/modules/2.6.9-42.EL/build/include/linux/highmem.h:14, from /lib/modules/2.6.9-42.EL/build/include/linux/skbuff.h:27, from /lib/modules/2.6.9-42.EL/build/include/linux/if_ether.h:107, from /lib/modules/2.6.9-42.EL/build/include/linux/netdevice.h:29, from sc92031.c:26: /lib/modules/2.6.9-42.EL/build/include/linux/irq.h:70: error: `NR_IRQS' undeclared here (not ina function) In file included from /lib/modules/2.6.9-42.EL/build/include/linux/irq.h:72, from /lib/modules/2.6.9-42.EL/build/include/asm/hardirq.h:6, from /lib/modules/2.6.9-42.EL/build/include/linux/hardirq.h:6, from /lib/modules/2.6.9-42.EL/build/include/linux/interrupt.h:11, from /lib/modules/2.6.9-42.EL/build/include/asm/highmem.h:24, from /lib/modules/2.6.9-42.EL/build/include/linux/highmem.h:14, from /lib/modules/2.6.9-42.EL/build/include/linux/skbuff.h:27, from /lib/modules/2.6.9-42.EL/build/include/linux/if_ether.h:107, from /lib/modules/2.6.9-42.EL/build/include/linux/netdevice.h:29, from sc92031.c:26: /lib/modules/2.6.9-42.EL/build/include/asm/hw_irq.h:28: error: `NR_IRQ_VECTORS' undeclared here(not in a function) sc92031.c:106:40: missing binary operator before token "(" sc92031.c:356: warning: `MODULE_PARM_' is deprecated (declared at /lib/modules/2.6.9-42.EL/build/include/linux/module.h:552) sc92031.c:357: warning: `MODULE_PARM_' is deprecated (declared at /lib/modules/2.6.9-42.EL/build/include/linux/module.h:552) sc92031.c: In function `silan_open': sc92031.c:945: warning: passing arg 2 of `request_irq' from incompatible pointer type sc92031.c: In function `netdev_ethtool_ioctl': sc92031.c:1848: error: `np' undeclared (first use in this function) sc92031.c:1848: error: (Each undeclared identifier is reported only once sc92031.c:1848: error: for each function it appears in.) sc92031.c:1900:40: missing binary operator before token "(" make: *** [sc92031.o] Error 1 How do I compile this driver on Centos4.4? I have attached the readme, makefile and sc92031.c files with this email. Please let me know if you need any other input. Thanks & Regards Ankush
Attachment:
Makefile
Description: Binary data
************************************************* ** Silan SC92031 PCI Fast Ethernet Adapter ** ** ** ** LINUX driver ** ************************************************* Introduction: ============= The instructions are for linux driver installation. You must compile the source code to generate sc92031.o and use insmod command to insert sc92031.o as module. Contents of the Subdirectory: ============================= readme.txt This file. sc92031.c The linux core driver source code file Makefile Makefile for generating driver object file Kernel Supported ================ This driver support linux kernel version 2.4.x/2.5.x now. Installation ============ 1) Create a temporary directory: # mkdir /temp 2) Change to the temporary directory: #cd /temp 3) Copy driver (sl_linux.tgz) from CD-ROM to the temporary directory, and follow the commands: # mount -t iso9660 /dev/cdrom /mnt # cp /mnt/sl_linux.tgz /temp 4) untar the archive file: # tar xzvf sl_linux.tgz # cd sc92031 5) Compile the driver source files and it will generate sc92031.o, and copy it to correct driver installation path (The installation directory is different in different kernel versions. In 2.4.x kernel, the path is /lib/modules/KERNEL_VERSION/kernel/drivers/net/, and in 2.2.x kernel, the path is /lib/modules/KERNEL_VERSION/net/) # make install 6) Check configuration file (/etc/modules.conf or /etc/conf.modules,it depend on your Linux distribution) for loading kernel modules. Make sure there is the following content in the configuration file, where # is interface number : alias eth# sc92031 7) Reboot now: shutdown -r now 8) Install your driver module (If the driver module is in the wrong place, an error message will appear, and say that can't find the driver module): insmod sc92031.o 8) Use ifconfig command to assign the IP address, where # is network interface number: ifconfig eth# <IP> 9) Check the interface works: ping <remote_host_IP> Uninstallation ============== Please enter the following commands to uninstall your driver: # make uninstall Module Parameter: ================= The following parameters can be set when we install the driver module. You can add this parameters when you execute 'insmod' command to install the driver # insmod sc92031.o work_node =0x00 work_mode work_mode is used for setting the speed and duplex mode of NIC.Value is as followed: Autoselect 0x00 M10-half 0x01 M10-full 0x02 M100-half 0x04 M100-full 0x08 If you want to use other modes,it can be changed by the following steps: # ifdown eth0 # rmmod sc92031 # insmod sc92031.o work_mode= ****
Attachment:
sc92031.c
Description: Binary data
_______________________________________________ CentOS mailing list CentOS@xxxxxxxxxx http://lists.centos.org/mailman/listinfo/centos