So far, I have not found a way to turn off power management.. Usually it goes like this -
iwconfig eth0 power off
I did notice wmiconfig and thus tried wmiconfig --getpower which gave me:
eth1
Power mode is rec
Power mode can be rec or maxperf..
If any of you have used the broadcom drivers in Linux, you'll know that they slow down big time when power management is set to 'All Packets Received'. On my laptop with a 300mb/sec 5ghz 802.11n connection, I get 2MB/sec with PM on.. 19MB/sec with PM off. It matters..
I haven't been able to find much on wmiconfig due to MS having an identical name for one of its utilities. I'm going to try the iwmulticall binary from my g2 now.... ok.. got errors. it listed lo, tunl0, and gre0.. then it died.. heh.
Has anyone turned off the PM or been able to interface with the bcm wifi chip? It'd be even cooler if we could turn up the tx-power a little.
Nothing? Do you guys think the bottleneck for wifi transfer speed is the emmc?!
Any progress?
I have an Adam, which uses same wmiconfig and BCM4329 wifi.
wmiconfig have options like --power maxperf , but when I use it and try --getpower it reports back rec mode and not maxperf
Also there is option --txoptbursting 1 but not sure if it worked or at lease I don't know how to check if it has changed.
Yes. I can get 4-5MB/second (receive via ubuntu ncftp as client, gtab server) with power management turned off. CIFS has slightly lower speeds - but that's normal. SFTP is also decent (allows me to access / in its entirety as if it were mounted locally).
Anyways... put this in /system/xbin/
http://home.comcast.net/~ibladesi/iwmulticall
and start symlinking to it... like so
# cd /system/xbin/
/system/xbin # ln -s /system/xbin/iwmulticall iwconfig
Here are the symlinks you can create in addition to iwconfig:
iwgetid iwlist iwpriv iwspy
My normal use for it is-
iwconfig wlan0 power off
So I made a script and named it fstwan so its quick to type.
Don't try to set the txpower, that seems to be broken with all android devices.
And yeah, wmiconfig seems to be complete horse****.. that's even worse than bs. I don't think that this will change the tame nature of the wifi radio's power output.. I think it has more to do with system utilization.. its such strange default behavior. For example, using a ssh client to connect to the device is brutal in terms of responsiveness, turn pm off and viola, its like you're using adb.
removing wifi scan ro. lines from build.prop & using setprop "on demand" wifi call?
If I understand correctly, many people add certain lines to their build prop to allow settings on the device as read only i.e ro.
However for many people having this as set could mean in such cases where wifi scan interval is set to hi (or more frequent i.e 20)to enable maintained wifi connection during calls....that they will suffer with some amounts of battery drain.
Other people who are not interested in wifi calling could (could and usually do) set the scanning to a much high (or infrequent scan value of like 180) this is fine in most cases where battery consumption is considerably less and more desirable and even better when coupled with a modem to suit their region, provider and band.
But lets say someone uses wifi calling, but they don't want to permanently "set" i.e. an ro line within the build prop to constantly scan 20 when they are not on a wifi call. This is mostly true for most wifi callers around, unless the phone they are using is a dedicated inhouse wifi device (and yes I have considered a nice lil cheaper to do this with my self) anyway I hope you guys can see where I am headed with this?
Could say a script be generated where when a process is enabled that it calls the script to ramp up wifi scanning to a smaller more frequent value 20 when "ON A WIFI CALL" (that being the process) and then revert to a lower value (set otherwise so to speak) and conserve batter when "NOT ON A WIFI CALL" ?
If so can someone direct me with how to go about doing this?
I am in the process of setting up an installation package for T-mobile users on ICS using Galaxy S & variants of....and would like to include in my installation package a way of detecting and removing the wifi scan intival from the build.prop ro line and then paste the my scripting within system.
I already know how to make a install script that does the detect and CHANGE or detect and REMOVE in the build prop for ALL types of ICS Galaxys.....however I am not sure about how to generate and then intitate an "on-demand" scripting for wifi calls? I assume that this is a setprop type function if so long as the ro function is gone (which is a read only and set at a higher precedent than any other functions if I believe right?)
Any help or pointed would be greatly appreciated.
James
I'm using a Samsung Fascinate with AOKP Milestone 5 by Stephen.k.spear.
My second device is an Asus Transformer TF-101 running Megatron CM9 based ROM by ricardopvz.
I use WiFi Tether for Root that is no longer beta and available on the market so I have the newest version. My WiFi tether set up options that are pertinent to this post are as follows:
1. Change Device Profile
a. Samsung Galaxy Nexus (CDMA/LTE)
2. Change Setup Method
a. Netd (master)
3. Change LAN
a. 192.168.1.0/24
4. Routing Fix
a. Routing fix is NOT enabled
5. Default DNS settings
I have no issues tethering, it works very well, very fast. I can ping by hostname from each device while tethered. I have set both device name entries in the host file.
My issue while tethering: When I run netstat on the Transformer, I can see that wlan0 is listening on port 139(NetBIOS) and 445(SMB). However, when I netstat on the Fascinate, it is NOT listening to either of these ports. I use the Samba app available from the market and have configured all the appropriate settings for both devices.
Using the ip route command, I can see that both devices show appropriate routing on 192.168.1.x to the appropriate adapter (wlan0).
Why won't the Fascinate listen for the two ports when the adapter (wlan0) appears to be working fine, routing is good, pinging by NetBIOS name from the hosts file, and Samba is broadcasting NetBIOS and SMB?
My purpose for this post and the questions is to be able to perform wireless syncing between the two devices and a computer for various directories like Pictures and Documents. I want all three devices to be the same. If I go home and connect to WiFi the IP addresses will change and I will constantly have to adjust settings. I'm looking for a seamless option because I use tether almost as much as I use home WiFi.
I figured it out. WiFi Tether app creates a rule with iptables called wireless-tether. It's regenerated each time the app starts by using the tether.edify file in the app's data directory. If you edit the firewall rule it will default back after the app starts again. I have emailed the dev to see if they can allow some user options so the traffic can pass internally such as netbios and samba.
The default linux rules allow all traffic which is why netstat on the tablet passes netbios and smb. The tablet is connecting wirelessly with no changes to iptables.
Also, standard home wifi on the phone would also pass the traffic because no additional rules to the iptables are being made.
I mean this is stupid... you can have IPv6 APN and everything, but on WIFI you cant get IPv6 address... I have dualstack LAN at home, every client should get local IPv4 address and public IPv6. But for some silly reason Google decided to not include this in to ICS, but since there is support for UMTS IPv6 APNs it should WORK technically... This works flawlessly on iPhone4S and other clients (read computers) that supports IPv6 on my LAN...
From what I can see, ICS manages to configure a IPv6 global address on its wlan0 interface via autoconfiguration.
Looking at results from tcpdump and other command line tools, there seem to be two other problems:
1) Even though there is a router on the LAN sending router advertisements and the device configures its address, it does not seem to install or use the the default gateway. I am able to ping the phone via IPv6 on the same local /64 global, and its link local, and am able to ping those devices back from the device (ping6 via busybox). I cannot however ping past the local IPv6 global network.
2) None of the web browsers on the phone I have tried seem to be doing AAAA lookups. Confirmed tcpdump, even when trying to resolve names that only have AAAA records, the request only ever goes out for an A record and never a AAAA.
I was able to run a web server on the same local /64 the phone was configured on, and was able to browse to it by its IPv6 address directly through the browser. So it does work, just missing the default route and AAAA DNS functionality it seems.
As an FYI this was tested on a rooted Galaxy S3 SGH-I747M running 4.0.4. I'm assuming the IPv6 functionality wouldn't be any different between this and the SII, but maybe I'm wrong.
themikea said:
1) Even though there is a router on the LAN sending router advertisements and the device configures its address, it does not seem to install or use the the default gateway. I am able to ping the phone via IPv6 on the same local /64 global, and its link local, and am able to ping those devices back from the device (ping6 via busybox). I cannot however ping past the local IPv6 global network.
Click to expand...
Click to collapse
I have a Galaxy S3 SPH-L710 running Android 4.0.4, and I had the same problem with it not configuring the default IPv6 route. There is a sysctl variable that controls whether the Linux kernel automatically adds the default route advertised in the IPv6 Router Advertisement messages, and it defaults to 0 (off) on the phone. Look at /proc/sys/net/ipv6/conf/default/accept_ra_defrtr.
themikea said:
2) None of the web browsers on the phone I have tried seem to be doing AAAA lookups. Confirmed tcpdump, even when trying to resolve names that only have AAAA records, the request only ever goes out for an A record and never a AAAA.
Click to expand...
Click to collapse
When I set accept_ra_defrtr to 1 and cycled my Wi-Fi connection, it came back up and added the default IPv6 route. Now test-ipv6.com on my phone gives me a 10/10 on both IPv4 and IPv6, meaning the DNS resolver is asking for AAAA records too and even preferring them when a host has both A and AAAA, which is the recommended and desired behavior. Loading comcast6.net on my phone shows my IP address as an IPv6 address.
Trouble is, setting sysctl variables in /proc/sys will not survive through a reboot, and there is no /etc/sysctl.conf on Android, so I don't know where to stash this setting so it gets applied on every boot. There is no file anywhere in /system that contains "accept_ra_defrtr" except for the vpnclient.ko kernel module, and that's not loaded, so I'd guess the kernel has been modified to disable IPv6 default routes by default.
Any idea if there's an Android equivalent of inittab or sysctl.conf or how might I go about setting that sysctl variable automatically on boot?
whitslack said:
I have a Galaxy S3 SPH-L710 running Android 4.0.4, and I had the same problem with it not configuring the default IPv6 route. There is a sysctl variable that controls whether the Linux kernel automatically adds the default route advertised in the IPv6 Router Advertisement messages, and it defaults to 0 (off) on the phone. Look at /proc/sys/net/ipv6/conf/default/accept_ra_defrtr.
When I set accept_ra_defrtr to 1 and cycled my Wi-Fi connection, it came back up and added the default IPv6 route. Now test-ipv6.com on my phone gives me a 10/10 on both IPv4 and IPv6, meaning the DNS resolver is asking for AAAA records too and even preferring them when a host has both A and AAAA, which is the recommended and desired behavior. Loading comcast6.net on my phone shows my IP address as an IPv6 address.
Trouble is, setting sysctl variables in /proc/sys will not survive through a reboot, and there is no /etc/sysctl.conf on Android, so I don't know where to stash this setting so it gets applied on every boot. There is no file anywhere in /system that contains "accept_ra_defrtr" except for the vpnclient.ko kernel module, and that's not loaded, so I'd guess the kernel has been modified to disable IPv6 default routes by default.
Any idea if there's an Android equivalent of inittab or sysctl.conf or how might I go about setting that sysctl variable automatically on boot?
Click to expand...
Click to collapse
bro look at your /system/etc/init.d. if it exists, you can add a new script as
#!/system/bin/sh
echo 1>/sys/XXXXXXX
in init.d and name it 89enipv6 or sth.
if it don't work, check your /system/bin/sysinit. if it doesn't exist, google and copy one.
Does anyone know how I can disable IPV6 on my S3 ?
ahoslc said:
Does anyone know how I can disable IPV6 on my S3 ?
Click to expand...
Click to collapse
Why do you want to disable IPv6? It's new better version of IP protocol and should be used whenever it possible.
runapp said:
bro look at your /system/etc/init.d. if it exists, you can add a new script as
#!/system/bin/sh
echo 1>/sys/XXXXXXX
in init.d and name it 89enipv6 or sth.
if it don't work, check your /system/bin/sysinit. if it doesn't exist, google and copy one.
Click to expand...
Click to collapse
In my case of 4.1.3 the value of 0 rewrited in /proc/sys/net/ipv6/conf/wlan0/accept_ra_deftrt on every wifi interface restart, even independently on "all"/"default" values.
So, many custom ROMs -- including CM10.1, Carbon -- won't connect to certain 802.11a/n networks. This seems to be because they are distributing a UK-specific version of the file /system/etc/wifi/nvram_net.txt, which is loaded by the dhd module on enabling wifi.
The version they distribute contains the line:
ccode=GB
If you edit the file and change this line to
ccode=ALL
and turn off and back on wifi in your system settings, you should be able to connect just fine.
(The mac80211 stack should be taking care of regulatory compliance anyways, so I think this is unnecessary anywhere. But if somehow this short-circuits the kernel's efforts, you may find yourself in trouble with the FCC or equivalent. This should be fairly easy to test, but I am not worried enough to take the time -- for this to cause problems, you would also need a router that ignores the regulatory environment. Those are hard to find in the US, at least.)