No código fonte do driver iwlwifi dvm linux, existe uma função chamada «rs_program_fix_rate» ( link )
A fonte afirma:
/**
* Program the device to use fixed rate for frame transmit
* This is for debugging/testing only
* once the device start use fixed rate, we need to reload the module
* to being back the normal operation.
*/
Para interagir com esta função, eu acho que a partir do código-fonte você pode usar o sistema de arquivos DEBUGFS e o arquivo: /sys/kernel/debug/ieee80211/phy0/netdev:wlp2s0/stations/MAC_ADRESS/rate_scale_table
, executando por exemplo echo "0x2C104" | tee >./rate_scale_table
.
Eu tenho várias perguntas sobre isso:
Como é construída a cadeia hexadecimal que você escreve neste arquivo? O "0x2C104" aparece na saída do arquivo rate_scale_table
que se parece com isto:
sta_id 0
failed=0 success=0 rate=0FFF
fixed rate 0x2C104
valid_tx_ant ANT_A,ANT_B,
lq type legacy
last tx rate=0x4009
general: flags=0x8 mimo-d=0 s-ant=0x1 d-ant=0x3
agg: time_limit=4000 dist_start_th=3 frame_cnt_limit=63
reduced tpc=0
single stream params: INVALID
Start idx [0]=0x0 [1]=0x0 [2]=0x0 [3]=0x0
rate[0] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[1] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[2] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[3] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[4] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[5] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[6] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[7] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[8] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[9] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[10] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[11] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[12] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[13] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[14] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC
rate[15] 0x2C104 HT | ANT: AB BW: 20Mhz MCS: 4 NSS: 1 NGI STBC'
Além disso, ao corrigir a taxa executando echo "0x2C104" | tee >./rate_scale_table
, a taxa de bits informada por iw dev wlp2s0 station dump
não é alterada. Por que é que? Estou misturando taxas diferentes (bit)? Como consertar o birato (ou seja, o MCS) de um cartão iwlwifi dvm / mvm?