Makefile 39 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196
  1. #
  2. # Copyright (C) 2007-2010 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. include $(INCLUDE_DIR)/kernel.mk
  9. PKG_NAME:=mac80211
  10. PKG_VERSION:=2011-01-24
  11. PKG_RELEASE:=1
  12. PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
  13. PKG_MD5SUM:=c91b57972276b26824d4b18e927a9e5f
  14. PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
  15. PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
  16. PKG_BUILD_PARALLEL:=1
  17. PKG_CONFIG_DEPENDS:= \
  18. CONFIG_PACKAGE_kmod-mac80211 \
  19. CONFIG_PACKAGE_MAC80211_DEBUGFS \
  20. CONFIG_PACKAGE_ATH_DEBUG \
  21. CONFIG_ATH_USER_REGD \
  22. CARL9170_FW_VERSION:=1.9.2
  23. include $(INCLUDE_DIR)/package.mk
  24. WMENU:=Wireless Drivers
  25. define KernelPackage/mac80211/Default
  26. SUBMENU:=$(WMENU)
  27. URL:=http://linuxwireless.org/
  28. MAINTAINER:=Felix Fietkau <[email protected]>
  29. DEPENDS:=@(!(TARGET_avr32||TARGET_ep93xx||TARGET_ps3||TARGET_pxcab)||BROKEN)
  30. endef
  31. define KernelPackage/cfg80211
  32. $(call KernelPackage/mac80211/Default)
  33. TITLE:=cfg80211 - wireless configuration API
  34. DEPENDS+= +wireless-tools +iw +crda
  35. ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.33)),1)
  36. FILES:= \
  37. $(PKG_BUILD_DIR)/compat/compat.ko \
  38. $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
  39. AUTOLOAD:=$(call AutoLoad,20,compat cfg80211)
  40. else
  41. FILES:= \
  42. $(PKG_BUILD_DIR)/compat/compat.ko \
  43. $(PKG_BUILD_DIR)/compat/compat_firmware_class.ko \
  44. $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
  45. AUTOLOAD:=$(call AutoLoad,20,compat compat_firmware_class cfg80211)
  46. endif
  47. endef
  48. define KernelPackage/cfg80211/description
  49. cfg80211 is the Linux wireless LAN (802.11) configuration API.
  50. endef
  51. define KernelPackage/mac80211
  52. $(call KernelPackage/mac80211/Default)
  53. TITLE:=Linux 802.11 Wireless Networking Stack
  54. DEPENDS+= +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-cfg80211
  55. FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
  56. AUTOLOAD:=$(call AutoLoad,21,mac80211)
  57. MENU:=1
  58. endef
  59. define KernelPackage/mac80211/config
  60. menu "Configuration"
  61. depends on PACKAGE_kmod-mac80211
  62. config PACKAGE_MAC80211_DEBUGFS
  63. bool "Export mac80211 internals in DebugFS"
  64. default y
  65. help
  66. Select this to see extensive information about
  67. the internal state of mac80211 in debugfs.
  68. Say N unless you know you need this.
  69. endmenu
  70. endef
  71. define KernelPackage/mac80211/description
  72. Generic IEEE 802.11 Networking Stack (mac80211)
  73. endef
  74. # Prism54 drivers
  75. P54PCIFW:=2.13.12.0.arm
  76. P54USBFW:=2.13.24.0.lm87.arm
  77. P54SPIFW:=2.13.0.0.a.13.14.arm
  78. CARL9170_FW:=carl9170-1.fw
  79. define Download/p54usb
  80. FILE:=$(P54USBFW)
  81. URL:=http://daemonizer.de/prism54/prism54-fw/fw-usb
  82. MD5SUM:=8e8ab005a4f8f0123bcdc51bc25b47f6
  83. endef
  84. $(eval $(call Download,p54usb))
  85. define Download/p54pci
  86. FILE:=$(P54PCIFW)
  87. URL:=http://daemonizer.de/prism54/prism54-fw/fw-softmac
  88. MD5SUM:=ff7536af2092b1c4b21315bd103ef4c4
  89. endef
  90. $(eval $(call Download,p54pci))
  91. define Download/p54spi
  92. FILE:=$(P54SPIFW)
  93. URL:=http://daemonizer.de/prism54/prism54-fw/stlc4560
  94. MD5SUM:=42661f8ecbadd88012807493f596081d
  95. endef
  96. $(eval $(call Download,p54spi))
  97. define Download/carl9170
  98. FILE:=$(CARL9170_FW)-$(CARL9170_FW_VERSION)
  99. URL:=http://downloads.openwrt.org/sources/
  100. MD5SUM:=9e33ac39dcd610aa1ad80bbf4f1abccf
  101. endef
  102. $(eval $(call Download,carl9170))
  103. define KernelPackage/p54/Default
  104. $(call KernelPackage/mac80211/Default)
  105. TITLE:=Prism54 Drivers
  106. endef
  107. define KernelPackage/p54/description
  108. Kernel module for Prism54 chipsets (mac80211)
  109. endef
  110. define KernelPackage/p54-common
  111. $(call KernelPackage/p54/Default)
  112. DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT||@TARGET_omap24xx +kmod-mac80211 +kmod-crc-ccitt
  113. TITLE+= (COMMON)
  114. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54common.ko
  115. AUTOLOAD:=$(call AutoLoad,30,p54common)
  116. endef
  117. define KernelPackage/p54-pci
  118. $(call KernelPackage/p54/Default)
  119. TITLE+= (PCI)
  120. DEPENDS+= @PCI_SUPPORT +kmod-p54-common
  121. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54pci.ko
  122. AUTOLOAD:=$(call AutoLoad,31,p54pci)
  123. endef
  124. define KernelPackage/p54-usb
  125. $(call KernelPackage/p54/Default)
  126. TITLE+= (USB)
  127. DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common
  128. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54usb.ko
  129. AUTOLOAD:=$(call AutoLoad,31,p54usb)
  130. endef
  131. define KernelPackage/p54-spi
  132. $(call KernelPackage/p54/Default)
  133. TITLE+= (SPI)
  134. DEPENDS+= @TARGET_omap24xx +kmod-p54-common
  135. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54spi.ko
  136. AUTOLOAD:=$(call AutoLoad,31,p54spi)
  137. endef
  138. # Ralink rt2x00 drivers
  139. RT61FW:=RT61_Firmware_V1.2.zip
  140. RT71FW:=RT71W_Firmware_V1.8.zip
  141. RT2860FW:=RT2860_Firmware_V11.zip
  142. RT2870FW:=RT2870_Firmware_V8.zip
  143. define Download/rt61
  144. FILE:=$(RT61FW)
  145. URL:=http://www.ralinktech.com.tw/data/
  146. MD5SUM:=d4c690c93b470bc9a681297c2adc6281
  147. endef
  148. $(eval $(call Download,rt61))
  149. define Download/rt71w
  150. FILE:=$(RT71FW)
  151. URL:=http://www.ralinktech.com.tw/data/
  152. MD5SUM:=1e7a5dc574e0268574fcda3fd5cf52f7
  153. endef
  154. $(eval $(call Download,rt71w))
  155. define Download/rt2860
  156. FILE:=$(RT2860FW)
  157. URL:=http://www.ralinktech.com.tw/data/drivers
  158. MD5SUM:=440a81756a52c53528f16faa41c40124
  159. endef
  160. $(eval $(call Download,rt2860))
  161. define Download/rt2870
  162. FILE:=$(RT2870FW)
  163. URL:=http://www.ralinktech.com.tw/data/drivers
  164. MD5SUM:=a7aae1d8cfd68e4d86a73000df0b6584
  165. endef
  166. $(eval $(call Download,rt2870))
  167. AR9170FW:=ar9170.fw
  168. define Download/ar9170
  169. FILE:=$(AR9170FW)
  170. URL:=http://www.kernel.org/pub/linux/kernel/people/mcgrof/firmware/ar9170
  171. MD5SUM:=34feec4ec0eae3bb92c7c1ea2dfb4530
  172. endef
  173. $(eval $(call Download,ar9170))
  174. NEED_RT2X00_LIB_CRYPTO:=y
  175. NEED_RT2X00_LIB_FIRMWARE:=y
  176. NEED_RT2X00_LIB_HT:=y
  177. NEED_RT2X00_LIB_LEDS:=y
  178. define KernelPackage/rt2x00/Default
  179. $(call KernelPackage/mac80211/Default)
  180. TITLE:=Ralink Drivers for RT2x00 cards
  181. endef
  182. define KernelPackage/rt2x00-lib
  183. $(call KernelPackage/rt2x00/Default)
  184. DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-mac80211 +kmod-crc-itu-t
  185. TITLE+= (LIB)
  186. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00lib.ko
  187. AUTOLOAD:=$(call AutoLoad,25,rt2x00lib)
  188. MENU:=1
  189. endef
  190. define KernelPackage/rt2x00-lib/config
  191. menu "Configuration"
  192. depends PACKAGE_kmod-rt2x00-lib
  193. config PACKAGE_RT2X00_LIB_DEBUGFS
  194. bool "Enable rt2x00 debugfs support"
  195. depends PACKAGE_MAC80211_DEBUGFS
  196. help
  197. Enable creation of debugfs files for the rt2x00 drivers.
  198. These debugfs files support both reading and writing of the
  199. most important register types of the rt2x00 hardware.
  200. config PACKAGE_RT2X00_DEBUG
  201. bool "Enable rt2x00 debug output"
  202. help
  203. Enable debugging output for all rt2x00 modules
  204. endmenu
  205. endef
  206. define KernelPackage/rt2x00-pci
  207. $(call KernelPackage/rt2x00/Default)
  208. DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-eeprom-93cx6
  209. TITLE+= (PCI)
  210. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00pci.ko
  211. AUTOLOAD:=$(call AutoLoad,26,rt2x00pci)
  212. endef
  213. define KernelPackage/rt2x00-usb
  214. $(call KernelPackage/rt2x00/Default)
  215. DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib +kmod-usb-core
  216. TITLE+= (USB)
  217. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00usb.ko
  218. AUTOLOAD:=$(call AutoLoad,26,rt2x00usb)
  219. endef
  220. define KernelPackage/rt2x00-soc
  221. $(call KernelPackage/rt2x00/Default)
  222. DEPENDS+= @TARGET_ramips +kmod-rt2x00-lib
  223. TITLE+= (SoC)
  224. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00soc.ko
  225. AUTOLOAD:=$(call AutoLoad,26,rt2x00soc)
  226. endef
  227. define KernelPackage/rt2800-lib
  228. $(call KernelPackage/rt2x00/Default)
  229. DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +USB_SUPPORT:kmod-rt2x00-usb +TARGET_ramips:kmod-rt2x00-soc
  230. TITLE+= (rt2800 LIB)
  231. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800lib.ko
  232. AUTOLOAD:=$(call AutoLoad,27,rt2800lib)
  233. endef
  234. define KernelPackage/rt2400-pci
  235. $(call KernelPackage/rt2x00/Default)
  236. DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
  237. TITLE+= (RT2400 PCI)
  238. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2400pci.ko
  239. AUTOLOAD:=$(call AutoLoad,27,rt2400pci)
  240. endef
  241. define KernelPackage/rt2500-pci
  242. $(call KernelPackage/rt2x00/Default)
  243. DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
  244. TITLE+= (RT2500 PCI)
  245. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500pci.ko
  246. AUTOLOAD:=$(call AutoLoad,27,rt2500pci)
  247. endef
  248. define KernelPackage/rt2500-usb
  249. $(call KernelPackage/rt2x00/Default)
  250. DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
  251. TITLE+= (RT2500 USB)
  252. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500usb.ko
  253. AUTOLOAD:=$(call AutoLoad,27,rt2500usb)
  254. endef
  255. define KernelPackage/rt61-pci
  256. $(call KernelPackage/rt2x00/Default)
  257. DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
  258. TITLE+= (RT2x61 PCI)
  259. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt61pci.ko
  260. AUTOLOAD:=$(call AutoLoad,27,rt61pci)
  261. endef
  262. define KernelPackage/rt73-usb
  263. $(call KernelPackage/rt2x00/Default)
  264. DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
  265. TITLE+= (RT73 USB)
  266. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt73usb.ko
  267. AUTOLOAD:=$(call AutoLoad,27,rt73usb)
  268. endef
  269. define KernelPackage/rt2800-pci
  270. $(call KernelPackage/rt2x00/Default)
  271. DEPENDS+= +kmod-rt2x00-pci +kmod-rt2800-lib +kmod-crc-ccitt +TARGET_ramips:kmod-rt2x00-soc
  272. TITLE+= (RT2860 PCI)
  273. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800pci.ko
  274. AUTOLOAD:=$(call AutoLoad,28,rt2800pci)
  275. endef
  276. define KernelPackage/rt2800-usb
  277. $(call KernelPackage/rt2x00/Default)
  278. DEPENDS+= +kmod-rt2x00-usb +kmod-rt2800-lib +kmod-crc-ccitt
  279. TITLE+= (RT2870 USB)
  280. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800usb.ko
  281. AUTOLOAD:=$(call AutoLoad,28,rt2800usb)
  282. endef
  283. define KernelPackage/rtl818x/Default
  284. $(call KernelPackage/mac80211/Default)
  285. TITLE:=Realtek Drivers for RTL818x devices
  286. URL:=http://wireless.kernel.org/en/users/Drivers/rtl8187
  287. DEPENDS+= +kmod-eeprom-93cx6 +kmod-mac80211
  288. endef
  289. define KernelPackage/rtl8180
  290. $(call KernelPackage/rtl818x/Default)
  291. DEPENDS+= @PCI_SUPPORT
  292. TITLE+= (RTL8180 PCI)
  293. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8180/rtl8180.ko
  294. AUTOLOAD:=$(call AutoLoad,27,rtl8180)
  295. endef
  296. define KernelPackage/rtl8187
  297. $(call KernelPackage/rtl818x/Default)
  298. DEPENDS+= @USB_SUPPORT
  299. TITLE+= (RTL8187 USB)
  300. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko
  301. AUTOLOAD:=$(call AutoLoad,27,rtl8187)
  302. endef
  303. ZD1211FW_NAME:=zd1211-firmware
  304. ZD1211FW_VERSION:=1.4
  305. define Download/zd1211rw
  306. FILE:=$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
  307. URL:=@SF/zd1211/
  308. MD5SUM:=19f28781d76569af8551c9d11294c870
  309. endef
  310. $(eval $(call Download,zd1211rw))
  311. define KernelPackage/zd1211rw
  312. $(call KernelPackage/mac80211/Default)
  313. TITLE:=Zydas ZD1211 support
  314. DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
  315. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zd1211rw/zd1211rw.ko
  316. AUTOLOAD:=$(call AutoLoad,60,zd1211rw)
  317. endef
  318. define KernelPackage/ath/config
  319. menu "Configuration"
  320. depends on PACKAGE_kmod-ath
  321. config ATH_USER_REGD
  322. bool "Force Atheros drivers to respect the user's regdomain settings"
  323. help
  324. Atheros' idea of regulatory handling is that the EEPROM of the card defines
  325. the regulatory limits and the user is only allowed to restrict the settings
  326. even further, even if the country allows frequencies or power levels that
  327. are forbidden by the EEPROM settings.
  328. Select this option if you want the driver to respect the user's decision about
  329. regulatory settings.
  330. config PACKAGE_ATH_DEBUG
  331. bool "Atheros wireless debugging"
  332. help
  333. Say Y, if you want to debug atheros wireless drivers.
  334. Right now only ath9k makes use of this.
  335. endmenu
  336. endef
  337. define KernelPackage/ath
  338. $(call KernelPackage/mac80211/Default)
  339. TITLE:=Atheros common driver part
  340. DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT +kmod-mac80211
  341. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.ko
  342. AUTOLOAD:=$(call AutoLoad,26,ath)
  343. MENU:=1
  344. endef
  345. define KernelPackage/ath/description
  346. This module contains some common parts needed by Atheros Wireless drivers.
  347. endef
  348. define KernelPackage/ath5k
  349. $(call KernelPackage/mac80211/Default)
  350. TITLE:=Atheros 5xxx wireless cards support
  351. URL:=http://linuxwireless.org/en/users/Drivers/ath5k
  352. DEPENDS+= @PCI_SUPPORT||@TARGET_atheros +kmod-ath
  353. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath5k/ath5k.ko
  354. AUTOLOAD:=$(call AutoLoad,27,ath5k)
  355. endef
  356. define KernelPackage/ath5k/description
  357. This module adds support for wireless adapters based on
  358. Atheros 5xxx chipset.
  359. endef
  360. define KernelPackage/ath9k
  361. $(call KernelPackage/mac80211/Default)
  362. TITLE:=Atheros 802.11n wireless cards support
  363. URL:=http://linuxwireless.org/en/users/Drivers/ath9k
  364. DEPENDS+= @PCI_SUPPORT +kmod-ath
  365. FILES:= \
  366. $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_common.ko \
  367. $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_hw.ko \
  368. $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k.ko
  369. AUTOLOAD:=$(call AutoLoad,27,ath9k_hw ath9k_common ath9k)
  370. endef
  371. define KernelPackage/ath9k/description
  372. This module adds support for wireless adapters based on
  373. Atheros IEEE 802.11n AR5008 and AR9001 family of chipsets.
  374. endef
  375. define KernelPackage/carl9170
  376. $(call KernelPackage/mac80211/Default)
  377. TITLE:=Driver for Atheros AR9170 USB sticks
  378. DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core
  379. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170/carl9170.ko
  380. AUTOLOAD:=$(call AutoLoad,60,carl9170)
  381. endef
  382. define KernelPackage/carl9170/install
  383. $(INSTALL_DIR) $(1)/lib/firmware
  384. $(INSTALL_DATA) $(DL_DIR)/$(CARL9170_FW)-$(CARL9170_FW_VERSION) $(1)/lib/firmware/$(CARL9170_FW)
  385. endef
  386. USB8388FW_NAME:=usb8388
  387. USB8388FW_VERSION:=5.110.22.p23
  388. define Download/usb8388
  389. URL:=http://dev.laptop.org/pub/firmware/libertas/
  390. FILE:=$(USB8388FW_NAME)-$(USB8388FW_VERSION).bin
  391. MD5SUM=5e38f55719df3d0c58dd3bd02575a09c
  392. endef
  393. $(eval $(call Download,usb8388))
  394. SD8686FW_NAME:=sd8686
  395. SD8686FW_VERSION:=9.70.7.p0
  396. define Download/sd8686
  397. URL:=http://dev.laptop.org/pub/firmware/libertas/
  398. FILE:=$(SD8686FW_NAME)-$(SD8686FW_VERSION).bin
  399. MD5SUM=b4f8be61e19780a14836f146c538c5dd
  400. endef
  401. $(eval $(call Download,sd8686))
  402. SD8686HELPER_NAME:=sd8686_helper
  403. define Download/sd8686_helper
  404. URL:=http://dev.laptop.org/pub/firmware/libertas/
  405. FILE:=$(SD8686HELPER_NAME).bin
  406. MD5SUM=2a4d8f4df198ce949c350df5674f4ac6
  407. endef
  408. $(eval $(call Download,sd8686_helper))
  409. define KernelPackage/libertas-usb
  410. $(call KernelPackage/mac80211/Default)
  411. DEPENDS+= @USB_SUPPORT +kmod-mac80211 +kmod-usb-core +kmod-lib80211
  412. TITLE:=Marvell 88W8015 Wireless Driver
  413. FILES:= \
  414. $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
  415. $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/usb8xxx.ko
  416. AUTOLOAD:=$(call AutoLoad,27,libertas usb8xxx)
  417. endef
  418. define KernelPackage/libertas-sd
  419. $(call KernelPackage/mac80211/Default)
  420. DEPENDS+= +kmod-mac80211 +kmod-lib80211
  421. TITLE:=Marvell 88W8686 Wireless Driver
  422. FILES:= \
  423. $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
  424. $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas_sdio.ko
  425. AUTOLOAD:=$(call AutoLoad,27,libertas libertas_sdio)
  426. endef
  427. define KernelPackage/mac80211-hwsim
  428. $(call KernelPackage/mac80211/Default)
  429. TITLE:=mac80211 HW simulation device
  430. DEPENDS+= +kmod-mac80211
  431. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
  432. AUTOLOAD:=$(call AutoLoad,60,mac80211_hwsim)
  433. endef
  434. define KernelPackage/net-libipw
  435. $(call KernelPackage/mac80211/Default)
  436. TITLE:=libipw for ipw2100 and ipw2200
  437. DEPENDS:=@PCI_SUPPORT +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-crypto-michael-mic +kmod-lib80211 +kmod-cfg80211
  438. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/libipw.ko
  439. AUTOLOAD:=$(call AutoLoad,49,libipw)
  440. endef
  441. define KernelPackage/net-libipw/description
  442. Hardware independent IEEE 802.11 networking stack for ipw2100 and ipw2200.
  443. endef
  444. IPW2100_NAME:=ipw2100-fw
  445. IPW2100_VERSION:=1.3
  446. define Download/net-ipw2100
  447. URL:=http://bughost.org/firmware/
  448. FILE:=$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
  449. MD5SUM=46aa75bcda1a00efa841f9707bbbd113
  450. endef
  451. $(eval $(call Download,net-ipw2100))
  452. define KernelPackage/net-ipw2100
  453. $(call KernelPackage/mac80211/Default)
  454. TITLE:=Intel IPW2100 driver
  455. DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
  456. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2100.ko
  457. AUTOLOAD:=$(call AutoLoad,50,ipw2100)
  458. endef
  459. define KernelPackage/net-ipw2100/description
  460. Kernel support for Intel IPW2100
  461. Includes:
  462. - ipw2100
  463. endef
  464. IPW2200_NAME:=ipw2200-fw
  465. IPW2200_VERSION:=3.1
  466. define Download/net-ipw2200
  467. URL:=http://bughost.org/firmware/
  468. FILE:=$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
  469. MD5SUM=eaba788643c7cc7483dd67ace70f6e99
  470. endef
  471. $(eval $(call Download,net-ipw2200))
  472. define KernelPackage/net-ipw2200
  473. $(call KernelPackage/mac80211/Default)
  474. TITLE:=Intel IPW2200 driver
  475. DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
  476. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2200.ko
  477. AUTOLOAD:=$(call AutoLoad,50,ipw2200)
  478. endef
  479. define KernelPackage/net-ipw2200/description
  480. Kernel support for Intel IPW2200
  481. Includes:
  482. - ipw2200
  483. endef
  484. define KernelPackage/net-hermes
  485. $(call KernelPackage/mac80211/Default)
  486. TITLE:=Hermes 802.11b chipset support
  487. DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-cfg80211
  488. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco.ko
  489. AUTOLOAD:=$(call AutoLoad,50,orinoco)
  490. endef
  491. define KernelPackage/net-hermes/description
  492. Kernel support for Hermes 802.11b chipsets
  493. endef
  494. define KernelPackage/net-hermes-pci
  495. $(call KernelPackage/mac80211/Default)
  496. TITLE:=Intersil Prism 2.5 PCI support
  497. DEPENDS:=@PCI_SUPPORT +kmod-net-hermes +kmod-cfg80211
  498. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_pci.ko
  499. AUTOLOAD:=$(call AutoLoad,55,orinoco_pci)
  500. endef
  501. define KernelPackage/net-hermes-pci/description
  502. Kernel modules for Intersil Prism 2.5 PCI support
  503. endef
  504. define KernelPackage/net-hermes-plx
  505. $(call KernelPackage/mac80211/Default)
  506. TITLE:=PLX9052 based PCI adaptor
  507. DEPENDS:=@PCI_SUPPORT +kmod-net-hermes +kmod-cfg80211
  508. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_plx.ko
  509. AUTOLOAD:=$(call AutoLoad,55,orinoco_plx)
  510. endef
  511. define KernelPackage/net-hermes-plx/description
  512. Kernel modules for Hermes in PLX9052 based PCI adaptors
  513. endef
  514. define KernelPackage/net-hermes-pcmcia
  515. $(call KernelPackage/mac80211/Default)
  516. TITLE:=Hermes based PCMCIA adaptors
  517. DEPENDS:=@PCMCIA_SUPPORT +kmod-net-hermes +kmod-cfg80211 @BROKEN
  518. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_cs.ko
  519. AUTOLOAD:=$(call AutoLoad,55,orinoco_cs)
  520. endef
  521. define KernelPackage/net-hermes-pcmcia/description
  522. Kernel modules for Hermes based PCMCIA adaptors
  523. endef
  524. define KernelPackage/mwl8k
  525. $(call KernelPackage/mac80211/Default)
  526. TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards
  527. URL:=http://wireless.kernel.org/en/users/Drivers/mwl8k
  528. DEPENDS+= @PCI_SUPPORT +kmod-mac80211
  529. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mwl8k.ko
  530. AUTOLOAD:=$(call AutoLoad,27,mwl8k)
  531. endef
  532. define KernelPackage/mwl8k/description
  533. Kernel modules for Marvell TOPDOG 802.11 Wireless cards
  534. endef
  535. #Broadcom firmware
  536. ifneq ($(CONFIG_B43_EXPERIMENTAL),)
  537. PKG_B43_FWV4_NAME:=broadcom-wl
  538. PKG_B43_FWV4_VERSION:=4.178.10.4
  539. PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
  540. PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
  541. PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
  542. PKG_B43_FWV4_MD5SUM:=14477e8cbbb91b11896affac9b219fdb
  543. else
  544. PKG_B43_FWV4_NAME:=broadcom-wl
  545. PKG_B43_FWV4_VERSION:=4.150.10.5
  546. PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta_mimo.o
  547. PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
  548. PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
  549. PKG_B43_FWV4_MD5SUM:=0c6ba9687114c6b598e8019e262d9a60
  550. endif
  551. ifneq ($(CONFIG_B43_OPENFIRMWARE),)
  552. PKG_B43_FWV4_NAME:=broadcom-wl
  553. PKG_B43_FWV4_VERSION:=5.2
  554. PKG_B43_FWV4_OBJECT:=openfwwf-$(PKG_B43_FWV4_VERSION)
  555. PKG_B43_FWV4_SOURCE:=openfwwf-$(PKG_B43_FWV4_VERSION).tar.gz
  556. PKG_B43_FWV4_SOURCE_URL:=http://www.ing.unibs.it/openfwwf/firmware/
  557. PKG_B43_FWV4_MD5SUM:=e045a135453274e439ae183f8498b0fa
  558. endif
  559. PKG_B43_FWV3_NAME:=wl_apsta
  560. PKG_B43_FWV3_VERSION:=3.130.20.0
  561. PKG_B43_FWV3_SOURCE:=$(PKG_B43_FWV3_NAME)-$(PKG_B43_FWV3_VERSION).o
  562. PKG_B43_FWV3_SOURCE_URL:=http://downloads.openwrt.org/sources/
  563. PKG_B43_FWV3_MD5SUM:=e08665c5c5b66beb9c3b2dd54aa80cb3
  564. ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
  565. PKG_B43_FWCUTTER_NAME:=b43-fwcutter
  566. PKG_B43_FWCUTTER_VERSION:=3e69531aa65b8f664a0ab00dfc3e2eefeb0cb417
  567. PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
  568. PKG_B43_FWCUTTER_PROTO:=git
  569. PKG_B43_FWCUTTER_SOURCE_URL:=http://git.bu3sch.de/git/b43-tools.git
  570. PKG_B43_FWCUTTER_SUBDIR:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)
  571. PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/fwcutter/
  572. else
  573. PKG_B43_FWCUTTER_NAME:=b43-fwcutter
  574. PKG_B43_FWCUTTER_VERSION:=013
  575. PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
  576. PKG_B43_FWCUTTER_PROTO:=default
  577. PKG_B43_FWCUTTER_SOURCE_URL:=http://bu3sch.de/b43/fwcutter/
  578. PKG_B43_FWCUTTER_MD5SUM:=3547ec6c474ac1bc2c4a5bb765b791a4
  579. PKG_B43_FWCUTTER_SUBDIR:=b43-fwcutter-$(PKG_B43_FWCUTTER_VERSION)
  580. PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/
  581. endif
  582. define Download/b43-common
  583. FILE:=$(PKG_B43_FWCUTTER_SOURCE)
  584. URL:=$(PKG_B43_FWCUTTER_SOURCE_URL)
  585. MD5SUM:=$(PKG_B43_FWCUTTER_MD5SUM)
  586. PROTO:=$(PKG_B43_FWCUTTER_PROTO)
  587. VERSION:=$(PKG_B43_FWCUTTER_VERSION)
  588. SUBDIR:=$(PKG_B43_FWCUTTER_SUBDIR)
  589. endef
  590. $(eval $(call Download,b43-common))
  591. define Download/b43
  592. FILE:=$(PKG_B43_FWV4_SOURCE)
  593. URL:=$(PKG_B43_FWV4_SOURCE_URL)
  594. MD5SUM:=$(PKG_B43_FWV4_MD5SUM)
  595. endef
  596. $(eval $(call Download,b43))
  597. define Download/b43legacy
  598. FILE:=$(PKG_B43_FWV3_SOURCE)
  599. URL:=$(PKG_B43_FWV3_SOURCE_URL)
  600. MD5SUM:=$(PKG_B43_FWV3_MD5SUM)
  601. endef
  602. $(eval $(call Download,b43legacy))
  603. define KernelPackage/b43-common
  604. $(call KernelPackage/mac80211/Default)
  605. TITLE:=Generic stuff for Broadcom wireless devices
  606. URL:=http://linuxwireless.org/en/users/Drivers/b43
  607. KCONFIG:= \
  608. CONFIG_HW_RANDOM=y
  609. DEPENDS+= +kmod-mac80211 +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb
  610. endef
  611. define KernelPackage/b43
  612. $(call KernelPackage/b43-common)
  613. TITLE:=Broadcom 43xx wireless support
  614. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.ko
  615. AUTOLOAD:=$(call AutoLoad,30,b43)
  616. MENU:=1
  617. endef
  618. define KernelPackage/b43/config
  619. menu "Configuration"
  620. depends on PACKAGE_kmod-b43
  621. choice
  622. prompt "b43 firmware version"
  623. default B43_STABLE
  624. help
  625. This option allows you to select the version of the b43 firmware.
  626. config B43_STABLE
  627. bool "4.150.10.5 (stable)"
  628. help
  629. Stable firmware for BCM43xx devices.
  630. If unsure, select this.
  631. config B43_EXPERIMENTAL
  632. bool "4.178.10.4 (experimental)"
  633. help
  634. Experimental firmware for BCM43xx devices.
  635. This firmware is not tested as much as the "stable" firmware.
  636. If unsure, select the "stable" firmware.
  637. config B43_OPENFIRMWARE
  638. bool "Open FirmWare for WiFi networks"
  639. help
  640. Opensource firmware for BCM43xx devices.
  641. Do _not_ select this, unless you know what you are doing.
  642. The Opensource firmware is not suitable for embedded devices, yet.
  643. It does not support QoS, which is bad for AccessPoints.
  644. It does not support hardware crypto acceleration, which is a showstopper
  645. for embedded devices with low CPU resources.
  646. If unsure, select the "stable" firmware.
  647. endchoice
  648. config B43_FW_SQUASH
  649. bool "Remove unnecessary firmware files"
  650. depends on !B43_OPENFIRMWARE
  651. default y
  652. help
  653. This options allows you to remove unnecessary b43 firmware files
  654. from the final rootfs image. This can reduce the rootfs size by
  655. up to 200k.
  656. If unsure, say Y.
  657. config B43_FW_SQUASH_COREREVS
  658. string "Core revisions to include"
  659. depends on B43_FW_SQUASH
  660. default "5,6,7,8,9,10,13,14,15"
  661. help
  662. This is a comma seperated list of core revision numbers.
  663. Example (keep files for rev5 only):
  664. 5
  665. Example (keep files for rev5 and rev11):
  666. 5,11
  667. config B43_FW_SQUASH_PHYTYPES
  668. string "PHY types to include"
  669. depends on B43_FW_SQUASH
  670. default "G,LP"
  671. help
  672. This is a comma seperated list of PHY types:
  673. A => A-PHY
  674. AG => Dual A-PHY G-PHY
  675. G => G-PHY
  676. LP => LP-PHY
  677. N => N-PHY
  678. Example (keep files for G-PHY only):
  679. G
  680. Example (keep files for G-PHY and N-PHY):
  681. G,N
  682. endmenu
  683. endef
  684. define KernelPackage/b43/description
  685. Kernel module for Broadcom 43xx wireless support (mac80211 stack) new
  686. endef
  687. define KernelPackage/b43legacy
  688. $(call KernelPackage/b43-common)
  689. TITLE:=Broadcom 43xx-legacy wireless support
  690. FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.ko
  691. AUTOLOAD:=$(call AutoLoad,30,b43legacy)
  692. MENU:=1
  693. endef
  694. define KernelPackage/b43legacy/config
  695. menu "Configuration"
  696. depends on PACKAGE_kmod-b43legacy
  697. config B43LEGACY_FW_SQUASH
  698. bool "Remove unnecessary firmware files"
  699. default y
  700. help
  701. This options allows you to remove unnecessary b43legacy firmware files
  702. from the final rootfs image. This can reduce the rootfs size by
  703. up to 50k.
  704. If unsure, say Y.
  705. config B43LEGACY_FW_SQUASH_COREREVS
  706. string "Core revisions to include"
  707. depends on B43LEGACY_FW_SQUASH
  708. default "1,2,3,4"
  709. help
  710. This is a comma seperated list of core revision numbers.
  711. Example (keep files for rev4 only):
  712. 4
  713. Example (keep files for rev2 and rev4):
  714. 2,4
  715. endmenu
  716. endef
  717. define KernelPackage/b43legacy/description
  718. Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
  719. endef
  720. BUILDFLAGS:= \
  721. -I$(PKG_BUILD_DIR)/include \
  722. $(foreach opt,$(CONFOPTS),-DCONFIG_$(opt)) \
  723. $(if $(CONFIG_PCI),-DCONFIG_B43_PCI_AUTOSELECT -DCONFIG_B43_PCICORE_AUTOSELECT) \
  724. $(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_B43_LEDS -DCONFIG_B43LEGACY_LEDS -DCONFIG_AR9170_LEDS) \
  725. -DCONFIG_B43_HWRNG -DCONFIG_B43LEGACY_HWRNG \
  726. $(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),-DCONFIG_MAC80211_DEBUGFS -DCONFIG_ATH9K_DEBUGFS -DCONFIG_CARL9170_DEBUGFS) \
  727. $(if $(CONFIG_PACKAGE_ATH_DEBUG),-DCONFIG_ATH_DEBUG -DCONFIG_ATH9K_PKTLOG -DCONFIG_ATH5K_DEBUG) \
  728. -D__CONFIG_MAC80211_RC_DEFAULT=minstrel \
  729. -DCONFIG_MAC80211_RC_MINSTREL_HT \
  730. $(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1) \
  731. $(if $(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS),-DCONFIG_RT2X00_LIB_DEBUGFS) \
  732. $(if $(CONFIG_PACKAGE_RT2X00_DEBUG),-DCONFIG_RT2X00_DEBUG) \
  733. $(if $(NEED_RT2X00_LIB_HT),-DCONFIG_RT2X00_LIB_HT) \
  734. $(if $(NEED_RT2X00_LIB_CRYPTO),-DCONFIG_RT2X00_LIB_CRYPTO) \
  735. $(if $(NEED_RT2X00_LIB_FIRMWARE),-DCONFIG_RT2X00_LIB_FIRMWARE) \
  736. $(if $(NEED_RT2X00_LIB_LEDS),-DCONFIG_RT2X00_LIB_LEDS) \
  737. $(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),-DCONFIG_RT2X00_LIB_PCI) \
  738. $(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),-DCONFIG_RT2X00_LIB_USB) \
  739. $(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),-DCONFIG_RT2X00_LIB_SOC) \
  740. $(if $(CONFIG_TARGET_atheros),-DCONFIG_ATH5K_AHB,-DCONFIG_ATH5K_PCI) \
  741. -DCONFIG_P54_SPI_DEFAULT_EEPROM
  742. MAKE_OPTS:= \
  743. CROSS_COMPILE="$(KERNEL_CROSS)" \
  744. ARCH="$(LINUX_KARCH)" \
  745. EXTRA_CFLAGS="$(BUILDFLAGS)" \
  746. $(foreach opt,$(CONFOPTS),CONFIG_$(opt)=m) \
  747. CONFIG_MAC80211=$(if $(CONFIG_PACKAGE_kmod-mac80211),m) \
  748. CONFIG_MAC80211_RC_MINSTREL=y \
  749. CONFIG_MAC80211_LEDS=$(CONFIG_LEDS_TRIGGERS) \
  750. CONFIG_MAC80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
  751. CONFIG_B43_PCMCIA=n CONFIG_B43_PIO=n \
  752. CONFIG_B43_PCI_AUTOSELECT=$(if $(CONFIG_PCI),y) \
  753. CONFIG_B43_PCICORE_AUTOSELECT=$(if $(CONFIG_PCI),y) \
  754. CONFIG_B43LEGACY_LEDS=$(CONFIG_LEDS_TRIGGERS) \
  755. CONFIG_B43_LEDS=$(CONFIG_LEDS_TRIGGERS) \
  756. CONFIG_B43_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
  757. CONFIG_B43LEGACY_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
  758. CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \
  759. CONFIG_B43LEGACY=$(if $(CONFIG_PACKAGE_kmod-b43legacy),m) \
  760. CONFIG_ATH_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath),m) \
  761. CONFIG_ATH_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
  762. CONFIG_ATH5K_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
  763. CONFIG_ATH9K_PKTLOG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
  764. CONFIG_ATH5K=$(if $(CONFIG_PACKAGE_kmod-ath5k),m) \
  765. CONFIG_ATH5K_PCI=$(if $(CONFIG_TARGET_atheros),,y) \
  766. CONFIG_ATH5K_AHB=$(if $(CONFIG_TARGET_atheros),y) \
  767. CONFIG_ATH9K=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
  768. CONFIG_ATH9K_HW=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
  769. CONFIG_ATH9K_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
  770. CONFIG_ATH9K_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
  771. CONFIG_CARL9170=$(if $(CONFIG_PACKAGE_kmod-carl9170),m) \
  772. CONFIG_CARL9170_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
  773. CONFIG_ZD1211RW=$(if $(CONFIG_PACKAGE_kmod-zd1211rw),m) \
  774. CONFIG_P54_COMMON=$(if $(CONFIG_PACKAGE_kmod-p54-common),m) \
  775. CONFIG_P54_PCI=$(if $(CONFIG_PACKAGE_kmod-p54-pci),m) \
  776. CONFIG_P54_USB=$(if $(CONFIG_PACKAGE_kmod-p54-usb),m) \
  777. CONFIG_P54_SPI=$(if $(CONFIG_PACKAGE_kmod-p54-spi),m) \
  778. CONFIG_P54_SPI_DEFAULT_EEPROM=y \
  779. CONFIG_RT2X00=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
  780. CONFIG_RT2X00_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
  781. CONFIG_RT2X00_LIB_PCI=$(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),m) \
  782. CONFIG_RT2X00_LIB_USB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),m) \
  783. CONFIG_RT2X00_LIB_SOC=$(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),m) \
  784. CONFIG_RT2X00_LIB_DEBUGFS=$(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS) \
  785. CONFIG_RT2X00_LIB_CRYPTO=$(NEED_RT2X00_LIB_CRYPTO) \
  786. CONFIG_RT2X00_LIB_FIRMWARE=$(NEED_RT2X00_LIB_FIRMWARE) \
  787. CONFIG_RT2X00_LIB_HT=$(NEED_RT2X00_LIB_HT) \
  788. CONFIG_RT2X00_LIB_LEDS=$(NEED_RT2X00_LIB_LEDS) \
  789. CONFIG_RT2400PCI=$(if $(CONFIG_PACKAGE_kmod-rt2400-pci),m) \
  790. CONFIG_RT2500PCI=$(if $(CONFIG_PACKAGE_kmod-rt2500-pci),m) \
  791. CONFIG_RT2500USB=$(if $(CONFIG_PACKAGE_kmod-rt2500-usb),m) \
  792. CONFIG_RT61PCI=$(if $(CONFIG_PACKAGE_kmod-rt61-pci),m) \
  793. CONFIG_RT73USB=$(if $(CONFIG_PACKAGE_kmod-rt73-usb),m) \
  794. CONFIG_RT2800_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2800-lib),m) \
  795. CONFIG_RT2800PCI=$(if $(CONFIG_PACKAGE_kmod-rt2800-pci),m) \
  796. CONFIG_RT2800USB=$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),m) \
  797. CONFIG_RTL8180=$(if $(CONFIG_PACKAGE_kmod-rtl8180),m) \
  798. CONFIG_RTL8187=$(if $(CONFIG_PACKAGE_kmod-rtl8187),m) \
  799. CONFIG_RTL8192CE= \
  800. CONFIG_MAC80211_HWSIM=$(if $(CONFIG_PACKAGE_kmod-mac80211-hwsim),m) \
  801. CONFIG_PCMCIA= \
  802. CONFIG_LIBIPW=$(if $(CONFIG_PACKAGE_kmod-net-libipw),m) \
  803. CONFIG_LIBERTAS=$(if $(CONFIG_PACKAGE_kmod-libertas-sd)$(CONFIG_PACKAGE_kmod-libertas-usb),m) \
  804. CONFIG_LIBERTAS_CS= \
  805. CONFIG_LIBERTAS_SPI= \
  806. CONFIG_LIBERTAS_SDIO=$(if $(CONFIG_PACKAGE_kmod-libertas-sd),m) \
  807. CONFIG_LIBERTAS_THINFIRM= \
  808. CONFIG_LIBERTAS_USB=$(if $(CONFIG_PACKAGE_kmod-libertas-usb),m) \
  809. CONFIG_IPW2100=$(if $(CONFIG_PACKAGE_kmod-net-ipw2100),m) \
  810. CONFIG_IPW2200=$(if $(CONFIG_PACKAGE_kmod-net-ipw2200),m) \
  811. CONFIG_NL80211=y \
  812. CONFIG_LIB80211= \
  813. CONFIG_LIB80211_CRYPT_WEP= \
  814. CONFIG_LIB80211_CRYPT_CCMP= \
  815. CONFIG_LIB80211_CRYPT_TKIP= \
  816. CONFIG_COMPAT_IWLWIFI= \
  817. CONFIG_IWLAGN= \
  818. CONFIG_MWL8K=$(if $(CONFIG_PACKAGE_kmod-mwl8k),m) \
  819. CONFIG_ATMEL= \
  820. CONFIG_PCMCIA_ATMEL= \
  821. CONFIG_ADM8211= \
  822. CONFIG_USB_NET_RNDIS_HOST= \
  823. CONFIG_USB_NET_RNDIS_WLAN= \
  824. CONFIG_USB_NET_CDCETHER= \
  825. CONFIG_USB_USBNET= \
  826. CONFIG_AT76C50X_USB= \
  827. CONFIG_WL12XX= \
  828. CONFIG_EEPROM_93CX6= \
  829. CONFIG_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes),m) \
  830. CONFIG_HERMES_CACHE_FW_ON_INIT= \
  831. CONFIG_PCI_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-pci),m) \
  832. CONFIG_PLX_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-plx),m) \
  833. CONFIG_PCMCIA_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-pcmcia),m) \
  834. CONFIG_HERMES_PRISM= \
  835. CONFIG_APPLE_AIRPORT= \
  836. CONFIG_TMD_HERMES= \
  837. CONFIG_NORTEL_HERMES= \
  838. CONFIG_PCMCIA_SPECTRUM= \
  839. CONFIG_ORINOCO_USB= \
  840. CONFIG_AR9170_USB=$(if $(CONFIG_PACKAGE_kmod-ar9170),m) \
  841. CONFIG_AR9170_LEDS=$(CONFIG_LEDS_TRIGGERS) \
  842. CONFIG_IWM= \
  843. CONFIG_ATH9K_HTC= \
  844. CONFIG_MAC80211_RC_MINSTREL_HT=y \
  845. MADWIFI= \
  846. OLD_IWL= \
  847. KLIB_BUILD="$(LINUX_DIR)" \
  848. MODPROBE=: \
  849. KLIB=$(TARGET_MODULES_DIR) \
  850. KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
  851. KBUILD_LDFLAGS_MODULE_PREREQ=
  852. ifeq ($(CONFIG_PACKAGE_kmod-libertas-sd)$(CONFIG_PACKAGE_kmod-libertas-usb)$(CONFIG_PACKAGE_kmod-rt2x00-lib),)
  853. MAKE_OPTS += CONFIG_COMPAT_KFIFO=
  854. endif
  855. define Build/Prepare
  856. rm -rf $(PKG_BUILD_DIR)
  857. mkdir -p $(PKG_BUILD_DIR)
  858. $(PKG_UNPACK)
  859. $(Build/Patch)
  860. unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT61FW)
  861. unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT71FW)
  862. -unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT2860FW)
  863. -unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT2870FW)
  864. $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
  865. $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
  866. $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
  867. rm -rf $(PKG_BUILD_DIR)/include/linux/ssb
  868. rm -f $(PKG_BUILD_DIR)/include/net/ieee80211.h
  869. rm $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h
  870. endef
  871. ifneq ($(CONFIG_PACKAGE_kmod-cfg80211),)
  872. define Build/Compile/kmod
  873. rm -rf $(PKG_BUILD_DIR)/modules
  874. $(MAKE) $(PKG_JOBS) -C "$(PKG_BUILD_DIR)" $(MAKE_OPTS) all
  875. endef
  876. endif
  877. define Build/Compile
  878. $(call Build/Compile/kmod)
  879. endef
  880. define Build/InstallDev
  881. mkdir -p \
  882. $(1)/usr/include/mac80211 \
  883. $(1)/usr/include/mac80211/ath \
  884. $(1)/usr/include/net/mac80211
  885. $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
  886. $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
  887. $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
  888. endef
  889. define KernelPackage/libertas-usb/install
  890. $(INSTALL_DIR) $(1)/lib/firmware
  891. $(INSTALL_DATA) $(DL_DIR)/$(USB8388FW_NAME)-$(USB8388FW_VERSION).bin $(1)/lib/firmware/$(USB8388FW_NAME).bin
  892. endef
  893. define KernelPackage/libertas-sd/install
  894. echo "Libertas install: $(CONFIG_PACKAGE_kmod-libertas-sd)"
  895. $(INSTALL_DIR) $(1)/lib/firmware
  896. $(INSTALL_DATA) $(DL_DIR)/$(SD8686FW_NAME)-$(SD8686FW_VERSION).bin $(1)/lib/firmware/$(SD8686FW_NAME).bin
  897. $(INSTALL_DATA) $(DL_DIR)/$(SD8686HELPER_NAME).bin $(1)/lib/firmware/$(SD8686HELPER_NAME).bin
  898. endef
  899. define KernelPackage/cfg80211/install
  900. $(INSTALL_DIR) $(1)/lib/wifi
  901. $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
  902. endef
  903. define KernelPackage/p54-pci/install
  904. $(INSTALL_DIR) $(1)/lib/firmware
  905. $(INSTALL_DATA) $(DL_DIR)/$(P54PCIFW) $(1)/lib/firmware/isl3886pci
  906. endef
  907. define KernelPackage/p54-usb/install
  908. $(INSTALL_DIR) $(1)/lib/firmware
  909. $(INSTALL_DATA) $(DL_DIR)/$(P54USBFW) $(1)/lib/firmware/isl3887usb
  910. endef
  911. define KernelPackage/p54-spi/install
  912. $(INSTALL_DIR) $(1)/lib/firmware
  913. $(INSTALL_DATA) $(DL_DIR)/$(P54SPIFW) $(1)/lib/firmware/3826.arm
  914. endef
  915. define KernelPackage/rt61-pci/install
  916. $(INSTALL_DIR) $(1)/lib/firmware
  917. $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2?61*.bin $(1)/lib/firmware/
  918. endef
  919. define KernelPackage/rt73-usb/install
  920. $(INSTALL_DIR) $(1)/lib/firmware
  921. $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt73.bin $(1)/lib/firmware/
  922. endef
  923. define KernelPackage/rt2800-pci/install
  924. $(INSTALL_DIR) $(1)/lib/firmware
  925. $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2860.bin $(1)/lib/firmware/
  926. endef
  927. define KernelPackage/rt2800-usb/install
  928. $(INSTALL_DIR) $(1)/lib/firmware
  929. $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2870.bin $(1)/lib/firmware/
  930. endef
  931. define KernelPackage/zd1211rw/install
  932. $(INSTALL_DIR) $(1)/lib/firmware/zd1211
  933. $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
  934. endef
  935. define KernelPackage/ar9170/install
  936. $(INSTALL_DIR) $(1)/lib/firmware
  937. $(INSTALL_DATA) $(DL_DIR)/$(AR9170FW) $(1)/lib/firmware/
  938. endef
  939. define KernelPackage/net-ipw2100/install
  940. $(INSTALL_DIR) $(1)/lib/firmware
  941. $(INSTALL_DATA) $(PKG_BUILD_DIR)/ipw2100-$(IPW2100_VERSION)*.fw $(1)/lib/firmware
  942. endef
  943. define KernelPackage/net-ipw2200/install
  944. $(INSTALL_DIR) $(1)/lib/firmware
  945. $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION)/ipw2200*.fw $(1)/lib/firmware
  946. endef
  947. define Build/b43-common
  948. tar xjf "$(DL_DIR)/$(PKG_B43_FWCUTTER_SOURCE)" -C "$(PKG_BUILD_DIR)"
  949. $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)" \
  950. CFLAGS="-I$(STAGING_DIR_HOST)/include -include endian.h" \
  951. QUIET_SPARSE=:
  952. $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)/b43-fwcutter $(STAGING_DIR_HOST)/bin/
  953. ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
  954. $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/
  955. $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/"
  956. $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm $(STAGING_DIR_HOST)/bin/
  957. $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm.bin $(STAGING_DIR_HOST)/bin/
  958. endif
  959. $(INSTALL_BIN) ./files/host_bin/b43-fwsquash.py $(STAGING_DIR_HOST)/bin/
  960. endef
  961. define KernelPackage/b43/install
  962. rm -rf $(1)/lib/firmware/
  963. $(call Build/b43-common)
  964. ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
  965. tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
  966. else
  967. tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
  968. endif
  969. $(INSTALL_DIR) $(1)/lib/firmware/
  970. ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
  971. $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/"
  972. $(INSTALL_DIR) $(1)/lib/firmware/b43-open/
  973. $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw
  974. $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw
  975. $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw
  976. else
  977. b43-fwcutter -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)
  978. endif
  979. ifneq ($(CONFIG_B43_FW_SQUASH),)
  980. b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43"
  981. endif
  982. endef
  983. define KernelPackage/b43legacy/install
  984. $(call Build/b43-common)
  985. $(INSTALL_DIR) $(1)/lib/firmware/
  986. b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(DL_DIR)/$(PKG_B43_FWV3_SOURCE)
  987. ifneq ($(CONFIG_B43LEGACY_FW_SQUASH),)
  988. b43-fwsquash.py "G" "$(CONFIG_B43LEGACY_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43legacy"
  989. endif
  990. endef
  991. $(eval $(call KernelPackage,ath5k))
  992. $(eval $(call KernelPackage,libertas-usb))
  993. $(eval $(call KernelPackage,libertas-sd))
  994. $(eval $(call KernelPackage,cfg80211))
  995. $(eval $(call KernelPackage,mac80211))
  996. $(eval $(call KernelPackage,p54-common))
  997. $(eval $(call KernelPackage,p54-pci))
  998. $(eval $(call KernelPackage,p54-usb))
  999. $(eval $(call KernelPackage,p54-spi))
  1000. $(eval $(call KernelPackage,rt2x00-lib))
  1001. $(eval $(call KernelPackage,rt2x00-pci))
  1002. $(eval $(call KernelPackage,rt2x00-usb))
  1003. $(eval $(call KernelPackage,rt2x00-soc))
  1004. $(eval $(call KernelPackage,rt2800-lib))
  1005. $(eval $(call KernelPackage,rt2400-pci))
  1006. $(eval $(call KernelPackage,rt2500-pci))
  1007. $(eval $(call KernelPackage,rt2500-usb))
  1008. $(eval $(call KernelPackage,rt61-pci))
  1009. $(eval $(call KernelPackage,rt73-usb))
  1010. $(eval $(call KernelPackage,rt2800-pci))
  1011. $(eval $(call KernelPackage,rt2800-usb))
  1012. $(eval $(call KernelPackage,rtl8180))
  1013. $(eval $(call KernelPackage,rtl8187))
  1014. $(eval $(call KernelPackage,zd1211rw))
  1015. $(eval $(call KernelPackage,mac80211-hwsim))
  1016. $(eval $(call KernelPackage,ath9k))
  1017. $(eval $(call KernelPackage,ath))
  1018. $(eval $(call KernelPackage,carl9170))
  1019. $(eval $(call KernelPackage,b43))
  1020. $(eval $(call KernelPackage,b43legacy))
  1021. $(eval $(call KernelPackage,net-libipw))
  1022. $(eval $(call KernelPackage,net-ipw2100))
  1023. $(eval $(call KernelPackage,net-ipw2200))
  1024. $(eval $(call KernelPackage,mwl8k))
  1025. $(eval $(call KernelPackage,net-hermes))
  1026. $(eval $(call KernelPackage,net-hermes-pci))
  1027. $(eval $(call KernelPackage,net-hermes-plx))
  1028. $(eval $(call KernelPackage,net-hermes-pcmcia))