Сетевой адаптер для андроид

Персональный блог Кота ДаWINчи.

Как подключить планшет (Andro > Опубликовал(а): Кот_ДаWINчи в: 02.07.2013 Оставить комментарий64 комментария Перейти к комментариям

Вот уже год как я пользователь устройства с Андроидом на борту. И часто слышу от новичков данный вопрос. хотелось бы рассказать о простом и уже неоднократно мной испытанном методе подключения андроид-устройства к ЛВС не по WI-FI, как это делают все, а по «кабелю с RJ-45».

Сперва вам необходимо приобрести обычную китайскую USB-сетевую карту. На чипе RD9700.

Значения не имеет, ибо все эти карты делают в Китае на основе одних и тех же чипов практически одинаковые. Отличаться они могут только дизайном корпуса.

Как проверено мной на нескольких разных устройствах с Андроид 4.0.4 или выше, драйвера этих сетевых карт уже содержатся в прошивках ОС, и ставить их не придется. (на некоторых новых устройствах НЕ КИТАЙСКОГО производства с Андроидом выше 4.2.1 драйвера всё же нет!)

И так включаем сетевую карту в планшет (смартфон,минипк), и подключаемся к коммутатору сети. Но у многих зачастую ничего не происходит. Все думают, что сетевая карта не подходит, но это не так.

Если воспользоваться бесплатной программой Net Status, (Увы, но данная утилита была удалена из google play) то на вкладке Netcfg (нажатие кнопки «Get Netcfg») после подключения данной сетевой карты, появляется строчка с указанием интерфейса eth0 — это и есть наша карточка. только вот значения сетевых настроек ей не присвоены. Это происходит из-за того, что сетевое подключение Андроида рассчитано на подключение с настройкой параметров подключения только по технологии DHCP. В ручную задать настройки не возможно!

Для тех у кого нет сети с работающим DHCP-сервером могу посоветовать самостоятельно запустить его у себя на ПК. Об этом я уже рассказывал в своей статье DHCP сервер для Windows XP.

После устранения подобных проблем сетевая карта будет у вас нормально работать.

Если одновременно с сетевой картой вы захотите подключить еще одно usb-устройство к планшету, например флешку, то советую купить сетевую карту совмещенную с USB-хабом:

А для пользователей устройств с Micro-USB разъемом советую поискать сетевую карту с этим разъемом, чтобы не пользоваться лишним переходником.

Читайте также:  Провод переходник hdmi тюльпан

Здраствуйте, товарищи. Сразу скажу, что прошу помощи у знатоков локальных сетей, если неинтересно, листайте дальше.

Работаю техником у провайдера городского масштаба и очень часто требуется подключение ноута к абонентскому кабелю. А ноут — это материальная ответственность и постоянные зависания. Неужели не существует внешней приблуды размером с карман джинсов для подключения к андроид-смартфону с поддержкой отг? (У меня нексус 5) Гуглил уже, постоянно встречаю одну и ту же скопипасченную информацию либо тот же текст в другой формулировке. Мне нужно нечто конкретное в порядке убывания приоритета: автономность (либо встроенная батарея, либо питание от телефона), возможность прописывать статику в настройках сетевухи с последующим выходом на веб-морду устройства, получение айпишника по дхцп, смена скорости работы устройства 10/100 мбит, тестирование жил, световая индикация.

Мне нужна сетевуха с каким-то конкретным семейством чипов? А какие программки мне ставить?

Идея перевести сетевую карту телефона в режим монитора разрушилась по причине собственной наивности и незнания элементарной информации о том, что подавляющее большинство мобильных сетевых карт этот самый режим монитора и не поддерживают.

Идея реализации задумки с помощью внешнего беспроводного Wi-Fi адаптера или «свистка», поддерживающего желанный режим монитора, рушилась десятки раз из-за новых и новых ошибок и потери веры в то, что это вообще возможно, но переросла в данную статью.

Итак, как подключить внешний Wi-Fi адаптер к устройству на Android или бег с препятствиями на дистанции «вставил — netcfg wlan0 up»:

Должно быть в наличии:

  1. Телефон на Android
  2. Поддержка OTG и сам OTG
  3. Terminal Emulator
  4. ROOT
  5. Исходники ядра

FAQ — структура выглядит так:

  • Внешний Wi-Fi адаптер («свисток»)
  • Его firmware
  • Linux дистрибутив
  • ADB (не обязательно, но так удобнее)
  • Мой случай:

    1. Samsung GT-P5100 Galaxy Tab 2 10.1, Андроид 4.2.2
    2. OTG «30-pin — USB»
    3. Terminal Emulator for Android
    4. ROOT
    5. Исходники стокового ядра 3.0.31-1919150 с сайта Самсунг
    6. Адаптер TP-LINK TL-WN722N на чипсете AR9271
    7. ath9k_htc/htc_9271.fw
    8. Дистрибутив Ubuntu 15.04 в VMware
    9. 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.zipandroid-platform_prebuilt-a4062cclinux-x86 oolchainarm-eabi-4.4.3, которую я распаковываю в произвольное место.

    Читайте также:  Проверка айфона по imei на русском языке

    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 и далее по предыдущему пункту.

    Читайте также:  Процессор с сокетом lga1155

    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 впервые приносит счастье. Устанавливаю для появившегося сетевого интерфейса режим монитора и поднимаю его. Успех!

    Ну а как и зачем зачастую используется режим монитора, вы и так все знаете. Спасибо за внимание!

    Leave a Reply

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    You may use these HTML tags and attributes:

    <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>