It is currently 06 Sep 2010, 08:23

All times are UTC




Post new topic Reply to topic  [ 5 posts ] 
Author Message
 Post subject: problem with the compilation of the intel NIC driver[CLOSED]
PostPosted: 02 Jun 2010, 14:13 
Offline

Joined: 27 Oct 2009, 10:10
Posts: 24
Location: France -Quimper
Hello,

Here my problem.
I want activate the wake-on-lan facility on my NIC.
Code:
[root@RS6K1]lspci | grep "Ethernet Pro 100"
0000:21:01.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 0d)

I download the latest ethtool and it he give me :
Code:
[root@RS6K1]ethtool -h | grep version
ethtool version 2.6.33
[root@RS6K1]ethtool eth0
Settings for eth0:
   Supported ports: [ TP MII ]
   Supported link modes:   10baseT/Half 10baseT/Full
                           100baseT/Half 100baseT/Full
   Supports auto-negotiation: Yes
   Advertised link modes:  10baseT/Half 10baseT/Full
                           100baseT/Half 100baseT/Full
   Advertised pause frame use: No
   Advertised auto-negotiation: Yes
   Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                        100baseT/Half 100baseT/Full
   Link partner advertised pause frame use: No
   Link partner advertised auto-negotiation: Yes
   Speed: 100Mb/s
   Duplex: Full
   Port: MII
   PHYAD: 1
   Transceiver: internal
   Auto-negotiation: on
   Supports Wake-on: g
   Wake-on: d
   Current message level: 0x00000007 (7)
   Link detected: yes
[root@RS6K1]ethtool -s eth0 wol g
Cannot set new wake-on-lan settings: Operation not supported
  not setting wol



so I decided to compile myself the latest driver from intel : here ,
following this instructions.

A first make gave me :
Code:
[root@RS6K1]make
make -C /lib/modules/2.6.32.3-Pseries/build SUBDIRS=/tmp/e100-3.5.17/src modules
make[1]: Entering directory `/usr/src/linux-2.6.32.3'
scripts/Makefile.build:49: *** CFLAGS was changed in "/tmp/e100-3.5.17/src/Makefile". Fix it to use EXTRA_CFLAGS.  Stop.
make[1]: *** [_module_/tmp/Apps/e100-3.5.17/src] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.32.3'
make: *** [default] Error 2

so changed the KBUILD_NOPEDANTIC to '1' and finally obtained :
Code:
[root@RS6K1]KBUILD_NOPEDANTIC=1; make
make -C /lib/modules/2.6.32.3-Pseries/build SUBDIRS=/tmp/e100-3.5.17/src modules
make[1]: Entering directory `/usr/src/linux-2.6.32.3'
  CC [M]  /tmp/e100-3.5.17/src/e100.o
/tmp/e100-3.5.17/src/e100.c:141:26: error: linux/config.h: No such file or directory
/tmp/e100-3.5.17/src/e100.c: In function 'e100_rx_alloc_skb':
/tmp/e100-3.5.17/src/e100.c:1785: warning: passing argument 1 of 'pci_dma_mapping_error' makes pointer from integer without a cast
include/asm-generic/pci-dma-compat.h:102: note: expected 'struct pci_dev *' but argument is of type 'dma_addr_t'
/tmp/e100-3.5.17/src/e100.c:1785: error: too few arguments to function 'pci_dma_mapping_error'
/tmp/e100-3.5.17/src/e100.c: In function 'e100_up':
/tmp/e100-3.5.17/src/e100.c:2087: warning: passing argument 2 of 'request_irq' from incompatible pointer type
include/linux/interrupt.h:117: note: expected 'irq_handler_t' but argument is of type 'void (*)(int,  void *, struct pt_regs *)'
/tmp/e100-3.5.17/src/e100.c: At top level:
/tmp/e100-3.5.17/src/e100.c:2529: error: unknown field 'get_perm_addr' specified in initializer
/tmp/e100-3.5.17/src/e100.c:2529: error: 'ethtool_op_get_perm_addr' undeclared here (not in a function)
/tmp/e100-3.5.17/src/e100.c: In function 'e100_probe':
/tmp/e100-3.5.17/src/e100.c:2591: error: 'struct net_device' has no member named 'open'
/tmp/e100-3.5.17/src/e100.c:2592: error: 'struct net_device' has no member named 'stop'
/tmp/e100-3.5.17/src/e100.c:2593: error: 'struct net_device' has no member named 'hard_start_xmit'
/tmp/e100-3.5.17/src/e100.c:2594: error: 'struct net_device' has no member named 'get_stats'
/tmp/e100-3.5.17/src/e100.c:2595: error: 'struct net_device' has no member named 'set_multicast_list'
/tmp/e100-3.5.17/src/e100.c:2596: error: 'struct net_device' has no member named 'set_mac_address'
/tmp/e100-3.5.17/src/e100.c:2597: error: 'struct net_device' has no member named 'change_mtu'
/tmp/e100-3.5.17/src/e100.c:2598: error: 'struct net_device' has no member named 'do_ioctl'
/tmp/e100-3.5.17/src/e100.c:2600: error: 'struct net_device' has no member named 'tx_timeout'
/tmp/e100-3.5.17/src/e100.c:2607: error: 'struct net_device' has no member named 'poll_controller'
/tmp/e100-3.5.17/src/e100.c:2639: error: implicit declaration of function 'SET_MODULE_OWNER'
/tmp/e100-3.5.17/src/e100.c:2676:49: error: macro "INIT_WORK" passed 3 arguments, but takes just 2
/tmp/e100-3.5.17/src/e100.c:2675: error: 'INIT_WORK' undeclared (first use in this function)
/tmp/e100-3.5.17/src/e100.c:2675: error: (Each undeclared identifier is reported only once
/tmp/e100-3.5.17/src/e100.c:2675: error: for each function it appears in.)
/tmp/e100-3.5.17/src/e100.c: In function 'e100_io_error_detected':
/tmp/e100-3.5.17/src/e100.c:2819: error: 'struct net_device' has no member named 'stop'
/tmp/e100-3.5.17/src/e100.c:2822: error: implicit declaration of function 'netif_poll_enable'
make[2]: *** [/tmp/e100-3.5.17/src/e100.o] Error 1
make[1]: *** [_module_/tmp/e100-3.5.17/src] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.32.3'
make: *** [default] Error 2


the linux/config.h: No such file or directory seems indicate me that the Makefile try using the header of the kernel sources. Which should be under the /usr/src/linux-2.6.32.3/include directory.
But I didn't found the linux/config.h :
Code:
[root@RS6K1]for files in $(grep linux/.*.h e100.c | cut -d"/" -f2 | sed -e's/>$//'); do echo "$files==>";find /usr/src/linux-2.6.32.3/include -name "$files" -print | grep "linux/"; done
config.h==>
??????????
module.h==>
/usr/src/linux-2.6.32.3/include/linux/module.h
kernel.h==>
/usr/src/linux-2.6.32.3/include/linux/kernel.h
types.h==>
/usr/src/linux-2.6.32.3/include/linux/types.h
/usr/src/linux-2.6.32.3/include/linux/sunrpc/types.h
slab.h==>
/usr/src/linux-2.6.32.3/include/linux/slab.h
delay.h==>
/usr/src/linux-2.6.32.3/include/linux/delay.h
init.h==>
/usr/src/linux-2.6.32.3/include/linux/init.h
pci.h==>
/usr/src/linux-2.6.32.3/include/linux/pci.h
netdevice.h==>
/usr/src/linux-2.6.32.3/include/linux/netdevice.h
etherdevice.h==>
/usr/src/linux-2.6.32.3/include/linux/etherdevice.h
mii.h==>
/usr/src/linux-2.6.32.3/include/linux/mii.h
if_vlan.h==>
/usr/src/linux-2.6.32.3/include/linux/if_vlan.h
skbuff.h==>
/usr/src/linux-2.6.32.3/include/linux/skbuff.h
ethtool.h==>
/usr/src/linux-2.6.32.3/include/linux/ethtool.h
string.h==>
/usr/src/linux-2.6.32.3/include/linux/string.h
reboot.h==>
/usr/src/linux-2.6.32.3/include/linux/reboot.h


Is someone know how I can fix that?


Last edited by fredmj on 02 Jun 2010, 17:39, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: problem with the compilation of the intel NIC driver
PostPosted: 02 Jun 2010, 14:54 
Offline

Joined: 27 Oct 2009, 10:10
Posts: 24
Location: France -Quimper
OK this file seems no longer used :
http://www.linuxquestions.org/questions/linux-kernel-70/removal-of-include-linux-config-h-file-in-2-6-19-kernel-506363/

EDIT : To turn around, just 'touch' it.


Top
 Profile  
 
 Post subject: Re: problem with the compilation of the intel NIC driver
PostPosted: 02 Jun 2010, 15:56 
Offline

Joined: 27 Oct 2009, 10:10
Posts: 24
Location: France -Quimper
Sadly, I guess than this drivers is no longer maintained nor up-to-date.
sourceforge wrote:
e100 README FIRST

e100 is no longer being updated on this web site, it is only
being maintained in the upstream kernel available from kernel.org

It is likely that the e100 driver you have available in any
currently available linux distribution is up to date.

If you have questions or the driver in your kernel/distribution
doesn't work, please contact your distribution first, then if
you still have issues please contact us at

e1000-devel@lists.sourceforge.net

Thanks!


I have to find another way to enable some "wake-on-lan" like on my pseries.
Maybe trough the serial port.


Top
 Profile  
 
 Post subject: Re: problem with the compilation of the intel NIC driver[CLOSED]
PostPosted: 03 Jun 2010, 17:25 
Offline
User avatar

Joined: 17 Dec 2005, 14:31
Posts: 244
Location: Italy
it's a bad practice to use a different driver than the ones provided by the linux kernel if they already are upstreamed.

e.g.
Code:
root@power4:~# modinfo e100
filename:       /lib/modules/2.6.32.15/kernel/drivers/net/e100.ko
firmware:       e100/d102e_ucode.bin
firmware:       e100/d101s_ucode.bin
firmware:       e100/d101m_ucode.bin
version:        3.5.24-k2-NAPI
license:        GPL
author:         Copyright(c) 1999-2006 Intel Corporation
description:    Intel(R) PRO/100 Network Driver
srcversion:     F5D487D8EB75E1E5CDA57CA
alias:          pci:v00008086d000027DCsv*sd*bc02sc00i*
alias:          pci:v00008086d0000245Dsv*sd*bc02sc00i*
alias:          pci:v00008086d00002459sv*sd*bc02sc00i*
alias:          pci:v00008086d00002449sv*sd*bc02sc00i*
alias:          pci:v00008086d00001229sv*sd*bc02sc00i*
alias:          pci:v00008086d00001209sv*sd*bc02sc00i*
alias:          pci:v00008086d000010FEsv*sd*bc02sc00i*
alias:          pci:v00008086d00001095sv*sd*bc02sc00i*
alias:          pci:v00008086d00001094sv*sd*bc02sc00i*
alias:          pci:v00008086d00001093sv*sd*bc02sc00i*
alias:          pci:v00008086d00001092sv*sd*bc02sc00i*
alias:          pci:v00008086d00001091sv*sd*bc02sc00i*
alias:          pci:v00008086d0000106Bsv*sd*bc02sc00i*
alias:          pci:v00008086d0000106Asv*sd*bc02sc00i*
alias:          pci:v00008086d00001069sv*sd*bc02sc00i*
alias:          pci:v00008086d00001068sv*sd*bc02sc00i*
alias:          pci:v00008086d00001067sv*sd*bc02sc00i*
alias:          pci:v00008086d00001066sv*sd*bc02sc00i*
alias:          pci:v00008086d00001065sv*sd*bc02sc00i*
alias:          pci:v00008086d00001064sv*sd*bc02sc00i*
alias:          pci:v00008086d00001059sv*sd*bc02sc00i*
alias:          pci:v00008086d00001057sv*sd*bc02sc00i*
alias:          pci:v00008086d00001056sv*sd*bc02sc00i*
alias:          pci:v00008086d00001055sv*sd*bc02sc00i*
alias:          pci:v00008086d00001054sv*sd*bc02sc00i*
alias:          pci:v00008086d00001053sv*sd*bc02sc00i*
alias:          pci:v00008086d00001052sv*sd*bc02sc00i*
alias:          pci:v00008086d00001051sv*sd*bc02sc00i*
alias:          pci:v00008086d00001050sv*sd*bc02sc00i*
alias:          pci:v00008086d0000103Esv*sd*bc02sc00i*
alias:          pci:v00008086d0000103Dsv*sd*bc02sc00i*
alias:          pci:v00008086d0000103Csv*sd*bc02sc00i*
alias:          pci:v00008086d0000103Bsv*sd*bc02sc00i*
alias:          pci:v00008086d0000103Asv*sd*bc02sc00i*
alias:          pci:v00008086d00001039sv*sd*bc02sc00i*
alias:          pci:v00008086d00001038sv*sd*bc02sc00i*
alias:          pci:v00008086d00001034sv*sd*bc02sc00i*
alias:          pci:v00008086d00001033sv*sd*bc02sc00i*
alias:          pci:v00008086d00001032sv*sd*bc02sc00i*
alias:          pci:v00008086d00001031sv*sd*bc02sc00i*
alias:          pci:v00008086d00001030sv*sd*bc02sc00i*
alias:          pci:v00008086d00001029sv*sd*bc02sc00i*
depends:
vermagic:       2.6.32.15 SMP mod_unload
parm:           debug:Debug level (0=none,...,16=all) (int)
parm:           eeprom_bad_csum_allow:Allow bad eeprom checksums (int)
parm:           use_io:Force use of i/o access mode (int)


from that output is in evidence that these driver is the latest available. Further infos are available reading the code linux/drivers/net/e100.c.

A good practice with these kind of machines, before to start any project/work, is to check if there is some firmware update (ibm microcodes) and to use always the latest linux kernel available and eventually to check linux kernel's changelog to read about new fixes.

I don't know if your kernel config has some issues anyway try with this one. Maybe you want to add the only NUMA support too if you need it.


Top
 Profile  
 
 Post subject: Re: problem with the compilation of the intel NIC driver[CLOSED]
PostPosted: 12 Jun 2010, 20:10 
Offline

Joined: 27 Oct 2009, 10:10
Posts: 24
Location: France -Quimper
Ok thank you for this advices.
The firmware level on my machine seems to be the 3F080425, but I will check on the ibm website if there's some newer available. If you already know where I could get an effectively new one, don't hesitate to give me the link.
Thanks for this configuration file, I will try it as soon as I'll be home.
Concerning the NUMA option, do you think that will really improve my cluster configuration?


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
cron