Use the rdtscl call only on x86 achitectures
[acx-mac80211.git] / INSTALL
blobe0380b3841e67edf5d89b5730d7e1562e91eab38
1 1. Introduction
3 This document describes the steps required to build and install the acx driver
4 in a Linux system.
6 Two alternative methods are described, referred to as in-tree and out-of-tree,
7 of which only one of them must be chosen. The recommended way, because of its
8 simplicity, is the out-of-tree installation, although it requires an installed
9 set of kernel include headers in the system.
11 The following sections describe each one of these two methods. Notice again
12 that you should only pick one of them.
14 1. Inside the kernel tree 
16 1.1 Copy the driver sources into the kernel tree
18   cd <linux-sources-path>
19   cd drivers/net/wireless/
20   mkdir acx
21   cd acx
22   cp <acx-mac80211-sources-path>/* .
24 1.2. Kernel build system preparation 
26 Modify the file drivers/net/wireless/Makefile by adding the following line to
27 it:
29   obj-$(CONFIG_ACX_MAC80211)      += acx/
31 Modify the file drivers/net/wireless/Kconfig by adding the following line to
32 it:
34   source "drivers/net/wireless/acx/Kconfig"
36 Start the kernel configuration menu as usual:
38   make menuconfig
40 (or any similar method, e.g. with graphical interface)
42 Now you can simply configure the kernel in the usual way, making sure that the
43 CONFIG_ACX_MAC80211 option and at least one of the CONFIG_ACX_MAC80211_PCI or
44 CONFIG_ACX_MAC80211_USB options are set in the .config file, as described
45 below.
47 Note: you will have to first select the mac80211 stack in the kernel
48 configuration menu:
50 Networking  --->
51   Wireless  --->
52     {M} Improved wireless configuration API
53     [*]   nl80211 new netlink interface support
54     -*- Wireless extensions
55      Generic IEEE 802.11 Networking Stack (mac80211)
56           Rate control algorithm selection  --->
57     [ ]   Enable mac80211 mesh networking (pre-802.11s) support (NEW)
58     [ ]   Enable packet alignment debugging
59     [ ]   Enable debugging output
60     < > Generic IEEE 802.11 Networking Stack (DEPRECATED)
62 ACX kernel configuration (select either PCI/USB support or both)
64 Device Drivers  --->
65   [*] Network device support  --->
66     Wireless LAN  --->
67       [*] Wireless LAN (IEEE 802.11)
68             TI acx100/acx111 802.11b/g wireless chipsets
69          [*]     TI acx100/acx111 802.11b/g PCI
70          [ ]     TI acx100/acx111 802.11b/g USB (NEW)
72 1.3. Build
74 Issue a standard 'make' or 'make modules' command on the command line in order
75 to start the compilation of the kernel. Depending on the kernel configuration
76 you have chosen, this might take some time.
78 Refer to the kernel documentation for further information.
80 1.4. Installation
82 TODO -> description of the standard kernel module installation and the 'make
83 modules_install' target. Refer to the kernel documentation for now.
85 2. Outside the kernel tree
87 2.1. Quick-start build
89 Assuming you have a set of installed kernel headers for the kernel against you
90 are trying to build -and run- the driver, and you are building the PCI driver,
91 you can simply issue the usual make command:
93   make
95 You can now skip to the 'Installation' section below.
97 2.2. Advanced build
99 In case you need to specify configuration options other than the default PCI
100 build (e.g. you need to build the USB driver, or you want to build against a
101 special kernel version), you will first need to have a look at the Makefile in
102 order to understand it.
104 You will see that there is an EXTRA_KCONFIG variable, which you can modify
105 directly on the file or define it on the command-line to suit your needs:
107    export EXTRA_KCONFIG="CONFIG_ACX_MAC80211=m CONFIG_ACX_MAC80211_USB=y" && make
109 If you use this method (CLI), do not forget to either unset ('unset
110 EXTRA_KCONFIG') or explicitly define EXTRA_KCONFIG for subsequent builds!
112 You can also define the KERNELDIR variable in order to specify a different
113 kernel directory other than that of the the currently running one.
115 Note that you can also execute make with 'make V=1' in order to get verbose
116 information during the build.
118 2.3. Installation
120 TODO -> check the modules_install target (i.e. 'make modules_install' as root)
122 If you have got any comments, questions or want to propose some improvement to
123 these instructions, please either send an e-mail to the acx driver user's
124 mailing list at <acx100-users@list.sourceforge.net> or post a message to the
125 project's forum at http://sourceforge.net/forum/forum.php?forum_id=257272.
127 -----
129 Copyright (C) 2008 The ACX100 Open Source Project
130 <acx100-devel@lists.sourceforge.net>
132 This program is free software: you can redistribute it and/or modify it under
133 the terms of the GNU General Public License as published by the Free Software
134 Foundation, either version 2 of the License, or (at your option) any later
135 version.
137 This program is distributed in the hope that it will be useful, but WITHOUT ANY
138 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
139 PARTICULAR PURPOSE.  See the GNU General Public License for more details.
141 You should have received a copy of the GNU General Public License along with
142 this program.  If not, see <http://www.gnu.org/licenses/>.
144 Original author:
145         David Planella <david.planella AT gmail.com>