Wi-Fi адаптер через OTG
Идея перевести сетевую карту телефона в режим монитора разрушилась по причине собственной наивности и незнания элементарной информации о том, что подавляющее большинство мобильных сетевых карт этот самый режим монитора и не поддерживают.
Идея реализации задумки с помощью внешнего беспроводного Wi-Fi адаптера или «свистка», поддерживающего желанный режим монитора, рушилась десятки раз из-за новых и новых ошибок и потери веры в то, что это вообще возможно, но переросла в данную статью.
Итак, как подключить внешний Wi-Fi адаптер к устройству на Android или бег с препятствиями на дистанции «вставил — netcfg wlan0 up»:
Должно быть в наличии:
- Телефон на Android
- Поддержка OTG и сам OTG
- Terminal Emulator
- ROOT
- Исходники ядра
FAQ — структура выглядит так:
Мой случай:
- Samsung GT-P5100 Galaxy Tab 2 10.1, Андроид 4.2.2
- OTG «30-pin — USB»
- Terminal Emulator for Android
- ROOT
- Исходники стокового ядра 3.0.31-1919150 с сайта Самсунг
- Адаптер TP-LINK TL-WN722N на чипсете AR9271
- ath9k_htc/htc_9271.fw
- Дистрибутив Ubuntu 15.04 в VMware
- android-tools-adb
Начну. Но попрошу учесть, что далее все рассматривается для вышеперечисленного набора и алгоритм, скорее всего, не является универсальным, но отклонения незначительны.
I. Старт
Первым делом необходимо добыть фирмварь вашего адаптера. Вставляю адаптер в компьютер и выполняю команду dmesg . Нахожу:
Где слово правее слова driver — искомая информация. У меня это — ath9k_htc. Гуглю для него firmware. Качаю. Закидываю .fw-файл на телефон в /system/etc/firmware
Затем устанавливаю ADB:
apt-get install android-tools-adb
Третьим этапом качаю тулчейн (компилятор под ARM) отсюда. Там большой архив, мне нужна лишь папка android-platform_prebuilt-android-sdk-adt_r20-0-ga4062cc.zip\android-platform_prebuilt-a4062cc\linux-x86\toolchain\arm-eabi-4.4.3, которую я распаковываю в произвольное место.
II. Разгон
Для начала пишу терминале:
Затем перехожу в терминале в каталог с исходниками ядра, загруженными ранее, пишу
make help и получаю тучу информации, среди которой нужно найти нечто, заканчивающееся на _defconfig, у меня это:
И в завершении запускаю графическую конфигурацию ядра:
Появляется вот такое окно:
Продвигаюсь по маршрутам:
- Networking support → Wireless
Спускаюсь к Generic IEEE 802.11 Networking stack (mac80211) и нажимаю на пробел, наблюдая появление значка М перед этим пунктом
Device Drivers -> Network device support → Wireless LAN
Ставлю М у своего чипсета, в моем случае — Atheros Wireless Cards
Затем перехожу в сам этот раздел и внутри отмечаю все тем же пробелом и знаком M нужный мне пункт.
Сохраняю. Возвращаюсь в терминал, а если вы его закрыли, то в и каталог с исходниками тоже, и выполняю сначала make modules_prepare , а следом просто make . Результат потребует ожидания. Мой итоговый набор:
Потребуются модули (.ko-файлы), включающие слово ath и mac80211.ko. Переношу их на телефон.
Можно использовать adb, работая через компьютер, а можно не использовать и работать через терминал телефона, печатая команды пальцами по экрану. Я выбрал adb.
Напомню, как он работает. Подключаю телефон через USB (отладка, естественно, включена) и выполняю:
adb start-server
adb shell
su
Я в телефоне и под рутом.
Смотрю, какие модули уже есть командой lsmod и выгружаю их все, если это возможно, командой rmmod имямодуля
Затем перехожу в каталог с вышеперечисленными модулями:
cd /sdcard/ваш путь/
Можно убедиться в их наличии командой ls .
Загружаю их командой insmod имямодуля в такой и только такой последовательности (иначе просто не загрузится, выдавая ошибку):
ath.ko
ath9k_hw.ko
ath9k_common.ko
mac80211.ko
ath9k_htc.ko
III. Препятствия
В этом и вся соль, без которой статья была бы слишком простой.
1. Версии
Естественно, первая ошибка возникает на первом этапе.
Смотрю, что скажет об этом буфер сообщений ядра, выполнив команду dmesg :
Не совпадают версии. 3.0.31 не есть 3.0.31-1919150.
Открываю тот самый Makefile в исходниках ядра и в самом верху файла нахожу:
VERSION = 3
PATCHLEVEL = 0
SUBLEVEL = 31
EXTRAVERSION =
NAME = Sneaky Weasel
VERSION = 3
PATCHLEVEL = 0
SUBLEVEL = 31
EXTRAVERSION = -1919150
NAME = Sneaky Weasel
И сохраняю.
Заключительный этап пройдет в каталоге /include/config, где в файле kernel.release я поменяю 3.0.31 на 3.0.31-1919150
Снова make modules_prepare , make и далее по предыдущему пункту.
2. ewma
Загружая mac80211.ko снова имею ошибку, о которой dmesg скажет следующее:
Чудом прочитав на одном из англоязычных форумов опасное, но единственное в интернете, «решение», я перехожу в /net/mac80211/ и в файлах rx.c и sta_info.c и просто удаляю [либо комментирую (//)] строки ewma_add(&sta->avg_signal, -status->signal); и ewma_init(&sta->avg_signal, 1024, 8); соответственно.
Опять перекомпилирую модули и двигаюсь дальше.
3. Светодиод
При загрузке ath9k_htc.ko и mac80211.ko очередные ошибки, у mac80211.ko это:
А у ath9k_htc.ko это:
Если ieee80211_-ошибки от ath9k_htc.ko это потому что я пытаюсь его загрузить до mac80211.ko, то led_-ошибки от обоих модулей от того, что телефон не понимает, что делать со светодиодом на моем адаптере. Тут два варианта развития событий.
В первом просто убирается в графической конфигурации ядра значок [*] напротив
Networking support → Wireless → Enable LED triggers и Device Drivers → LED Support.
А во втором этот самый значок заморожен и снять его нельзя. Это значит, что при выборе моего адаптера, автоматически выбирается «поддержка» светодиода, убрать которую нельзя. Конечно же, это мой случай:
Кнопка помощи по Device Drivers → LED Support выводит следующую информацию по разделу:
…
config ATH9K_HTC
tristate «Atheros HTC based wireless cards support»
depends on USB && MAC80211
select ATH9K_HW
select MAC80211_LEDS
select LEDS_CLASS
select NEW_LEDS
select ATH9K_COMMON
.
…
config ATH9K_HTC
tristate «Atheros HTC based wireless cards support»
depends on USB && MAC80211
select ATH9K_HW
select ATH9K_COMMON
.
и сохраняю. Теперь можно снимать галочки:
Здесь и вовсе исчез пункт:
Опять и снова перекомпиляция, новые модули и т.п.
Вуаля. Все модули загружены. Выключаю Wi-Fi на телефоне и подключаю адаптер. Но светодиод на нем, как вы уже догадались, работать не будет. Оно и не нужно.
4. Версия firmware
…
[ 7582.477874] C0 [ khubd] ath9k_htc 1-1:1.0: ath9k_htc: Please upgrade to FW version 1.3
.
Просто качаем другой фирмварь, но уже требуемой версии, и кладем его вместо прошлого.
IV. Финиш
Теперь никаких проблем быть не должно. Выключаю родной Wi-Fi, все модули загружены, фирмварь нужной версии. Вставляю адаптер и netcfg впервые приносит счастье. Устанавливаю для появившегося сетевого интерфейса режим монитора и поднимаю его. Успех!
Ну а как и зачем зачастую используется режим монитора, вы и так все знаете. Спасибо за внимание!
Источник
Телефон на Android как Wi-Fi адаптер для компьютера
Сегодня в комментариях мне задали очень интересный вопрос. Можно ли в качестве Wi-Fi адаптера для компьютера использовать телефон на Android. Чтобы телефон, или планшет был подключен к Wi-Fi сети, и в режиме модема по USB кабелю передавал интернет на стационарный компьютер. У которого нет Wi-Fi адаптера и соответственно нет возможности напрямую подключатся к беспроводным сетям. И как оказалось – можно.
У меня почему-то никогда не было такой необходимости, и я не интересовался этим вопросом. Еще вроде со второй версии, на Android появился режим модема. И практически все телефоны и планшеты могут раздавать интернет на другие устройства по Wi-Fi, Bluetooth и по USB кабелю. Но как оказалось, Android устройства могут делится не только мобильным интернетом (EDGE, 3G, 4G) , но и Wi-Fi. А это значит, что с телефона можно сделать полноценный Wi-Fi адаптер для ПК.
Это очень полезная функция. Не редко бывает ситуация, когда после установки роутера, или покупки ПК нет возможности протянуть сетевой кабель к компьютеру. А с помощью этой функции можно подключить его к интернету. Пускай временно, пока вы не купите обычный Wi-Fi адаптер (что это такое я писал здесь, а о том как выбрать адаптер, можете почитать тут).
Я все настроил и проверил на телефоне Samsung Galaxy J5. Нашел только такой. Понимаю, что на других телефонах и планшетах, с другой версией Android и оболочкой, настройки могут немного отличатся. Но, думаю, не критично. Разберетесь. Или спросите в комментариях, если не сможете найти настройки.
Хочу еще добавить, что подключение к Wi-Fi сети через телефон работает очень стабильно и быстро. Интернет на компьютере «летает». В телефонах устанавливают хорошие беспроводные модули (не на всех, конечно) .
Подключаем компьютер к Wi-Fi сети через Android-устройство в роли адаптера
Сначала советую отключить мобильный интернет на своем телефоне. Просто отключите передачу данных через сотовую сеть. Это на всякий случай. Чтобы точно знать, что используется подключение по Wi-Fi.
Конечно же, ваш телефон должен быть подключен к Wi-Fi сети.
С помощью USB кабеля подключаем телефон к компьютеру. Он будет работать не только как адаптер, но еще и будет заражаться.
На телефоне заходим в настройки, в раздел «Подключения», дальше переходим в «Точка доступа и модем» и включаем «USB-модем» (общий доступ к интернет-подключению на этом телефоне) .
На компьютере сразу появится доступ к интернету через телефон.
Появится просто еще один сетевой адаптер. У меня Ethernet 4 (Remote NDIS based Internet Sharing Device) . У вас может быть другой. Это не важно.
Чтобы перестать использовать свой смартфон в качестве Wi-Fi приемника, просто отключите функцию «USB-модем» в настройках, или отключите телефон от компьютера.
Точно так же можно использовать и планшет на Android.
Надеюсь, эта статья вам пригодилась. Обязательно оставляйте в комментариях свои отзывы.
Источник
Wifi usb adapter android
.
.
.
.
.
UPD. Топик создан в далеком 2010г. Часть информации уже не актуальна.
Пишите в личку, что надо поменять — за топиком давно не слежу и тут давно не общаюсь.
.
.
.
.
.
Пять вариантов сделать интернет на Андроиде через компьютер (он же ББ, Большой Брат): USB, wifi-адаптер (или встроеный в ноут), wifi-роутер, Bluetooth.
0. Общая информация
У вас есть телефон на базе Андроид. Очень хочется гулять с его помощью в инете, иметь доступ к Маркету, чтобы ставить программы. А доступ в инет есть только у вашего компьютера или домашней сети. Как дать телефону доступ к всемирной паутине через комп или как его подключить к домашней сетке? Есть несколько способов сделать это (глобально — 5 шт.). Читайте ниже.
А если нужно наоборот, получить инет ОТ телефона (смартфона) НА компьютер, то ключевое слово для поиска инфы: Tethering
Предупреждение
- Прежде чем задать вопрос о вашей проблеме, прочитайте FAQ . 90% известных проблем и способов решения описаны там.
- Прежде чем публиковать свой «100% офигенный простой самый лучший крутой легкий способ подключения телефона к инету», прочитайте шапку . Возможно, что все это уже написано.
- Прежде чем публиковать свой «офигенный способ решения проблемы», прочитайте FAQ . Очень вероятно, что инфа про это уже есть.
Если вы внимательны и терпеливы, то у вас очень много шансов докопаться до способа решения вашей проблемы или создать свой, поделившись им с форумом. Но даже «маньячная» внимательность и терпеливость не всегда сможет решить вашу проблему. Инет от ББ на андроиде глючный, и это факт. Либо придется смириться с этим, либо купить WiFi роутер, с которыми проблем нет (почти).
А если вам лень читать и копаться самостоятельно, или вам жалко тратить свое время на переваривание информации (а ее тут много), то вы всегда можете обратится сюда.
Пять вариантов сделать интернет на телефоне через компьютер:
1. Тел. подключен к компу через USB
2. C использованием USB-WiFi адаптера / PCI-WiFi-платы / встроенного WiFi адаптера в ноут
1) Прежде чем ботать тему дальше, сначала скачайте последний Cписок рабочих рабочих/не рабочих wifi-устройств (ниже в этом посте), где поищите пруф на успешный/отрицательный опыт с вашим wifi-устройством.
2) Что лучше, Soft AP или Ad-Hoc?
2. В режиме Ad-hoc (также называется: точка-точка, компьютер-компьютер, одноранговая сеть)
UPD. Ad-Hoc «штатно» доступен в последних прошивках CyanogenMod для Android 4.x.x (ICS, Ice Cream Sandwich)
- Для Ad-hoc сети нужен РУТ (root)!
- Не забывайте сделать бэкап , если меняете что-то в системных файлах! upd. Бэкап только одного файла wpa_supplicant может не помочь.
- Прежде чем перезаписывать wpa_supplicant (или другие системные файлы), посмотрите сначала с помощью Root Explorer атрибуты , которые есть у этого файла, и перепишите их на бумажку. После обновления файла, проверьте (Root Explorer’ом), что у нового файла есть атрибуты, которые были первоначально. При необходимости — отредактируйте Root Explorer’ом.
- При организации доступа инета на телефон с помощью Ad-Hoc сети, то глобально процесс бьется на 2 этапа: сначала вы создаете такую Ad-Hoc сеть, и убеждаетесь в ее работоспособности. Потом этой Ad-Hoc сети даете доступ в глобальную сеть (иными словами, настраиваете маршрутизацию, т.е. обеспечиваете доступ к «вышестоящей» сети из вашей созданной Ad-Hoc сети). Подробнее читайте тут.
Как подключить телефон на андроиде (Android) к Ad-hoc-сети по Wifi(+личный опыт Lost sniper)
Настройка раздачи Инета на Android 2.2 c использованием WiFi Адаптера и ОС WinXP в режиме ad-hoc (на Win7/Vista аналогично) (ссылкой поделился Fouk, автор метода vt2007)
+ Исправление (от [email protected]
+ Исправление от 27.02.2012, если отсутствуют iwconfig и/или wlan от 27.02.2012 от Sintetix
Готовый wpa_supplicant (не заработает — можно же всегда откатиться на оригинальный wpa_supplicant, вы же его бэкапили):
3. C использованием WiFi роутера.
Я посоветую роутер с USB-портами, тогда можно принтер расшарить, файлы, USB-винт или флешку подрубить, даже торренты на такой роутер прикрутить можно, и не держать комп для него включенным. От себя порекомендую ASUS WL-500gp, Asus RT-N16. Тонны информации о настройке роутера и разворачивании на нем всего, вплоть до торрентов есть на http://wl500g.info. Кстати, при желании даже usb-модем от Yota можно на вход роутера прикрутить, чтоб далее инет по WiFi раздавать (для небольших офисов это очень удобное решение):umnik:
Еще есть очень хороший роутер Dlink DIR320 по железу идентичен Asus WL-500gP, и его тоже можно прошить в очень даже advance-mode. Подробности есть на том же http://wl500g.info и еще на http://binblog.ru/
Таким образом, есть два неплохих роутера: Dlink DIR320 и Asus WL-500gP. Отличия в цене и в количестве USB-портов (1 у длинк против 2х у асус). Из последних — неплохой вариант Asus RT-N16. Я все эти роутеры прошивал и настраивал, но что нужно именно вам — решать только вам.
какой лучше купить wifi USB адаптор? (Пост #4148571)
Итого, лично я порекомендую Dlink DIR320 или Asus WL-500gP или Asus RT-N16 (самая последняя модель).
Кроме того, в теме какой лучше купить wifi USB адаптор или роутер обсуждали достоинства/недостатки конкретных моделей
4. Софтварная точка доступа под линуксом (Ubuntu, Debian)
+доп. ссылка на софтину (поделился Evil-S)
Способ 3. «Ручками»-2. «AP-Hotspot еще один простой способ получения интернета через Wifi в Ubuntu»
Настройки сетевой безопасности, одинаковые для любых Wi-Fi роутеров/адаптеров:
q1: Мне нужно наоборот, получить мобильный инет ОТ смартфона НА компьютер. Как?
a1: Поискать в настройках. Функция USB-модем или USB tethering (в англоязычной терминологии) сейчас реализована стандартно практически на всех устройствах на всех прошивках, т.к. начиная с Android 2.3 это функция является встроенной в сам Андроид (подсказал Семён)
a2: Использовать программы для Tethering
q2: А можно ли интернет, полученный на Андроид с компа через USB или блютус, раздать еще и по WiFi, например, на другой телефон с вайфай, или ноутбук?
a1: Еcли инет получен через USB, то штатно так можно, по крайней мере, на телефонах HTC: Пруф + скриншоты (идея принадлежит nikita_Alex, +добавлю от себя, что должна стоять прога HTC Synс на компе для обеспечения «сквозного инета»)
a2: Для этого достаточно использовать функцию USB-модем со стандартным native Android USB tethering. Функция доступна практически во всех устройствах на прошивках Android 2.3. Подробности описаны тут (способ нашел Семён)
q3: А можно ли интернет, полученный на Андроид через WiFi, раздать на компьютер, подключенный к этому Андроиду через USB или bluetooth?
a: «У меня получилось это реализовать при помощи EasyTether. Какое бы соединение не использовалось на андроиде, хоть wi-fi, хоть 3G- интернет будет на компе.» (решением поделился Chema84)
q4: Как сделать так, чтобы компьютер/ноутбук/телефон был одновременно и WiFi-приёмником и WiFi-раздатчиком?
a: Никак
a2: Недавно встретил упоминание программы ®fqrouter2 , которая в чем-то решает проблему «никак», актуальную на 2011 год.
a3: Как сделать так, чтобы компьютер/ноутбук был одновременно и WiFi-приёмником и WiFi-раздатчиком.
q5: Как прописать адрес прокси-сервера (Proxy-server) на Андроиде (Android)?
a: Вот так
q7: Почему Android не выходит в интернет через wifi?
a: О причинах этого очень хорошо расписал W.Master
q9: Как в Windows на ББ отучить WiFi-адаптер отрубать сеть через какое-то время? Параметры энергосбережения при этом уже выключены, но не помогает.
a: Запретить опцию «отключение дисплея» через определенное время бездействия. Если не хотите, чтобы горел ночью экран — ставьте скринсэйвер «пустой экран». Решение нашел Joker2112
q10: Какой режим рутера мне подходит? Чем отличаются режимы Access Point, Home Gateway и Router?
a: Нижеприведенная терминология 100% справедлива для роутеров Asus. У других производителей она может отличаться! Обнаружите несоответствие, дайте знать.
q11: Хочу на смартфоне смотреть фильмы и слушать музыку, но контент лежит на компьютере. Как организовать доступ к файлам компьютера через WiFi?
q12: Хочу с компьютера на смарт скопировать музыку, фильмы, игры. Как организовать доступ к файлам смарта через WiFi?
a: Ответ в теме: Настройка доступа к файлам в локальной сети
q12: Тем у кого в windows 7, windows 8, windows 8.1 стоит программа Connectify. И при попытке подключения пишет ошибку «Произошла ошибка проверки подлинности» Или разрывается связь или нет доступа к интернету.
a: Android+PC=Internet (Пост kuka_mobile #46233616)
Источник