Skip to contentSkip to conversation

owl-linux: new package

PATCH RESEND Superseded spdawson at gmail.com 2 participants 4 messages Jun 25, 2012 – Jun 26, 2012 Arm/actions semi architecture

v1 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH RESEND 1/1 owl-linux: new package

From: Simon Dawson <[email protected]>

---
 package/Config.in                                  |    1 +
 package/owl-linux/Config.in                        |   18 ++++++++++++++++
 ...1.0.6-fix-CROSS_COMPILE-usage-in-Makefile.patch |   15 +++++++++++++
 .../owl-linux-1.0.6-fix-for-linux-3.3.x.patch      |   22 ++++++++++++++++++++
 package/owl-linux/owl-linux.mk                     |   20 ++++++++++++++++++
 5 files changed, 76 insertions(+)
 create mode 100644 package/owl-linux/Config.in
 create mode 100644 package/owl-linux/owl-linux-1.0.6-fix-CROSS_COMPILE-usage-in-Makefile.patch
 create mode 100644 package/owl-linux/owl-linux-1.0.6-fix-for-linux-3.3.x.patch
 create mode 100644 package/owl-linux/owl-linux.mk
package/Config.in +1 -0
index 99257b4..cb8771d 100644
@@ -216,6 +216,7 @@ source "package/ntfs-3g/Config.in"
 source "package/ofono/Config.in"
 source "package/open2300/Config.in"
 source "package/openocd/Config.in"
+source "package/owl-linux/Config.in"
 source "package/parted/Config.in"
 source "package/pciutils/Config.in"
 source "package/picocom/Config.in"
package/owl-linux/Config.in new file +18 -0
new file mode 100644
index 0000000..a5ab8e8
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_OWL_LINUX
+	bool "H&D Wireless SPB104 SD-card WiFi SIP"
+	depends on BR2_LINUX_KERNEL
+	depends on (BR2_arm920t || BR2_arm922t || BR2_arm926t)
+	depends on BR2_ARM_EABI
+	help
+	  Linux kernel driver for the H&D Wireless SPB104 SD-card WiFi SIP.
+
+	  http://linux.hd-wireless.se/bin/view/Linux/GettingStarted
+
+comment "owl-linux requires a Linux kernel"
+	depends on !BR2_LINUX_KERNEL
+
+comment "owl-linux is only supported on the ARM9 architecture"
+	depends on !(BR2_arm920t || BR2_arm922t || BR2_arm926t)
+
+comment "owl-linux requires the ARM EABI"
+	depends on !BR2_ARM_EABI
package/owl-linux/owl-linux-1.0.6-fix-CROSS_COMPILE-usage-in-Makefile.patch new file +15 -0
new file mode 100644
index 0000000..a644406
@@ -0,0 +1,15 @@
+Fix the owl-linux Makefile so that it protects spaces in the CROSS_COMPILE
+variable. For example, this variable will contain spaces if ccache is used.
+
+diff -Nur a/Makefile b/Makefile
+--- a/Makefile	2011-09-15 12:20:37.000000000 +0100
++++ b/Makefile	2012-05-10 08:53:55.727706424 +0100
+@@ -35,7 +35,7 @@
+ 	PWD := $(shell pwd)
+ 
+ default:
+-	$(MAKE) -C $(KERNELDIR) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) M=$(PWD) MODE=$(MODE) modules
++	$(MAKE) -C $(KERNELDIR) ARCH=$(ARCH) CROSS_COMPILE="$(CROSS_COMPILE)" M=$(PWD) MODE=$(MODE) modules
+ 
+ clean: 
+ 	-rm -f *.o *.mod.c *.ko modules.order Module.symvers
package/owl-linux/owl-linux-1.0.6-fix-for-linux-3.3.x.patch new file +22 -0
new file mode 100644
index 0000000..a474d4f
@@ -0,0 +1,22 @@
+Kernel commit b81693d9149c598302e8eb9c20cb20330d922c8e changed the
+net_device_ops structure, removing the ndo_set_multicast_list callback. The
+ndo_set_rx_mode has also been added to this structure.
+
+The upshot of these changes is that owl-linux fails to compile with 3.3.x
+and later kernels.
+
+diff -Nurp a/owl_net.c b/owl_net.c
+--- a/owl_net.c	2011-09-15 12:20:37.000000000 +0100
++++ b/owl_net.c	2012-06-05 07:42:47.839807834 +0100
+@@ -376,7 +376,11 @@ static const struct net_device_ops netde
+ #endif /* OWL_CONFIG_IFUPDOWN */
+         .ndo_start_xmit         = owl_net_tx,
+         .ndo_get_stats          = owl_net_get_stats,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)
+         .ndo_set_multicast_list = NULL,
++#else
++        .ndo_set_rx_mode = NULL,
++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) */
+         .ndo_tx_timeout         = owl_net_tx_timeout,
+         .ndo_set_mac_address    = NULL,
+ };
package/owl-linux/owl-linux.mk new file +20 -0
new file mode 100644
index 0000000..8aa8709
@@ -0,0 +1,20 @@
+#############################################################
+#
+# owl-linux
+#
+#############################################################
+OWL_LINUX_VERSION = 1.0.6
+OWL_LINUX_SITE = http://linux.hd-wireless.se/pub/Linux/DownloadDrivers
+OWL_LINUX_SOURCE = owl-linux-$(OWL_LINUX_VERSION).tar.gz
+
+OWL_LINUX_DEPENDENCIES = linux
+
+define OWL_LINUX_BUILD_CMDS
+	$(MAKE) -C $(@D) $(LINUX_MAKE_FLAGS) KERNELDIR=$(LINUX_DIR)
+endef
+
+define OWL_LINUX_INSTALL_TARGET_CMDS
+	$(MAKE) -C $(LINUX_DIR) $(LINUX_MAKE_FLAGS) M="$(@D)" modules_install
+endef
+
+$(eval $(call GENTARGETS))
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH RESEND 1/1 owl-linux: new package

Le Mon, 25 Jun 2012 20:09:49 +0100,
spdawson at gmail.com a ?crit :

Quoted 3 lines

From: Simon Dawson <[email protected]>

This looks pretty good. The patches of the package should have a Signed-off-by line, but otherwise, I'm not seeing any other issue.

I am also a bit worried about all the comment "owl-linux is only supported blabla", because those warnings will also appear for anyone not even doing something for ARM, and there will be two of such warnings.

Maybe group the ARM9 and EABI checks into one comment? And maybe make it visible only on ARM?

comment "owl-linux is only supported on ARM9 architecture with EABI"

	depends on !(BR2_arm920t || BR2_arm922t || BR2_arm926t)	|| !BR2_ARM_EABI
	depends on BR2_arm

or something like that.

package/owl-linux/owl-linux.mk line 18

Quoted 3 lines
package/owl-linux/owl-linux.mk new file +3 -0
+define OWL_LINUX_INSTALL_TARGET_CMDS
+	$(MAKE) -C $(LINUX_DIR) $(LINUX_MAKE_FLAGS) M="$(@D)" modules_install
+endef

At some point in the discussion, it was mentioned that this driver might only work with one particular CodeSourcery toolchain, which would suggest that it uses the C library, and therefore contain userspace code. But here you're only installing the kernel module itself. Could you clarify this point, just for our (my?) knowledge?

Thanks!

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#2 lore raw

PATCH RESEND 1/1 owl-linux: new package

Thanks for the feedback Thomas.

Quoted 2 lines · Thomas Petazzoni

The patches of the package should have a
Signed-off-by line, but otherwise, I'm not seeing any other issue.

Okay; I'll fix that and resubmit.

Quoted 8 lines

Maybe group the ARM9 and EABI checks into one comment? And maybe make it visible only on ARM?

comment "owl-linux is only supported on ARM9 architecture with EABI" ? ? ? ?depends on !(BR2_arm920t || BR2_arm922t || BR2_arm926t) || !BR2_ARM_EABI ? ? ? ?depends on BR2_arm

or something like that.

Good idea; I will do this.

Quoted 5 lines

At some point in the discussion, it was mentioned that this driver might only work with one particular CodeSourcery toolchain, which would suggest that it uses the C library, and therefore contain userspace code. But here you're only installing the kernel module itself. Could you clarify this point, just for our (my?) knowledge?

I'm using the Buildroot-generated uClibc-based toolchain, and have had no problems so far. The kernel module installed by this package is all that is required to make the H&D Wireless hardware work.

Simon.

#3 lore raw

PATCH RESEND 1/1 owl-linux: new package

Le Tue, 26 Jun 2012 09:07:46 +0100,
Simon Dawson <[email protected]> a ?crit :

Quoted 10 lines
Quoted 8 lines

Maybe group the ARM9 and EABI checks into one comment? And maybe make it visible only on ARM?

comment "owl-linux is only supported on ARM9 architecture with EABI" ? ? ? ?depends on !(BR2_arm920t || BR2_arm922t || BR2_arm926t) || !BR2_ARM_EABI ? ? ? ?depends on BR2_arm

or something like that.

Good idea; I will do this.

Thanks!

Quoted 9 lines
Quoted 5 lines

At some point in the discussion, it was mentioned that this driver might only work with one particular CodeSourcery toolchain, which would suggest that it uses the C library, and therefore contain userspace code. But here you're only installing the kernel module itself. Could you clarify this point, just for our (my?) knowledge?

I'm using the Buildroot-generated uClibc-based toolchain, and have had no problems so far. The kernel module installed by this package is all that is required to make the H&D Wireless hardware work.

Ok, if there's only kernel code, then I guess the only problem is the ABI, which you've already handled by requiring EABI, so that looks good.

Thanks!

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com