mirror of
https://github.com/Mange/rtl8192eu-linux-driver
synced 2024-11-01 03:05:34 +00:00
Merge pull request #184 from yagoplx/realtek-4.4.x
Add AP info, Add Compile-Time Transmit Power Fixing & Boost
This commit is contained in:
commit
ea7cfbd672
55
README.md
55
README.md
@ -129,6 +129,61 @@ If you wish to uninstall the driver at a later point, use
|
||||
_sudo dkms uninstall rtl8192eu/1.0_. To completely remove the driver from DKMS use
|
||||
_sudo dkms remove rtl8192eu/1.0 --all_.
|
||||
|
||||
## Using as AP
|
||||
|
||||
Reference: Intelbras IWA 3001 USB WiFi Adapter
|
||||
Devices using the 8192eu chip can serve as decent access points, with speeds up to ~50Mbps.
|
||||
|
||||
Using hostapd to manage your AP, set the proper ht-capab field for this device, which is:
|
||||
|
||||
`HT_CAPAB=[RX-STBC1][SHORT-GI-40][SHORT-GI-20][DSSS_CCK-40][MAX-AMSDU-7935]`
|
||||
|
||||
Optionally enable wideband, if you don't have neighbours:
|
||||
Note that while this will result in a increase in network throughput it may cause clients further away to fail connecting.
|
||||
It may also make the device work better with repeaters repeating its signal.
|
||||
|
||||
`HT_CAPAB=[HT40+][RX-STBC1][SHORT-GI-40][SHORT-GI-20][DSSS_CCK-40][MAX-AMSDU-7935]` (for channels 1-7), or
|
||||
`HT_CAPAB=[HT40-][RX-STBC1][SHORT-GI-40][SHORT-GI-20][DSSS_CCK-40][MAX-AMSDU-7935]` (for channels 5-13)
|
||||
|
||||
## Changing transmit power
|
||||
|
||||
Currently there is no way to change transmit power in the driver with iw or iwconfig tools, as you would with other wireless devices.
|
||||
The values returned by these tools are purely fictional on this driver.
|
||||
However, you can still manually change the transmit power at compile time
|
||||
by editing the file `hal/rl8192e/rtl8192e_phycfg.c` and changing the lines below:
|
||||
|
||||
```
|
||||
/* Manual Transmit Power Control
|
||||
The following options take values from 0 to 63, where:
|
||||
0 - disable
|
||||
1 - lowest transmit power the device can do
|
||||
2 - highest transmit power the device can do
|
||||
Note that these options may override your country's regulations about transmit power.
|
||||
Setting the device to work at higher transmit powers most of the time may cause premature
|
||||
failure or damage by overheating. Make sure the device has enough airflow before you increase this.
|
||||
It is currently unknown what these values translate to in dBm.
|
||||
*/
|
||||
|
||||
|
||||
// Transmit Power Boost
|
||||
// This value is added to the device's calculation of transmit power index.
|
||||
// Useful if you want to keep power usage low while still boosting/decreasing transmit power.
|
||||
// Can take a negative value as well to reduce power.
|
||||
// Zero disables it. Default: 2, for a tiny boost.
|
||||
int transmit_power_boost = 2;
|
||||
// (ADVANCED) To know what transmit powers this device decides to use dynamically, see:
|
||||
// https://github.com/lwfinger/rtl8192ee/blob/42ad92dcc71cb15a62f8c39e50debe3a28566b5f/hal/phydm/rtl8192e/halhwimg8192e_rf.c#L1310
|
||||
|
||||
|
||||
// Transmit Power Override
|
||||
// This value completely overrides the driver's calculations and uses only one value for all transmissions.
|
||||
// Zero disables it. Default: 0
|
||||
int transmit_power_override = 0;
|
||||
|
||||
|
||||
/* Manual Transmit Power Control */
|
||||
```
|
||||
|
||||
## Submitting patches
|
||||
|
||||
1. Fork repo
|
||||
|
@ -13,18 +13,34 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
#define _RTL8192E_PHYCFG_C_
|
||||
|
||||
/* #include <drv_types.h> */
|
||||
|
||||
#include <rtl8192e_hal.h>
|
||||
|
||||
/*---------------------Define local function prototype-----------------------*/
|
||||
/* Manual Transmit Power Control
|
||||
The following options take values from 0 to 63, where:
|
||||
0 - disable
|
||||
1 - lowest transmit power the device can do
|
||||
2 - highest transmit power the device can do
|
||||
Note that these options may override your country's regulations about transmit power.
|
||||
Setting the device to work at higher transmit powers most of the time may cause premature
|
||||
failure or damage by overheating. Make sure the device has enough airflow before you increase this.
|
||||
It is currently unknown what these values translate to in dBm.
|
||||
*/
|
||||
|
||||
/*----------------------------Function Body----------------------------------*/
|
||||
// Transmit Power Boost
|
||||
// This value is added to the device's calculation of transmit power index.
|
||||
// Useful if you want to keep power usage low while still boosting/decreasing transmit power.
|
||||
// Can take a negative value as well to reduce power.
|
||||
// Zero disables it. Default: 2, for a tiny boost.
|
||||
int transmit_power_boost = 2;
|
||||
// (ADVANCED) To know what transmit powers this device decides to use dynamically, see:
|
||||
// https://github.com/lwfinger/rtl8192ee/blob/42ad92dcc71cb15a62f8c39e50debe3a28566b5f/hal/phydm/rtl8192e/halhwimg8192e_rf.c#L1310
|
||||
|
||||
/*
|
||||
* 1. BB register R/W API
|
||||
* */
|
||||
// Transmit Power Override
|
||||
// This value completely overrides the driver's calculations and uses only one value for all transmissions.
|
||||
// Zero disables it. Default: 0
|
||||
int transmit_power_override = 0;
|
||||
|
||||
/* Manual Transmit Power Control */
|
||||
|
||||
u32
|
||||
PHY_QueryBBReg8192E(
|
||||
@ -715,13 +731,18 @@ PHY_GetTxPowerIndex_8192E(
|
||||
}
|
||||
|
||||
by_rate_diff = by_rate_diff > limit ? limit : by_rate_diff;
|
||||
power_idx = base_idx + by_rate_diff + tpt_offset + extra_bias;
|
||||
power_idx = base_idx + by_rate_diff + tpt_offset + extra_bias + transmit_power_boost;
|
||||
|
||||
if (power_idx < 0)
|
||||
power_idx = 0;
|
||||
else if (power_idx > hal_spec->txgi_max)
|
||||
|
||||
if (transmit_power_override != 0)
|
||||
power_idx = transmit_power_override;
|
||||
|
||||
if (power_idx > hal_spec->txgi_max)
|
||||
power_idx = hal_spec->txgi_max;
|
||||
|
||||
|
||||
return power_idx;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user