]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - wl12xx/compat-wireless.git/blob - README
compat-wireless: clarify usage of linux-next-cherry-pick for bleeding edge
[wl12xx/compat-wireless.git] / README
2 Linux Wireless compatibility package
3 =====================================
5 This is a Linux wireless compatibility package which provides the latest
6 Linux wireless subsystem enhancements for kernels 2.6.25 and above.
7 It is technically possible to support kernels < 2.6.25 but more
8 work is required for that.
9 It also provides Linux bluetooth subsystem enhancements for kernels 2.6.27 and above.
11 With a local git repository you can update the compatibility package yourself. 
12 For more information on how to do this please refer the Developers section below.
14 Documentation
15 ------------
17 This package is also documented online and has more-up-to date
18 information online than on this README file. You should read the wiki page
19 and not rely on this README:
21 http://wireless.kernel.org/en/users/Download
23 Subscribe to the wiki page to get updates on the documentation.
25 Where to get the latest
26 -----------------------
28 This package lets you build your own 'latest', all you need is a local git
29 repository. This way is documented in the Developers section of this document.
30 However since not many users are expected to keep a local git repository we 
31 provide daily snapshots of this package + the wireless and bluetooth subsystem
32 code. You can find the latest snapshot at:
34 linux-next.git version:
35 http://wireless.kernel.org/en/users/Download
37 stable version:
38 http://wireless.kernel.org/en/users/Download/stable/
40 Versions
41 --------
43 There are two different versions of this package available. 
44  * Version based on latest linux-next.git tree named compat-wireless-YYYY-MM-DD.tar.bz2
45  * Version based on linux-2.6-stable.git tree named compat-wireless-2.6.CC.DD.tar.bz2
47 Both versions should work for every kernel > 2.6.25. The differences are the
48 code they are containing. The version based on linux-next.git contains the
49 wireless and bluetooth subsystem out of linux-next.git and the stable version
50 the wireless subsystem out of the corresponding linux stable version.
52 Selecting your driver
53 ---------------------
55 If you know the driver you want you can select it with our
56 helper script:
58 ./scripts/driver-select
60 Run that script to see more information.
62 Building, and installing
63 ------------------------
65 Build: build the latest linux wireless subsystem
67         make
69 Install:
71 We use the updates/ directory so your distribution's drivers are left intact.
73         sudo make install
75 Uninstall:
77 This nukes our changes to updates/ so you can go back to using your
78 distribution's supported drivers.
80         sudo make uninstall
82 Load:
84 Reboot unless you know what you are doing.
87 Bluetooth modules can be separately compiled and installed using below commands
89 Build:
90         make bt
92 Install:
93         sudo make btinstall
95 Uninstall:
96         sudo make btuninstall
98 Load:
99         sudo make btload
101 Unload:
102         sudo make btunload
104 Drivers
105 -------
107 This is the list of drivers this package provides. It adds
108 all new drivers or drivers which keep being updated which you might
109 be interested in.
111 Driver
112 adm8211
113 ath5k
114 ath9h
115 ar9170
116 b43
117 b43legacy
118 iwl3945
119 iwlagn
120 ipw2100
121 ipw2200
122 libertas_cs (Libertas)
123 ub8xxx      (Libertas)
124 p54pci
125 p54usb
126 rt2400pci (rt2x00)
127 rt2500pci (rt2x00)
128 rt2500usb (rt2x00)
129 rt61pci   (rt2x00)
130 rt73usb   (rt2x00)
131 rtl8180 (Realtek)
132 rtl8187 (Realtek)
133 zd1211rw
135 This package also provides more drivers which may be documented here
137 For a complete list see:
139 http://wireless.kernel.org/en/users/Download
141 Non-wireless drivers
142 --------------------
144 To support b43 ssb is also provided, and since ssb is also provided
145 we provide b44 (the ethernet driver).
147 The new rfkill drivers also provided and backported.
149 Bluetooth drivers:
150 bluetooth
151 btusb
152 hci_uart
153 btsdio
154 btuart_cs
155 bluecard_cs
156 bfusb
158 Firmware:
159 ---------
161 If your driver needs firmware please be sure to check the driver page
162 for that driver here:
164 http://wireless.kernel.org/en/users/Drivers
166 Why?
167 ----
169 For users or developers stuck on older kernels that want to help test or 
170 patch wireless work. Additionally if you're on a recent kernel this lets
171 you get the latest and greatest linux-next git work without much effort.
172 This may mean new drivers for some users. Last but not least we hope this
173 will encourage vendors and developers to post patches upstream first
174 rather than forking or maintaining their own mac80211 releases with
175 their own patches for their own drivers.
177 Building for external kernels
178 ----------------------------------
180 If you have a kernel you do not have installed but yet want to build the
181 compat-wireless-2.6 drivers for it you can use this syntax:
183 make KLIB=/home/mcgrof/kernels/linux-2.6.23.9 KLIB_BUILD=/home/mcgrof/kernels/linux-2.6.23.9
185 If you have a kernel installed, which is not your currently running kernel (e.g. via
186 distro updates; plus its corresponding kernel-dev package), you can use this syntax:
188 make  KLIB=/lib/modules/2.6.30.6-53.fc11.x86_64
190   and to install to your system's root path for the non-running kernel:
192 make  KLIB=/lib/modules/2.6.30.6-53.fc11.x86_64 KMODPATH_ARG='INSTALL_MOD_PATH=' install
194 Bugs
195 -----
197 If you've found a bug please report it to our linux-wireless mailing list:
199 linux-wireless@vger.kernel.org
201 Report the bug because you are working with the latest and greatest.
202 If your bug is compatibility-related then we should still try to fix
203 it within the compat.[ch] work.
205 ChangeLog
206 ---------
208 Here you see the list of changes to all wireless drivers, the wireless core and mac80211.
210 http://git.kernel.org/?p=linux/kernel/git/linville/wireless-testing.git;a=log;
212 This views all the changes on wireless-testing.git.
214 License
215 -------
217 This work is a subset of the Linux kernel as such we keep the kernel's
218 Copyright practice. Some files have their own copyright and in those
219 cases the license is mentioned in the file. All additional work made
220 to building this package is licensed under the GPLv2.
222 Developers
223 ----------
225 Compatibility work goes into compat/compat.[ch]. If using those files do 
226 not suffice additional actual code changes can go into patches/*.patch.
228 An extended and more up to date version can be found at:
230 http://wireless.kernel.org/en/users/Download/hacking
232 This section deals with development details of compat-wireless and the other
233 trees it uses. If you want to make your own compat-wireless tarballs, or if you
234 see something busted with compat-wireless or just want to add something new or
235 an enhancement this is the guide for you.
237 Git trees you will need
238 -----------------------
240 compat-wireless backports both the bluetooth and 802.11 subsystems down to older
241 kernels. To be able to synchronize backporting the latest and greatest the
242 linux-next.git tree is used as its main source for kernel updates. General Linux
243 kernel compatibility is addressed through a general kernel compatibility tree,
244 compat.git. compat-wireless then has its own tree for specific wireless
245 compatibility. You will then need to checkout three trees to start hacking on
246 compat-wireless:
248 git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
249 git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat.git
250 git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat-wireless-2.6.git
252 Linux next
253 ----------
255 The linux-next.git tree brings all subsystems being worked on for the next
256 kernel release into one tree. So if the current rc kernel is 2.6.33-rc5, this
257 means linux-next will have what people today are working on for the 2.6.34
258 kernel release.
260 compat.git
261 ----------
263 The compat git tree is a general kernel compatibility layer which can be shared
264 amongst different compatibility projects, or drivers. compat-wireless is just
265 one of the kernel compatibility projects using compat.git. compat.git builds a
266 general compatibility module, compat, and any additional modules to let you get
267 new general kernel updates from future kernels on your old kernels.
269 compat.git modules
270 ------------------
272 compat.git provides a few modules and headers to help with general kernel
273 compatibility.
275 compat
276 ------
278 Provides all exported symbols implemented in each respective kernel
279 compat-2.6.xy.c files. Upon module load it just initializes the Linux kernel's
280 ''power management Quality Of Service'' (aka '''pm-qos''') Interface interface
281 added as of the 2.6.24 kernel. No other things are initialized, the rest of the
282 compat module just acts as a library of exported symbols.
284 compat_firmware_class
285 ---------------------
287 Another module which compat.git provides is a backport of the firmware_class
288 module which got updated recently newer with a new request_firmware_nowait()
289 to allow better asynchronous firmware uploading. This was added as of the 2.6.33
290 kernel. The firmware_class module has been backported into a new module called
291 compat_firmware_class. A separate module has been defined instead of a direct
292 replacement for firmware_class since your system may have old drivers which use
293 the old request_firmware_nowait() and would bust if they used the new
294 request_firmware_nowait(). The compat_firmware_class module registers its own
295 sysfs subsystem and as such also gets udev events sent through a separate
296 subsystem. Because of this a new udev rules file is required and provided.
298 compat-wireless.git
299 -------------------
301 Anything that is not general kernel compatibility but instead specific to 802.11
302 or bluetooth goes into compat-wireless.git. After you've cloned all three trees,
303 linux-next.git, compat.git and compat-wireless.git you need to change into the
304 compat-wireless directory and tell compat-wireless where you linux-next and
305 compat.git trees are. You do this with environment variables GIT_TREE and
306 GIT_COMPAT_TREE. You can do for example:
308 export GIT_TREE=/home/user/wireless-testing/
309 export GIT_COMPAT_TREE=/home/users/compat.git/
311 Then you can update your local sources based on these linux-next.git and
312 compat.git trees:
314 scripts/admin-clean.sh   - Cleans the compat-wireless-2.6 tree
315 scripts/admin-update.sh  - Updates compat-wireless-2.6 with your git tree
316 scripts/admin-refresh.sh - Does the above two
318 Adding new drivers
319 ------------------
321 Most new drivers are enabled for compilation. If see a driver you would like
322 enabled try it into the mix, test them and if they work enable them and send
323 the respective patches.
325 Sending patches
326 ---------------
328 Remember there are three trees. linux-next itself is a conglomeration of kernel
329 git trees itself, so patches for linux-next.git should be sent to each
330 respective subsystem for which the patches are targeted for. So for example for
331 802.11 you will want to send them to John Linville and cc linux-wireless, for
332 further guidelines on this see the Submitting Patches guidelines for 802.11.
333 http://wireless.kernel.org/en/developers/Documentation/SubmittingPatches
334 As another example, for bluetooth you will want to send them to Marcel
335 Holtmann and cc the linux-bluetooth mailing list. If your patch touches on
336 others areas of the kernel refer to the MAINTAINERS file on the kernel.
338 For compat.git and compat-wireless.git please send patches against to:
340 To: Luis R. Rodriguez <mcgrof@kernel.org>
341 CC: linux-wireless@vger.kernel.org, linux-bluetooth@vger.kernel.org
342 Subject: [PATCH] compat-2.6: fix foo
344 For patches for compat.git please use a subject like the following:
346 Subject: [PATCH] compat: fix foo
348 For compat-wireless.git please use a subject like the following:
350 Subject: [PATCH] compat-wireless: fix foo
352 Patches are preferred sent with a clear commit log entry, if unfamiliar with
353 how to send patches please refer to
354 http://wireless.kernel.org/en/developers/Documentation/git-guide.
357 TODO
358 -----
359  * Dialog (make menuconfig) option for this package
360  * Compatibility work for 2.6.18 --> 2.6.25