| | 1 | [[PageOutline]] |
| | 2 | |
| | 3 | This information has been tested and created for use on the Gateworks Single Board Computers (SBCs)''', specifically the Ventana family that utilizes the Freescale i.MX6 processors. |
| | 4 | |
| | 5 | Gateworks SBCs can be viewed at the following link: [http://www.gateworks.com] |
| | 6 | |
| | 7 | [[Image(http://trac.gateworks.com/raw-attachment/wiki/OpenWrt/wireless/relayd/gw5100realsmall.png,200px)]] |
| | 8 | = OpenWrt 802.11 Wireless = |
| | 9 | |
| | 10 | For wireless info regarding to other BSP's see: |
| | 11 | * [wiki:Yocto/Wireless Yocto wireless networking] |
| | 12 | * [wiki:Android#WirelessNetworking Android wireless networking] |
| | 13 | |
| | 14 | == General Configuration == |
| | 15 | OpenWrt its own system configuration called Unified Configuration Interface or [http://wiki.openwrt.org/doc/uci UCI]. You can use the '''uci''' command-line utility to get/set configuration or edit the files directly under /system/config (if you know what your doing). Often we will provide uci command-line examples because these can be easily cut-n-pasted into a shell. |
| | 16 | |
| | 17 | Wireless radio configuration is contained in /etc/config/wireless, but the network configuration is contained in /etc/config/network. Each physical radio has a 'wifi-device' config section and each virtual interface (there is always one or more per physical radio) has a 'wifi-iface' config section that also specifies a 'network' config that links back to a section in /etc/config/network. |
| | 18 | |
| | 19 | Example configuration for a single radio (WLE300NX 802.11N) with a wireless Access Point: |
| | 20 | * looking at /etc/config/wireless |
| | 21 | {{{ |
| | 22 | root@OpenWrt:/# cat /etc/config/wireless |
| | 23 | config wifi-device radio0 |
| | 24 | option type mac80211 |
| | 25 | option channel 11 |
| | 26 | option hwmode 11ng |
| | 27 | option path pci0001:00/0001:00:01.0 |
| | 28 | option htmode HT20 |
| | 29 | list ht_capab LDPC |
| | 30 | list ht_capab SHORT-GI-20 |
| | 31 | list ht_capab SHORT-GI-40 |
| | 32 | list ht_capab TX-STBC |
| | 33 | list ht_capab RX-STBC1 |
| | 34 | list ht_capab DSSS_CCK-40 |
| | 35 | |
| | 36 | config wifi-iface |
| | 37 | option device radio0 |
| | 38 | option network lan |
| | 39 | option mode ap |
| | 40 | option ssid OpenWrt |
| | 41 | option encryption none |
| | 42 | }}} |
| | 43 | * using UCI: |
| | 44 | {{{ |
| | 45 | root@OpenWrt:/# uci show wireless |
| | 46 | wireless.radio0=wifi-device |
| | 47 | wireless.radio0.type=mac80211 |
| | 48 | wireless.radio0.channel=11 |
| | 49 | wireless.radio0.hwmode=11ng |
| | 50 | wireless.radio0.path=pci0001:00/0001:00:01.0 |
| | 51 | wireless.radio0.htmode=HT20 |
| | 52 | wireless.radio0.ht_capab=LDPC SHORT-GI-20 SHORT-GI-40 TX-STBC RX-STBC1 DSSS_CCK-40 |
| | 53 | wireless.@wifi-iface[0]=wifi-iface |
| | 54 | wireless.@wifi-iface[0].device=radio0 |
| | 55 | wireless.@wifi-iface[0].network=lan |
| | 56 | wireless.@wifi-iface[0].mode=ap |
| | 57 | wireless.@wifi-iface[0].ssid=OpenWrt |
| | 58 | wireless.@wifi-iface[0].encryption=none |
| | 59 | }}} |
| | 60 | |
| | 61 | |
| | 62 | For more info: |
| | 63 | * [http://wiki.openwrt.org/doc/uci/wireless OpenWrt Wiki for Wireless] |
| | 64 | * [http://wiki.openwrt.org/doc/uci OpenWrt UCI] |
| | 65 | |
| | 66 | |
| | 67 | == Adding a Wireless Radio == |
| | 68 | Here are the steps to add a wireless radio to your board: |
| | 69 | 1. Insert Wireless Card into Mini-PCI / Mini-PCIe slot. |
| | 70 | 2. Power on and boot Gateworks Single Board Computer |
| | 71 | 3. The wireless configuration is located in the file /etc/config/wireless. Run the command '''cat /etc/config/wireless''' to display this file and ensure your device is detected (each physical radio will have a 'wifi-device' section with the 'macaddr' option matching the unique MAC address of the radio |
| | 72 | 4. By default newly detected wireless devices are disabled. You will have to comment out or remove the 'option disabled 1' in the appropriate wifi-device section. |
| | 73 | |
| | 74 | |
| | 75 | == Re-detecting Wireless Radios == |
| | 76 | If something happens to your /etc/config/wireless file, you can force a re-detection with: |
| | 77 | {{{ |
| | 78 | wifi detect > /etc/config/wireless |
| | 79 | }}} |
| | 80 | |
| | 81 | |
| | 82 | == Enabling a Wireless Radio == |
| | 83 | By default OpenWrt does not enable the radios it detects. You must do this using the LuCI web-admin or via shell commands. |
| | 84 | |
| | 85 | Using UCI shell command to enable radio0: |
| | 86 | {{{ |
| | 87 | uci delete wireless.radio0.disabled |
| | 88 | uci commit |
| | 89 | }}} |
| | 90 | |
| | 91 | |
| | 92 | == Radio Identification == |
| | 93 | Each Physical radio detected in a system has a 'wifi-device' section. Which radio each section pertains to is specified by either: |
| | 94 | * a 'macaddr' linking the config section to a specific radio regardless of bus/slot it is detected on (making it easy to move radios around in physical slots if that is your desire). For example: |
| | 95 | {{{ |
| | 96 | option macaddr '04:f0:21:01:3d:02' |
| | 97 | }}} |
| | 98 | * a 'path' pointing to a specific bus/slot (making it easy to refer to a radio in a specific physical location regardless of the radio's unique mac address or order of detection. For example the following specifies the first slot on the first PCI bus: |
| | 99 | {{{ |
| | 100 | option path 'pci0001:00/0001:00:01.0' |
| | 101 | }}} |
| | 102 | * a 'phy' pointing to the order the radio was detected in the system (making it easy to refer to the 'first' radio detected (''phy0'') or the 'second' radio detected (''phy1'') for example) |
| | 103 | {{{ |
| | 104 | option phy 'phy0' |
| | 105 | }}} |
| | 106 | |
| | 107 | == Troubleshooting == |
| | 108 | Here are the common pitfalls of OpenWrt wireless configuration: |
| | 109 | * If the '''/etc/config/wireless''' file does not exist or does not contain a 'wifi-device' section matching your card, the card is not being detected |
| | 110 | * use the latest Gateworks OpenWrt BSP for the latest wireless drivers |
| | 111 | * If the drivers that are loaded on the system do not support the card, the card will not come up. |
| | 112 | * Be sure the proper wireless drivers are loaded on the system for the wireless chipset being used. Using the command '''opkg list''' will show installed packages and drivers. |
| | 113 | * Check to see if the card shows up when using shell commands '''lspci''' (for miniPCI and miniPCIe based cards) or '''lsusb''' (for USB based cards) |
| | 114 | * If not then the card is not getting powered, the slot it is in does not have USB or PCI routed to it, or the card is malfunctioning. |
| | 115 | * Make sure you have 'enabled' the card (see above). By default OpenWrt puts newly detected cards in the disabled state (option disabled 1) |
| | 116 | |
| | 117 | |
| | 118 | == Driver Support == |
| | 119 | OpenWrt uses a fairly modern Linux kernel and drivers from the Linux Backports project which provides support for drivers for many common 802.11 devices. |
| | 120 | |
| | 121 | Some popular drivers (and notes specific to them are): |
| | 122 | * ath9k (802.11n based Qualcomm / Atheros cards): |
| | 123 | * htmod can be set to HT20 (20MHz channel width), HT40- or HT40+ (40MHz channel widths) |
| | 124 | * ath10k (802.11ac based Qualcomm / Atheros cards): |
| | 125 | * htmode can be set to VHT40 (40MHz channel width), VHT80 (80MHz channel width), VHT160 (160MHz channel width, if your card supports it) |
| | 126 | * Sample 802.11AC configuration file for !OpenWrt in /etc/config/wireless using a ACE-DB-3 Doodle Lab Wireless Card in Access Point Mode with a SSID of OpenWrt and no security below: |
| | 127 | {{{ |
| | 128 | config wifi-device radio0 |
| | 129 | option type mac80211 |
| | 130 | option channel 157 |
| | 131 | option hwmode 11a |
| | 132 | option path 'soc0/soc.0/1ffc000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/0000:02:05.0/0000:05:00.0' |
| | 133 | option htmode VHT80 |
| | 134 | |
| | 135 | config wifi-iface |
| | 136 | option device radio0 |
| | 137 | option network lan |
| | 138 | option mode ap |
| | 139 | option ssid OpenWrt |
| | 140 | option encryption none |
| | 141 | }}} |
| | 142 | |
| | 143 | == Wireless Configurations == |
| | 144 | * [wiki:OpenWrt/wireless/access_point standard Access Point] |
| | 145 | * [wiki:OpenWrt/wireless/client standard Wireless client (without Bridging)] |
| | 146 | * [wiki:OpenWrt/wireless/wireless_bridge Wireless Bridge - Layer2 bridge using wireless and WDS] |
| | 147 | * [wiki:OpenWrt/wireless/relayd relayd - Bridge like Client Mode (when using an AP w/o WDS] |
| | 148 | |
| | 149 | * [wiki:performance_tuning#WirelessTuning Wireless Throughput Tuning for Higher Numbers] |
| | 150 | |
| | 151 | == Networking == |
| | 152 | * [wiki:OpenWrt/network_config Configure Network settings such as IP Address] |
| | 153 | |