[dpdk-dev] how to compile kernel drivers only
Francesco, please reply below (easier to follow the thread). 2015-07-30 12:48, Montorsi, Francesco: > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com] > > 2015-07-30 12:17, Montorsi, Francesco: > > > How can I avoid building any app like dump_cfg? > > > > In app/Makefile, you'll find the options to disable: > > DIRS-$(CONFIG_RTE_APP_TEST) += test > > DIRS-$(CONFIG_RTE_LIBRTE_ACL) += test-acl > > DIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += test-pipeline > > DIRS-$(CONFIG_RTE_TEST_PMD) += test-pmd > > DIRS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_test > > DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += proc_info > > My problem is that I have in app/Makefile: > > DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += dump_cfg > > So that I should put > > CONFIG_RTE_LIBRTE_EAL_LINUXAPP=n > > To disable dump_cfg application build. However, If I do so, the kernel > drivers are not built at all and make just says: > > make T=x86_64-native-linuxapp-gcc O=x86_64-native-linuxapp-gcc > EXTRA_LDFLAGS="" --directory=dpdk-2.0.0 all > make[1]: Entering directory > `/home/hammer/share/CSA-Hamachi-Sprint/HW-Accel/drivers/dpdk/dpdk-2.0.0' > == Build lib > == Build lib/librte_compat > SYMLINK-FILE include/rte_compat.h > == Build lib/librte_eal > == Build app > Build complete > > So that > CONFIG_RTE_LIBRTE_EAL_LINUXAPP=y > Seems to be a pre-requisite of kernel drivers... or am I missing something? You're right. You cannot build only kernel drivers. You are welcome to add a new config option to enable/disable apps.
[dpdk-dev] how to compile kernel drivers only
2015-07-30 12:17, Montorsi, Francesco: > How can I avoid building any app like dump_cfg? In app/Makefile, you'll find the options to disable: DIRS-$(CONFIG_RTE_APP_TEST) += test DIRS-$(CONFIG_RTE_LIBRTE_ACL) += test-acl DIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += test-pipeline DIRS-$(CONFIG_RTE_TEST_PMD) += test-pmd DIRS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_test DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += proc_info
[dpdk-dev] how to compile kernel drivers only
Hi Thomas, Thanks for your reply. My problem is that I have in app/Makefile: DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += dump_cfg So that I should put CONFIG_RTE_LIBRTE_EAL_LINUXAPP=n To disable dump_cfg application build. However, If I do so, the kernel drivers are not built at all and make just says: make T=x86_64-native-linuxapp-gcc O=x86_64-native-linuxapp-gcc EXTRA_LDFLAGS="" --directory=dpdk-2.0.0 all make[1]: Entering directory `/home/hammer/share/CSA-Hamachi-Sprint/HW-Accel/drivers/dpdk/dpdk-2.0.0' == Build lib == Build lib/librte_compat SYMLINK-FILE include/rte_compat.h == Build lib/librte_eal == Build app Build complete So that CONFIG_RTE_LIBRTE_EAL_LINUXAPP=y Seems to be a pre-requisite of kernel drivers... or am I missing something? Thanks, Francesco -Original Message- From: Thomas Monjalon [mailto:thomas.monja...@6wind.com] Sent: gioved? 30 luglio 2015 14:23 To: Montorsi, Francesco Cc: dev at dpdk.org Subject: Re: [dpdk-dev] how to compile kernel drivers only 2015-07-30 12:17, Montorsi, Francesco: > How can I avoid building any app like dump_cfg? In app/Makefile, you'll find the options to disable: DIRS-$(CONFIG_RTE_APP_TEST) += test DIRS-$(CONFIG_RTE_LIBRTE_ACL) += test-acl DIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += test-pipeline DIRS-$(CONFIG_RTE_TEST_PMD) += test-pmd DIRS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_test DIRS-$(CONFIG_RTE_LIBRTE_EAL_LINUXAPP) += proc_info
[dpdk-dev] how to compile kernel drivers only
Hi all, I'm trying to compile DPDK kernel drivers (i.e., igb_uio.ko and kni.ko if I got it right) only on a certain machine. On that machine, I'm not interested in anything else. how can I tweak .config file to achieve it? I have tried to set all options to =n, except for: CONFIG_RTE_LIBRTE_EAL=y CONFIG_RTE_LIBRTE_EAL_LINUXAPP=y CONFIG_RTE_EAL_IGB_UIO=y CONFIG_RTE_EAL_VFIO=y CONFIG_RTE_LIBRTE_KNI=y But then I get a compile error about app/dump_cfg: == Build app/dump_cfg ? CC main.o ? LD dump_cfg dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_common_log.o): In function `rte_eal_common_log_init': eal_common_log.c:(.text+0x1b0): undefined reference to `rte_mempool_create' eal_common_log.c:(.text+0x1fe): undefined reference to `rte_mempool_lookup' dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_pci_uio.o): In function `pci_uio_map_resource': eal_pci_uio.c:(.text+0x4dd): undefined reference to `rte_zmalloc' eal_pci_uio.c:(.text+0x873): undefined reference to `rte_malloc' eal_pci_uio.c:(.text+0x9bf): undefined reference to `rte_malloc' eal_pci_uio.c:(.text+0xb0a): undefined reference to `rte_malloc' eal_pci_uio.c:(.text+0xc55): undefined reference to `rte_malloc' eal_pci_uio.c:(.text+0xda6): undefined reference to `rte_malloc' dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_pci_uio.o):eal_pci_uio.c:(.text+0xf00): more undefined references to `rte_malloc' follow dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_pci_uio.o): In function `pci_uio_map_resource': eal_pci_uio.c:(.text+0x10e4): undefined reference to `rte_free' dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_interrupts.o): In function `rte_intr_callback_unregister': eal_interrupts.c:(.text+0x7b6): undefined reference to `rte_free' eal_interrupts.c:(.text+0x7f2): undefined reference to `rte_free' eal_interrupts.c:(.text+0x84c): undefined reference to `rte_free' dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_interrupts.o): In function `rte_intr_callback_register': eal_interrupts.c:(.text+0x8fb): undefined reference to `rte_zmalloc' eal_interrupts.c:(.text+0x96f): undefined reference to `rte_zmalloc' eal_interrupts.c:(.text+0xac4): undefined reference to `rte_free' dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_alarm.o): In function `rte_eal_alarm_cancel': eal_alarm.c:(.text+0xa4): undefined reference to `rte_free' eal_alarm.c:(.text+0x128): undefined reference to `rte_free' eal_alarm.c:(.text+0x156): undefined reference to `rte_free' eal_alarm.c:(.text+0x1d3): undefined reference to `rte_free' dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_alarm.o): In function `rte_eal_alarm_set': eal_alarm.c:(.text+0x31e): undefined reference to `rte_zmalloc' dpdk/dpdk-2.0.0/x86_64-native-linuxapp-gcc/lib/librte_eal.a(eal_alarm.o): In function `eal_alarm_callback': eal_alarm.c:(.text+0x59e): undefined reference to `rte_free' How can I avoid building any app like dump_cfg? Thanks! Francesco