From: Chang.H.S Date: Wed, 28 Nov 2012 11:59:41 +0000 (+0900) Subject: add recipes-wlan, e2openplugins X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_openvuplus_3.0;a=commitdiff_plain;h=48b6bc567e3bcf5752d767198ec550df7ce037fa;hp=4241f73433b67f38c41491e3ed1e4ba7e6ed1c49 add recipes-wlan, e2openplugins --- diff --git a/meta-openvuplus/recipes-enigma2/enigma2/enigma2-plugins.bb b/meta-openvuplus/recipes-enigma2/enigma2/enigma2-plugins.bb index 26a8195..c73fee3 100755 --- a/meta-openvuplus/recipes-enigma2/enigma2/enigma2-plugins.bb +++ b/meta-openvuplus/recipes-enigma2/enigma2/enigma2-plugins.bb @@ -46,8 +46,6 @@ S = "${WORKDIR}/git" DEPENDS = "python-pyopenssl python-gdata streamripper python-mutagen python-daap" DEPENDS += "enigma2" -#DEPENDS += "enigma2-plugin-extensions-openwebif" - def modify_po(): import os diff --git a/meta-openvuplus/recipes-enigma2/enigma2/enigma2.bb b/meta-openvuplus/recipes-enigma2/enigma2/enigma2.bb index 91455f7..ccbeb06 100644 --- a/meta-openvuplus/recipes-enigma2/enigma2/enigma2.bb +++ b/meta-openvuplus/recipes-enigma2/enigma2/enigma2.bb @@ -5,21 +5,26 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c9e255efa454e0155c1fd758df7dcaf3" DEPENDS = "jpeg libungif libmad libpng libsigc++-1.2 gettext-native \ dreambox-dvbincludes freetype libdvbsi++ python swig-native \ libfribidi libxmlccwrap libdreamdvd gstreamer gst-plugin-dvbmediasink \ - gst-plugins-bad gst-plugins-good gst-plugins-ugly \ + gst-plugins-bad gst-plugins-good gst-plugins-ugly python-wifi \ + hostap-daemon bridge-utils \ " # DEPENDS += "wvdial wvstreams ppp usbmodeswitch usbmodeswitch-data djmount minidlna" +RDEPENDS_GST= "gst-plugins-base-decodebin gst-plugins-base-decodebin2 gst-plugins-base-app gst-plugins-bad-fragmented \ + gst-plugins-good-id3demux gst-plugins-ugly-mad gst-plugins-base-ogg gst-plugins-base-playbin \ + gst-plugins-base-typefindfunctions gst-plugins-base-audioconvert gst-plugins-base-audioresample \ + gst-plugins-good-wavparse gst-plugins-ugly-mpegstream \ + gst-plugins-good-flac gst-plugin-dvbmediasink gst-plugins-bad-mpegdemux gst-plugins-ugly-dvdsub \ + gst-plugins-good-souphttpsrc gst-plugins-ugly-mpegaudioparse gst-plugins-base-subparse \ + gst-plugins-good-apetag gst-plugins-good-icydemux gst-plugins-good-autodetect gst-plugins-good-flv \ +" + RDEPENDS = "python-codecs python-core python-lang python-re python-threading \ - python-xml python-fcntl gst-plugins-base-decodebin gst-plugins-base-decodebin2 python-stringold \ - python-pickle gst-plugins-base-app gst-plugins-bad-fragmented \ - gst-plugins-good-id3demux gst-plugins-ugly-mad gst-plugins-base-ogg gst-plugins-base-playbin \ - gst-plugins-base-typefindfunctions gst-plugins-base-audioconvert gst-plugins-base-audioresample \ - gst-plugins-good-wavparse python-netclient gst-plugins-ugly-mpegstream \ - gst-plugins-good-flac gst-plugin-dvbmediasink gst-plugins-bad-mpegdemux gst-plugins-ugly-dvdsub \ - gst-plugins-good-souphttpsrc gst-plugins-ugly-mpegaudioparse gst-plugins-base-subparse \ - gst-plugins-good-apetag gst-plugins-good-icydemux gst-plugins-good-autodetect gst-plugins-good-flv \ - glibc-gconv-iso8859-15 ethtool" + python-xml python-fcntl python-stringold python-pickle python-netclient \ + glibc-gconv-iso8859-15 ethtool \ + ${RDEPENDS_GST} \ +" GST_RTSP_RDEPENDS = "gst-plugins-good-udp gst-plugins-good-rtsp gst-plugins-good-rtp gst-plugins-good-rtpmanager" GST_ALSA_RDEPENDS = "gst-plugins-base-alsa alsa-conf" diff --git a/meta-openvuplus/recipes-enigma2/rt2870sta/files/RT2870STA.dat b/meta-openvuplus/recipes-enigma2/rt2870sta/files/RT2870STA.dat deleted file mode 100644 index b08b10a..0000000 --- a/meta-openvuplus/recipes-enigma2/rt2870sta/files/RT2870STA.dat +++ /dev/null @@ -1,79 +0,0 @@ -#The word of "Default" must not be removed -Default -CountryRegion=5 -CountryRegionABand=7 -CountryCode= -ChannelGeography=1 -SSID=11n-AP -NetworkType=Infra -WirelessMode=5 -Channel=0 -BeaconPeriod=100 -TxPower=100 -BGProtection=0 -TxPreamble=0 -RTSThreshold=2347 -FragThreshold=2346 -TxBurst=1 -PktAggregate=0 -WmmCapable=1 -AckPolicy=0;0;0;0 -AuthMode=OPEN -EncrypType=NONE -WPAPSK= -DefaultKeyID=1 -Key1Type=0 -Key1Str= -Key2Type=0 -Key2Str= -Key3Type=0 -Key3Str= -Key4Type=0 -Key4Str= -PSMode=CAM -AutoRoaming=0 -RoamThreshold=70 -APSDCapable=0 -APSDAC=0;0;0;0 -HT_RDG=1 -HT_EXTCHA=0 -HT_OpMode=0 -HT_MpduDensity=4 -HT_BW=1 -HT_BADecline=0 -HT_AutoBA=1 -HT_AMSDU=0 -HT_BAWinSize=64 -HT_GI=1 -HT_MCS=33 -HT_MIMOPSMode=3 -HT_DisallowTKIP=1 -HT_STBC=0 -EthConvertMode= -EthCloneMac= -IEEE80211H=0 -TGnWifiTest=0 -WirelessEvent=0 -MeshId=MESH -MeshAutoLink=1 -MeshAuthMode=OPEN -MeshEncrypType=NONE -MeshWPAKEY= -MeshDefaultkey=1 -MeshWEPKEY= -CarrierDetect=0 -AntDiversity=0 -BeaconLostTime=4 -FtSupport=0 -Wapiifname=ra0 -WapiPsk= -WapiPskType= -WapiUserCertPath= -WapiAsCertPath= -PSP_XLINK_MODE=0 -WscManufacturer= -WscModelName= -WscDeviceName= -WscModelNumber= -WscSerialNumber= -RadioOn=1 diff --git a/meta-openvuplus/recipes-enigma2/rt2870sta/rt2870sta_1.0.0.bb b/meta-openvuplus/recipes-enigma2/rt2870sta/rt2870sta_1.0.0.bb deleted file mode 100644 index 94f9120..0000000 --- a/meta-openvuplus/recipes-enigma2/rt2870sta/rt2870sta_1.0.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -DESCRIPTION = "install RT2870STA.dat file for ralink drivers" - -PV = "1.0.0" -PR = "r0" -LICENSE = "CLOSED" - -SRC_URI = "file://RT2870STA.dat" - -S = "${WORKDIR}/" - -do_compile() { - : -} - -do_install() { - install -d ${D}/etc/Wireless/RT2870STA/ - install -m 0755 ${WORKDIR}/RT2870STA.dat ${D}/etc/Wireless/RT2870STA/ -} diff --git a/meta-openvuplus/recipes-enigma2/rt73-firmware/rt73-firmware_1.8.bb b/meta-openvuplus/recipes-enigma2/rt73-firmware/rt73-firmware_1.8.bb deleted file mode 100644 index 70c5760..0000000 --- a/meta-openvuplus/recipes-enigma2/rt73-firmware/rt73-firmware_1.8.bb +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION = "Firmware for rt73 based USB wifi adaptors" -LICENSE = "unknown" -LIC_FILES_CHKSUM = "file://LICENSE.ralink-firmware.txt;md5=682eac07428a4e8f138bc082f090ecac" - -PR = "r1" - -SRC_URI = "http://www.ralinktech.com.tw/data/RT71W_Firmware_V${PV}.zip" - -S = "${WORKDIR}/RT71W_Firmware_V${PV}" - -do_install() { - install -d ${D}/${base_libdir}/firmware - install -m 0644 rt73.bin ${D}/${base_libdir}/firmware/ -} - -FILES_${PN} = "${base_libdir}/firmware/" -PACKAGE_ARCH = "all" diff --git a/meta-openvuplus/recipes-enigma2/tasks/task-vuplus-enigma2.inc b/meta-openvuplus/recipes-enigma2/tasks/task-vuplus-enigma2.inc index 2fcc5ec..1c330b1 100644 --- a/meta-openvuplus/recipes-enigma2/tasks/task-vuplus-enigma2.inc +++ b/meta-openvuplus/recipes-enigma2/tasks/task-vuplus-enigma2.inc @@ -16,20 +16,18 @@ RDEPENDS_${PN} += " \ enigma2-defaultservices \ enigma2-streamproxy \ tuxbox-tuxtxt-32bpp \ + showiframe \ enigma2-meta \ enigma2-plugins-meta \ enigma2-skins-meta \ - showiframe \ + enigma2-plugin-extensions-mediascanner \ + enigma2-plugin-systemplugins-factorytest \ + enigma2-plugin-systemplugins-crashreport \ + enigma2-plugin-extensions-remotestreamconvert \ + enigma2-plugin-systemplugins-zappingmodeselection \ + enigma2-plugin-extensions-addstreamurl \ " -# enigma2-plugin-extensions-mediascanner \ -# enigma2-plugin-systemplugins-factorytest \ -# enigma2-plugin-systemplugins-crashreport \ -# enigma2-plugin-extensions-remotestreamconvert \ -# enigma2-plugin-systemplugins-zappingmodeselection \ -# enigma2-plugin-extensions-addstreamurl \ -#" - # vuplus-blindscan-utils \ # enigma2-plugin-systemplugins-3gmodemmanager \ # enigma2-plugin-extensions-streamtv \ @@ -43,24 +41,23 @@ RRECOMMENDS_${PN} += " \ python-twisted-core \ python-twisted-protocols \ python-twisted-web \ + ${@base_contains("MACHINE_FEATURES", "wifi", "task-vuplus-wlan", "", d)} \ + enigma2-plugin-extensions-mediaplayer \ + enigma2-plugin-extensions-pictureplayer \ + enigma2-plugin-systemplugins-skinselector \ + enigma2-plugin-systemplugins-ui3dsetup \ + enigma2-plugin-systemplugins-uipositionsetup \ + enigma2-plugin-systemplugins-hdmicec \ " - -# enigma2-plugin-extensions-mediaplayer \ -# enigma2-plugin-extensions-pictureplayer \ -# enigma2-plugin-systemplugins-skinselector \ -# enigma2-plugin-systemplugins-ui3dsetup \ -# enigma2-plugin-systemplugins-uipositionsetup \ -# enigma2-plugin-systemplugins-hdmicec \ # ${@base_contains("MACHINE_FEATURES", "wifi", "enigma2-plugin-systemplugins-wirelessaccesspoint", "", d)} \ -# ${@base_contains("MACHINE_FEATURES", "wifi", "task-vuplus-wlan", "", d)} \ #" -#RDEPENDS_${PN} += " \ -# ${@base_contains("VUPLUS_FEATURES", "fan_simple", "enigma2-plugin-systemplugins-fancontrol","", d)} \ -# ${@base_contains("VUPLUS_FEATURES", "fan_manual", "enigma2-plugin-systemplugins-manualfancontrol", "", d)} \ -# ${@base_contains("VUPLUS_FEATURES", "rc_code", "enigma2-plugin-systemplugins-remotecontrolcode", "", d)} \ -# ${@base_contains("VUPLUS_FEATURES", "led", "enigma2-plugin-systemplugins-ledbrightnesssetup", "", d)} \ -#" +RDEPENDS_${PN} += " \ + ${@base_contains("VUPLUS_FEATURES", "fan_simple", "enigma2-plugin-systemplugins-fancontrol","", d)} \ + ${@base_contains("VUPLUS_FEATURES", "fan_manual", "enigma2-plugin-systemplugins-manualfancontrol", "", d)} \ + ${@base_contains("VUPLUS_FEATURES", "rc_code", "enigma2-plugin-systemplugins-remotecontrolcode", "", d)} \ + ${@base_contains("VUPLUS_FEATURES", "led", "enigma2-plugin-systemplugins-ledbrightnesssetup", "", d)} \ +" #RDEPENDS_task-vuplus-enigma2_append_bm750 = "\ # enigma2-plugin-systemplugins-fancontrol \ diff --git a/meta-openvuplus/recipes-openplugins/e2openplugins/assume-gplv2.inc b/meta-openvuplus/recipes-openplugins/e2openplugins/assume-gplv2.inc new file mode 100755 index 0000000..a4e46f9 --- /dev/null +++ b/meta-openvuplus/recipes-openplugins/e2openplugins/assume-gplv2.inc @@ -0,0 +1,4 @@ +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://../LICENSE.GPLv2;md5=eb723b61539feef013de476e68b5c50a" + +SRC_URI += "file://LICENSE.GPLv2" diff --git a/meta-openvuplus/recipes-openplugins/e2openplugins/enigma2-plugin-extensions-addstreamurl.bb b/meta-openvuplus/recipes-openplugins/e2openplugins/enigma2-plugin-extensions-addstreamurl.bb new file mode 100644 index 0000000..cf2ff08 --- /dev/null +++ b/meta-openvuplus/recipes-openplugins/e2openplugins/enigma2-plugin-extensions-addstreamurl.bb @@ -0,0 +1,20 @@ +MODULE = "AddStreamUrl" +DESCRIPTION = "Add a stream url to your channellist" + +PR="r0" + +require openplugins.inc + +require assume-gplv2.inc + +SRC_URI += "file://addstreamurl_uifix.patch;patch=1;pnum=1" + +PLUGINPATH = "/usr/lib/enigma2/python/Plugins/Extensions/${MODULE}" + +do_install() { + install -d ${D}${PLUGINPATH} + cp -rp ${S}/plugin/* ${D}${PLUGINPATH} +} + +FILES_${PN} = "${PLUGINPATH}" +PACKAGES = "${PN}" diff --git a/meta-openvuplus/recipes-openplugins/e2openplugins/enigma2-plugin-extensions-openwebif.bb b/meta-openvuplus/recipes-openplugins/e2openplugins/enigma2-plugin-extensions-openwebif.bb new file mode 100644 index 0000000..c4c6f9e --- /dev/null +++ b/meta-openvuplus/recipes-openplugins/e2openplugins/enigma2-plugin-extensions-openwebif.bb @@ -0,0 +1,29 @@ +MODULE = "OpenWebif" +DESCRIPTION = "Control your receiver with a browser" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://README;firstline=10;lastline=12;md5=9c14f792d0aeb54e15490a28c89087f7" + +DEPENDS = "python-cheetah-native" +RDEPENDS_${PN} = "python-cheetah python-json python-unixadmin python-misc" + +inherit gitpkgv +PV = "0.1+git${SRCPV}" +PKGV = "0.1+git${GITPKGV}" +PR = "r0.72" + +require openplugins.inc + +# Just a quick hack to "compile" it +do_compile() { + cheetah-compile -R --nobackup ${S}/plugin + python -O -m compileall ${S} +} + +PLUGINPATH = "/usr/lib/enigma2/python/Plugins/Extensions/${MODULE}" +do_install() { + install -d ${D}${PLUGINPATH} + cp -rp ${S}/plugin/* ${D}${PLUGINPATH} +} + +FILES_${PN} = "${PLUGINPATH}" +PACKAGES = "${PN}" diff --git a/meta-openvuplus/recipes-openplugins/e2openplugins/enigma2-plugin-extensions-remotestreamconvert.bb b/meta-openvuplus/recipes-openplugins/e2openplugins/enigma2-plugin-extensions-remotestreamconvert.bb new file mode 100755 index 0000000..c29cbf3 --- /dev/null +++ b/meta-openvuplus/recipes-openplugins/e2openplugins/enigma2-plugin-extensions-remotestreamconvert.bb @@ -0,0 +1,20 @@ +MODULE = "RemoteChannelStreamConverter" +DESCRIPTION = "Fetch channels from remote bouquets and make them available locally" + +RDEPENDS_${PN} = "python-shell" + +PR="r0" + +require openplugins.inc + +require assume-gplv2.inc + +PLUGINPATH = "/usr/lib/enigma2/python/Plugins/Extensions/${MODULE}" + +do_install() { + install -d ${D}${PLUGINPATH} + cp -rp ${S}/plugin/* ${D}${PLUGINPATH} +} + +FILES_${PN} = "${PLUGINPATH}" +PACKAGES = "${PN}" diff --git a/meta-openvuplus/recipes-openplugins/e2openplugins/files/LICENSE.GPLv2 b/meta-openvuplus/recipes-openplugins/e2openplugins/files/LICENSE.GPLv2 new file mode 100755 index 0000000..3912109 --- /dev/null +++ b/meta-openvuplus/recipes-openplugins/e2openplugins/files/LICENSE.GPLv2 @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/meta-openvuplus/recipes-openplugins/e2openplugins/files/addstreamurl_uifix.patch b/meta-openvuplus/recipes-openplugins/e2openplugins/files/addstreamurl_uifix.patch new file mode 100644 index 0000000..0109514 --- /dev/null +++ b/meta-openvuplus/recipes-openplugins/e2openplugins/files/addstreamurl_uifix.patch @@ -0,0 +1,38 @@ +diff --git a/plugin/plugin.py b/plugin/plugin.py +index 7b03094..ab473f5 100755 +--- a/plugin/plugin.py ++++ b/plugin/plugin.py +@@ -11,8 +11,8 @@ from enigma import eDVBDB + + class LiveStreamingLinksHeader(Screen): + skin = """ +- +- ++ ++ + """ + + def __init__(self, session): +@@ -47,15 +47,14 @@ class LiveStreamingLinksHeader(Screen): + + class LiveStreamingLinks(Screen): + DIR_ENIGMA2 = '/etc/enigma2/' +- + skin = """ +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ + """ + + def __init__(self, session): diff --git a/meta-openvuplus/recipes-openplugins/e2openplugins/openplugins-distutils.inc b/meta-openvuplus/recipes-openplugins/e2openplugins/openplugins-distutils.inc new file mode 100755 index 0000000..34d57ab --- /dev/null +++ b/meta-openvuplus/recipes-openplugins/e2openplugins/openplugins-distutils.inc @@ -0,0 +1,5 @@ +require openplugins.inc + +inherit distutils + +DISTUTILS_INSTALL_ARGS = "--root=${D} --install-lib=/usr/lib/enigma2/python/Plugins" diff --git a/meta-openvuplus/recipes-openplugins/e2openplugins/openplugins.inc b/meta-openvuplus/recipes-openplugins/e2openplugins/openplugins.inc new file mode 100755 index 0000000..4edfa2a --- /dev/null +++ b/meta-openvuplus/recipes-openplugins/e2openplugins/openplugins.inc @@ -0,0 +1,7 @@ +DEPENDS += "enigma2" + +SRC_URI = "git://github.com/E2OpenPlugins/e2openplugin-${MODULE}.git;protocol=git" + +S="${WORKDIR}/git" + +SRCREV_pn-${PN} ?= "${AUTOREV}" diff --git a/meta-openvuplus/recipes-wlan/hostap/hostap-daemon-0.7.3/defconfig b/meta-openvuplus/recipes-wlan/hostap/hostap-daemon-0.7.3/defconfig new file mode 100644 index 0000000..1f3c6f4 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/hostap/hostap-daemon-0.7.3/defconfig @@ -0,0 +1,145 @@ +# Example hostapd build time configuration +# +# This file lists the configuration options that are used when building the +# hostapd binary. All lines starting with # are ignored. Configuration option +# lines must be commented out complete, if they are not to be included, i.e., +# just setting VARIABLE=n is not disabling that variable. +# +# This file is included in Makefile, so variables like CFLAGS and LIBS can also +# be modified from here. In most cass, these lines should use += in order not +# to override previous values of the variables. + +# Driver interface for Host AP driver +CONFIG_DRIVER_HOSTAP=y + +# Driver interface for wired authenticator +CONFIG_DRIVER_WIRED=y + +# Driver interface for madwifi driver +#CONFIG_DRIVER_MADWIFI=y +#CFLAGS += -I../../madwifi # change to the madwifi source directory + +# Driver interface for Prism54 driver +CONFIG_DRIVER_PRISM54=y + +# Driver interface for drivers using the nl80211 kernel interface +CONFIG_DRIVER_NL80211=y +CONFIG_LIBNL20=y +# driver_nl80211.c requires a rather new libnl (version 1.1) which may not be +# shipped with your distribution yet. If that is the case, you need to build +# newer libnl version and point the hostapd build to use it. +#LIBNL=/usr/src/libnl +#CFLAGS += -I$(LIBNL)/include +#LIBS += -L$(LIBNL)/lib + +# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver) +#CONFIG_DRIVER_BSD=y +#CFLAGS += -I/usr/local/include +#LIBS += -L/usr/local/lib + +# Driver interface for no driver (e.g., RADIUS server only) +#CONFIG_DRIVER_NONE=y + +# IEEE 802.11F/IAPP +CONFIG_IAPP=y + +# WPA2/IEEE 802.11i RSN pre-authentication +CONFIG_RSN_PREAUTH=y + +# PeerKey handshake for Station to Station Link (IEEE 802.11e DLS) +CONFIG_PEERKEY=y + +# IEEE 802.11w (management frame protection) +# This version is an experimental implementation based on IEEE 802.11w/D1.0 +# draft and is subject to change since the standard has not yet been finalized. +# Driver support is also needed for IEEE 802.11w. +#CONFIG_IEEE80211W=y + +# Integrated EAP server +CONFIG_EAP=y + +# EAP-MD5 for the integrated EAP server +CONFIG_EAP_MD5=y + +# EAP-TLS for the integrated EAP server +CONFIG_EAP_TLS=y + +# EAP-MSCHAPv2 for the integrated EAP server +CONFIG_EAP_MSCHAPV2=y + +# EAP-PEAP for the integrated EAP server +CONFIG_EAP_PEAP=y + +# EAP-GTC for the integrated EAP server +CONFIG_EAP_GTC=y + +# EAP-TTLS for the integrated EAP server +CONFIG_EAP_TTLS=y + +# EAP-SIM for the integrated EAP server +#CONFIG_EAP_SIM=y + +# EAP-AKA for the integrated EAP server +#CONFIG_EAP_AKA=y + +# EAP-AKA' for the integrated EAP server +# This requires CONFIG_EAP_AKA to be enabled, too. +#CONFIG_EAP_AKA_PRIME=y + +# EAP-PAX for the integrated EAP server +#CONFIG_EAP_PAX=y + +# EAP-PSK for the integrated EAP server (this is _not_ needed for WPA-PSK) +#CONFIG_EAP_PSK=y + +# EAP-SAKE for the integrated EAP server +#CONFIG_EAP_SAKE=y + +# EAP-GPSK for the integrated EAP server +#CONFIG_EAP_GPSK=y +# Include support for optional SHA256 cipher suite in EAP-GPSK +#CONFIG_EAP_GPSK_SHA256=y + +# EAP-FAST for the integrated EAP server +# Note: Default OpenSSL package does not include support for all the +# functionality needed for EAP-FAST. If EAP-FAST is enabled with OpenSSL, +# the OpenSSL library must be patched (openssl-0.9.9-session-ticket.patch) +# to add the needed functions. +#CONFIG_EAP_FAST=y + +# Wi-Fi Protected Setup (WPS) +CONFIG_WPS=y +# Enable UPnP support for external WPS Registrars +#CONFIG_WPS_UPNP=y + +# EAP-IKEv2 +#CONFIG_EAP_IKEV2=y + +# Trusted Network Connect (EAP-TNC) +#CONFIG_EAP_TNC=y + +# PKCS#12 (PFX) support (used to read private key and certificate file from +# a file that usually has extension .p12 or .pfx) +CONFIG_PKCS12=y + +# RADIUS authentication server. This provides access to the integrated EAP +# server from external hosts using RADIUS. +CONFIG_RADIUS_SERVER=y + +# Build IPv6 support for RADIUS operations +CONFIG_IPV6=y + +# IEEE Std 802.11r-2008 (Fast BSS Transition) +#CONFIG_IEEE80211R=y + +# Use the hostapd's IEEE 802.11 authentication (ACL), but without +# the IEEE 802.11 Management capability (e.g., madwifi or FreeBSD/net80211) +CONFIG_DRIVER_RADIUS_ACL=y + +# IEEE 802.11n (High Throughput) support +CONFIG_IEEE80211N=y + +# Remove debugging code that is printing out debug messages to stdout. +# This can be used to reduce the size of the hostapd considerably if debugging +# code is not needed. +#CONFIG_NO_STDOUT_DEBUG=y diff --git a/meta-openvuplus/recipes-wlan/hostap/hostap-daemon-0.7.3/init b/meta-openvuplus/recipes-wlan/hostap/hostap-daemon-0.7.3/init new file mode 100644 index 0000000..79f74b6 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/hostap/hostap-daemon-0.7.3/init @@ -0,0 +1,37 @@ +#!/bin/sh +DAEMON=/usr/sbin/hostapd +NAME=hostapd +DESC="HOSTAP Daemon" +ARGS="/etc/hostapd.conf -B" + +test -f $DAEMON || exit 0 + +set -e + +case "$1" in + start) + echo -n "Starting $DESC: " + start-stop-daemon -S -x $DAEMON -- $ARGS + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon -K -x $DAEMON + echo "$NAME." + ;; + restart) + $0 stop + $0 start + ;; + reload) + echo -n "Reloading $DESC: " + killall -HUP $(basename ${DAEMON}) + echo "$NAME." + ;; + *) + echo "Usage: $0 {start|stop|restart|reload}" + exit 1 + ;; +esac + +exit 0 diff --git a/meta-openvuplus/recipes-wlan/hostap/hostap-daemon-0.7.inc b/meta-openvuplus/recipes-wlan/hostap/hostap-daemon-0.7.inc new file mode 100644 index 0000000..0eb678a --- /dev/null +++ b/meta-openvuplus/recipes-wlan/hostap/hostap-daemon-0.7.inc @@ -0,0 +1,25 @@ +HOMEPAGE = "http://hostap.epitest.fi" +SECTION = "kernel/userland" +PRIORITY = "optional" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${WORKDIR}/hostapd-0.7.3/COPYING;md5=c54ce9345727175ff66d17b67ff51f58" +DEPENDS = "libnl openssl" + +inherit update-rc.d +INITSCRIPT_NAME="hostapd" + +do_configure() { + install -m 0644 ${WORKDIR}/defconfig ${S}/.config +} + +do_compile() { + make +} + +do_install() { + install -d ${D}${sbindir} ${D}${sysconfdir}/init.d + install -m 0755 ${S}/hostapd ${D}${sbindir} + install -m 0755 ${S}/hostapd_cli ${D}${sbindir} + install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/hostapd +} + diff --git a/meta-openvuplus/recipes-wlan/hostap/hostap-daemon_0.7.3.bb b/meta-openvuplus/recipes-wlan/hostap/hostap-daemon_0.7.3.bb new file mode 100644 index 0000000..99297a9 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/hostap/hostap-daemon_0.7.3.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "User space daemon for extended IEEE 802.11 management" + +require hostap-daemon-0.7.inc + +PR = "r4" + +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "http://hostap.epitest.fi/releases/hostapd-${PV}.tar.gz \ + file://defconfig \ + file://init" +SRC_URI[md5sum] = "91a7c8d0f090b7104152d3455a84c112" +SRC_URI[sha256sum] = "31eb2781f37e1a4c27969d1594f8019c0ca87779349c099ab812833289961567" + +S = "${WORKDIR}/hostapd-${PV}/hostapd" + + diff --git a/meta-openvuplus/recipes-wlan/ralink/rt3070-2.5.0.3/config.patch b/meta-openvuplus/recipes-wlan/ralink/rt3070-2.5.0.3/config.patch new file mode 100644 index 0000000..aa510d8 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/ralink/rt3070-2.5.0.3/config.patch @@ -0,0 +1,16 @@ +--- 2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.orig/os/linux/config.mk ++++ 2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO/os/linux/config.mk +@@ -53,11 +53,11 @@ HAS_LLTD=n + HAS_APCLI=n + + # Support Wpa_Supplicant +-HAS_WPA_SUPPLICANT=n ++HAS_WPA_SUPPLICANT=y + + + # Support Native WpaSupplicant for Network Maganger +-HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n ++HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y + + #Support Net interface block while Tx-Sw queue full + HAS_BLOCK_NET_IF=n diff --git a/meta-openvuplus/recipes-wlan/ralink/rt3070-2.5.0.3/makefile.patch b/meta-openvuplus/recipes-wlan/ralink/rt3070-2.5.0.3/makefile.patch new file mode 100644 index 0000000..c7960e1 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/ralink/rt3070-2.5.0.3/makefile.patch @@ -0,0 +1,22 @@ +--- DPO_RT3070_LinuxSTA_V2.3.0.4_20100604.orig/Makefile ++++ DPO_RT3070_LinuxSTA_V2.3.0.4_20100604/Makefile +@@ -258,6 +258,6 @@ + cp -f $(RT28xx_DIR)/os/linux/rtnet$(CHIPSET)apsta.o /tftpboot + endif + else +- cp -f $(RT28xx_DIR)/os/linux/rt$(CHIPSET)sta.o /tftpboot ++ cp -f $(RT28xx_DIR)/os/linux/rt$(CHIPSET)sta.o $(RT28xx_DIR) + ifeq ($(OSABL),YES) + cp -f $(RT28xx_DIR)/os/linux/rtutil$(CHIPSET)sta.o /tftpboot + cp -f $(RT28xx_DIR)/os/linux/rtnet$(CHIPSET)sta.o /tftpboot +--- DPO_RT3070_LinuxSTA_V2.3.0.4_20100604.orig/Makefile ++++ DPO_RT3070_LinuxSTA_V2.3.0.4_20100604/Makefile +@@ -305,6 +305,6 @@ + cp -f $(RT28xx_DIR)/os/linux/rtnet$(CHIPSET)apsta.ko /tftpboot + endif + else +- cp -f $(RT28xx_DIR)/os/linux/rt$(CHIPSET)sta.ko /tftpboot ++ cp -f $(RT28xx_DIR)/os/linux/rt$(CHIPSET)sta.ko $(RT28xx_DIR) + ifeq ($(OSABL),YES) + cp -f $(RT28xx_DIR)/os/linux/rtutil$(CHIPSET)sta.ko /tftpboot + cp -f $(RT28xx_DIR)/os/linux/rtnet$(CHIPSET)sta.ko /tftpboot diff --git a/meta-openvuplus/recipes-wlan/ralink/rt3070_2.5.0.3.bb b/meta-openvuplus/recipes-wlan/ralink/rt3070_2.5.0.3.bb new file mode 100644 index 0000000..cabe6b7 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/ralink/rt3070_2.5.0.3.bb @@ -0,0 +1,26 @@ +SUMMARY = "Driver for Ralink RT8070/3070/3370/5370/5372 USB 802.11abgn WiFi sticks" +SECTION = "kernel/modules" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://os/linux/rt_linux.c;endline=25;md5=21ed2a5918a3062a6c0323ef549f0803" +PR = "r1" + +SRC_URI = " \ + http://sources.dreamboxupdate.com/download/sources/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V${PV}_DPO.tar.bz2 \ + file://makefile.patch \ + file://config.patch \ +" +SRC_URI[md5sum] = "8ea0d247ac5881de1cb4c113ebf65724" +SRC_URI[sha256sum] = "e732d6b114137aa0badf46281d25d442278639d798735317b0061d3ae573593e" + +S = "${WORKDIR}/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V${PV}_DPO" + +inherit module + +EXTRA_OEMAKE = "LINUX_SRC=${STAGING_KERNEL_DIR}" + +do_install() { + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/drivers/net/wireless + install -m 0644 ${S}/*sta${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/drivers/net/wireless + install -d ${D}${sysconfdir}/Wireless/RT2870STA + install -m 0644 ${S}/RT2870STA.dat ${D}${sysconfdir}/Wireless/RT2870STA +} diff --git a/meta-openvuplus/recipes-wlan/realtek/r8192cu-3.1.2590.20110922/linux_3.1.patch b/meta-openvuplus/recipes-wlan/realtek/r8192cu-3.1.2590.20110922/linux_3.1.patch new file mode 100644 index 0000000..3d6e3d2 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/realtek/r8192cu-3.1.2590.20110922/linux_3.1.patch @@ -0,0 +1,24 @@ +diff --git a/include/osdep_service.h b/include/osdep_service.h +index 4aa6478..c15539b 100755 +--- a/include/osdep_service.h ++++ b/include/osdep_service.h +@@ -46,7 +46,6 @@ + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,5)) + #include + #endif +- #include + #include + #include + #include +diff --git a/include/rtw_io.h b/include/rtw_io.h +index 15065c6..dab90b7 100755 +--- a/include/rtw_io.h ++++ b/include/rtw_io.h +@@ -33,7 +33,6 @@ + #include + #endif + #include +-#include + #include + #include + diff --git a/meta-openvuplus/recipes-wlan/realtek/r8192cu-3.1.2590.20110922/makefile.patch b/meta-openvuplus/recipes-wlan/realtek/r8192cu-3.1.2590.20110922/makefile.patch new file mode 100755 index 0000000..a8539ca --- /dev/null +++ b/meta-openvuplus/recipes-wlan/realtek/r8192cu-3.1.2590.20110922/makefile.patch @@ -0,0 +1,26 @@ +diff --git a/Makefile b/Makefile +index b3ccaf2..9e44425 100755 +--- a/Makefile ++++ b/Makefile +@@ -39,7 +39,7 @@ CONFIG_PLATFORM_ANDROID_X86 = n + CONFIG_PLATFORM_ARM_S3C2K4 = n + CONFIG_PLATFORM_ARM_PXA2XX = n + CONFIG_PLATFORM_ARM_S3C6K4 = n +-CONFIG_PLATFORM_MIPS_RMI = n ++CONFIG_PLATFORM_MIPS_RMI = y + CONFIG_PLATFORM_RTD2880B = n + CONFIG_PLATFORM_MIPS_AR9132 = n + CONFIG_PLATFORM_RTK_DMP = n +@@ -288,9 +288,9 @@ endif + ifeq ($(CONFIG_PLATFORM_MIPS_RMI), y) + EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN + ARCH:=mips +-CROSS_COMPILE:=mipsisa32r2-uclibc- +-KVER:= +-KSRC:= /root/work/kernel_realtek ++#CROSS_COMPILE:=mipsisa32r2-uclibc- ++#KVER:= ++#KSRC:= /root/work/kernel_realtek + endif + + ifeq ($(CONFIG_PLATFORM_MIPS_PLM), y) diff --git a/meta-openvuplus/recipes-wlan/realtek/r8192cu-3.1.2590.20110922/rtl8192_8188CU_linux_v3.1.2590.20110922.tar.gz b/meta-openvuplus/recipes-wlan/realtek/r8192cu-3.1.2590.20110922/rtl8192_8188CU_linux_v3.1.2590.20110922.tar.gz new file mode 100644 index 0000000..5b3a020 Binary files /dev/null and b/meta-openvuplus/recipes-wlan/realtek/r8192cu-3.1.2590.20110922/rtl8192_8188CU_linux_v3.1.2590.20110922.tar.gz differ diff --git a/meta-openvuplus/recipes-wlan/realtek/r8192cu_3.1.2590.20110922.bb b/meta-openvuplus/recipes-wlan/realtek/r8192cu_3.1.2590.20110922.bb new file mode 100644 index 0000000..9079bb7 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/realtek/r8192cu_3.1.2590.20110922.bb @@ -0,0 +1,34 @@ +DESCRIPTION = "driver for Realtek USB wireless devices" +SECTION = "kernel/modules" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://os_dep/linux/os_intfs.c;md5=9335a12a66bce6b5e29421aac1aa5383" + +inherit module + +SRC_URI = " \ + file://rtl8192_8188CU_linux_v3.1.2590.20110922.tar.gz \ + file://makefile.patch;patch=1 \ + file://linux_3.1.patch;patch=1 \ +" + +S = "${WORKDIR}/rtl8192_8188CU_linux_v${PV}" + +PR = "r0" + +do_compile () { + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP + oe_runmake ${MODULE_MAKE_FLAGS} +} + +do_install() { + install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless + install -m 0644 ${S}/8192cu.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless +} + +MODULE_MAKE_FLAGS += " \ + CROSS_COMPILE=${TARGET_PREFIX} \ + KVER=${KERNEL_VERSION} \ + KSRC=${STAGING_KERNEL_DIR} \ + KDIR=${STAGING_KERNEL_DIR} \ +" + diff --git a/meta-openvuplus/recipes-wlan/realtek/r8712u/config b/meta-openvuplus/recipes-wlan/realtek/r8712u/config new file mode 100644 index 0000000..6decb18 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/realtek/r8712u/config @@ -0,0 +1,27 @@ + +# +# Automatically generated make config: don't edit +# + +CONFIG_RTL8711 = n +CONFIG_RTL8712 = y + + +CONFIG_USB_HCI = y +CONFIG_SDIO_HCI = n + + +CONFIG_MP_INCLUDED = y + +CONFIG_PLATFORM_I386_PC = n +CONFIG_PLATFORM_ANDROID_X86 = n +CONFIG_PLATFORM_ARM_S3C = n +CONFIG_PLATFORM_ARM_PXA = n +CONFIG_PLATFORM_MIPS_RMI = n +CONFIG_PLATFORM_RTK_DMP = n +CONFIG_PLATFORM_MIPS_PLM = n +CONFIG_PLATFORM_RTD2880B = n +CONFIG_PLATFORM_MSTAR389 = n + +CONFIG_MLME_EXT = n +CONFIG_DRVEXT_MODULE = n diff --git a/meta-openvuplus/recipes-wlan/realtek/r8712u/strcasecmp.patch b/meta-openvuplus/recipes-wlan/realtek/r8712u/strcasecmp.patch new file mode 100644 index 0000000..0aea6d9 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/realtek/r8712u/strcasecmp.patch @@ -0,0 +1,14 @@ +diff --git a/ioctl/rtl871x_ioctl_linux.c b/ioctl/rtl871x_ioctl_linux.c +index 6f707de..561c50f 100755 +--- a/ioctl/rtl871x_ioctl_linux.c ++++ b/ioctl/rtl871x_ioctl_linux.c +@@ -52,6 +52,9 @@ + #define iwe_stream_add_point(a, b, c, d, e) iwe_stream_add_point(b, c, d, e) + #endif + ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)) ++#define strcasecmp(s1, s2) strcmp(s1, s2) ++#endif + + #define RTL_IOCTL_WPA_SUPPLICANT SIOCIWFIRSTPRIV+0x1E + diff --git a/meta-openvuplus/recipes-wlan/realtek/r8712u_2.6.6.0.20101111.bb b/meta-openvuplus/recipes-wlan/realtek/r8712u_2.6.6.0.20101111.bb new file mode 100644 index 0000000..bd4d843 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/realtek/r8712u_2.6.6.0.20101111.bb @@ -0,0 +1,30 @@ +SUMMARY = "driver for Realtek USB wireless devices" +HOMEPAGE = "http://www.realtek.com/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://os_intf/linux/os_intfs.c;endline=19;md5=d1bbd9348c57df9fd08439bddfa32ec5" +PR = "r1" + +SRC_URI = " \ + http://dreamboxupdate.com/download/sources/rtl8712_8188_8191_8192SU_usb_linux_v${PV}.tar.gz \ + file://strcasecmp.patch \ + file://config \ +" +SRC_URI[md5sum] = "137423701c43ac5f09007a393406e678" +SRC_URI[sha256sum] = "34ef8534361b0ce9ec756de8babe68f40ba9ce7a2be23d84cf9c185cc4a7c9bb" + +S = "${WORKDIR}/rtl8712_8188_8191_8192SU_usb_linux_v${PV}" + +inherit module siteinfo + +do_configure() { + install -m 644 ${WORKDIR}/config ${S} + echo "EXTRA_CFLAGS += -DCONFIG_${@base_conditional('SITEINFO_ENDIANNESS', 'le', 'LITTLE', 'BIG', d)}_ENDIAN" >> ${S}/config +} +do_compile() { + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS + oe_runmake -C "${STAGING_KERNEL_DIR}" SUBDIRS="${S}" modules +} +do_install() { + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS + oe_runmake -C "${STAGING_KERNEL_DIR}" SUBDIRS="${S}" DEPMOD="echo" INSTALL_MOD_PATH="${D}" modules_install +} diff --git a/meta-openvuplus/recipes-wlan/rt2870sta/files/RT2870STA.dat b/meta-openvuplus/recipes-wlan/rt2870sta/files/RT2870STA.dat new file mode 100644 index 0000000..b08b10a --- /dev/null +++ b/meta-openvuplus/recipes-wlan/rt2870sta/files/RT2870STA.dat @@ -0,0 +1,79 @@ +#The word of "Default" must not be removed +Default +CountryRegion=5 +CountryRegionABand=7 +CountryCode= +ChannelGeography=1 +SSID=11n-AP +NetworkType=Infra +WirelessMode=5 +Channel=0 +BeaconPeriod=100 +TxPower=100 +BGProtection=0 +TxPreamble=0 +RTSThreshold=2347 +FragThreshold=2346 +TxBurst=1 +PktAggregate=0 +WmmCapable=1 +AckPolicy=0;0;0;0 +AuthMode=OPEN +EncrypType=NONE +WPAPSK= +DefaultKeyID=1 +Key1Type=0 +Key1Str= +Key2Type=0 +Key2Str= +Key3Type=0 +Key3Str= +Key4Type=0 +Key4Str= +PSMode=CAM +AutoRoaming=0 +RoamThreshold=70 +APSDCapable=0 +APSDAC=0;0;0;0 +HT_RDG=1 +HT_EXTCHA=0 +HT_OpMode=0 +HT_MpduDensity=4 +HT_BW=1 +HT_BADecline=0 +HT_AutoBA=1 +HT_AMSDU=0 +HT_BAWinSize=64 +HT_GI=1 +HT_MCS=33 +HT_MIMOPSMode=3 +HT_DisallowTKIP=1 +HT_STBC=0 +EthConvertMode= +EthCloneMac= +IEEE80211H=0 +TGnWifiTest=0 +WirelessEvent=0 +MeshId=MESH +MeshAutoLink=1 +MeshAuthMode=OPEN +MeshEncrypType=NONE +MeshWPAKEY= +MeshDefaultkey=1 +MeshWEPKEY= +CarrierDetect=0 +AntDiversity=0 +BeaconLostTime=4 +FtSupport=0 +Wapiifname=ra0 +WapiPsk= +WapiPskType= +WapiUserCertPath= +WapiAsCertPath= +PSP_XLINK_MODE=0 +WscManufacturer= +WscModelName= +WscDeviceName= +WscModelNumber= +WscSerialNumber= +RadioOn=1 diff --git a/meta-openvuplus/recipes-wlan/rt2870sta/rt2870sta_1.0.0.bb b/meta-openvuplus/recipes-wlan/rt2870sta/rt2870sta_1.0.0.bb new file mode 100644 index 0000000..94f9120 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/rt2870sta/rt2870sta_1.0.0.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "install RT2870STA.dat file for ralink drivers" + +PV = "1.0.0" +PR = "r0" +LICENSE = "CLOSED" + +SRC_URI = "file://RT2870STA.dat" + +S = "${WORKDIR}/" + +do_compile() { + : +} + +do_install() { + install -d ${D}/etc/Wireless/RT2870STA/ + install -m 0755 ${WORKDIR}/RT2870STA.dat ${D}/etc/Wireless/RT2870STA/ +} diff --git a/meta-openvuplus/recipes-wlan/rt73-firmware/rt73-firmware_1.8.bb b/meta-openvuplus/recipes-wlan/rt73-firmware/rt73-firmware_1.8.bb new file mode 100644 index 0000000..70c5760 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/rt73-firmware/rt73-firmware_1.8.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "Firmware for rt73 based USB wifi adaptors" +LICENSE = "unknown" +LIC_FILES_CHKSUM = "file://LICENSE.ralink-firmware.txt;md5=682eac07428a4e8f138bc082f090ecac" + +PR = "r1" + +SRC_URI = "http://www.ralinktech.com.tw/data/RT71W_Firmware_V${PV}.zip" + +S = "${WORKDIR}/RT71W_Firmware_V${PV}" + +do_install() { + install -d ${D}/${base_libdir}/firmware + install -m 0644 rt73.bin ${D}/${base_libdir}/firmware/ +} + +FILES_${PN} = "${base_libdir}/firmware/" +PACKAGE_ARCH = "all" diff --git a/meta-openvuplus/recipes-wlan/tasks/task-vuplus-wlan.bb b/meta-openvuplus/recipes-wlan/tasks/task-vuplus-wlan.bb new file mode 100644 index 0000000..2bbc466 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/tasks/task-vuplus-wlan.bb @@ -0,0 +1,51 @@ +DESCRIPTION = "Vuplus: W-LAN Task for the Vuplus Distribution" +SECTION = "vuplus/base" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" +PR = "r8" + +inherit task + +DEPENDS_${PN} = "enigma2-plugins" +RDEPENDS_${PN} = "\ + ${@base_contains("MACHINE_FEATURES", "vuwlan", "enigma2-plugin-systemplugins-wirelesslansetup", "enigma2-plugin-systemplugins-wirelesslan", d)} \ + wireless-tools \ + wpa-supplicant \ +" + +WLAN_USB_MODULES = "\ + rt73-firmware \ + zd1211-firmware \ + firmware-htc9271 \ + firmware-rt2561 \ + firmware-rtl8721u \ + firmware-rt3070 \ + rt2870sta \ + r8192cu \ +" + +KERNEL_WIFI_MODULES = " \ + kernel-module-ath9k-htc \ + kernel-module-carl9170 \ + kernel-module-prism2-usb \ + kernel-module-rt73usb \ + kernel-module-rt2500usb \ + kernel-module-r8192u-usb \ + kernel-module-rtl8192cu \ + kernel-module-rtl8187 \ + kernel-module-r8712u \ + kernel-module-w35und \ + kernel-module-zd1211rw \ + kernel-module-rt2800usb \ + kernel-module-llc \ + kernel-module-stp \ + kernel-module-bridge \ + kernel-module-hostap \ +" + +RDEPENDS_${PN}_append = "\ + ${WLAN_USB_MODULES} \ + ${KERNEL_WIFI_MODULES} \ +" +PACKAGE_ARCH = "${MACHINE_ARCH}" + diff --git a/meta-openvuplus/recipes-wlan/wlan-rt73/files/changeiface.patch b/meta-openvuplus/recipes-wlan/wlan-rt73/files/changeiface.patch new file mode 100644 index 0000000..89b3cf1 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/wlan-rt73/files/changeiface.patch @@ -0,0 +1,38 @@ +--- Module/rtmp_main.c_orig 2008-05-06 07:26:44.000000000 +0200 ++++ Module/rtmp_main.c 2008-08-12 09:19:55.000000000 +0200 +@@ -987,7 +987,7 @@ + + for (i = 0; i < 8; i++) + { +- sprintf(slot_name, "rausb%d", i); ++ sprintf(slot_name, "wlan%d", i); + + read_lock_bh(&dev_base_lock); // avoid multiple init + //Benson modify --> +@@ -1010,7 +1010,7 @@ + return NULL; + } + +- sprintf(pAd->net_dev->name, "rausb%d", i); ++ sprintf(pAd->net_dev->name, "wlan%d", i); + DBGPRINT(RT_DEBUG_ERROR, "usb device name %s\n",pAd->net_dev->name); + + /* get Max Packet Size from usb_dev endpoint */ +@@ -1191,7 +1191,7 @@ + + for (i = 0; i < 8; i++) + { +- sprintf(slot_name, "rausb%d", i); ++ sprintf(slot_name, "wlan%d", i); + + #if 1 + //--> Benson add 20080505, for Linux_kernel > 2,6,24 +@@ -1231,7 +1231,7 @@ + return res; + } + +- sprintf(pAd->net_dev->name, "rausb%d", i); ++ sprintf(pAd->net_dev->name, "wlan%d", i); + DBGPRINT(RT_DEBUG_ERROR, "usb device name %s\n", pAd->net_dev->name); + + diff --git a/meta-openvuplus/recipes-wlan/wlan-rt73/files/make.patch b/meta-openvuplus/recipes-wlan/wlan-rt73/files/make.patch new file mode 100644 index 0000000..b49d513 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/wlan-rt73/files/make.patch @@ -0,0 +1,20 @@ +--- Module/Makefile 2008-05-06 07:58:14.000000000 +0200 ++++ Module/Makefile 2008-08-04 15:08:58.000000000 +0200 +@@ -14,6 +14,8 @@ + #Support Block Net-If during TxSw queue full. + HAS_BLOCK_NET_IF=y + ++VERSION := $(shell uname -r) ++MODPATH := /lib/modules/$(VERSION) + + WFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs + +@@ -35,7 +37,7 @@ + EXTRA_CFLAGS += $(WFLAGS) + + ifeq ($(PLATFORM),PC) +-LINUX_SRC =/lib/modules/$(shell uname -r)/build ++LINUX_SRC ?= $(MODPATH)/source + endif + ifeq ($(PLATFORM),CMPC) + LINUX_SRC = /home/fonchi/vendor/kernel-default-2.6.21/linux-2.6.21 diff --git a/meta-openvuplus/recipes-wlan/wlan-rt73/wlan-rt73.bb b/meta-openvuplus/recipes-wlan/wlan-rt73/wlan-rt73.bb new file mode 100644 index 0000000..5b57ac3 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/wlan-rt73/wlan-rt73.bb @@ -0,0 +1,43 @@ +SUMMARY = "Driver for Ralink rt73 USB 802.11b/g WiFi sticks" +HOMEPAGE = "http://www.ralinktech.com.tw" +SECTION = "kernel/modules" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://rtmp_main.c;endline=25;md5=10585d272398025e832fa0793385f9a1" + +inherit module + +PR = "r6" + +SRC_URI = "http://www.ralinktech.com.tw/data/drivers/2008_0506_RT73_Linux_STA_Drv1.1.0.1.tar.bz2 \ + file://make.patch \ + file://changeiface.patch" + +SRC_URI[md5sum] = "3e08bf734b740e83391fda571c8e9ecd" +SRC_URI[sha256sum] = "932b9c127992fd7985e4054d91120164e54f7132fa457b06fdcd30307e5b70f9" + +RDEPEND = "wireless-tools" + +FILES_${PN} += " /lib/firmware/rt73.bin" + +S = "${WORKDIR}/2008_0506_RT73_Linux_STA_Drv1.1.0.1/Module/" +EXTRA_OEMAKE = "KERNDIR=${STAGING_KERNEL_DIR}" + +do_compile() { + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP + oe_runmake 'MODPATH={D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net' \ + 'KERNEL_SOURCE=${STAGING_KERNEL_DIR}' \ + 'LINUX_SRC=${STAGING_KERNEL_DIR}' \ + 'KDIR=${STAGING_KERNEL_DIR}' \ + 'KERNDIR=${STAGING_KERNEL_DIR}' \ + 'KERNEL_VERSION=${KERNEL_VERSION}' \ + 'CC=${KERNEL_CC}' \ + 'LD=${KERNEL_LD}' +} + +do_install() { + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net + install -m 0644 rt73${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net/ + install -d ${D}/lib/firmware + install -m 0644 rt73.bin ${D}/lib/firmware/ +} + diff --git a/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/action_wpa.sh b/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/action_wpa.sh new file mode 100644 index 0000000..6d90fa6 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/action_wpa.sh @@ -0,0 +1,50 @@ +#!/bin/sh + +# Action script to enable/disable wpa-roam interfaces in reaction to +# ifplugd events. +# +# Copyright: Copyright (c) 2008-2010, Kel Modderman +# License: GPL-2 +# + +PATH=/sbin:/usr/sbin:/bin:/usr/bin + +if [ ! -x /usr/sbin/wpa_action ]; then + exit 0 +fi + +# ifplugd(8) - +# +# If an ifplugd managed interface is brought up, disconnect any +# wpa-roam managed interfaces so that only one "roaming" interface +# remains active on the system. + +IFPLUGD_IFACE="${1}" + +case "${2}" in + up) + COMMAND=disconnect + ;; + down) + COMMAND=reconnect + ;; + *) + echo "$0: unknown arguments: ${@}" >&2 + exit 1 + ;; +esac + +for CTRL in /var/run/wpa_supplicant/*; do + [ -S "${CTRL}" ] || continue + + IFACE="${CTRL#/var/run/wpa_supplicant/}" + + # skip if ifplugd is managing this interface + if [ "${IFPLUGD_IFACE}" = "${IFACE}" ]; then + continue + fi + + if wpa_action "${IFACE}" check; then + wpa_cli -i "${IFACE}" "${COMMAND}" + fi +done diff --git a/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/functions.sh b/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/functions.sh new file mode 100644 index 0000000..b9e0eb2 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/functions.sh @@ -0,0 +1,1015 @@ +#!/bin/sh + +##################################################################### +## Purpose +# This file contains common shell functions used by scripts of the +# wpasupplicant package to allow ifupdown to manage wpa_supplicant. +# It also contains some functions used by wpa_action(8) that allow +# ifupdown to be managed by wpa_cli(8) action events. +# +# This file is provided by the wpasupplicant package. + +##################################################################### +# Copyright (C) 2006 - 2009 Debian/Ubuntu wpasupplicant Maintainers +# +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# On Debian GNU/Linux systems, the text of the GPL license, +# version 2, can be found in /usr/share/common-licenses/GPL-2. + +##################################################################### +## global variables +# wpa_supplicant variables +WPA_SUP_BIN="/usr/sbin/wpa_supplicant" +WPA_SUP_PNAME="wpa_supplicant" +WPA_SUP_PIDFILE="/var/run/wpa_supplicant.${WPA_IFACE}.pid" + +# wpa_cli variables +WPA_CLI_BIN="/usr/sbin/wpa_cli" +WPA_CLI_PNAME="wpa_cli" +WPA_CLI_PIDFILE="/var/run/wpa_action.${WPA_IFACE}.pid" +WPA_CLI_TIMESTAMP="/var/run/wpa_action.${WPA_IFACE}.timestamp" +WPA_CLI_IFUPDOWN="/var/run/wpa_action.${WPA_IFACE}.ifupdown" + +# sendsigs omission interface, present in initscripts (>= 2.86.ds1-48) +if [ -d /lib/init/rw/sendsigs.omit.d/ ]; then + # Debian + WPA_SUP_OMIT_PIDFILE="/lib/init/rw/sendsigs.omit.d/wpasupplicant.wpa_supplicant.${WPA_IFACE}.pid" +elif [ -d /var/run/sendsigs.omit.d/ ]; then + # Ubuntu, see https://launchpad.net/bugs/181541 for status + WPA_SUP_OMIT_PIDFILE="/var/run/sendsigs.omit.d/wpasupplicant.wpa_supplicant.${WPA_IFACE}.pid" +else + WPA_SUP_OMIT_PIDFILE= +fi + +# default ctrl_interface socket directory +if [ -z "$WPA_CTRL_DIR" ]; then + WPA_CTRL_DIR="/var/run/wpa_supplicant" +fi + +# verbosity variables +if [ -n "$IF_WPA_VERBOSITY" ] || [ "$VERBOSITY" = "1" ]; then + TO_NULL="/dev/stdout" + DAEMON_VERBOSITY="--verbose" +else + TO_NULL="/dev/null" + DAEMON_VERBOSITY="--quiet" +fi + +##################################################################### +## wpa_cli wrapper +# Path to common ctrl_interface socket and iface supplied. +# NB: WPA_CTRL_DIR cannot be used for interactive commands, it is +# set only in the environment that wpa_cli provides when processing +# action events. +# +wpa_cli () { + "$WPA_CLI_BIN" -p "$WPA_CTRL_DIR" -i "$WPA_IFACE" "$@" + + return "$?" +} + +##################################################################### +## verbose and stderr message wrapper +# Ensures a standard and easily identifiable message is printed by +# scripts using this function library. +# +# log Log a message to syslog when called non-interactively +# by wpa_action +# +# verbose To stdout when IF_WPA_VERBOSITY or VERBOSITY is true +# +# action Same as verbose but without newline +# Useful for allowing wpa_cli commands to echo result +# value of 'OK' or 'FAILED' +# +# stderr Echo warning or error messages to stderr +# +# NB: when called by wpa_action, there is no redirection (verbose) +# +wpa_msg () { + if [ "$1" = "log" ]; then + shift + case "$WPA_ACTION" in + "CONNECTED"|"DISCONNECTED") + [ -x /usr/bin/logger ] || return + if [ "$#" -gt 0 ]; then + logger -t "wpa_action" "$@" + else + logger -t "wpa_action" + fi + ;; + *) + [ "$#" -gt 0 ] && echo "wpa_action: $@" + ;; + esac + return + fi + + case "$1" in + "verbose") + shift + echo "$WPA_SUP_PNAME: $@" >$TO_NULL + ;; + "action") + shift + echo -n "$WPA_SUP_PNAME: $@ -- " >$TO_NULL + ;; + "stderr") + shift + echo "$WPA_SUP_PNAME: $@" >/dev/stderr + ;; + *) + ;; + esac +} + +##################################################################### +## validate daemon pid files +# Test daemon process ID files via start-stop-daemon with a signal 0 +# given the exec binary and pidfile location. +# +# $1 daemon +# $2 pidfile +# +# Returns true when pidfile exists, the process ID exists _and_ was +# created by the exec binary. +# +# If the test fails, but the pidfile exists, it is stale +# +test_daemon_pidfile () { + local DAEMON + local PIDFILE + + if [ -n "$1" ]; then + DAEMON="$1" + fi + + if [ -f "$2" ]; then + PIDFILE="$2" + fi + + if [ -n "$DAEMON" ] && [ -f "$PIDFILE" ]; then + if start-stop-daemon --stop --quiet --signal 0 \ + --exec "$DAEMON" --pidfile "$PIDFILE"; then + return 0 + else + rm -f "$PIDFILE" + return 1 + fi + else + return 1 + fi +} + +# validate wpa_supplicant pidfile +test_wpa_supplicant () { + test_daemon_pidfile "$WPA_SUP_BIN" "$WPA_SUP_PIDFILE" +} + +# validate wpa_cli pidfile +test_wpa_cli () { + test_daemon_pidfile "$WPA_CLI_BIN" "$WPA_CLI_PIDFILE" +} + +##################################################################### +## daemonize wpa_supplicant +# Start wpa_supplicant via start-stop-dameon with all required +# options. Will start if environment variable WPA_SUP_CONF is present +# +# Default options: +# -B dameonize/background process +# -D driver backend ('wext' if none given) +# -P process ID file +# -C path to ctrl_interface socket directory +# -s log to syslog +# +# Conditional options: +# -c configuration file +# -W wait for wpa_cli to attach to ctrl_interface socket +# -b bridge interface name +# -f path to log file +# +init_wpa_supplicant () { + [ -n "$WPA_SUP_CONF" ] || return 0 + + local WPA_SUP_OPTIONS + WPA_SUP_OPTIONS="-s -B -P $WPA_SUP_PIDFILE -i $WPA_IFACE" + + if [ -n "$WPA_ACTION_SCRIPT" ]; then + if [ -x "$WPA_ACTION_SCRIPT" ]; then + WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS -W" + wpa_msg verbose "wait for wpa_cli to attach" + else + wpa_msg stderr "action script \"$WPA_ACTION_SCRIPT\" not executable" + return 1 + fi + fi + + if [ -n "$IF_WPA_BRIDGE" ]; then + WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS -b $IF_WPA_BRIDGE" + wpa_msg verbose "wpa-bridge $IF_WPA_BRIDGE" + fi + + if [ -n "$IF_WPA_DRIVER" ]; then + wpa_msg verbose "wpa-driver $IF_WPA_DRIVER" + case "$IF_WPA_DRIVER" in + hostap|ipw|madwifi|ndiswrapper) + WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS -D nl80211,wext" + wpa_msg stderr "\"$IF_WPA_DRIVER\" wpa-driver is unsupported" + wpa_msg stderr "using \"nl80211,wext\" wpa-driver instead ..." + ;; + *) + WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS -D $IF_WPA_DRIVER" + ;; + esac + else + WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS -D nl80211,wext" + wpa_msg verbose "wpa-driver nl80211,wext (default)" + fi + + if [ -n "$IF_WPA_DEBUG_LEVEL" ]; then + case "$IF_WPA_DEBUG_LEVEL" in + 3) + WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS -t -ddd" + ;; + 2) + WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS -t -dd" + ;; + 1) + WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS -t -d" + ;; + 0) + # wpa_supplicant default verbosity + ;; + -1) + WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS -q" + ;; + -2) + WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS -qq" + ;; + esac + wpa_msg verbose "using debug level: $IF_WPA_DEBUG_LEVEL" + fi + + if [ -n "$IF_WPA_LOGFILE" ]; then + # custom log file + WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS -f $IF_WPA_LOGFILE" + WPA_SUP_LOGFILE="$IF_WPA_LOGFILE" + wpa_msg verbose "logging to $IF_WPA_LOGFILE" + fi + + wpa_msg verbose "$WPA_SUP_BIN $WPA_SUP_OPTIONS $WPA_SUP_CONF" + + start-stop-daemon --start --oknodo $DAEMON_VERBOSITY \ + --name $WPA_SUP_PNAME --startas $WPA_SUP_BIN --pidfile $WPA_SUP_PIDFILE \ + -- $WPA_SUP_OPTIONS $WPA_SUP_CONF + + if [ "$?" -ne 0 ]; then + wpa_msg stderr "$WPA_SUP_BIN daemon failed to start" + return 1 + fi + + if [ -n "$WPA_SUP_OMIT_PIDFILE" ]; then + local WPA_PIDFILE_WAIT + local MAX_WPA_PIDFILE_WAIT + WPA_PIDFILE_WAIT="0" + MAX_WPA_PIDFILE_WAIT="5" + until [ -s "$WPA_SUP_PIDFILE" ]; do + if [ "$WPA_PIDFILE_WAIT" -ge "$MAX_WPA_PIDFILE_WAIT" ]; then + wpa_msg stderr "timed out waiting for creation of $WPA_SUP_PIDFILE" + return 1 + else + wpa_msg verbose "waiting for \"$WPA_SUP_PIDFILE\": " \ + "$WPA_PIDFILE_WAIT (max. $MAX_WPA_PIDFILE_WAIT)" + fi + + WPA_PIDFILE_WAIT=$(($WPA_PIDFILE_WAIT + 1)) + sleep 1 + done + wpa_msg verbose "creating sendsigs omission pidfile: $WPA_SUP_OMIT_PIDFILE" + cat "$WPA_SUP_PIDFILE" > "$WPA_SUP_OMIT_PIDFILE" + else + wpa_msg verbose "sendsigs omission pidfile not created" + fi + + local WPA_SOCKET_WAIT + local MAX_WPA_SOCKET_WAIT + WPA_SOCKET_WAIT="0" + MAX_WPA_SOCKET_WAIT="5" + until [ -S "$WPA_CTRL_DIR/$WPA_IFACE" ]; do + if [ "$WPA_SOCKET_WAIT" -ge "$MAX_WPA_SOCKET_WAIT" ]; then + wpa_msg stderr "ctrl_interface socket not found at $WPA_CTRL_DIR/$WPA_IFACE" + return 1 + else + wpa_msg verbose "waiting for \"$WPA_CTRL_DIR/$WPA_IFACE\": " \ + "$WPA_SOCKET_WAIT (max. $MAX_WPA_SOCKET_WAIT)" + fi + + WPA_SOCKET_WAIT=$(($WPA_SOCKET_WAIT + 1)) + sleep 1 + done + + wpa_msg verbose "ctrl_interface socket located at $WPA_CTRL_DIR/$WPA_IFACE" +} + +##################################################################### +## stop wpa_supplicant process +# Kill wpa_supplicant via start-stop-daemon, given the location of +# the pidfile or ctrl_interface socket path and interface name +# +kill_wpa_supplicant () { + test_wpa_supplicant || return 0 + + wpa_msg verbose "terminating $WPA_SUP_PNAME daemon via pidfile $WPA_SUP_PIDFILE" + + start-stop-daemon --stop --oknodo $DAEMON_VERBOSITY \ + --exec $WPA_SUP_BIN --pidfile $WPA_SUP_PIDFILE + + if [ -f "$WPA_SUP_PIDFILE" ]; then + rm -f "$WPA_SUP_PIDFILE" + fi + + if [ -f "$WPA_SUP_OMIT_PIDFILE" ]; then + wpa_msg verbose "removing $WPA_SUP_OMIT_PIDFILE" + rm -f "$WPA_SUP_OMIT_PIDFILE" + fi +} + +##################################################################### +## reload wpa_supplicant process +# Sending a HUP signal causes wpa_supplicant to reparse its +# configuration file +# +reload_wpa_supplicant () { + if test_wpa_supplicant; then + wpa_msg verbose "reloading wpa_supplicant configuration file via HUP signal" + start-stop-daemon --stop --signal HUP \ + --name "$WPA_SUP_PNAME" --pidfile "$WPA_SUP_PIDFILE" + else + wpa_msg verbose "cannot $WPA_ACTION, $WPA_SUP_PIDFILE does not exist" + fi +} + +##################################################################### +## daemonize wpa_cli and action script +# If environment variable WPA_ACTION_SCRIPT is present, wpa_cli will +# be spawned via start-stop-daemon +# +# Required options: +# -a action script => wpa_action +# -P process ID file +# -B background process +# +init_wpa_cli () { + [ -n "$WPA_ACTION_SCRIPT" ] || return 0 + + local WPA_CLI_OPTIONS + WPA_CLI_OPTIONS="-B -P $WPA_CLI_PIDFILE -i $WPA_IFACE" + + wpa_msg verbose "$WPA_CLI_BIN $WPA_CLI_OPTIONS -p $WPA_CTRL_DIR -a $WPA_ACTION_SCRIPT" + + start-stop-daemon --start --oknodo $DAEMON_VERBOSITY \ + --name $WPA_CLI_PNAME --startas $WPA_CLI_BIN --pidfile $WPA_CLI_PIDFILE \ + -- $WPA_CLI_OPTIONS -p $WPA_CTRL_DIR -a $WPA_ACTION_SCRIPT + + if [ "$?" -ne 0 ]; then + wpa_msg stderr "$WPA_CLI_BIN daemon failed to start" + return 1 + fi +} + +##################################################################### +## stop wpa_cli process +# Kill wpa_cli via start-stop-daemon, given the location of the +# pidfile +# +kill_wpa_cli () { + test_wpa_cli || return 0 + + wpa_msg verbose "terminating $WPA_CLI_PNAME daemon via pidfile $WPA_CLI_PIDFILE" + + start-stop-daemon --stop --oknodo $DAEMON_VERBOSITY \ + --exec $WPA_CLI_BIN --pidfile $WPA_CLI_PIDFILE + + if [ -f "$WPA_CLI_PIDFILE" ]; then + rm -f "$WPA_CLI_PIDFILE" + fi + + if [ -f "$WPA_CLI_TIMESTAMP" ]; then + rm -f "$WPA_CLI_TIMESTAMP" + fi + + if [ -L "$WPA_CLI_IFUPDOWN" ]; then + rm -f "$WPA_CLI_IFUPDOWN" + fi +} + +##################################################################### +## higher level wpa_cli wrapper for variable and set_network commands +# wpa_cli_do [set_network variable] +# +# $1 envorinment variable +# $2 data type of variable {raw|ascii} +# $3 wpa_cli variable, if $3 is set_network, shift and take +# set_network subvariable +# $4 wpa-* string as it would appear in interfaces file, enhances +# verbose messages +# +wpa_cli_do () { + if [ -z "$1" ]; then + return 0 + fi + + local WPACLISET_VALUE + local WPACLISET_VARIABLE + local WPACLISET_DESC + + case "$2" in + ascii) + # Double quote + WPACLISET_VALUE="\"$1\"" + ;; + raw|*) + # Provide raw value + WPACLISET_VALUE="$1" + ;; + esac + + case "$3" in + set_network) + if [ -z "$WPA_ID" ]; then + return 1 + fi + shift + WPACLISET_VARIABLE="set_network $WPA_ID $3" + ;; + *) + WPACLISET_VARIABLE="$3" + ;; + esac + + case "$4" in + *-psk|*-passphrase|*-passwd*|*-wep-key*) + WPACLISET_DESC="$4 *****" + ;; + *) + WPACLISET_DESC="$4 $WPACLISET_VALUE" + ;; + esac + + wpa_msg action "$WPACLISET_DESC" + + wpa_cli $WPACLISET_VARIABLE "$WPACLISET_VALUE" >$TO_NULL + + if [ "$?" -ne 0 ]; then + wpa_msg stderr "$WPACLISET_DESC failed!" + fi +} + +##################################################################### +## check value data type in plaintext or hex +# returns 0 if input consists of hexadecimal digits only, 1 otherwise +# +ishex () { + if [ -z "$1" ]; then + return 0 + fi + + case "$1" in + *[!0-9a-fA-F]*) + # plaintext + return 1 + ;; + *) + # hexadecimal + return 0 + ;; + esac +} + +##################################################################### +## sanity check and set psk|passphrase +# Warn about strange psk|passphrase values +# +# $1 psk or passphrase value +# +# If psk is surrounded by quotes strip them. +# +# If psk contains all hexadecimal characters and string length is 64: +# is 256bit hexadecimal +# else: +# is plaintext +# +# plaintext passphrases must be 8 - 63 characters in length +# 256-bit hexadecimal key must be 64 characters in length +# +wpa_key_check_and_set () { + if [ "$#" -ne 3 ]; then + return 0 + fi + + local KEY + local KEY_LEN + local KEY_TYPE + local ENC_TYPE + + case "$1" in + '"'*'"') + # Strip surrounding quotation marks + KEY=$(echo -n "$1" | sed 's/^"//;s/"$//') + ;; + *) + KEY="$1" + ;; + esac + + KEY_LEN="${#KEY}" + + case "$2" in + wep_key*) + ENC_TYPE="WEP" + ;; + psk) + ENC_TYPE="WPA" + ;; + *) + return 0 + ;; + esac + + if [ "$ENC_TYPE" = "WEP" ]; then + if ishex "$KEY"; then + case "$KEY_LEN" in + 10|26|32|58) + # 64/128/152/256-bit WEP + KEY_TYPE="raw" + ;; + *) + KEY_TYPE="ascii" + ;; + esac + else + KEY_TYPE="ascii" + fi + + if [ "$KEY_TYPE" = "ascii" ]; then + if [ "$KEY_LEN" -lt "5" ]; then + wpa_msg stderr "WARNING: plaintext or ascii WEP key has $KEY_LEN characters," + wpa_msg stderr "it must have at least 5 to be valid." + fi + fi + elif [ "$ENC_TYPE" = "WPA" ]; then + if ishex "$KEY"; then + case "$KEY_LEN" in + 64) + # 256-bit WPA + KEY_TYPE="raw" + ;; + *) + KEY_TYPE="ascii" + ;; + esac + else + KEY_TYPE="ascii" + fi + + if [ "$KEY_TYPE" = "ascii" ]; then + if [ "$KEY_LEN" -lt "8" ] || [ "$KEY_LEN" -gt "63" ]; then + wpa_msg stderr "WARNING: plaintext or ascii WPA key has $KEY_LEN characters," + wpa_msg stderr "it must have between 8 and 63 to be valid." + wpa_msg stderr "If the WPA key is a 256-bit hexadecimal key, it must have" + wpa_msg stderr "exactly 64 characters." + fi + fi + fi + + wpa_cli_do "$KEY" "$KEY_TYPE" set_network "$2" "$3" +} + +##################################################################### +## formulate a usable configuration from interfaces(5) wpa- lines +# A series of wpa_cli commands corresponding to environment variables +# created as a result of wpa- lines in an interfaces stanza. +# +# NB: no-act when roaming daemon is used (to avoid prematurely +# attaching to ctrl_interface socket) +# +conf_wpa_supplicant () { + if [ -n "$WPA_ACTION_SCRIPT" ]; then + return 0 + fi + + if [ "$IF_WPA_DRIVER" = "wired" ]; then + IF_WPA_AP_SCAN="0" + wpa_msg verbose "forcing ap_scan=0 (required for wired IEEE8021X auth)" + fi + + if [ -n "$IF_WPA_ESSID" ]; then + # #403316, be similar to wireless tools + IF_WPA_SSID="$IF_WPA_ESSID" + fi + + wpa_cli_do "$IF_WPA_AP_SCAN" raw \ + ap_scan wpa-ap-scan + + wpa_cli_do "$IF_WPA_PREAUTHENTICATE" raw \ + preauthenticate wpa-preauthenticate + + if [ -n "$IF_WPA_SSID" ] || [ "$IF_WPA_DRIVER" = "wired" ] || \ + [ -n "$IF_WPA_KEY_MGMT" ]; then + + case "$IF_WPA_SSID" in + '"'*'"') + IF_WPA_SSID=$(echo -n "$IF_WPA_SSID" | sed 's/^"//;s/"$//') + ;; + *) + ;; + esac + + WPA_ID=$(wpa_cli add_network) + + wpa_msg verbose "configuring network block -- $WPA_ID" + + wpa_cli_do "$IF_WPA_SSID" ascii \ + set_network ssid wpa-ssid + + wpa_cli_do "$IF_WPA_PRIORITY" raw \ + set_network priority wpa-priority + + wpa_cli_do "$IF_WPA_BSSID" raw \ + set_network bssid wpa-bssid + + if [ -s "$IF_WPA_PSK_FILE" ]; then + IF_WPA_PSK=$(cat "$IF_WPA_PSK_FILE") + fi + + # remain compat with wpa-passphrase-file + if [ -s "$IF_WPA_PASSPHRASE_FILE" ]; then + IF_WPA_PSK=$(cat "$IF_WPA_PASSPHRASE_FILE") + fi + + # remain compat with wpa-passphrase + if [ -n "$IF_WPA_PASSPHRASE" ]; then + IF_WPA_PSK="$IF_WPA_PASSPHRASE" + fi + + if [ -n "$IF_WPA_PSK" ]; then + wpa_key_check_and_set "$IF_WPA_PSK" \ + psk wpa-psk + fi + + wpa_cli_do "$IF_WPA_PAIRWISE" raw \ + set_network pairwise wpa-pairwise + + wpa_cli_do "$IF_WPA_GROUP" raw \ + set_network group wpa-group + + wpa_cli_do "$IF_WPA_MODE" raw \ + set_network mode wpa-mode + + wpa_cli_do "$IF_WPA_FREQUENCY" raw \ + set_network frequency wpa-frequency + + wpa_cli_do "$IF_WPA_SCAN_FREQ" raw \ + set_network scan_freq wpa-scan-freq + + wpa_cli_do "$IF_WPA_FREQ_LIST" raw \ + set_network freq_list wpa-freq-list + + wpa_cli_do "$IF_WPA_KEY_MGMT" raw \ + set_network key_mgmt wpa-key-mgmt + + wpa_cli_do "$IF_WPA_PROTO" raw \ + set_network proto wpa-proto + + wpa_cli_do "$IF_WPA_AUTH_ALG" raw \ + set_network auth_alg wpa-auth-alg + + wpa_cli_do "$IF_WPA_SCAN_SSID" raw \ + set_network scan_ssid wpa-scan-ssid + + wpa_cli_do "$IF_WPA_IDENTITY" ascii \ + set_network identity wpa-identity + + wpa_cli_do "$IF_WPA_ANONYMOUS_IDENTITY" ascii \ + set_network anonymous_identity wpa-anonymous-identity + + wpa_cli_do "$IF_WPA_EAP" raw \ + set_network eap wpa-eap + + wpa_cli_do "$IF_WPA_EAPPSK" raw \ + set_network eappsk wpa-eappsk + + wpa_cli_do "$IF_WPA_NAI" ascii \ + set_network nai wpa-nai + + wpa_cli_do "$IF_WPA_PASSWORD" ascii \ + set_network password wpa-password + + wpa_cli_do "$IF_WPA_CA_CERT" ascii \ + set_network ca_cert wpa-ca-cert + + wpa_cli_do "$IF_WPA_CA_PATH" ascii \ + set_network ca_path wpa-ca-path + + wpa_cli_do "$IF_WPA_CLIENT_CERT" ascii \ + set_network client_cert wpa-client-cert + + wpa_cli_do "$IF_WPA_PRIVATE_KEY" ascii \ + set_network private_key wpa-private-key + + wpa_cli_do "$IF_WPA_PRIVATE_KEY_PASSWD" ascii \ + set_network private_key_passwd wpa-private-key-passwd + + wpa_cli_do "$IF_WPA_DH_FILE" ascii \ + set_network dh_file wpa-dh-file + + wpa_cli_do "$IF_WPA_SUBJECT_MATCH" ascii \ + set_network subject_match wpa-subject-match + + wpa_cli_do "$IF_WPA_ALTSUBJECT_MATCH" ascii \ + set_network altsubject_match wpa-altsubject-match + + wpa_cli_do "$IF_WPA_CA_CERT2" ascii \ + set_network ca_cert2 wpa-ca-cert2 + + wpa_cli_do "$IF_WPA_CA_PATH2" ascii \ + set_network ca_path2 wpa-ca-path2 + + wpa_cli_do "$IF_WPA_CLIENT_CERT2" ascii \ + set_network client_cert2 wpa-client-cert2 + + wpa_cli_do "$IF_WPA_PRIVATE_KEY2" ascii \ + set_network private_key2 wpa-private-key2 + + wpa_cli_do "$IF_WPA_PRIVATE_KEY_PASSWD2" ascii \ + set_network private_key_passwd2 wpa-private-key-passwd2 + + wpa_cli_do "$IF_WPA_DH_FILE2" ascii \ + set_network dh_file2 wpa-dh-file2 + + wpa_cli_do "$IF_WPA_SUBJECT_MATCH2" ascii \ + set_network subject_match2 wpa-subject-match2 + + wpa_cli_do "$IF_WPA_ALTSUBJECT_MATCH2" ascii \ + set_network altsubject_match2 wpa-altsubject-match2 + + wpa_cli_do "$IF_WPA_EAP_METHODS" raw \ + set_network eap_methods wpa-eap-methods + + wpa_cli_do "$IF_WPA_PHASE1" ascii \ + set_network phase1 wpa-phase1 + + wpa_cli_do "$IF_WPA_PHASE2" ascii \ + set_network phase2 wpa-phase2 + + wpa_cli_do "$IF_WPA_PCSC" raw \ + set_network pcsc wpa-pcsc + + wpa_cli_do "$IF_WPA_PIN" ascii \ + set_network pin wpa-pin + + wpa_cli_do "$IF_WPA_ENGINE" raw \ + set_network engine wpa-engine + + wpa_cli_do "$IF_WPA_ENGINE_ID" ascii \ + set_network engine_id wpa-engine-id + + wpa_cli_do "$IF_WPA_KEY_ID" ascii \ + set_network key_id wpa-key-id + + wpa_cli_do "$IF_WPA_EAPOL_FLAGS" raw \ + set_network eapol_flags wpa-eapol-flags + + if [ -n "$IF_WPA_WEP_KEY0" ]; then + wpa_key_check_and_set "$IF_WPA_WEP_KEY0" \ + wep_key0 wpa-wep-key0 + fi + + if [ -n "$IF_WPA_WEP_KEY1" ]; then + wpa_key_check_and_set "$IF_WPA_WEP_KEY1" \ + wep_key1 wpa-wep-key1 + fi + + if [ -n "$IF_WPA_WEP_KEY2" ]; then + wpa_key_check_and_set "$IF_WPA_WEP_KEY2" \ + wep_key2 wpa-wep-key2 + fi + + if [ -n "$IF_WPA_WEP_KEY3" ]; then + wpa_key_check_and_set "$IF_WPA_WEP_KEY3" \ + wep_key3 wpa-wep-key3 + fi + + wpa_cli_do "$IF_WPA_WEP_TX_KEYIDX" raw \ + set_network wep_tx_keyidx wpa-wep-tx-keyidx + + wpa_cli_do "$IF_WPA_PROACTIVE_KEY_CACHING" raw \ + set_network proactive_key_caching wpa-proactive-key-caching + + wpa_cli_do "$IF_WPA_PAC_FILE" ascii \ + set_network pac_file wpa-pac-file + + wpa_cli_do "$IF_WPA_PEERKEY" raw \ + set_network peerkey wpa-peerkey + + wpa_cli_do "$IF_FRAGMENT_SIZE" raw \ + set_network fragment_size wpa-fragment-size + + wpa_cli_do "$IF_WPA_ID_STR" ascii \ + set_network id_str wpa-id-str + + wpa_cli_do "$WPA_ID" raw \ + enable_network "enabling network block" + fi +} + +##################################################################### +## Log wpa_cli environment variables +wpa_log_env () { + wpa_msg log "WPA_IFACE=$WPA_IFACE WPA_ACTION=$WPA_ACTION" + wpa_msg log "WPA_ID=$WPA_ID WPA_ID_STR=$WPA_ID_STR WPA_CTRL_DIR=$WPA_CTRL_DIR" +} + +##################################################################### +## hysteresis checking +# Networking tools such as dhcp clients used with ifupdown can +# synthesize artificial ACTION events, particuarly just after a +# DISCONNECTED/CONNECTED events are experienced in quick succession. +# This can lead to infinite event loops, and in extreme cases has the +# potential to cause system instability. +# +wpa_hysteresis_event () { + echo "$(date +%s)" > "$WPA_CLI_TIMESTAMP" 2>/dev/null +} + +wpa_hysteresis_check () { + if [ -f "$WPA_CLI_TIMESTAMP" ]; then + local TIME + local TIMESTAMP + local TIMEWAIT + TIME=$(date +%s) + # current time minus 4 second event buffer + TIMEWAIT=$(($TIME-4)) + # get time of last event + TIMESTAMP=$(cat $WPA_CLI_TIMESTAMP) + # compare values, allowing new action to be processed + # only if last action was more than 4 seconds ago + if [ "$TIMEWAIT" -le "$TIMESTAMP" ]; then + wpa_msg log "$WPA_ACTION event blocked by hysteresis check" + return 1 + fi + fi + + return 0 +} + +##################################################################### +## ifupdown locking functions +# A collection of rudimentary locking functions to lock ifup/ifdown +# actions. +# + +ifupdown_lock () { + ln -s lock "$WPA_CLI_IFUPDOWN" +} + +ifupdown_locked () { + [ -L "$WPA_CLI_IFUPDOWN" ] && return 0 + + return 1 +} + +ifupdown_unlock () { + rm -f "$WPA_CLI_IFUPDOWN" +} + +##################################################################### +## apply mapping logic and ifup logical interface +# Apply mapping logic via id_str or external mapping script, check +# state of IFACE with respect to ifupdown and ifup logical interaface +# +ifup () { + local INTERFACES_FILE + local IFSTATE_FILE + local IFUP_RETVAL + local WPA_LOGICAL_IFACE + + if [ -e /etc/network/interfaces ]; then + INTERFACES_FILE="/etc/network/interfaces" + else + wpa_msg log "/etc/network/interfaces does not exist, $WPA_IFACE will not be configured" + return 1 + fi + + if [ -e /etc/network/run/ifstate ]; then + # debian's ifupdown + IFSTATE_FILE="/etc/network/run/ifstate" + elif [ -e /var/run/network/ifstate ]; then + # ubuntu's + IFSTATE_FILE="/var/run/network/ifstate" + else + unset IFSTATE_FILE + fi + + if [ -z "$IF_WPA_MAPPING_SCRIPT_PRIORITY" ] && [ -n "$WPA_ID_STR" ]; then + WPA_LOGICAL_IFACE="$WPA_ID_STR" + fi + + if [ -z "$WPA_LOGICAL_IFACE" ] && [ -n "$IF_WPA_MAPPING_SCRIPT" ]; then + local WPA_MAP_STDIN + + WPA_MAP_STDIN=$(set | sed -n 's/^\(IF_WPA_MAP[0-9]*\)=.*/echo \$\1/p') + + if [ -n "$WPA_MAP_STDIN" ]; then + WPA_LOGICAL_IFACE=$(eval "$WPA_MAP_STDIN" | "$IF_WPA_MAPPING_SCRIPT" "$WPA_IFACE") + else + WPA_LOGICAL_IFACE=$("$IF_WPA_MAPPING_SCRIPT" "$WPA_IFACE") + fi + + if [ -n "$WPA_LOGICAL_IFACE" ]; then + wpa_msg log "mapping script result: $WPA_LOGICAL_IFACE" + else + wpa_msg log "mapping script failed." + fi + fi + + if [ -z "$WPA_LOGICAL_IFACE" ]; then + if [ -n "$IF_WPA_ROAM_DEFAULT_IFACE" ]; then + WPA_LOGICAL_IFACE="$IF_WPA_ROAM_DEFAULT_IFACE" + else + WPA_LOGICAL_IFACE="default" + fi + fi + + if [ -n "$WPA_LOGICAL_IFACE" ]; then + if egrep -q "^iface[[:space:]]+${WPA_LOGICAL_IFACE}[[:space:]]+inet" "$INTERFACES_FILE"; then + : # logical network is defined + else + wpa_msg log "network settings not defined for $WPA_LOGICAL_IFACE in $INTERFACES_FILE" + WPA_LOGICAL_IFACE="default" + fi + + wpa_msg log "ifup $WPA_IFACE=$WPA_LOGICAL_IFACE" + + ifupdown_lock + + if [ -n "$IFSTATE_FILE" ] && grep -q "^$WPA_IFACE=$WPA_IFACE" "$IFSTATE_FILE"; then + # Force settings over the unconfigured "master" IFACE + /sbin/ifup -v --force "$WPA_IFACE=$WPA_LOGICAL_IFACE" + else + /sbin/ifup -v "$WPA_IFACE=$WPA_LOGICAL_IFACE" + fi + IFUP_RETVAL="$?" + + ifupdown_unlock + fi + + wpa_msg log "creating sendsigs omission pidfile: $WPA_SUP_OMIT_PIDFILE" + cat "$WPA_SUP_PIDFILE" > "$WPA_SUP_OMIT_PIDFILE" + + return "$IFUP_RETVAL" +} + +##################################################################### +## ifdown IFACE +# Check IFACE state and ifdown as requested. +# +ifdown () { + wpa_msg log "ifdown $WPA_IFACE" + + ifupdown_lock + + /sbin/ifdown -v "$WPA_IFACE" + + ifupdown_unlock + + wpa_msg log "removing sendsigs omission pidfile: $WPA_SUP_OMIT_PIDFILE" + rm -f "$WPA_SUP_OMIT_PIDFILE" +} + +##################################################################### +## keep IFACE scanning +# After ifdown, the IFACE may be left "down", and inhibits +# wpa_supplicant's ability to continue roaming. +# +# NB: use iproute if present, flushing the IFACE first +# +if_post_down_up () { + if [ -x /bin/ip ]; then + ip addr flush dev "$WPA_IFACE" 2>/dev/null + ip link set "$WPA_IFACE" up + else + ifconfig "$WPA_IFACE" up + fi +} diff --git a/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/ifupdown.sh b/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/ifupdown.sh new file mode 100644 index 0000000..9dab925 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/ifupdown.sh @@ -0,0 +1,172 @@ +#!/bin/sh + +##################################################################### +## Purpose +# This file is executed by ifupdown in pre-up, post-up, pre-down and +# post-down phases of network interface configuration. It allows +# ifup(8), and ifdown(8) to manage wpa_supplicant(8) and wpa_cli(8) +# processes running in daemon mode. +# +# /etc/wpa_supplicant/functions.sh is sourced by this file. +# +# This file is provided by the wpasupplicant package. + +##################################################################### +# Copyright (C) 2006 - 2009 Debian/Ubuntu wpasupplicant Maintainers +# +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# On Debian GNU/Linux systems, the text of the GPL license, +# version 2, can be found in /usr/share/common-licenses/GPL-2. + +if [ -n "$IF_WPA_MAINT_DEBUG" ]; then + set -x +fi + +# quit if we're called for the loopback +if [ "$IFACE" = lo ]; then + exit 0 +fi + +# allow wpa_supplicant interface to be specified via wpa-iface +# useful for starting wpa_supplicant on one interface of a bridge +if [ -n "$IF_WPA_IFACE" ]; then + WPA_IFACE="$IF_WPA_IFACE" +else + WPA_IFACE="$IFACE" +fi + +# source functions +if [ -f /etc/wpa_supplicant/functions.sh ]; then + . /etc/wpa_supplicant/functions.sh +else + exit 0 +fi + +# quit if executables are not installed +if [ ! -x "$WPA_SUP_BIN" ] || [ ! -x "$WPA_CLI_BIN" ]; then + exit 0 +fi + +do_start () { + if test_wpa_cli; then + # if wpa_action is active for this IFACE, do nothing + ifupdown_locked && exit 0 + + # if the administrator is calling ifup, say something useful + if [ "$PHASE" = "pre-up" ]; then + wpa_msg stderr "wpa_action is managing ifup/ifdown state of $WPA_IFACE" + wpa_msg stderr "execute \`ifdown --force $WPA_IFACE' to stop wpa_action" + fi + exit 1 + elif ! set | grep -q "^IF_WPA"; then + # no wpa- option defined for IFACE, do nothing + exit 0 + fi + + # ensure stale ifupdown_lock marker is purged + ifupdown_unlock + + # preliminary sanity checks for roaming daemon + if [ -n "$IF_WPA_ROAM" ]; then + if [ "$METHOD" != "manual" ]; then + wpa_msg stderr "wpa-roam can only be used with the \"manual\" inet METHOD" + exit 1 + fi + if [ -n "$IF_WPA_MAPPING_SCRIPT" ]; then + if ! type "$IF_WPA_MAPPING_SCRIPT" >/dev/null; then + wpa_msg stderr "wpa-mapping-script \"$IF_WPA_MAPPING_SCRIPT\" is not valid" + exit 1 + fi + fi + if [ -n "$IF_WPA_MAPPING_SCRIPT_PRIORITY" ] && [ -z "$IF_WPA_MAPPING_SCRIPT" ]; then + wpa_msg stderr "\"wpa-mapping-script-priority 1\" is invalid without a wpa-mapping-script" + exit 1 + fi + IF_WPA_CONF="$IF_WPA_ROAM" + WPA_ACTION_SCRIPT="/usr/sbin/wpa_action" + fi + + # master function; determines if ifupdown.sh should do something or not + if [ -n "$IF_WPA_CONF" ] && [ "$IF_WPA_CONF" != "managed" ]; then + if [ ! -s "$IF_WPA_CONF" ]; then + wpa_msg stderr "cannot read contents of $IF_WPA_CONF" + exit 1 + fi + WPA_SUP_CONF_CTRL_DIR=$(sed -n -e 's/[[:space:]]*#.*//g' -e 's/[[:space:]]\+.*$//g' \ + -e 's/^ctrl_interface=\(DIR=\)\?\(.*\)/\2/p' "$IF_WPA_CONF") + if [ -n "$WPA_SUP_CONF_CTRL_DIR" ]; then + WPA_CTRL_DIR="$WPA_SUP_CONF_CTRL_DIR" + WPA_SUP_CONF="-c $IF_WPA_CONF" + else + # specify the default ctrl_interface since none was defined in + # the given IF_WPA_CONF + WPA_SUP_CONF="-c $IF_WPA_CONF -C $WPA_CTRL_DIR" + fi + else + # specify the default ctrl_interface + WPA_SUP_CONF="-C $WPA_CTRL_DIR" + fi +} + +do_stop () { + if test_wpa_cli; then + # if wpa_action is active for this IFACE and calling ifdown, + # do nothing + ifupdown_locked && exit 0 + elif test_wpa_supplicant; then + # wpa_supplicant process exists for this IFACE, but wpa_cli + # process does not. Allow stop mode to kill this process. + : + else + exit 0 + fi +} + +case "$MODE" in + start) + do_start + case "$PHASE" in + pre-up) + kill_wpa_supplicant + init_wpa_supplicant || exit 1 + conf_wpa_supplicant || { kill_wpa_supplicant; exit 1; } + ;; + post-up) + init_wpa_cli || { kill_wpa_supplicant; exit 1; } + ;; + esac + ;; + + stop) + do_stop + case "$PHASE" in + pre-down) + kill_wpa_cli + ;; + post-down) + kill_wpa_supplicant + ;; + *) + wpa_msg stderr "unknown phase: \"$PHASE\"" + exit 1 + ;; + esac + ;; + + *) + wpa_msg stderr "unknown mode: \"$MODE\"" + exit 1 + ;; +esac + +exit 0 diff --git a/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/wpa_action b/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/wpa_action new file mode 100644 index 0000000..7ef57ac --- /dev/null +++ b/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/wpa_action @@ -0,0 +1,81 @@ +#!/bin/sh + +# Copyright (C) 2006 - 2009 Debian/Ubuntu wpasupplicant Maintainers +# +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# On Debian GNU/Linux systems, the text of the GPL license, +# version 2, can be found in /usr/share/common-licenses/GPL-2. + +if [ -n "$IF_WPA_ROAM_MAINT_DEBUG" ]; then + set -x +fi + +if [ -z "$1" ] || [ -z "$2" ]; then + echo "Usage: $0 IFACE ACTION" + exit 1 +fi + +# network interface +WPA_IFACE="$1" +# [CONNECTED|DISCONNECTED|stop|reload|check] +WPA_ACTION="$2" + +if [ -f /etc/wpa_supplicant/functions.sh ]; then + . /etc/wpa_supplicant/functions.sh +else + exit 0 +fi + +case "$WPA_ACTION" in + "CONNECTED") + wpa_log_env + wpa_hysteresis_check || exit 1 + wpa_hysteresis_event + if ifup; then + wpa_cli status | wpa_msg log + else + wpa_cli status | wpa_msg log + wpa_cli reassociate + fi + ;; + + "DISCONNECTED") + wpa_log_env + wpa_hysteresis_check || exit 1 + ifdown + if_post_down_up + ;; + + "stop"|"down") + test_wpa_cli && kill_wpa_cli + ifdown + test_wpa_supplicant && kill_wpa_supplicant + ;; + + "restart"|"reload") + test_wpa_supplicant || exit 1 + reload_wpa_supplicant + ;; + + "check") + test_wpa_supplicant || exit 1 + test_wpa_cli || exit 1 + ;; + + *) + echo "Unknown action: \"$WPA_ACTION\"" + exit 1 + ;; +esac + +exit 0 diff --git a/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/wpa_action.8 b/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/wpa_action.8 new file mode 100644 index 0000000..e8f1b28 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant-0.7.3/wpa_action.8 @@ -0,0 +1,148 @@ +.TH WPA_ACTION "8" "26 May 2006" "" "" +.SH NAME +wpa_action \- wpa_cli action script +.SH SYNOPSIS +\fBwpa_action\fR \fIIFACE ACTION\fR +.SH "DESCRIPTION" +\fBwpa_action\fR is a shell script designed to control the \fBifupdown\fR +framework according to \fIACTION\fR events received from \fBwpa_supplicant\fR. +\fBwpa_cli\fR receives \fICONNECTED\fR and \fIDISCONNECTED\fR events from +\fBwpa_supplicant\fR via the crtl_iface socket and gives the \fIACTION\fR event +to the \fBwpa_action\fR script as an argument, along with the \fIIFACE\fR to be +acted upon. +.PP +\fBwpa_action\fR also receives an environment variable from \fBwpa_cli\fR, +\fIWPA_ID_STR\fR, containing an alphanumeric identification string for the +\fICURRENT\fR network block. \fIWPA_ID_STR\fR is provided by the 'id_str' +network block option of \fBwpa_supplicant.conf\fR, and provides a means to map +the \fIACTION\fR to a \fILOGICAL\fR interface configured in the \fBinterfaces\fR +file. +.PP +If either the ifupdown \fBinterfaces\fR or \fIifstate\fR file cannot be found, +\fBwpa_action\fR will exit silently (status 0). \fBwpa_action\fR will search +the following locations for their existance: +.nf + /etc/network/run/ifstate + /var/run/network/ifstate + /etc/network/interfaces +.fi +.PP +.SH IFACE +Network interface to be acted upon, for example 'eth1' or 'wlan0'. +.SH ACTION +An \fIACTION\fR to be performed on the \fIIFACE\fR. +.TP +\fBCONNECTED\fR +\fBwpa_supplicant\fR has completed authentication. +\fBifup\fR \fIIFACE=WPA_ID_STR\fR is invoked and the action is logged to +syslog. Network settings for the \fILOGICAL\fR interface \fIWPA_ID_STR\fR +are applied. +.TP +\fBDISCONNECTED\fR +\fBwpa_supplicant\fR has detected disconnection. +\fBifdown\fR \fIIFACE=WPA_ID_STR\fR is invoked and the action is logged to +syslog. Network settings for the \fILOGICAL\fR interface \fIWPA_ID_STR\fR +are undone. +.TP +\fBstop\fR +The 'stop' \fIACTION\fR is a called manually by the user, to stop the +\fBwpa_cli\fR daemon, invoke \fBifdown\fR \fIIFACE\fR (if the \fIIFACE\fR is +present in the \fIifstate\fR file) and stop the \fBwpa_supplicant\fR daemon. +.TP +\fBreload\fR +The 'reload' \fIACTION\fR can be used to reload the \fBwpa_supplicant\fR +configuration file specified by \fIwpa-roam\fR . 'restart' is a synonym +for 'reload' and can be used equally. The action is logged to +\fI/var/log/wpa_action.log\fR. +.SH ENVIRONMENT +An alphanumeric identification string provided by the 'id_str' network block +option of \fBwpa_supplicant.conf\fR is exported to \fBwpa_action\fR as an +environment variable, \fIWPA_ID_STR\fR. When 'id_str' is not configured for the +\fICURRENT\fR network block, 'default' is substituted for the absent +\fIWPA_ID_STR\fR environment variable. +.PP +A unique network identifier, \fIWPA_ID\fR, is exported to \fBwpa_action\fR. It +is the number assigned to the \fICURRENT\fR \fBwpa_supplicant\fR network block +(network_id). +.SH USAGE +The only reasons for \fBwpa_action\fR to be explicitly executed by the user is +to stop \fBwpa_cli\fR from controlling \fBifupdown\fR or reload the +\fIwpa_supplicant.conf\fR file after editing. +.PP +.RS +\fBwpa_action\fR \fIeth1 stop\fR +.RE +.PP +Otherwise, \fBwpa_action\fR is given as an argument to a \fBwpa_cli\fR +daemon. +.PP +.RS +\fBwpa_cli\fR \fI-i eth1 -a /sbin/wpa_action -B\fR +.RE +.PP +This can be done by using the \fIwpa-roam\fR option in the \fBinterfaces\fR +file. \fIwpa-roam\fR takes one argument, a user provided +\fBwpa_supplicant.conf\fR file. +.PP +The inet \fIMETHOD\fR must be 'manual' for this interface, as it will +be configured according to \fBwpa_cli\fR action events. Also supply a 'default' +\fBinterfaces\fR stanza using the dhcp inet \fIMETHOD\fR so that networks +without an 'id_str' option can fallback to attempting to receive an ip via +dhcp. If one or more networks requires additional network configuration, +provide an unique 'id_str' for each network, and an \fBinterfaces\fR stanza +using the 'id_str' value as a \fILOGICAL\fR interface. The following interfaces +file is configured to use dhcp for any network without an 'id_str', a static ip +for the network with an 'id_str' of 'home_static' and dhcp plus an additional +post-up command for the network with an 'id_str' of 'uni'. +.PP +An example wpa_supplicant.conf configured to roam between 3 different networks: +.PP +.RS +.nf +network={ + ssid="foo" + id_str="uni" + key_mgmt=NONE +} + +network={ + ssid="bar" + id_str="home_static" + psk=123456789... +} + +network={ + ssid="" + key_mgmt=NONE +} +.fi +.RE +.PP +The corresponding \fBinterfaces\fR file would contain \fILOGICAL\fR interfaces, +that correlate to each unique 'id_str' provided by the configuration file: +.PP +.RS +.nf +iface eth1 inet manual + wpa-driver wext + wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf + +iface default inet dhcp + +iface uni inet dhcp + +iface home_static inet static + address 192.168.0.20 + netmask 255.255.255.0 + network 192.168.0.0 + broadcast 192.168.0.255 + gateway 192.168.0.1 +.fi +.RE +.PP +.SH SEE ALSO +\fBwpa_cli(8)\fR, \fBwpa_supplicant(8)\fR, \fBwpa_supplicant.conf(5)\fR, +\fBifup(8)\fR, \fBinterfaces(5)\fR +.SH AUTHOR +This manual page was written by Kel Modderman for +the Debian GNU system (but may be used by others). diff --git a/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant_0.7.3.bbappend b/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant_0.7.3.bbappend new file mode 100644 index 0000000..8ad898b --- /dev/null +++ b/meta-openvuplus/recipes-wlan/wpa-supplicant/wpa-supplicant_0.7.3.bbappend @@ -0,0 +1,40 @@ +DEPENDS += "openssl" +PR .= "-vuplus0" + +SRC_URI += " \ + file://action_wpa.sh \ + file://functions.sh \ + file://ifupdown.sh \ + file://wpa_action \ + file://wpa_action.8 \ +" + +do_configure_append() { + sed -e '/^CONFIG_TLS = gnutls/d' -i .config + echo "CONFIG_DEBUG_SYSLOG=y" >> .config +} +do_install_append() { + rm -rf ${D}${sysconfdir}/network/if-*.d + + install -d ${D}${sysconfdir}/wpa_supplicant + install -m 755 ${WORKDIR}/action_wpa.sh ${D}${sysconfdir}/wpa_supplicant + install -m 755 ${WORKDIR}/functions.sh ${D}${sysconfdir}/wpa_supplicant + install -m 755 ${WORKDIR}/ifupdown.sh ${D}${sysconfdir}/wpa_supplicant + + install -d ${D}${sbindir} + install -m 755 ${WORKDIR}/wpa_action ${D}${sbindir} + + install -d ${D}${mandir}/man8 + install -m 755 ${WORKDIR}/wpa_action.8 ${D}${mandir}/man8 + + install -d ${D}${sysconfdir}/network/if-down.d + install -d ${D}${sysconfdir}/network/if-post-down.d + install -d ${D}${sysconfdir}/network/if-pre-up.d + install -d ${D}${sysconfdir}/network/if-up.d + ln -s ../../wpa_supplicant/ifupdown.sh ${D}${sysconfdir}/network/if-down.d/${PN} + ln -s ../../wpa_supplicant/ifupdown.sh ${D}${sysconfdir}/network/if-post-down.d/${PN} + ln -s ../../wpa_supplicant/ifupdown.sh ${D}${sysconfdir}/network/if-pre-up.d/${PN} + ln -s ../../wpa_supplicant/ifupdown.sh ${D}${sysconfdir}/network/if-up.d/${PN} +} + +FILESEXTRAPATHS_prepend := "${THISDIR}/${P}:" diff --git a/meta-openvuplus/recipes-wlan/zd1211/zd1211-firmware_1.4.bb b/meta-openvuplus/recipes-wlan/zd1211/zd1211-firmware_1.4.bb new file mode 100644 index 0000000..2f785f0 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/zd1211/zd1211-firmware_1.4.bb @@ -0,0 +1,25 @@ +SUMMARY = "Firmware images for the zd1211rw wireless driver" +SECTION = "kernel" +HOMEPAGE = "http://zd1211.wiki.sourceforge.net/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a" +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2" +SRC_URI[md5sum] = "19f28781d76569af8551c9d11294c870" +SRC_URI[sha256sum] = "866308f6f59f7075f075d4959dff2ede47735c751251fecd1496df1ba4d338e1" + +S = "${WORKDIR}/${BPN}" + +inherit allarch + +do_compile() { + : +} + +do_install() { + install -d ${D}/lib/firmware/zd1211/ + install -m 0644 zd1211* ${D}/lib/firmware/zd1211/ +} + +FILES_${PN} += "/lib/firmware/*" diff --git a/meta-openvuplus/recipes-wlan/zd1211/zd1211b/cross_compile.patch b/meta-openvuplus/recipes-wlan/zd1211/zd1211b/cross_compile.patch new file mode 100644 index 0000000..cb6a003 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/zd1211/zd1211b/cross_compile.patch @@ -0,0 +1,41 @@ +Index: ZD1211LnxDrv_2_22_0_0/Makefile +=================================================================== +--- ZD1211LnxDrv_2_22_0_0.orig/Makefile 2010-12-13 15:10:36.000000000 +0000 ++++ ZD1211LnxDrv_2_22_0_0/Makefile 2010-12-13 15:13:30.000000000 +0000 +@@ -5,10 +5,10 @@ + # + + HOST= +-CC=$(HOST)gcc +-LD=$(HOST)ld +-KERN_VER=$(shell uname -r | cut -b1-3;) +-KDIR := /lib/modules/$(shell uname -r)/build ++CC?=$(HOST)gcc ++LD?=$(HOST)ld ++KERN_VER ?= $(shell uname -r | cut -b1-3;) ++KDIR ?= /lib/modules/$(shell uname -r)/build + PWD := $(shell pwd) + + SUBDIRS=. +@@ -17,10 +17,10 @@ + + ifeq ($(KERN_VER), 2.6) + KERN_26=y +- KERNEL_SOURCE=/usr/src/linux-2.6.9 ++ KERNEL_SOURCE?=/usr/src/linux-2.6.9 + else + KERN_24=y +- KERNEL_SOURCE=/usr/src/linux-2.4 ++ KERNEL_SOURCE?=/usr/src/linux-2.4 + endif + + SRC_DIR=src +@@ -28,7 +28,7 @@ + + + KERNRELEASE := $(shell uname -r;) +-MODPATH := /lib/modules/$(KERNRELEASE) ++MODPATH ?= /lib/modules/$(KERNRELEASE) + + + diff --git a/meta-openvuplus/recipes-wlan/zd1211/zd1211b/zdiface.patch b/meta-openvuplus/recipes-wlan/zd1211/zd1211b/zdiface.patch new file mode 100644 index 0000000..da51ae7 --- /dev/null +++ b/meta-openvuplus/recipes-wlan/zd1211/zd1211b/zdiface.patch @@ -0,0 +1,12 @@ +diff -Naur org/src/zdusb.c patched/src/zdusb.c +--- org/src/zdusb.c 2007-11-06 13:06:36.000000000 +0100 ++++ patched/src/zdusb.c 2008-08-19 12:44:48.000000000 +0200 +@@ -371,6 +371,8 @@ + g_dev = net; //save this for CBs use + //macp = net->priv; //kernel 2.4 + net->priv = macp; //kernel 2.6 ++ /* ath_desc: use /dev/wlanX as device node */ ++ strcpy(net->name, "wlan%d"); + macp->device = net; + macp->usb = dev; + SET_MODULE_OWNER(net); diff --git a/meta-openvuplus/recipes-wlan/zd1211/zd1211b_2.22.0.0.bb b/meta-openvuplus/recipes-wlan/zd1211/zd1211b_2.22.0.0.bb new file mode 100644 index 0000000..ad7effa --- /dev/null +++ b/meta-openvuplus/recipes-wlan/zd1211/zd1211b_2.22.0.0.bb @@ -0,0 +1,32 @@ +SUMMARY = "Driver for zd1211b family of wireless USB Dongles" +HOMEPAGE = "http://zd1211.ath.cx/" +SECTION = "kernel/modules" +LICENSE = "MPL-1.1 | GPLv2" +LIC_FILES_CHKSUM = "file://src/zd1211.c;endline=31;md5=76cb7cb1283c3b6e20de40280a74f87f" +RDEPENDS = "wireless-tools" + +inherit module + +PR = "r3" + +SRC_URI = " \ + http://www.reactivated.net/software/zd1211-vendor/releases/ZD1211LnxDrv_2_22_0_0.tar.gz \ + file://cross_compile.patch \ + file://zdiface.patch \ +" + +SRC_URI[md5sum] = "0ac1145f1f30d883694b4a1317f142c4" +SRC_URI[sha256sum] = "262f44f0d1274d2baf6548e53df96c6664b076f39e3aaeeb022bbd5caccbe3e3" + +S = "${WORKDIR}/ZD1211LnxDrv_2_22_0_0" + +do_compile() { + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS + oe_runmake KERN_VER=2.6 KDIR=${STAGING_KERNEL_DIR} KERNEL_SOURCE=${STAGING_KERNEL_DIR} \ + MODPATH=${D}${base_libdir}/modules/${KERNEL_VERSION} ZD1211REV_B=1 +} + +do_install() { + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net + install -m 0644 ${S}/zd1211*${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net +} diff --git a/meta-openvuplus/smartmontools/smartmontools.inc b/meta-openvuplus/smartmontools/smartmontools.inc deleted file mode 100644 index c1ded3a..0000000 --- a/meta-openvuplus/smartmontools/smartmontools.inc +++ /dev/null @@ -1,10 +0,0 @@ -SECTION = "console/utils" -SUMMARY = "Control and monitor storage systems using S.M.A.R.T." -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -INC_PR = "r1" - -SRC_URI = "${SOURCEFORGE_MIRROR}/smartmontools/smartmontools-${PV}.tar.gz" -S = "${WORKDIR}/smartmontools-${PV}" - -inherit autotools diff --git a/meta-openvuplus/smartmontools/smartmontools_5.42.bb b/meta-openvuplus/smartmontools/smartmontools_5.42.bb deleted file mode 100644 index 98ebb37..0000000 --- a/meta-openvuplus/smartmontools/smartmontools_5.42.bb +++ /dev/null @@ -1,6 +0,0 @@ -PR = "${INC_PR}.0" - -SRC_URI[md5sum] = "4460bf9a79a1252ff5c00ba52cf76b2a" -SRC_URI[sha256sum] = "b664d11e814e114ce3a32a4fa918c9e649c684e2897c007b2a8b92574decc374" - -require smartmontools.inc