wl1251-modules: make upgrade work
[openpandora.oe.git] / recipes / pandora-system / wl1251-modules.bb
index 8d2c1bf..806ded3 100755 (executable)
@@ -1,20 +1,32 @@
 DESCRIPTION = "Kernel drivers for the TI WL1251 WiFi chip found on the Pandora - Connected via SDIO"
 LICENSE = "GPLv2"
 
+SRCREV = "ccb56baff992d682cc84eca10472298b2cce1bf1"
+
+SRC_URI = " \
+           git://git.openpandora.org/pandora-wifi.git;protocol=git;branch=compat-wireless \
+"
+
 SRC_URI += " \
-       http://djwillis.openpandora.org/pandora/wifi/wl1251-wireless-2009-10-08-rev2.zip \
        file://rc.wl1251 \
+       file://50-compat_firmware.rules \
+       file://compat_firmware.sh \
 "
 
+RDEPENDS = "udev"
+
 inherit update-rc.d
 
 INITSCRIPT_NAME = "wl1251-init"
 INITSCRIPT_PARAMS = "start 30 5 2 . stop 40 0 1 6 ."
 
-S = "${WORKDIR}/compat-wireless-2009-08-30"
+S = "${WORKDIR}/git"
 
 inherit module
 
+# must be above r28
+PR = "r29"
+
 PARALLEL_MAKE = ""
 
 EXTRA_OEMAKE = " \
@@ -28,20 +40,41 @@ do_compile_prepend() {
 }
 
 do_install() {
-          mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/kernel/net/mac80211
-          cp ${S}/net/mac80211/*.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/net/mac80211
-          mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/kernel/net/wireless
-          cp ${S}/net/wireless/*.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/net/wireless
-          mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/kernel/net/rfkill
-          cp ${S}/net/rfkill/*.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/net/rfkill
-          mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless/wl12xx      
-          cp ${S}/drivers/net/wireless/wl12xx/wl1251.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless/wl12xx
-          cp ${S}/drivers/net/wireless/wl12xx/wl1251_sdio.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless/wl12xx
+          install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/compat
+          install -m 0644 ${S}/compat/*.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/compat
+          install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/kernel/net/mac80211
+          install -m 0644 ${S}/net/mac80211/*.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/kernel/net/mac80211
+          install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/kernel/net/wireless
+          install -m 0644 ${S}/net/wireless/*.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/kernel/net/wireless
+          install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/kernel/net/rfkill
+          install -m 0644 ${S}/net/rfkill/*.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/kernel/net/rfkill
+          install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/kernel/drivers/net/wireless/wl12xx      
+          install -m 0644 ${S}/drivers/net/wireless/wl12xx/wl1251.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/kernel/drivers/net/wireless/wl12xx
+          install -m 0644 ${S}/drivers/net/wireless/wl12xx/wl1251_sdio.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/kernel/drivers/net/wireless/wl12xx
+          
           install -d ${D}${sysconfdir}/init.d/
-          cp -pP ${WORKDIR}/rc.wl1251 ${D}${sysconfdir}/init.d/wl1251-init
+          install -m 0755 ${WORKDIR}/rc.wl1251 ${D}${sysconfdir}/init.d/wl1251-init
+
+          # Install UDEV rules to /lib/udev/rules.d not /etc/udev/rules.d as they are system rules.
+          install -d ${D}${base_libdir}/udev/rules.d/
+          install -m 0644 ${WORKDIR}/50-compat_firmware.rules ${D}${base_libdir}/udev/rules.d/
+          install -m 0755 ${WORKDIR}/compat_firmware.sh ${D}${base_libdir}/udev/rules.d/          
+
+          # some bonus not wl1251 related drivers
+          install -m 0644 ${S}/drivers/net/wireless/at76c50x-usb.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/kernel/drivers/net/wireless/
+          install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/kernel/drivers/net/wireless/rt2x00
+          install -m 0644 ${S}/drivers/net/wireless/rt2x00/*.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/kernel/drivers/net/wireless/rt2x00/
+          install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/kernel/drivers/net/wireless/p54
+          install -m 0644 ${S}/drivers/net/wireless/p54/*.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/updates/kernel/drivers/net/wireless/p54/
 }
 
-FILES_${PN} += "/lib/modules/${KERNEL_VERSION}/kernel/net/mac80211/*.ko.*"
-FILES_${PN} += "/lib/modules/${KERNEL_VERSION}/kernel/net/wireless/*.ko.*"
-FILES_${PN} += "/lib/modules/${KERNEL_VERSION}/kernel/net/rfkill/*.ko.*"
-FILES_${PN} += "/lib/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless/wl12xx/*.ko.*"
+FILES_${PN} += "/lib/udev/rules.d/*"
+FILES_${PN} += "/lib/modules/${KERNEL_VERSION}/updates/compat/*.ko.*"
+FILES_${PN} += "/lib/modules/${KERNEL_VERSION}/updates/kernel/net/mac80211/*.ko.*"
+FILES_${PN} += "/lib/modules/${KERNEL_VERSION}/updates/kernel/net/wireless/*.ko.*"
+FILES_${PN} += "/lib/modules/${KERNEL_VERSION}/updates/kernel/net/rfkill/*.ko.*"
+FILES_${PN} += "/lib/modules/${KERNEL_VERSION}/updates/kernel/drivers/net/wireless/wl12xx/*.ko.*"
+
+FILES_${PN} += "/lib/modules/${KERNEL_VERSION}/updates/kernel/drivers/net/wireless/at76c50x-usb.ko.*"
+FILES_${PN} += "/lib/modules/${KERNEL_VERSION}/updates/kernel/drivers/net/wireless/rt2x00/*.ko.*"
+FILES_${PN} += "/lib/modules/${KERNEL_VERSION}/updates/kernel/drivers/net/wireless/p54/*.ko.*"