From patchwork Mon Jul 27 10:06:20 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luca Ceresoli X-Patchwork-Id: 500305 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ozlabs.org (Postfix) with ESMTP id 70491140313 for ; Mon, 27 Jul 2015 20:06:38 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id A2D648AEDC; Mon, 27 Jul 2015 10:06:37 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XGiRmrKd8V8j; Mon, 27 Jul 2015 10:06:36 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id E31888A1FA; Mon, 27 Jul 2015 10:06:35 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 3DA341C0A72 for ; Mon, 27 Jul 2015 10:06:34 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 3904690956 for ; Mon, 27 Jul 2015 10:06:34 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id x38jwKenbdm1 for ; Mon, 27 Jul 2015 10:06:33 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from srv-hp10.netsons.net (unknown [94.141.22.72]) by whitealder.osuosl.org (Postfix) with ESMTPS id 0224D8AB3F for ; Mon, 27 Jul 2015 10:06:32 +0000 (UTC) Received: from host178-184-static.31-195-b.business.telecomitalia.it ([195.31.184.178]:56735 helo=wallace.comelit.it) by srv-hp10.netsons.net with esmtpa (Exim 4.85) (envelope-from ) id 1ZJfIi-001JqN-Ul; Mon, 27 Jul 2015 12:06:29 +0200 From: Luca Ceresoli To: buildroot@busybox.net Date: Mon, 27 Jul 2015 12:06:20 +0200 Message-Id: <1437991580-31649-1-git-send-email-luca@lucaceresoli.net> X-Mailer: git-send-email 1.9.1 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - srv-hp10.netsons.net X-AntiAbuse: Original Domain - busybox.net X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lucaceresoli.net X-Get-Message-Sender-Via: srv-hp10.netsons.net: authenticated_id: luca+lucaceresoli.net/only user confirmed/virtual account not confirmed X-Source: X-Source-Args: X-Source-Dir: Cc: Luca Ceresoli , "Yann E . MORIN" Subject: [Buildroot] [PATCH v3] rtl8188eu: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Signed-off-by: Luca Ceresoli Reviewed-by: "Yann E. MORIN" --- This standalone driver needs a few small patches to properly build and install within Buildroot. Pathces sent upstream: https://github.com/lwfinger/rtl8188eu/pull/128 Changes v2 -> v3: - remove patches 4 and 5, useless in the Buildroot context (Yann); - add Yann's Reviewed-by tag; - rebase on current master. Changes v1 -> v2: - use the kernel-module infra; - mention binary blob in _LICENSE; - remove inappropriate BR2_ROOTFS_DEVICE_CREATION_ stuff; - mention the need to enable CONFIG_WIRELESS_EXT in the kernel. --- package/Config.in | 1 + .../0001-Makefile-quote-CROSS_COMPILE.patch | 33 +++++++++++++++++++++ ...002-Makefile-add-a-modules_install-target.patch | 34 ++++++++++++++++++++++ ...03-Makefile-add-a-firmware_install-target.patch | 32 ++++++++++++++++++++ package/rtl8188eu/Config.in | 19 ++++++++++++ package/rtl8188eu/rtl8188eu.mk | 21 +++++++++++++ 6 files changed, 140 insertions(+) create mode 100644 package/rtl8188eu/0001-Makefile-quote-CROSS_COMPILE.patch create mode 100644 package/rtl8188eu/0002-Makefile-add-a-modules_install-target.patch create mode 100644 package/rtl8188eu/0003-Makefile-add-a-firmware_install-target.patch create mode 100644 package/rtl8188eu/Config.in create mode 100644 package/rtl8188eu/rtl8188eu.mk diff --git a/package/Config.in b/package/Config.in index f029e1d..493851a 100644 --- a/package/Config.in +++ b/package/Config.in @@ -405,6 +405,7 @@ endif source "package/read-edid/Config.in" source "package/rng-tools/Config.in" source "package/rpi-userland/Config.in" + source "package/rtl8188eu/Config.in" source "package/rtl8821au/Config.in" source "package/sane-backends/Config.in" source "package/sdparm/Config.in" diff --git a/package/rtl8188eu/0001-Makefile-quote-CROSS_COMPILE.patch b/package/rtl8188eu/0001-Makefile-quote-CROSS_COMPILE.patch new file mode 100644 index 0000000..9b375fe --- /dev/null +++ b/package/rtl8188eu/0001-Makefile-quote-CROSS_COMPILE.patch @@ -0,0 +1,33 @@ +From 7b7d6b392a963b462c0240296daa38d6413f6246 Mon Sep 17 00:00:00 2001 +From: Luca Ceresoli +Date: Fri, 3 Jul 2015 14:45:03 +0200 +Subject: [PATCH 1/5] Makefile: quote CROSS_COMPILE + +When using a CROSS_COMPILE value that contains a whitespace, such as +"ccache arm-linux-", building fails because only the first word is passed down +to the kernel Makefile as CROSS_COMPILE. Successive words are interpreted as +targets. + +Fix by quoting CROSS_COMPILE. + +Signed-off-by: Luca Ceresoli +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index ea1b316..76db121 100644 +--- a/Makefile ++++ b/Makefile +@@ -144,7 +144,7 @@ export CONFIG_RTL8188EU = m + all: modules + + modules: +- $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KSRC) M=$(shell pwd) modules ++ $(MAKE) ARCH=$(ARCH) CROSS_COMPILE="$(CROSS_COMPILE)" -C $(KSRC) M=$(shell pwd) modules + + strip: + $(CROSS_COMPILE)strip 8188eu.ko --strip-unneeded +-- +1.9.1 + diff --git a/package/rtl8188eu/0002-Makefile-add-a-modules_install-target.patch b/package/rtl8188eu/0002-Makefile-add-a-modules_install-target.patch new file mode 100644 index 0000000..fe0aa94 --- /dev/null +++ b/package/rtl8188eu/0002-Makefile-add-a-modules_install-target.patch @@ -0,0 +1,34 @@ +From f7e5725ea2e848546830ac2da117d808b4c19d08 Mon Sep 17 00:00:00 2001 +From: Luca Ceresoli +Date: Fri, 3 Jul 2015 15:51:38 +0200 +Subject: [PATCH 2/5] Makefile: add a modules_install target + +Allows to cleanly install the module in the standard way, as suggested by +Documentation/kbuild/modules.txt in the kernel sources. + +This is needed when installing from within a build system (such as Buildroot) +that implement depmod on its own, and does not need the blacklist and other +fixups that are implemented by the 'install' target. + +Signed-off-by: Luca Ceresoli +--- + Makefile | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/Makefile b/Makefile +index 76db121..63e0103 100644 +--- a/Makefile ++++ b/Makefile +@@ -149,6 +149,9 @@ modules: + strip: + $(CROSS_COMPILE)strip 8188eu.ko --strip-unneeded + ++modules_install: ++ $(MAKE) -C $(KSRC) M=`pwd` modules_install ++ + install: + install -p -m 644 8188eu.ko $(MODDESTDIR) + @if [ -a /lib/modules/$(KVER)/kernel/drivers/staging/rtl8188eu/r8188eu.ko ] ; then modprobe -r r8188eu; fi; +-- +1.9.1 + diff --git a/package/rtl8188eu/0003-Makefile-add-a-firmware_install-target.patch b/package/rtl8188eu/0003-Makefile-add-a-firmware_install-target.patch new file mode 100644 index 0000000..eebef3a --- /dev/null +++ b/package/rtl8188eu/0003-Makefile-add-a-firmware_install-target.patch @@ -0,0 +1,32 @@ +From d8063ef657fd44e29ef2fffba07f0632d1e60a92 Mon Sep 17 00:00:00 2001 +From: Luca Ceresoli +Date: Mon, 6 Jul 2015 09:59:46 +0200 +Subject: [PATCH 3/5] Makefile: add a firmware_install target + +When installing using the modules_install target, the firmware is not +installed. Add an ad-hoc target that just installs the firmware into +$(INSTALL_MOD_PATH)/lib/firmware/rtlwifi/. + +Signed-off-by: Luca Ceresoli +--- + Makefile | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/Makefile b/Makefile +index 63e0103..4012f9a 100644 +--- a/Makefile ++++ b/Makefile +@@ -152,6 +152,10 @@ strip: + modules_install: + $(MAKE) -C $(KSRC) M=`pwd` modules_install + ++firmware_install: ++ install -D -m 644 rtl8188eufw.bin \ ++ $(INSTALL_MOD_PATH)/lib/firmware/rtlwifi/rtl8188eufw.bin ++ + install: + install -p -m 644 8188eu.ko $(MODDESTDIR) + @if [ -a /lib/modules/$(KVER)/kernel/drivers/staging/rtl8188eu/r8188eu.ko ] ; then modprobe -r r8188eu; fi; +-- +1.9.1 + diff --git a/package/rtl8188eu/Config.in b/package/rtl8188eu/Config.in new file mode 100644 index 0000000..09cde24 --- /dev/null +++ b/package/rtl8188eu/Config.in @@ -0,0 +1,19 @@ +config BR2_PACKAGE_RTL8188EU + bool "rtl8188eu" + depends on BR2_LINUX_KERNEL + help + A standalone driver for the RTL8188EU USB Wi-Fi adapter. + This is needed only for Linux kernels before 3.12. + Since 3.12, there is a (staging) driver in mainline, with a similar + codebase. + + Make sure your target kernel has the CONFIG_WIRELESS_EXT config + option enabled. + + Note: this package needs a firmware loading mechanism to load the + binary blob for the chip to work. + + https://github.com/lwfinger/rtl8188eu + +comment "rtl8188eu needs a Linux kernel to be built" + depends on !BR2_LINUX_KERNEL diff --git a/package/rtl8188eu/rtl8188eu.mk b/package/rtl8188eu/rtl8188eu.mk new file mode 100644 index 0000000..dec0900 --- /dev/null +++ b/package/rtl8188eu/rtl8188eu.mk @@ -0,0 +1,21 @@ +################################################################################ +# +# rtl8188eu +# +################################################################################ + +RTL8188EU_VERSION = 3091828c8f4b4a01cbec6025128bf77e6e7b9f97 +RTL8188EU_SITE = $(call github,lwfinger,rtl8188eu,$(RTL8188EU_VERSION)) +RTL8188EU_DEPENDENCIES = linux +RTL8188EU_LICENSE = GPLv2, proprietary (rtl8188eufw.bin firmware blob) +RTL8188EU_LICENSE_FILES = COPYING +RTL8188EU_MODULE_MAKE_OPTS = CONFIG_RTL8188EU=m + +$(eval $(kernel-module)) + +define RTL8188EU_INSTALL_FIRMWARE + $(MAKE) -C $(@D) $(LINUX_MAKE_FLAGS) firmware_install +endef +RTL8188EU_POST_INSTALL_TARGET_HOOKS += RTL8188EU_INSTALL_FIRMWARE + +$(eval $(generic-package))