8devices / carambola

Carambola - RT305x/SoC based PCB
http://openwrt.org/
GNU General Public License v2.0
26 stars 12 forks source link

WiFi radio power settings can't be altered #9

Closed Lukse closed 11 years ago

Lukse commented 11 years ago

WiFi power settings can't be changed. It is not really clear what power level Carambola is operating at.

/etc/config/wireless
===============
config wifi-device  radio0
        option type     mac80211
        option channel  11
        option macaddr  00:0c:43:30:54:88
        option hwmode   11ng
        option htmode   HT20
        list ht_capab   GF
        list ht_capab   SHORT-GI-20
        list ht_capab   SHORT-GI-40
        list ht_capab   TX-STBC
        list ht_capab   RX-STBC12
        option txpower 10

config wifi-iface
        option device 'radio0'
        option ssid '********'
        option mode 'sta'
        option encryption 'psk2'
        option key '**********'
        option network 'wwan'

iwconfig output:

wlan0     IEEE 802.11bgn  ESSID:off/any  
 Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm   
 RTS thr:off   Fragment thr:off
 Encryption key:off
 Power Management:off
Lukse commented 11 years ago

Formatting is a bit distorted, but looks still understandable.

valinskas commented 11 years ago

Can you do the following and post strace output on this ticket:

# opkg install strace
# strace iwconfig

Strace example output:

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f09a5612000
read(4, "Inter-|   Receive               "..., 1024) = 693
ioctl(3, SIOCGIWNAME, 0x7fff99ed83f0)   = -1 EOPNOTSUPP (Operation not supported)
ioctl(3, SIOCGIFFLAGS, {ifr_name="lo", ifr_flags=IFF_UP|IFF_LOOPBACK|IFF_RUNNING}) = 0
write(2, "lo        no wireless extensions"..., 35lo        no wireless extensions.

) = 35
ioctl(3, SIOCGIWNAME, 0x7fff99ed83f0)   = 0
ioctl(3, SIOCGIWNWID, 0x7fff99ed83f0)   = -1 EOPNOTSUPP (Operation not supported)
ioctl(3, SIOCGIWFREQ, 0x7fff99ed83f0)   = 0
ioctl(3, SIOCGIWENCODE, 0x7fff99ed83f0) = -1 EPERM (Operation not permitted)
ioctl(3, SIOCGIWESSID, 0x7fff99ed83f0)  = 0
ioctl(3, SIOCGIWMODE, 0x7fff99ed83f0)   = 0
ioctl(3, SIOCGIWRANGE, 0x7fff99ed83e0)  = 0
ioctl(3, SIOCGIWAP, 0x7fff99ed8970)     = 0
ioctl(3, SIOCGIWRATE, 0x7fff99ed8970)   = 0
ioctl(3, SIOCGIWPOWER, 0x7fff99ed8970)  = 0
ioctl(3, SIOCGIWSTATS, 0x7fff99ed8300)  = 0
ioctl(3, SIOCGIWNICKN, 0x7fff99ed8970)  = -1 EOPNOTSUPP (Operation not supported)
ioctl(3, SIOCGIWTXPOW, 0x7fff99ed8970)  = 0
ioctl(3, SIOCGIWSENS, 0x7fff99ed8970)   = -1 EOPNOTSUPP (Operation not supported)
ioctl(3, SIOCGIWRETRY, 0x7fff99ed8970)  = 0
ioctl(3, SIOCGIWRTS, 0x7fff99ed8970)    = 0
ioctl(3, SIOCGIWFRAG, 0x7fff99ed8970)   = 0
fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 2), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f09a5611000

I suspect that CONFIG_CFG80211_WEXT=y option is missing in kernel configuration.

Lukse commented 11 years ago

root@OpenWrt:/# opkg install strace Unknown package 'strace'. Collected errors:

Lukse commented 11 years ago

Compiled from scratch.

root@OpenWrt:/# strace iwconfig execve("/usr/sbin/iwconfig", ["iwconfig"], [/* 7 vars */]) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77afa000 stat("/etc/ld.so.cache", 0x7fa05160) = -1 ENOENT (No such file or directory) open("/lib/libm.so.0", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0755, st_size=85627, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77af9000 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\200\26\0\0004\0\0\0"..., 4096) = 4096 old_mmap(NULL, 151552, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x77ac0000 old_mmap(0x77ac0000, 85168, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x77ac0000 old_mmap(0x77ae4000, 3707, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x14000) = 0x77ae4000 close(3) = 0 munmap(0x77af9000, 4096) = 0 open("/lib/libgcc_s.so.1", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=76843, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77af9000 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\3402\0\0004\0\0\0"..., 4096) = 4096 old_mmap(NULL, 143360, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x77a9d000 old_mmap(0x77a9d000, 76448, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x77a9d000 old_mmap(0x77abf000, 3115, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x12000) = 0x77abf000 close(3) = 0 munmap(0x77af9000, 4096) = 0 open("/lib/libc.so.0", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0755, st_size=359600, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77af9000 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\320\237\0\0004\0\0\0"..., 4096) = 4096 old_mmap(NULL, 446464, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x77a30000 old_mmap(0x77a30000, 352648, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x77a30000 old_mmap(0x77a96000, 7344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x56000) = 0x77a96000 old_mmap(0x77a98000, 17508, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x77a98000 close(3) = 0 munmap(0x77af9000, 4096) = 0 open("/lib/libc.so.0", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0755, st_size=359600, ...}) = 0 close(3) = 0 open("/lib/libc.so.0", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0755, st_size=359600, ...}) = 0 close(3) = 0 stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=28966, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77af9000 set_thread_area(0x77b00440) = 0 mprotect(0x77a96000, 4096, PROT_READ) = 0 mprotect(0x77afb000, 4096, PROT_READ) = 0 ioctl(0, TIOCNXCL, {B115200 opost isig icanon echo ...}) = 0 ioctl(1, TIOCNXCL, {B115200 opost isig icanon echo ...}) = 0 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3 brk(0) = 0x910000 brk(0x911000) = 0x911000 open("/proc/net/dev", O_RDONLY) = 4 ioctl(4, TIOCNXCL, 0x7fa04ef0) = -1 ENOTTY (Inappropriate ioctl for device) brk(0x912000) = 0x912000 read(4, "Inter-| Receive "..., 4096) = 815 ioctl(3, 0x8b01, 0x7fa04ae0) = -1 EOPNOTSUPP (Operation not supported) ioctl(3, 0x8913, {ifr_name="eth0.1", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0 write(2, "eth0.1", 6eth0.1) = 6 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " no wireless extensions.\n\n", 27 no wireless extensions.

) = 27 ioctl(3, 0x8b01, 0x7fa04ae0) = -1 EOPNOTSUPP (Operation not supported) ioctl(3, 0x8913, {ifr_name="lo", ifr_flags=IFF_UP|IFF_LOOPBACK|IFF_RUNNING}) = 0 write(2, "lo", 2lo) = 2 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " no wireless extensions.\n\n", 27 no wireless extensions.

) = 27 ioctl(3, 0x8b01, 0x7fa04ae0) = -1 EOPNOTSUPP (Operation not supported) ioctl(3, 0x8913, {ifr_name="eth0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0 write(2, "eth0", 4eth0) = 4 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " no wireless extensions.\n\n", 27 no wireless extensions.

) = 27 ioctl(3, 0x8b01, 0x7fa04ae0) = -1 EOPNOTSUPP (Operation not supported) ioctl(3, 0x8913, {ifr_name="br-lan", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0 write(2, "br-lan", 6br-lan) = 6 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " no wireless extensions.\n\n", 27 no wireless extensions.

) = 27 ioctl(3, 0x8b01, 0x7fa04ae0) = -1 EOPNOTSUPP (Operation not supported) ioctl(3, 0x8913, {ifr_name="eth0.2", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0 write(2, "eth0.2", 6eth0.2) = 6 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " no wireless extensions.\n\n", 27 no wireless extensions.

) = 27 read(4, "", 4096) = 0 close(4) = 0 close(3) = 0 exit_group(0) = ?

valinskas commented 11 years ago

I don't anything about wlan0 interface in the strace output. Wifi is still disabled ?

Lukse commented 11 years ago

Check again. interface was still down.

root@OpenWrt:/# strace iwconfig execve("/usr/sbin/iwconfig", ["iwconfig"], [/* 7 vars */]) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77c80000 stat("/etc/ld.so.cache", 0x7fac0070) = -1 ENOENT (No such file or directory) open("/lib/libm.so.0", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0755, st_size=85627, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77c7f000 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\200\26\0\0004\0\0\0"..., 4096) = 4096 old_mmap(NULL, 151552, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x77c46000 old_mmap(0x77c46000, 85168, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x77c46000 old_mmap(0x77c6a000, 3707, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x14000) = 0x77c6a000 close(3) = 0 munmap(0x77c7f000, 4096) = 0 open("/lib/libgcc_s.so.1", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=76843, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77c7f000 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\3402\0\0004\0\0\0"..., 4096) = 4096 old_mmap(NULL, 143360, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x77c23000 old_mmap(0x77c23000, 76448, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x77c23000 old_mmap(0x77c45000, 3115, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x12000) = 0x77c45000 close(3) = 0 munmap(0x77c7f000, 4096) = 0 open("/lib/libc.so.0", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0755, st_size=359600, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77c7f000 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\320\237\0\0004\0\0\0"..., 4096) = 4096 old_mmap(NULL, 446464, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x77bb6000 old_mmap(0x77bb6000, 352648, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x77bb6000 old_mmap(0x77c1c000, 7344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x56000) = 0x77c1c000 old_mmap(0x77c1e000, 17508, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x77c1e000 close(3) = 0 munmap(0x77c7f000, 4096) = 0 open("/lib/libc.so.0", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0755, st_size=359600, ...}) = 0 close(3) = 0 open("/lib/libc.so.0", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0755, st_size=359600, ...}) = 0 close(3) = 0 stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=28966, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77c7f000 set_thread_area(0x77c86440) = 0 mprotect(0x77c1c000, 4096, PROT_READ) = 0 mprotect(0x77c81000, 4096, PROT_READ) = 0 ioctl(0, TIOCNXCL, {B115200 opost isig icanon echo ...}) = 0 ioctl(1, TIOCNXCL, {B115200 opost isig icanon echo ...}) = 0 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3 brk(0) = 0x9a3000 brk(0x9a4000) = 0x9a4000 open("/proc/net/dev", O_RDONLY) = 4 ioctl(4, TIOCNXCL, 0x7fabfe00) = -1 ENOTTY (Inappropriate ioctl for device) brk(0x9a5000) = 0x9a5000 read(4, "Inter-| Receive "..., 4096) = 1062 ioctl(3, 0x8b01, 0x7fabf9f0) = -1 EOPNOTSUPP (Operation not supported) ioctl(3, 0x8913, {ifr_name="eth0.1", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0 write(2, "eth0.1", 6eth0.1) = 6 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " no wireless extensions.\n\n", 27 no wireless extensions.

) = 27 ioctl(3, 0x8b01, 0x7fabf9f0) = -1 EOPNOTSUPP (Operation not supported) ioctl(3, 0x8913, {ifr_name="lo", ifr_flags=IFF_UP|IFF_LOOPBACK|IFF_RUNNING}) = 0 write(2, "lo", 2lo) = 2 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " no wireless extensions.\n\n", 27 no wireless extensions.

) = 27 ioctl(3, 0x8b01, 0x7fabf9f0) = 0 ioctl(3, 0x8b03, 0x7fabf9f0) = -1 EOPNOTSUPP (Operation not supported) ioctl(3, 0x8b05, 0x7fabf9f0) = 0 ioctl(3, 0x8b2b, 0x7fabf9f0) = 0 ioctl(3, 0x8b1b, 0x7fabf9f0) = 0 ioctl(3, 0x8b07, 0x7fabf9f0) = 0 ioctl(3, 0x8b0b, 0x7fabf9e8) = 0 ioctl(3, 0x8b15, 0x7fabfe20) = 0 ioctl(3, 0x8b21, 0x7fabfe20) = 0 ioctl(3, 0x8b2d, 0x7fabfe20) = 0 ioctl(3, 0x8b0f, 0x7fabf8f8) = 0 ioctl(3, 0x8b27, 0x7fabfe20) = 0 ioctl(3, 0x8b23, 0x7fabfe20) = 0 ioctl(3, 0x8b25, 0x7fabfe20) = 0 write(1, "wlan0 IEEE 802.11bgn ESSID:"..., 66wlan0 IEEE 802.11bgn ESSID:"****"
) = 66 write(1, "Mode:Managed Frequency:2.462 GH"..., 80Mode:Managed Frequency:2.462 GHz Access Point: 00:19:3B:FC:EE:D0
) = 80 write(1, "Bit Rate=28.9 Mb/s Tx-Power=0 "..., 49Bit Rate=28.9 Mb/s Tx-Power=0 dBm
) = 49 write(1, "RTS thr:off Fragment thr:off\n "..., 41RTS thr:off Fragment thr:off ) = 41 write(1, "Encryption key:off\n ", 29Encryption key:off ) = 29 write(1, "Power Management:off\n ", 31Power Management:off ) = 31 write(1, "Link Quality=44/70 Signal level"..., 43Link Quality=44/70 Signal level=-66 dBm
) = 43 write(1, " Rx invalid nwid:0 Rx "..., 98 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:) = 98 write(1, "5 Invalid misc:3 Missed beaco"..., 365 Invalid misc:3 Missed beacon:0 ) = 36 write(1, "\n", 1 ) = 1 ioctl(3, 0x8b01, 0x7fabf9f0) = -1 EOPNOTSUPP (Operation not supported) ioctl(3, 0x8913, {ifr_name="eth0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0 write(2, "eth0", 4eth0) = 4 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " no wireless extensions.\n\n", 27 no wireless extensions.

) = 27 ioctl(3, 0x8b01, 0x7fabf9f0) = -1 EOPNOTSUPP (Operation not supported) ioctl(3, 0x8913, {ifr_name="br-lan", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0 write(2, "br-lan", 6br-lan) = 6 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " no wireless extensions.\n\n", 27 no wireless extensions.

) = 27 ioctl(3, 0x8b01, 0x7fabf9f0) = -1 EINVAL (Invalid argument) ioctl(3, 0x8913, {ifr_name="3g-ppp0", ifr_flags=IFF_UP|IFF_POINTOPOINT|IFF_RUNNING|IFF_NOARP|IFF_MULTICAST}) = 0 write(2, "3g-ppp0", 73g-ppp0) = 7 write(2, " ", 1 ) = 1 write(2, " no wireless extensions.\n\n", 27 no wireless extensions.

) = 27 ioctl(3, 0x8b01, 0x7fabf9f0) = -1 EOPNOTSUPP (Operation not supported) ioctl(3, 0x8913, {ifr_name="eth0.2", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0 write(2, "eth0.2", 6eth0.2) = 6 write(2, " ", 1 ) = 1 write(2, " ", 1 ) = 1 write(2, " no wireless extensions.\n\n", 27 no wireless extensions.

) = 27 read(4, "", 4096) = 0 close(4) = 0 close(3) = 0 exit_group(0) = ?

valinskas commented 11 years ago

Everything seems to be working:

wlan0     IEEE 802.11bgn  ESSID:"some-ssid"  
          Mode:Managed  Frequency:2.432 GHz  Access Point: xx:xx:xx:xx:xx:xx 
          Bit Rate=6.5 Mb/s   Tx-Power=20 dBm  
          RTS thr:off   Fragment thr:off  
          Encryption key:off 
          Power Management:off  
          Link Quality=68/70  Signal level=-42 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0 
          Tx excessive retries:0  Invalid misc:14   Missed beacon:0  

When carambola is not connected to an AP:

wlan0     IEEE 802.11bgn  ESSID:off/any  
 Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm   
 RTS thr:off   Fragment thr:off
 Encryption key:off
 Power Management:off

Changing TX power via iwconfig wlan0 txpower XX works just fine. iwconfig shows set value. So I am not sure there is any problems/