[meta-networking,rocko,1/2] kernel_wireless_regdb: Add class for embedding regulatory data into the kernel

Submitted by Krzysztof Kozlowski on April 25, 2018, 1:47 p.m. | Patch ID: 150298

Details

Message ID 1524664054-21717-1-git-send-email-krzk@kernel.org
State New
Delegated to: Armin Kuster
Headers show

Commit Message

Krzysztof Kozlowski April 25, 2018, 1:47 p.m.
Small embedded systems might:
1. Want to get rid of daemons as much as possible (therefore be built
   without CRDA),
2. Not receive user-space incremental updates but an entire system
   upgrade (with kernel).

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

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
 meta-networking/classes/kernel_wireless_regdb.bbclass        | 12 ++++++++++++
 .../wireless-regdb/wireless-regdb_2016.06.10.bb              |  8 ++++++++
 2 files changed, 20 insertions(+)
 create mode 100644 meta-networking/classes/kernel_wireless_regdb.bbclass

Patch hide | download patch | download mbox

diff --git a/meta-networking/classes/kernel_wireless_regdb.bbclass b/meta-networking/classes/kernel_wireless_regdb.bbclass
new file mode 100644
index 000000000000..6ae90d2d088c
--- /dev/null
+++ b/meta-networking/classes/kernel_wireless_regdb.bbclass
@@ -0,0 +1,12 @@ 
+# 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
+    echo ${S}
+}
+do_kernel_add_regdb[dirs] = "${S}"
+addtask kernel_add_regdb before do_configure after do_patch
diff --git a/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb b/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb
index 64e9401e7a3c..14bf272f4050 100644
--- a/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb
+++ b/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb
@@ -17,4 +17,12 @@  do_install() {
     install -m 0644 sforshee.key.pub.pem ${D}${sysconfdir}/wireless-regdb/pubkeys/sforshee.key.pub.pem
 }
 
+# Native users might want to use source db.txt
+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"

Comments

Krzysztof Kozlowski April 25, 2018, 1:51 p.m.
On Wed, Apr 25, 2018 at 3:47 PM, Krzysztof Kozlowski <krzk@kernel.org> wrote:
> Small embedded systems might:
> 1. Want to get rid of daemons as much as possible (therefore be built
>    without CRDA),
> 2. Not receive user-space incremental updates but an entire system
>    upgrade (with kernel).
>
> Add class kernel_wireless_regdb which allows in such cases to embed the
> wireless regulatory database directly in the Linux kernel during build
> process.
>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> ---
>  meta-networking/classes/kernel_wireless_regdb.bbclass        | 12 ++++++++++++
>  .../wireless-regdb/wireless-regdb_2016.06.10.bb              |  8 ++++++++
>  2 files changed, 20 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..6ae90d2d088c
> --- /dev/null
> +++ b/meta-networking/classes/kernel_wireless_regdb.bbclass
> @@ -0,0 +1,12 @@
> +# 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
> +    echo ${S}

Ah, some debugging code slipped in. I'll send v2.

Best regards,
Krzysztof
Trevor Woerner April 25, 2018, 2:30 p.m.
Please don't cross-post this to multiple repository lists. meta-networking
only exists in meta-openembedded, therefore this patch only needs to be
sent to openembedded-devel.