LINUX.ORG.RU
ФорумMobile

Как устроено энергосбережение WiFi в андроид?

 , ,


0

1

Народ, подскажите, как перенести механизм блокировки засыпания WiFi из Android в Linux?

Точнее, как вообще это устроено? В андроиде дёргается createWifiLock из WifiManager, и это не дает мобиле уснуть, пока нужна передача данных. Пытался проследить по сырцам AOSP, что же именно дёргается, к примеру в драйвере, но запутался в таймерах - там коллбэк на коллбэке, и в определенный момент уже непонятно, куда итоговый интент уходит.

★★★★★
Ответ на: комментарий от symon2014

Ну, это драйверо-специфичная, и к сожалению, здесь SoC, который писали китайцы, поэтому там сам Линус ногу сломит. Но ведь в андроиде же WifiManager должен с любыми модулями работать?

Есть такое:

wlan_drv_gen3        4866048  0
wmt_chrdev_wifi        20480  1 wlan_drv_gen3
wmt_drv              1224704  5 wmt_chrdev_wifi,wlan_drv_gen3,bt_drv,gps_drv

но они без вяких параметров

eagleivg ★★★★★
() автор топика
Последнее исправление: eagleivg (всего исправлений: 1)
Ответ на: комментарий от eagleivg

https://wiki.archlinux.org/title/Network_configuration/Wireless

Тогда полистай здесь. Страница есть на русском языке. И в тексте есть ссылка отдельно о энергосбережении. Тоже любопытно. Возможно что то подойдёт и китайцу )) PS. Кстати страница на китайском тоже есть ))

symon2014 ★★
()

Минимальный драйверонезависимый интерфейс – nl80211. Общеупотребимого API более высокого уровня, кажется, нет. Этим занимаются всякие power manager’ы, вроде tlp или tuned. Специального юзерспейсного интерфейса для тонкой настройки тоже нет, адаптер управляется как любое другое pcie устройство.

Впрочем, я не до конца понял вопрос. Как перенести, как работает, или как сделать в linux?

i586 ★★★★★
()
Последнее исправление: i586 (всего исправлений: 2)