[OE-core] [PATCH] cryptodev kernel module recipe

McClintock Matthew-B29882 B29882 at freescale.com
Thu Oct 18 20:33:52 UTC 2012


On Thu, Oct 18, 2012 at 3:16 PM, Darren Hart <dvhart at linux.intel.com> wrote:
>
>
> On 10/18/2012 05:57 AM, Yashpal Dutta wrote:
>> This is a /dev/crypto device driver, equivalent to those in OpenBSD or FreeBSD.
>> The main idea is to access of existing ciphers in kernel space from userspace,
>> thus enabling re-use of a hardware implementation of a cipher.
>>
>> Signed-off-by: Yashpal Dutta <yashpal.dutta at freescale.com>
>> ---
>>  meta/recipes-kernel/cryptodev/cryptodev_1.5.bb     |   18 +++++++++++++
>>  .../cryptodev/files/makefile_fixup.patch           |   26 ++++++++++++++++++++
>>  2 files changed, 44 insertions(+), 0 deletions(-)
>>  create mode 100644 meta/recipes-kernel/cryptodev/cryptodev_1.5.bb
>>  create mode 100644 meta/recipes-kernel/cryptodev/files/makefile_fixup.patch
>>
>> diff --git a/meta/recipes-kernel/cryptodev/cryptodev_1.5.bb b/meta/recipes-kernel/cryptodev/cryptodev_1.5.bb
>> new file mode 100644
>> index 0000000..5125710
>> --- /dev/null
>> +++ b/meta/recipes-kernel/cryptodev/cryptodev_1.5.bb
>> @@ -0,0 +1,18 @@
>> +SECTION = "devel"
>> +SUMMARY = "Linux Cryptodev KERNEL MODULE"
>> +DESCRIPTION = "The Cryptodev package contains the kernel /dev/crypto module"
>> +LICENSE = "GPLv2"
>> +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
>> +
>> +DEPENDS = "virtual/kernel"
>
> This DEPENDS in inherited from the module.bbclass, no need to duplicate
>
>> +
>> +inherit module
>> +
>> +SRCREV = "1c24a0aa996630518d47826a2e3fea129ea094c7"
>> +
>> +SRC_URI = "git://repo.or.cz/cryptodev-linux.git;protocol=git \
>> +       file://makefile_fixup.patch"
>
> Tabs to indent, spaces to align. Spaces here please.
>
>> +
>> +EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"'
>
> modules.bbclass already sets KERNEL_PATH and KERNEL_SRC, perhaps you
> could use one of those?

cryptodev Makefile does not use these it uses KERNEL_DIR in it's
Makefile for whatever reason. Getting an upstream project to change is
more difficult.

> If you just use ${includedir} in your install I believe you can skip
> PREFIX here and get the /usr part right there.

This is more changes to the upstream Makefile....

>> +
>> +S = "${WORKDIR}/git"
>> diff --git a/meta/recipes-kernel/cryptodev/files/makefile_fixup.patch b/meta/recipes-kernel/cryptodev/files/makefile_fixup.patch
>> new file mode 100644
>> index 0000000..323aacd
>> --- /dev/null
>> +++ b/meta/recipes-kernel/cryptodev/files/makefile_fixup.patch
>> @@ -0,0 +1,26 @@
>> +diff --git a/Makefile b/Makefile
>> +index 2be8825..b36d68c 100644
>> +--- a/Makefile
>> ++++ b/Makefile
>> +@@ -1,6 +1,7 @@
>> + KBUILD_CFLAGS += -I$(src)
>> + KERNEL_DIR = /lib/modules/$(shell uname -r)/build
>> + VERSION = 1.5
>> ++PREFIX =
>> +
>> + cryptodev-objs = ioctl.o main.o cryptlib.o authenc.o zc.o util.o
>> +
>> +@@ -12,10 +13,10 @@ build: version.h
>> + version.h: Makefile
>> +     @echo "#define VERSION \"$(VERSION)\"" > version.h
>> +
>> +-install:
>> ++modules_install:
>> +     make -C $(KERNEL_DIR) SUBDIRS=`pwd` modules_install
>
> Current kernels recommend using M= instead of SUBDIRS=:
>
> SRC := $(shell pwd)
> make -C $(KERNEL_SRC) M=$(SRC) modules_install
>
> See the hello-mod example in meta-skeleton/recipes-kernel/hello-mod for
> a minimal example.
>
>> +-    @echo "Installing cryptodev.h in /usr/include/crypto ..."
>> +-    @install -D crypto/cryptodev.h /usr/include/crypto/cryptodev.h
>> ++    @echo "Installing cryptodev.h in $(PREFIX)/usr/include/crypto ..."
>> ++    @install -D crypto/cryptodev.h $(PREFIX)/usr/include/crypto/cryptodev.h
>
> Use ${includedir} here

You can't use this bitbake variable in a Makefile... or am I missing
something? We are making small changes the Makefile for things like
prefix so we can install to locations other than the hosts
/usr/include which is hard coded.

-M

>
>> +
>> + clean:
>> +     make -C $(KERNEL_DIR) SUBDIRS=`pwd` clean
>>
>
> M=

Is changing upstream cryptodev is one thing (e.g. SUBDIR= vs. M=), how
far do you want a patch to a Makefile to change the way a project
builds?

-M

>
> --
> Darren Hart
> Intel Open Source Technology Center
> Yocto Project - Technical Lead - Linux Kernel
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list