[oe] [meta-networking][PATCH] drbd: Add recipe

akuster808 akuster808 at gmail.com
Sat Aug 5 16:03:50 UTC 2017



On 07/27/2017 12:31 PM, Jagadeesh Krishnanjanappa wrote:
> DRBD is a block device which is designed to build high availability
> clusters. This is done by mirroring a whole block device via (a dedicated)
> network. You could see it as a "network RAID-1".
>
> This recipe provides DRBD9 kernel modules drbd.ko and
> drbd_transport_tcp.ko.

If this a kernel module, shouldn't it reside under recipes-kernel ?

- armin
>
> Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa at mvista.com>
> ---
>   ...ck_existence_of_modules_before_installing.patch | 24 ++++++++++++++++++++++
>   .../recipes-support/drbd/drbd_9.0.8-1.bb           | 22 ++++++++++++++++++++
>   2 files changed, 46 insertions(+)
>   create mode 100644 meta-networking/recipes-support/drbd/drbd/check_existence_of_modules_before_installing.patch
>   create mode 100644 meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb
>
> diff --git a/meta-networking/recipes-support/drbd/drbd/check_existence_of_modules_before_installing.patch b/meta-networking/recipes-support/drbd/drbd/check_existence_of_modules_before_installing.patch
> new file mode 100644
> index 0000000..6414f73
> --- /dev/null
> +++ b/meta-networking/recipes-support/drbd/drbd/check_existence_of_modules_before_installing.patch
> @@ -0,0 +1,24 @@
> +If CONFIG_BLK_DEV_DRBD kernel config is enabled, then DRBD
> +does not build drbd.ko here. Under this circumstance do_install
> +task is going to fail with a below error:
> +-- snip --
> +| install: cannot stat ‘drbd.ko’: No such file or directory
> +| make[1]: *** [install] Error 1
> +-- snip --
> +
> +So, check for kernel module existence before installing.
> +
> +Upstream-Status: Inappropriate [embedded specific]
> +
> +Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa at mvista.com>
> +--- drbd-9.0.1-1/drbd/Makefile	2016-07-03 06:54:19.421538690 -0700
> ++++ drbd-9.0.1-1/drbd/Makefile_mod	2016-07-03 06:53:18.938801628 -0700
> +@@ -158,7 +158,7 @@ else
> + 	fi
> + 	install -d $(DESTDIR)/lib/modules/$(KERNELRELEASE)/$(MODSUBDIR)
> + 	set -e ; for ko in $(MODOBJS); do \
> +-		install -m 644 $$ko $(DESTDIR)/lib/modules/$(KERNELRELEASE)/$(MODSUBDIR); \
> ++		[ -e $$ko ] && install -m 644 $$ko $(DESTDIR)/lib/modules/$(KERNELRELEASE)/$(MODSUBDIR); \
> + 	done
> +     ifeq ($(DESTDIR),/)
> +       ifeq ($(shell uname -r),$(KERNELRELEASE))
> diff --git a/meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb b/meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb
> new file mode 100644
> index 0000000..e943f24
> --- /dev/null
> +++ b/meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb
> @@ -0,0 +1,22 @@
> +SUMMARY = "Distributed block device driver for Linux"
> +DESCRIPTION = "DRBD is a block device which is designed to build high \
> +               availability clusters. This is done by mirroring a whole \
> +               block device via (a dedicated) network. You could see \
> +               it as a network raid-1."
> +HOMEPAGE = "http://oss.linbit.com/drbd/"
> +LICENSE = "GPLv2"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
> +DEPENDS = "virtual/kernel"
> +
> +SRC_URI = "http://www.linbit.com/downloads/drbd/9.0/drbd-${PV}.tar.gz \
> +           file://check_existence_of_modules_before_installing.patch"
> +
> +SRC_URI[md5sum] = "c1dd58043f46e9926b579aa65d4ea980"
> +SRC_URI[sha256sum] = "87f72d46db9bad926415b3ab9f5f1397de8c581d2e2ec1addbdd5ce2604e6123"
> +inherit module
> +
> +EXTRA_OEMAKE += "KDIR='${STAGING_KERNEL_DIR}'"
> +
> +do_install () {
> +    oe_runmake install DESTDIR="${D}"
> +}




More information about the Openembedded-devel mailing list