From: ChenQi <Qi.Chen@windriver.com>
To: akuster <akuster@mvista.com>,
<openembedded-devel@lists.openembedded.org>,
<openembedded-commits@lists.openembedded.org>
Subject: Re: [oe-commits] Armin Kuster : netmap: add new package
Date: Wed, 30 Sep 2015 10:33:04 +0800 [thread overview]
Message-ID: <560B49E0.8080004@windriver.com> (raw)
In-Reply-To: <560AB662.2090707@mvista.com>
On 09/30/2015 12:03 AM, akuster wrote:
> Chen Qi,
>
> It looks like "NETMAP_LINUX_IXGBE_DESC" needs to be defined. Supported
> values are 1-3.
>
> That variable can be appended to ${S}/LINUX/netmap_linux_config.h. Maybe
> it needs to be added to the recipe?
I tried these three values. None of them work.
>
> if not try add to the EXTRA_OECONF:
>
> --no-drivers= do not compile the given drivers (comma sep.)
> or
> --drivers= only compile the given drivers (comma sep.)
EXTRA_OECONF += "--no-drivers=ixgbe"
The above configuration works.
Best Regards,
Chen Qi
> Let me know what works.
>
> regards,
> Armin
>
>
> On 09/28/2015 11:00 PM, ChenQi wrote:
>> Hi Armin,
>>
>> I found that if CONFIG_IXGBE is enabled in kernel. This package fails to
>> build with error messages like below.
>>
>> | #error "unsupported ixgbe driver version"
>> | ^
>>
>> .......
>> .......
>>
>> error: request for member 'count' in something not a structure or union
>> | na.num_rx_desc = NM_IXGBE_RX_RING(adapter, 0)->count;
>> | ^
>> | cc1: some warnings being treated as errors
>>
>>
>> Do you have any idea how to fix it? Thanks.
>>
>> Best Regards,
>> Chen Qi
>>
>> On 09/17/2015 11:04 PM, git@opal.openembedded.org wrote:
>>> Module: meta-openembedded.git
>>> Branch: master-next
>>> Commit: 1692d5c3020434404fc1ee6911a60b88287a5efb
>>> URL:
>>> http://git.openembedded.org/?p=meta-openembedded.git&a=commit;h=1692d5c3020434404fc1ee6911a60b88287a5efb
>>>
>>>
>>> Author: Armin Kuster <akuster@mvista.com>
>>> Date: Sun Aug 9 05:56:30 2015 +0530
>>>
>>> netmap: add new package
>>>
>>> this adds netmap, the fast packet I/O framework
>>> http://info.iet.unipi.it/~luigi/netmap/
>>>
>>> - updated to latest version to get kernel 4.1 support
>>> - fixed printf type issue
>>> - Fixed manual config options
>>>
>>> Signed-off-by: Armin Kuster <akuster@mvista.com>
>>> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
>>> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
>>>
>>> ---
>>>
>>> ...1-testmmap-fix-compile-issue-with-gcc-5.x.patch | 33 ++++++++
>>> .../netmap/files/makefile_fixup.patch | 97
>>> ++++++++++++++++++++++
>>> .../recipes-kernel/netmap/netmap-modules_git.bb | 57 +++++++++++++
>>> meta-networking/recipes-kernel/netmap/netmap.inc | 17 ++++
>>> .../recipes-kernel/netmap/netmap_git.bb | 35 ++++++++
>>> 5 files changed, 239 insertions(+)
>>>
>>> diff --git
>>> a/meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch
>>> b/meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch
>>>
>>> new file mode 100644
>>> index 0000000..ea36b1c
>>> --- /dev/null
>>> +++
>>> b/meta-networking/recipes-kernel/netmap/files/0001-testmmap-fix-compile-issue-with-gcc-5.x.patch
>>>
>>> @@ -0,0 +1,33 @@
>>> +Upstream-Status: Pending
>>> +
>>> +From c81bf54d6eb870286662a11d3b4a994717c47696 Mon Sep 17 00:00:00 2001
>>> +From: Armin Kuster <akuster808@gmail.com>
>>> +Date: Tue, 8 Sep 2015 05:36:27 -0700
>>> +Subject: [PATCH] testmmap: fix compile issue with gcc 5.x
>>> +
>>> +this fixes:
>>> +examples/testmmap.c:540:10: error: format '%ld' expects argument of
>>> type 'long int', but argument 3 has type 'ssize_t {aka const int}'
>>> [-Werror=format=]
>>> +| printf("ring_ofs[%d] %ld\n", i, nifp->ring_ofs[i]);
>>> +| ^
>>> +
>>> +Signed-off-by: Armin Kuster <akuster808@gmail.com>
>>> +---
>>> + examples/testmmap.c | 2 +-
>>> + 1 file changed, 1 insertion(+), 1 deletion(-)
>>> +
>>> +diff --git a/examples/testmmap.c b/examples/testmmap.c
>>> +index d7f6acc..934489a 100644
>>> +--- a/examples/testmmap.c
>>> ++++ b/examples/testmmap.c
>>> +@@ -537,7 +537,7 @@ do_if()
>>> + for (i = 0; i < 5; i++)
>>> + printf("spare1[%d] %u\n", i, nifp->ni_spare1[i]);
>>> + for (i = 0; i < (nifp->ni_tx_rings + nifp->ni_rx_rings + 2); i++)
>>> +- printf("ring_ofs[%d] %ld\n", i, nifp->ring_ofs[i]);
>>> ++ printf("ring_ofs[%d] %zd\n", i, nifp->ring_ofs[i]);
>>> + }
>>> +
>>> + struct netmap_ring *
>>> +--
>>> +2.3.5
>>> +
>>> diff --git
>>> a/meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch
>>> b/meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch
>>> new file mode 100644
>>> index 0000000..b050bf0
>>> --- /dev/null
>>> +++ b/meta-networking/recipes-kernel/netmap/files/makefile_fixup.patch
>>> @@ -0,0 +1,97 @@
>>> +The makefile assumes building locally.
>>> +
>>> +Upstream Status: Inappropriate [Native]
>>> +
>>> +The configure is not auto-make based
>>> +
>>> +Signed-of-by: Armin Kuster <akuster@mvista.com>
>>> +
>>> +Index: LINUX/netmap.mak.in
>>> +===================================================================
>>> +--- a/LINUX/netmap.mak.in
>>> ++++ b/LINUX/netmap.mak.in
>>> +@@ -12,10 +12,9 @@ SRCDIR:=@SRCDIR@
>>> + # The following commands are needed to build the modules as
>>> out-of-tree,
>>> + # in fact the kernel sources path must be specified.
>>> +
>>> +-PWD ?= $(CURDIR)
>>> +
>>> + # Additional compile flags (e.g. header location)
>>> +-EXTRA_CFLAGS := -I$(PWD) -I$(SRCDIR) -I$(SRCDIR)/../sys
>>> -I$(SRCDIR)/../sys/dev -DCONFIG_NETMAP
>>> ++EXTRA_CFLAGS := -I$(SRCDIR) -I$(SRCDIR)/../sys
>>> -I$(SRCDIR)/../sys/dev -DCONFIG_NETMAP
>>> + EXTRA_CFLAGS += -Wno-unused-but-set-variable
>>> + EXTRA_CFLAGS += $(foreach s,$(SUBSYS),-DCONFIG_NETMAP_$(shell echo
>>> $s|tr a-z- A-Z_))
>>> +
>>> +Index: LINUX/configure
>>> +===================================================================
>>> +--- a/LINUX/configure
>>> ++++ b/LINUX/configure
>>> +@@ -349,52 +349,6 @@ reset_tests() {
>>> + EOF
>>> + }
>>> +
>>> +-# run_tests: run all accumulated tests and exec the pertinent
>>> +-# success/failure actions for each one.
>>> +-run_tests() {
>>> +- local t= # prevent -EOF to eat the make TAB
>>> +- cat > $TMPDIR/Makefile <<-EOF
>>> +- ifneq (\$(KERNELRELEASE),)
>>> +- obj-m := $TESTOBJS
>>> +- else
>>> +- S_DRIVERS := $(drv print)
>>> +- all: \$(S_DRIVERS:%=get-%)
>>> +- $t \$(MAKE) -C $ksrc M=\$\$PWD $kopts
>>> +-
>>> +- -include $TOPDIR/drivers.mak
>>> +- EOF
>>> +- for d in $(drv print); do
>>> +- cat >> $TMPDIR/Makefile <<-EOF
>>> +- get-$d:
>>> +- $t [ -z "\$($d-src)" ] || cp -Rp \$($d-src) \$(if
>>> \$($d-dst),\$($d-dst),.)
>>> +- $t touch get-$d
>>> +- EOF
>>> +- done
>>> +- echo endif >> $TMPDIR/Makefile
>>> +- {
>>> +- cat <<-EOF
>>> +-##############################################################################
>>>
>>> +-## BEGIN RUNNING TESTS: $(date)
>>> +-##############################################################################
>>>
>>> +-## Makefile:
>>> +- EOF
>>> +- cat $TMPDIR/Makefile
>>> +- cat <<-EOF
>>> +-##############################################################################
>>>
>>> +- EOF
>>> +- } >> config.log
>>> +- (
>>> +- cd $TMPDIR
>>> +- make -k -j $(grep -c processor /proc/cpuinfo)
>>> +- ) >> config.log
>>> +- eval "$TESTPOSTPROC"
>>> +- cat >> config.log <<-EOF
>>> +-##############################################################################
>>>
>>> +-## END RUNNING TESTS: $(date)
>>> +-##############################################################################
>>>
>>> +- EOF
>>> +-}
>>> +-
>>> + configh=netmap_linux_config.h
>>> + # succes/failure actions are expected to write some macros
>>> + # in netma_linux_config.h. The following functions can be
>>> +@@ -619,7 +573,6 @@ configuration. Please check 'config.log'
>>> + reset_tests
>>> + rm -f drivers.mak
>>> + add_test true broken_buildsystem < /dev/null
>>> +-run_tests
>>> +
>>> + drvname2config() {
>>> + local name=$1
>>> +@@ -1280,7 +1233,6 @@ cat > $configh <<-EOF
>>> + EOF
>>> +
>>> + # the TESTPOSTPROC script will add macros to $configh
>>> +-run_tests
>>> +
>>> + define DRIVER_SUFFIX \"$drvsuffix\"
>>> +
>>> diff --git
>>> a/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb
>>> b/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb
>>> new file mode 100644
>>> index 0000000..f9ac9cc
>>> --- /dev/null
>>> +++ b/meta-networking/recipes-kernel/netmap/netmap-modules_git.bb
>>> @@ -0,0 +1,57 @@
>>> +require netmap.inc
>>> +
>>> +DEPENDS = "virtual/kernel"
>>> +do_configure[depends] += "virtual/kernel:do_shared_workdir"
>>> +
>>> +inherit module
>>> +
>>> +CLEANBROKEN = "1"
>>> +
>>> +export INSTALL_MOD_DIR="kernel/netmap-modules"
>>> +
>>> +EXTRA_OECONF = "--kernel-dir=${STAGING_KERNEL_BUILDDIR} \
>>> + --kernel-sources=${STAGING_KERNEL_DIR} \
>>> + --install-mod-path=${D} \
>>> + --driver-suffix="-netmap" \
>>> + "
>>> +
>>> +LDFLAGS := "${@'${LDFLAGS}'.replace('-Wl,-O1', '')}"
>>> +LDFLAGS := "${@'${LDFLAGS}'.replace('-Wl,--as-needed', '')}"
>>> +
>>> +do_configure () {
>>> + cd ${S}/LINUX
>>> + ./configure ${EXTRA_OECONF}
>>> +}
>>> +
>>> +do_configure_append () {
>>> + cat >> ${S}/LINUX/netmap_linux_config.h <<EOF
>>> +#define NETMAP_LINUX_HAVE_HRTIMER_MODE_REL
>>> +#define NETMAP_LINUX_HAVE_HRTIMER_FORWARD_NOW
>>> +#define NETMAP_LINUX_HAVE_PHYS_ADDR_T
>>> +#define NETMAP_LINUX_HAVE_ACCESS_ONCE
>>> +#define NETMAP_LINUX_HAVE_NETDEV_OPS
>>> +#define NETMAP_LINUX_ALLOC_NETDEV_4ARGS
>>> +#define NETMAP_LINUX_HAVE_INIT_NET
>>> +#define NETMAP_LINUX_HAVE_LIVE_ADDR_CHANGE
>>> +#define NETMAP_LINUX_HAVE_TX_SKB_SHARING
>>> +#define NETMAP_LINUX_HAVE_UNLOCKED_IOCTL
>>> +#define NETMAP_LINUX_HAVE_PERNET_OPS_ID
>>> +#define NETMAP_LINUX_VIRTIO_FUNCTIONS
>>> +#define NETMAP_LINUX_VIRTIO_FREE_PAGES
>>> +#define NETMAP_LINUX_VIRTIO_GET_VRSIZE
>>> +#define NETMAP_LINUX_TIMER_RTYPE enum hrtimer_restart
>>> +#define NETMAP_LINUX_VIRTIO_MULTI_QUEUE
>>> +#define NETMAP_LINUX_HAVE_E1000E_EXT_RXDESC
>>> +#define NETMAP_LINUX_HAVE_E1000E_DOWN2
>>> +EOF
>>> +}
>>> +
>>> +do_compile () {
>>> + cd ${S}/LINUX
>>> + oe_runmake
>>> +}
>>> +
>>> +do_install () {
>>> + cd ${S}/LINUX
>>> + oe_runmake install
>>> +}
>>> diff --git a/meta-networking/recipes-kernel/netmap/netmap.inc
>>> b/meta-networking/recipes-kernel/netmap/netmap.inc
>>> new file mode 100644
>>> index 0000000..ab33e76
>>> --- /dev/null
>>> +++ b/meta-networking/recipes-kernel/netmap/netmap.inc
>>> @@ -0,0 +1,17 @@
>>> +SUMMARY = "netmap and VALE - very fast packet I/O from userspace
>>> (FreeBSD/Linux)"
>>> +DESCRIPTION= "NETMAP is a framework for very fast packet I/O from
>>> userspace. VALE is an equally fast in-kernel software switch using
>>> the netmap API. Both are implemented as a single kernel module for
>>> FreeBSD and Linux, and can deal with line rate on real or emulated 10
>>> Gbit ports."
>>> +SECTION = "networking"
>>> +HOMEPAGE = "http://code.google.com/p/netmap/"
>>> +LICENSE = "GPLv2+"
>>> +
>>> +LIC_FILES_CHKSUM =
>>> "file://README;beginline=13;endline=14;md5=56ae0b9c7ba0476ab9098de94c2714d6"
>>>
>>> +
>>> +SRCREV = "da9e19e69b84e4f6f8ae125f8d01b42a4abade6a"
>>> +PV = "master+git${SRCPV}"
>>> +
>>> +SRC_URI = "git://github.com/luigirizzo/netmap.git"
>>> +SRC_URI += "file://makefile_fixup.patch"
>>> +
>>> +S = "${WORKDIR}/git"
>>> +
>>> +COMPATIBLE_HOST = '(x86_64|i.86|mips|arm).*-linux'
>>> diff --git a/meta-networking/recipes-kernel/netmap/netmap_git.bb
>>> b/meta-networking/recipes-kernel/netmap/netmap_git.bb
>>> new file mode 100644
>>> index 0000000..f15a626
>>> --- /dev/null
>>> +++ b/meta-networking/recipes-kernel/netmap/netmap_git.bb
>>> @@ -0,0 +1,35 @@
>>> +require netmap.inc
>>> +
>>> +DEPENDS = "netmap-modules"
>>> +
>>> +EXTRA_OECONF = "--kernel-dir=${STAGING_KERNEL_BUILDDIR} \
>>> + --kernel-sources=${STAGING_KERNEL_DIR} \
>>> + --no-drivers \
>>> + --disable-generic \
>>> + --prefix=${prefix} \
>>> + --destdir=${D} \
>>> + --cc='${CC}' \
>>> + --ld='${LD}' \
>>> + "
>>> +SRC_URI += "file://0001-testmmap-fix-compile-issue-with-gcc-5.x.patch"
>>> +
>>> +do_fetch[depends] += "netmap-modules:do_fetch"
>>> +
>>> +do_configure () {
>>> + cd ${S}/LINUX
>>> + ./configure ${EXTRA_OECONF}
>>> +}
>>> +
>>> +do_compile () {
>>> + cd ${S}/LINUX
>>> + make apps
>>> +}
>>> +
>>> +do_install () {
>>> + cd ${S}/LINUX
>>> + make install-apps DESTDIR=${D}
>>> +}
>>> +
>>> +FILES_${PN} += "${bindir}"
>>> +RDEPENDS_${PN} = "kernel-module-netmap"
>>> +RRECOMMENDS_${PN} = "kernel-module-netmap"
>>>
>
prev parent reply other threads:[~2015-09-30 2:32 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20150917150451.AD524502CC@opal.openembedded.org>
2015-09-29 6:00 ` [oe-commits] Armin Kuster : netmap: add new package ChenQi
[not found] ` <560AB662.2090707@mvista.com>
2015-09-30 2:33 ` ChenQi [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=560B49E0.8080004@windriver.com \
--to=qi.chen@windriver.com \
--cc=akuster@mvista.com \
--cc=openembedded-commits@lists.openembedded.org \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.