summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFisher Cheng2012-11-30 17:28:52 +0800
committerJulien Lacour2013-10-01 12:12:37 +0200
commitde6ae72e10f1f033adf477e5c38ab8293f412cf2 (patch)
treee46f9c9fccb0804a39ae054ec808872d7a57048f
parent67e0e0aa20c85b0c19f22ed17899935dfb09c4d2 (diff)
cleo/{buildroot/package,devkit}/rt5572drv: add automatic load of RT5572 drv, closes #4213
-rw-r--r--[-rwxr-xr-x]cleopatre/buildroot/package/rt5572drv/rt5572drv.mk68
-rwxr-xr-xcleopatre/devkit/rt5572drv/S90wifi46
-rwxr-xr-xcleopatre/devkit/rt5572drv/hotplug-wifi12
3 files changed, 113 insertions, 13 deletions
diff --git a/cleopatre/buildroot/package/rt5572drv/rt5572drv.mk b/cleopatre/buildroot/package/rt5572drv/rt5572drv.mk
index 15ef2b76f0..cbb82fb70d 100755..100644
--- a/cleopatre/buildroot/package/rt5572drv/rt5572drv.mk
+++ b/cleopatre/buildroot/package/rt5572drv/rt5572drv.mk
@@ -4,23 +4,50 @@
#
#############################################################
+RT5572DRV_DEV_SITE:=$(BASE_DIR)/../devkit/rt5572drv
+RT5572DRV_BUNDLE_SITE:=$(BASE_DIR)/../rt5572drv
+IS_RT5572DRV_DEV:=$(wildcard $(RT5572DRV_DEV_SITE))
+
+#############################################################
RT5572DRV_VERSION:=0.0.1
-RT5572DRV_SITE:=$(BASE_DIR)/../devkit/rt5572drv
-RT5572DRV_NAME:=rt5572drv-$(PLCDRV_VERSION)
-RT5572DRV_DIR:=$(BUILD_DIR)/rt5572drv-$(PLCDRV_VERSION)
+RT5572DRV_NAME:=rt5572drv-$(RT5572DRV_VERSION)
+RT5572DRV_DIR:=$(BUILD_DIR)/rt5572drv-$(RT5572DRV_VERSION)
-RT5572DRV_UTIL_DIR:=$(RT5572DRV_DIR)/UTIL/os/linux
-RT5572DRV_MODULE_DIR:=$(RT5572DRV_DIR)/MODULE/os/linux
-RT5572DRV_NETIF_DIR:=$(RT5572DRV_DIR)/NETIF/os/linux
-RT5572DRV_CONFIG_DIR:=$(RT5572DRV_DIR)/MODULE
+#############################################################
+ifneq ($(IS_RT5572DRV_DEV),)
+ RT5572DRV_SITE:=$(RT5572DRV_DEV_SITE)
+ RT5572DRV_UTIL_DIR:=$(RT5572DRV_DIR)/UTIL/os/linux
+ RT5572DRV_MODULE_DIR:=$(RT5572DRV_DIR)/MODULE/os/linux
+ RT5572DRV_NETIF_DIR:=$(RT5572DRV_DIR)/NETIF/os/linux
+ RT5572DRV_CONFIG_DIR:=$(RT5572DRV_DIR)/MODULE
+ RT5572DRV_SCRIPT_DIR:=$(RT5572DRV_DIR)
+ RT5572DRV_HOTPLUG_DIR:=$(RT5572DRV_DIR)
+ RT5572DRV_DEV_MAKE:=rt5572drv-dev-make
+ RT5572DRV_DEV_CLEAN:=rt5572drv-dev-clean
+else
+ RT5572DRV_SITE:=$(RT5572DRV_BUNDLE_SITE)
+ RT5572DRV_UTIL_DIR:=$(RT5572DRV_DIR)
+ RT5572DRV_MODULE_DIR:=$(RT5572DRV_DIR)
+ RT5572DRV_NETIF_DIR:=$(RT5572DRV_DIR)
+ RT5572DRV_CONFIG_DIR:=$(RT5572DRV_DIR)
+ RT5572DRV_SCRIPT_DIR:=$(RT5572DRV_DIR)
+ RT5572DRV_HOTPLUG_DIR:=$(RT5572DRV_DIR)
+ RT5572DRV_DEV_MAKE:=
+ RT5572DRV_DEV_CLEAN:=
+endif # IS_RT5572DRV_DEV
+#############################################################
RT5572DRV_UTIL_FILE:=rtutil5572ap.ko
RT5572DRV_MODULE_FILE:=rt5572ap.ko
RT5572DRV_NETIF_FILE:=rtnet5572ap.ko
RT5572DRV_CONFIG_FILE:=RT2870AP.dat
+RT5572DRV_SCRIPT_FILE:=S90wifi
+RT5572DRV_HOTPLUG_FILE:=hotplug-wifi
RT5572DRV_TARGETS_DIR := $(TARGET_DIR)/lib/modules
RT5572DRV_TARGETS_CONFIG_DIR := $(TARGET_DIR)/etc/Wireless/RT2870AP
+RT5572DRV_TARGETS_SCRIPT_DIR := $(TARGET_DIR)/etc/init.d
+RT5572DRV_TARGETS_HOTPLUG_DIR := $(TARGET_DIR)/sbin
RT5572DRV_OBJS := $(RT5572DRV_UTIL_DIR)/$(RT5572DRV_UTIL_FILE)
RT5572DRV_OBJS += $(RT5572DRV_MODULE_DIR)/$(RT5572DRV_MODULE_FILE)
@@ -30,8 +57,20 @@ RT5572DRV_TARGETS_OBJS := $(RT5572DRV_TARGETS_DIR)/$(RT5572DRV_UTIL_FILE)
RT5572DRV_TARGETS_OBJS += $(RT5572DRV_TARGETS_DIR)/$(RT5572DRV_MODULE_FILE)
RT5572DRV_TARGETS_OBJS += $(RT5572DRV_TARGETS_DIR)/$(RT5572DRV_NETIF_FILE)
+ifeq ($(strip $(BR2_PACKAGE_RT5572DRV)),y)
RT5572DRV_TARGETS_CONFIG := $(RT5572DRV_TARGETS_CONFIG_DIR)/$(RT5572DRV_CONFIG_FILE)
+RT5572DRV_TARGETS_SCRIPT := $(RT5572DRV_TARGETS_SCRIPT_DIR)/$(RT5572DRV_SCRIPT_FILE)
+RT5572DRV_TARGETS_HOTPLUG := $(RT5572DRV_TARGETS_HOTPLUG_DIR)/$(RT5572DRV_HOTPLUG_FILE)
+endif
+#############################################################
+rt5572drv-dev-make:
+ $(MAKE) -C $(RT5572DRV_DIR) LINUX_SRC=$(BASE_DIR)/../linux-2.6.25.10-spc300
+
+rt5572drv-dev-clean:
+ -$(MAKE) -C $(RT5572DRV_DIR) clean
+
+#############################################################
rt5572drv-source:
$(RT5572DRV_DIR)/.unpacked:
@@ -42,11 +81,9 @@ $(RT5572DRV_DIR)/.configured: $(RT5572DRV_DIR)/.unpacked
touch $(RT5572DRV_DIR)/.configured
#############################################################
-$(RT5572DRV_OBJS): $(RT5572DRV_DIR)/.configured
- $(MAKE) -C $(RT5572DRV_DIR) LINUX_SRC=$(BASE_DIR)/../linux-2.6.25.10-spc300
+$(RT5572DRV_OBJS): $(RT5572DRV_DIR)/.configured $(RT5572DRV_DEV_MAKE)
#############################################################
-
$(RT5572DRV_TARGETS_DIR)/$(RT5572DRV_UTIL_FILE): $(RT5572DRV_UTIL_DIR)/$(RT5572DRV_UTIL_FILE)
cp $< $@
@@ -60,12 +97,17 @@ $(RT5572DRV_TARGETS_CONFIG): $(RT5572DRV_CONFIG_DIR)/$(RT5572DRV_CONFIG_FILE)
mkdir -p $(RT5572DRV_TARGETS_CONFIG_DIR)
cp $< $@
+$(RT5572DRV_TARGETS_SCRIPT): $(RT5572DRV_SCRIPT_DIR)/$(RT5572DRV_SCRIPT_FILE)
+ cp $< $@
+
+$(RT5572DRV_TARGETS_HOTPLUG): $(RT5572DRV_HOTPLUG_DIR)/$(RT5572DRV_HOTPLUG_FILE)
+ cp $< $@
+
#############################################################
-rt5572drv: uclibc $(RT5572DRV_TARGETS_OBJS) $(RT5572DRV_TARGETS_CONFIG)
+rt5572drv: uclibc check_linux_link linux26-modules-prepare $(RT5572DRV_TARGETS_OBJS) $(RT5572DRV_TARGETS_CONFIG) $(RT5572DRV_TARGETS_SCRIPT) $(RT5572DRV_TARGETS_HOTPLUG)
-rt5572drv-clean:
+rt5572drv-clean: $(RT5572DRV_DEV_CLEAN)
rm -f $(RT5572DRV_TARGETS_OBJS)
- -$(MAKE) -C $(RT5572DRV_DIR) clean
rt5572drv-dirclean:
rm -f $(RT5572DRV_DIR)
diff --git a/cleopatre/devkit/rt5572drv/S90wifi b/cleopatre/devkit/rt5572drv/S90wifi
new file mode 100755
index 0000000000..d1fafd9ab3
--- /dev/null
+++ b/cleopatre/devkit/rt5572drv/S90wifi
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# Start the wifi dongle driver....
+#
+
+start() {
+ hotplug=/sbin/hotplug-wifi
+ if [ ! -x "$(cat /proc/sys/kernel/hotplug)" ]; then
+ echo $hotplug > /proc/sys/kernel/hotplug
+ else
+ echo "source" $hotplug >> "$(cat /proc/sys/kernel/hotplug)"
+ fi
+ echo "Loading WiFi driver..."
+ insmod /lib/modules/rtutil5572ap.ko
+ insmod /lib/modules/rt5572ap.ko
+ insmod /lib/modules/rtnet5572ap.ko
+}
+
+stop() {
+ echo -n "Unloading WiFi driver..."
+ /sbin/rmmod rtnet5572ap.ko || exit 1
+ /sbin/rmmod rt5572ap.ko || exit 1
+ /sbin/rmmod rtutil5572ap.ko || exit 1
+}
+
+restart() {
+ stop
+ start
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart|reload)
+ restart
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart}"
+ exit 1
+esac
+
+exit $?
diff --git a/cleopatre/devkit/rt5572drv/hotplug-wifi b/cleopatre/devkit/rt5572drv/hotplug-wifi
new file mode 100755
index 0000000000..07bb974506
--- /dev/null
+++ b/cleopatre/devkit/rt5572drv/hotplug-wifi
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+case "$ACTION:$SUBSYSTEM:$DEVPATH" in
+ add:net:/class/net/ra0)
+ ifconfig ra0 up
+ brctl addif br0 ra0
+ ;;
+ remove:net:/class/net/ra0)
+ brctl delif br0 ra0
+ ifconfig ra0 down
+ ;;
+esac