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?