Closed GoogleCodeExporter closed 9 years ago
There are two separate issues here:
- CONFIG_E1000E should be left at the original value, namely 'm'. There must be
some unclear instructions in the README, can you please point out the passage
that lead you to make that change? Also, please revert to the initial makefile,
then run 'make clean' and then retry.
- our e1000e and igb patches are failing on your kernel. Can you please attach
a tar.gz of the e1000e and igb directories as left by the failed make?
Original comment by giuseppe.lettieri73
on 16 Aug 2014 at 10:46
- CONFIG_E1000E should be left at the original value, namely 'm'. There must be
some unclear instructions in the README, can you please point out the passage
that lead you to make that change? Also, please revert to the initial makefile,
then run 'make clean' and then retry.
answer: I followed this guide:
https://cnp.neclab.eu/getting-started/#modular-vale (Attach and detach NICs
to/from the switch)
- our e1000e and igb patches are failing on your kernel. Can you please attach
a tar.gz of the e1000e and igb directories as left by the failed make?
answer: I'm trying to attach tar.gz file but I receive a bad request page. Is
there any other way to send you this tar.gz (like mail)?
Thank you.
Original comment by emerson....@gmail.com
on 16 Aug 2014 at 5:14
yes, of course. Please send me the tar.gz to g.lettieri@iet.unipi.it
Original comment by giuseppe.lettieri73
on 17 Aug 2014 at 6:17
Hi, I sent to you the files that you ask me.
Original comment by emerson....@gmail.com
on 18 Aug 2014 at 2:37
thanks. Your e1000e, igb and virtio_net drivers contain some additional patches
wrt the stock ones in linux 3.2.0 vanilla, and therefore out standard patches
don't work. If you don't need igb and virtio_net, you can remove the relevant
patches, do that the Makefile will not try to compile them:
rm patches/diff--igb--*
rm patches/diff--virtio_net.c--*
For e1000e I have applied the required bits manually and produced the attached
diff--e1000e--30100--30400. Just put the the file in the patches directory and
then run:
make clean
make
Original comment by giuseppe.lettieri73
on 18 Aug 2014 at 3:19
Attachments:
I did some tests, but I got the same error.
First, I did what you asked me (remove igb and virtio diff patches and included
diff--e1000e--30100--30400). Another test that I did was remove all diff files
and put only diff--e1000e--30100--30400. I removed all modules from makefile
but in all these cenarios I got the same error.
Downgrade my kernel is unfeasible.
Do you have any other idea?
# make
LIN_VER 3023c
---- Building from /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet
---- copying e1000e ---
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet/nvidia :
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet/realtek :
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet/intel :
drwxr-xr-x 2 root root 4096 Ago 12 23:33 e1000e/
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet/broadcom :
-rw-r--r-- 1 root root 8466 Ago 12 16:17 cnic_if.h
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet :
From /lib/modules/3.2.0-4-amd64/build/drivers/net :
** patch with diff--e1000e--30100--30400
Building the following drivers: e1000e
make -C /lib/modules/3.2.0-4-amd64/build M=/root/netmap/LINUX CONFIG_NETMAP=m
CONFIG_E1000E=m \
EXTRA_CFLAGS='-I/root/netmap/LINUX -I/root/netmap/LINUX/../sys -I/root/netmap/LINUX/../sys/dev -DCONFIG_NETMAP -Wno-unused-but-set-variable' \
O_DRIVERS="e1000e/" modules
make[1]: Entrando no diretório `/usr/src/linux-headers-3.2.0-4-amd64'
CC [M] /root/netmap/LINUX/netmap.o
CC [M] /root/netmap/LINUX/netmap_mem2.o
CC [M] /root/netmap/LINUX/netmap_generic.o
CC [M] /root/netmap/LINUX/netmap_mbq.o
CC [M] /root/netmap/LINUX/netmap_vale.o
CC [M] /root/netmap/LINUX/netmap_offloadings.o
CC [M] /root/netmap/LINUX/netmap_pipe.o
CC [M] /root/netmap/LINUX/netmap_linux.o
LD [M] /root/netmap/LINUX/netmap_lin.o
CC [M] /root/netmap/LINUX/e1000e/netdev.o
In file included from /root/netmap/LINUX/e1000e/netdev.c:464:0:
/root/netmap/LINUX/if_e1000e_netmap.h:48:2: warning: #warning this driver uses
extended descriptors [-Wcpp]
/root/netmap/LINUX/if_e1000e_netmap.h: In function âe1000_netmap_regâ:
/root/netmap/LINUX/if_e1000e_netmap.h:88:3: error: too few arguments to
function âe1000e_downâ
In file included from /root/netmap/LINUX/e1000e/netdev.c:49:0:
/root/netmap/LINUX/e1000e/e1000.h:541:13: note: declared here
In file included from /root/netmap/LINUX/e1000e/netdev.c:464:0:
/root/netmap/LINUX/if_e1000e_netmap.h: In function âe1000_netmap_txsyncâ:
/root/netmap/LINUX/if_e1000e_netmap.h:176:3: error: invalid operands to binary
+ (have âvoid *â and âvoid *â)
/root/netmap/LINUX/if_e1000e_netmap.h:185:11: error: invalid operands to binary
+ (have âvoid *â and âvoid *â)
/root/netmap/LINUX/if_e1000e_netmap.h: In function âe1000_netmap_rxsyncâ:
/root/netmap/LINUX/if_e1000e_netmap.h:289:3: error: invalid operands to binary
+ (have âvoid *â and âvoid *â)
/root/netmap/LINUX/if_e1000e_netmap.h: In function
âe1000e_netmap_init_buffersâ:
/root/netmap/LINUX/if_e1000e_netmap.h:346:2: error: invalid operands to binary
+ (have âvoid *â and âvoid *â)
/root/netmap/LINUX/e1000e/netdev.c: In function âe1000e_upâ:
/root/netmap/LINUX/e1000e/netdev.c:4502:26: error: ânetdevâ undeclared (first
use in this function)
/root/netmap/LINUX/e1000e/netdev.c:4502:26: note: each undeclared identifier is
reported only once for each function it appears in
/root/netmap/LINUX/e1000e/netdev.c: In function â__e1000_maybe_stop_txâ:
/root/netmap/LINUX/e1000e/netdev.c:6172:27: error: ânetdevâ undeclared (first
use in this function)
make[3]: ** [/root/netmap/LINUX/e1000e/netdev.o] Erro 1
make[2]: ** [/root/netmap/LINUX/e1000e] Erro 2
make[1]: ** [_module_/root/netmap/LINUX] Erro 2
make[1]: Saindo do diretório `/usr/src/linux-headers-3.2.0-4-amd64'
make: ** [build] Erro 2
root@clickos:~/netmap/LINUX#
Original comment by emerson....@gmail.com
on 19 Aug 2014 at 6:13
my fault. The patch I gave you contained some error, plus you also need an
updated if_e1000e_netmap.h. Please replace the corresponding files in LINUX
with the attached files, then 'make clean' and 'make' as before. If you only
need e1000e, is perfectly fine to delete all other patches.
Original comment by giuseppe.lettieri73
on 19 Aug 2014 at 7:46
Attachments:
result:
error in NM_WR_TX_TAIL(nic_i)
I'll work in this error too, and I'll report some evolution.
Thank you.
# make
LIN_VER 3023c
---- Building from /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet
---- copying e1000e ---
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet/nvidia :
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet/realtek :
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet/intel :
drwxr-xr-x 2 root root 4096 Ago 12 23:33 e1000e/
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet/broadcom :
-rw-r--r-- 1 root root 8466 Ago 12 16:17 cnic_if.h
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet :
From /lib/modules/3.2.0-4-amd64/build/drivers/net :
** patch with diff--e1000e--30100--30400
Building the following drivers: e1000e
make -C /lib/modules/3.2.0-4-amd64/build M=/root/netmap/LINUX CONFIG_NETMAP=m
CONFIG_E1000E=m \
EXTRA_CFLAGS='-I/root/netmap/LINUX -I/root/netmap/LINUX/../sys -I/root/netmap/LINUX/../sys/dev -DCONFIG_NETMAP -Wno-unused-but-set-variable' \
O_DRIVERS="e1000e/" modules
make[1]: Entrando no diretório `/usr/src/linux-headers-3.2.0-4-amd64'
CC [M] /root/netmap/LINUX/netmap.o
CC [M] /root/netmap/LINUX/netmap_mem2.o
CC [M] /root/netmap/LINUX/netmap_generic.o
CC [M] /root/netmap/LINUX/netmap_mbq.o
CC [M] /root/netmap/LINUX/netmap_vale.o
CC [M] /root/netmap/LINUX/netmap_offloadings.o
CC [M] /root/netmap/LINUX/netmap_pipe.o
CC [M] /root/netmap/LINUX/netmap_linux.o
LD [M] /root/netmap/LINUX/netmap_lin.o
CC [M] /root/netmap/LINUX/e1000e/netdev.o
In file included from /root/netmap/LINUX/e1000e/netdev.c:464:0:
/root/netmap/LINUX/if_e1000e_netmap.h:48:2: warning: #warning this driver uses
extended descriptors [-Wcpp]
/root/netmap/LINUX/if_e1000e_netmap.h: In function âe1000_netmap_txsyncâ:
/root/netmap/LINUX/if_e1000e_netmap.h:176:3: error: invalid operands to binary
+ (have âvoid *â and âvoid *â)
/root/netmap/LINUX/if_e1000e_netmap.h:185:11: error: invalid operands to binary
+ (have âvoid *â and âvoid *â)
/root/netmap/LINUX/if_e1000e_netmap.h: In function âe1000_netmap_rxsyncâ:
/root/netmap/LINUX/if_e1000e_netmap.h:289:3: error: invalid operands to binary
+ (have âvoid *â and âvoid *â)
/root/netmap/LINUX/if_e1000e_netmap.h: In function
âe1000e_netmap_init_buffersâ:
/root/netmap/LINUX/if_e1000e_netmap.h:346:2: error: invalid operands to binary
+ (have âvoid *â and âvoid *â)
make[3]: ** [/root/netmap/LINUX/e1000e/netdev.o] Erro 1
make[2]: ** [/root/netmap/LINUX/e1000e] Erro 2
make[1]: ** [_module_/root/netmap/LINUX] Erro 2
make[1]: Saindo do diretório `/usr/src/linux-headers-3.2.0-4-amd64'
make: ** [build] Erro 2
root@clickos:~/netmap/LINUX#
Original comment by emerson....@gmail.com
on 20 Aug 2014 at 1:09
It's the same problem again, your e1000e driver is newer than the rest of your
kernel. Unfortunately, I cannot test compilation by myself in this case. This
latter error should be caused by if_e1000e_netmap.h, where we have:
...
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0)
#define NM_WR_TX_TAIL(_x) writel(_x, txr->tail) // XXX tx_ring
#define NM_WR_RX_TAIL(_x) writel(_x, rxr->tail) // XXX rx_ring
#define NM_RD_TX_HEAD() readl(txr->head)
#else
#define NM_WR_TX_TAIL(_x) writel(_x, adapter->hw.hw_addr + txr->tail)
#define NM_WR_RX_TAIL(_x) writel(_x, adapter->hw.hw_addr + rxr->tail)
#define NM_RD_TX_HEAD() readl(adapter->hw.hw_addr + txr->head)
#endif /* < 3.4.0 */
...
This does not work for you, since you have a 3.2 kernel, but your e1000e driver
contains code from much later kernels. Can you please try to replace the "4" in
"KERNEL_VERSION_CODE(3, 4, 0)" with a "2" and see if that helps?
Original comment by giuseppe.lettieri73
on 20 Aug 2014 at 1:48
Ohhhh !!! Great !!!!
# make
LIN_VER 3023c
---- Building from /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet
---- copying e1000e ---
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet/nvidia :
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet/realtek :
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet/intel :
drwxr-xr-x 2 root root 4096 Ago 12 23:33 e1000e/
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet/broadcom :
-rw-r--r-- 1 root root 8466 Ago 12 16:17 cnic_if.h
From /lib/modules/3.2.0-4-amd64/build/drivers/net/ethernet :
From /lib/modules/3.2.0-4-amd64/build/drivers/net :
** patch with diff--e1000e--30100--30400
Building the following drivers: e1000e
make -C /lib/modules/3.2.0-4-amd64/build M=/root/netmap/LINUX CONFIG_NETMAP=m
CONFIG_E1000E=m \
EXTRA_CFLAGS='-I/root/netmap/LINUX -I/root/netmap/LINUX/../sys -I/root/netmap/LINUX/../sys/dev -DCONFIG_NETMAP -Wno-unused-but-set-variable' \
O_DRIVERS="e1000e/" modules
make[1]: Entrando no diretório `/usr/src/linux-headers-3.2.0-4-amd64'
CC [M] /root/netmap/LINUX/netmap.o
CC [M] /root/netmap/LINUX/netmap_mem2.o
CC [M] /root/netmap/LINUX/netmap_generic.o
CC [M] /root/netmap/LINUX/netmap_mbq.o
CC [M] /root/netmap/LINUX/netmap_vale.o
CC [M] /root/netmap/LINUX/netmap_offloadings.o
CC [M] /root/netmap/LINUX/netmap_pipe.o
CC [M] /root/netmap/LINUX/netmap_linux.o
LD [M] /root/netmap/LINUX/netmap_lin.o
CC [M] /root/netmap/LINUX/e1000e/netdev.o
In file included from /root/netmap/LINUX/e1000e/netdev.c:464:0:
/root/netmap/LINUX/if_e1000e_netmap.h:48:2: warning: #warning this driver uses
extended descriptors [-Wcpp]
CC [M] /root/netmap/LINUX/e1000e/ethtool.o
CC [M] /root/netmap/LINUX/e1000e/param.o
CC [M] /root/netmap/LINUX/e1000e/82571.o
CC [M] /root/netmap/LINUX/e1000e/ich8lan.o
CC [M] /root/netmap/LINUX/e1000e/80003es2lan.o
CC [M] /root/netmap/LINUX/e1000e/mac.o
CC [M] /root/netmap/LINUX/e1000e/nvm.o
CC [M] /root/netmap/LINUX/e1000e/phy.o
CC [M] /root/netmap/LINUX/e1000e/manage.o
CC [M] /root/netmap/LINUX/e1000e/kcompat.o
CC [M] /root/netmap/LINUX/e1000e/ptp.o
LD [M] /root/netmap/LINUX/e1000e/e1000e.o
Building modules, stage 2.
MODPOST 2 modules
CC /root/netmap/LINUX/e1000e/e1000e.mod.o
LD [M] /root/netmap/LINUX/e1000e/e1000e.ko
CC /root/netmap/LINUX/netmap_lin.mod.o
LD [M] /root/netmap/LINUX/netmap_lin.ko
make[1]: Saindo do diretório `/usr/src/linux-headers-3.2.0-4-amd64'
-rw-r--r-- 1 root root 4807067 Ago 20 12:01 ./e1000e/e1000e.ko
-rw-r--r-- 1 root root 2403114 Ago 20 12:01 ./netmap_lin.ko
Thank you a lot Giuseppe.
Original comment by emerson....@gmail.com
on 20 Aug 2014 at 3:02
You are welcome. For the future we are moving to a build system that does not
rely on linux kernel versions, and hopefully this kinds of problems will be
solved automatically.
I am closing the issue now.
Original comment by giuseppe.lettieri73
on 20 Aug 2014 at 3:09
Original issue reported on code.google.com by
emerson....@gmail.com
on 14 Aug 2014 at 12:07