Openembedded Devel Discussions
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: openembedded-devel@lists.openembedded.org
Subject: [meta-networking][PATCH v4 3/3] kernel_wireless_regdb: Add class for embedding regulatory data into older kernel
Date: Thu,  5 Jul 2018 18:55:13 +0200	[thread overview]
Message-ID: <20180705165513.28142-4-krzk@kernel.org> (raw)
In-Reply-To: <20180705165513.28142-1-krzk@kernel.org>

Linux kernels before v4.15, allowed to be compiled with static
regulatory dabatase if it was put under net/wireless/db.txt.

Add kernel_wireless_regdb class which allows in such cases to embed the
wireless regulatory database directly in the Linux kernel during build
process.

Usage:
1. The class should be inherited by kernel recipe (e.g. in
   linux-yocto_%.bbappend).
2. For Linux kernels up to v4.14, build kernel with CONFIG_EXPERT and
   CONFIG_CFG80211_INTERNAL_REGDB.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
 meta-networking/classes/kernel_wireless_regdb.bbclass         | 11 +++++++++++
 .../wireless-regdb/wireless-regdb_2018.05.31.bb               | 10 ++++++++++
 2 files changed, 21 insertions(+)
 create mode 100644 meta-networking/classes/kernel_wireless_regdb.bbclass

diff --git a/meta-networking/classes/kernel_wireless_regdb.bbclass b/meta-networking/classes/kernel_wireless_regdb.bbclass
new file mode 100644
index 000000000000..a1eb4c532667
--- /dev/null
+++ b/meta-networking/classes/kernel_wireless_regdb.bbclass
@@ -0,0 +1,11 @@
+# Copies the regulatory plaintext database to kernel sources before compiling.
+# Linux kernel must be compiled with CONFIG_CFG80211_INTERNAL_REGDB to use it.
+
+DEPENDS += "wireless-regdb-native"
+
+SRCTREECOVEREDTASKS += "do_kernel_add_regdb"
+do_kernel_add_regdb() {
+    cp ${STAGING_LIBDIR_NATIVE}/crda/db.txt ${S}/net/wireless/db.txt
+}
+do_kernel_add_regdb[dirs] = "${S}"
+addtask kernel_add_regdb before do_build after do_configure
diff --git a/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2018.05.31.bb b/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2018.05.31.bb
index d40756ff2bbf..0b7930718761 100644
--- a/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2018.05.31.bb
+++ b/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2018.05.31.bb
@@ -23,6 +23,7 @@ do_install() {
 
 # Install static regulatory DB in /lib/firmware for kernel to load.
 # This requires Linux kernel >= v4.15.
+# For kernel <= v4.14, inherit the kernel_wireless_regdb.bbclass in kernel's recipe.
 PACKAGES =+ "${PN}-static"
 RCONFLICTS_${PN} = "${PN}-static"
 
@@ -31,4 +32,13 @@ FILES_${PN}-static = " \
     ${nonarch_base_libdir}/firmware/regulatory.db.p7s \
 "
 
+# Native users might want to use the source of regulatory DB.
+# This is for example used by Linux kernel <= v4.14 and kernel_wireless_regdb.bbclass.
+do_install_append_class-native() {
+    install -d -m 0755 ${D}${libdir}/crda
+    install -m 0644 db.txt ${D}${libdir}/crda/db.txt
+}
+
 RSUGGESTS_${PN} = "crda"
+
+BBCLASSEXTEND = "native"
-- 
2.14.1



  parent reply	other threads:[~2018-07-05 16:55 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-05 16:55 [meta-networking][PATCH v4 0/3] Add static/embedded wireless regulatory data Krzysztof Kozlowski
2018-07-05 16:55 ` [meta-networking][PATCH v4 1/3] wireless-regdb: Bump version to latest upstream 2018.05.31 Krzysztof Kozlowski
2018-07-05 16:55 ` [meta-networking][PATCH v4 2/3] wireless-regdb: Add wireless-regdb-static package with static regulatory data Krzysztof Kozlowski
2018-07-05 17:03   ` Khem Raj
2018-07-05 16:55 ` Krzysztof Kozlowski [this message]
2018-07-05 17:07   ` [meta-networking][PATCH v4 3/3] kernel_wireless_regdb: Add class for embedding regulatory data into older kernel Khem Raj
2018-07-05 17:09     ` Krzysztof Kozlowski

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=20180705165513.28142-4-krzk@kernel.org \
    --to=krzk@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox