воскресенье, 5 января 2014 г.

Прошивка точки доступа D-Link g700ap (wive-ng)

Немного о точке доступа, сердцем устройства является микросхема RTL8186 (на базе её выпущено огромное количество роутеров и точек доступа).  В данной точке доступа 2 МБ флеш-памяти и 8 МБ ОЗУ. По-нынешним меркам - это очень мало. g700ap - это именно точка доступа, а не роутер!
Рис - наша точка доступа (фото с сайта производителя)
 
Немного о прошивке wive-ng: является альтернативной, свободной, не имеет WEB-интерфейса, использует все заявленные функции wifi-модуля, основана на ядре линукс 2.4 Данная прошивка позволяет произвести тонкую настройку точки доступа и использовать режимы, которые не доступны в официальной прошивке - например, режим клиента. Все настройки выполняются через терминал, подключение к точке доступа по средством ssh.

Зачем мне это нужно? Как ни странно с целью самообразования :)

Что нужно для этих целей:
  1. точка доступа
  2. патчкорд (прямой)
  3. спичка или тонкая отвёртка
  4. компьютер с ос линукс
  5. прямые руки (желательно)

Что сподвигло написать эту небольшую инструкцию? Дело в том, что следуя статьям в интернете - я никак не мог получить доступ после прошивки. Более того, в архиве последней прошивки с сайта автора - присутствую малопонятные файлы... Назначение которых порой совсем непонятно. Цель - показать, как прошить данную точку доступа прошивкой 0.3.18

Что в архиве  wive-ng-0.3.18.tar.7z с сайта http://wive-ng.sourceforge.net/:

  • black_fw.bin - прошивка-занулялка, очищает флеш от старой прошивки
  • Changelog.en - чэйнжлог на басурманском
  • Changelog.rus - чэйнжлог на русском
  • fw_clear.sh - скрипт очистки флеши
  • fw_upload.sh - скрипт загрузки прошивки
  • rev_B-A_converter.pl - конвертер прошивки для ревизии A (изначально всё сделано для ревизии B)
  • wive.bin - сама прошивка (ревизия B)
Я предпочёл не использовать скрипты. Все команды из под обычного юзера. Дистрибутив Opensuse 13.1 c NetworkManager.

Эта инструкция - почти полная копия инструкции http://chelaxe.ru/zyxel-p-330w-ee-wive-ng/ по прошивке роутера Zyxel p-330w. Что делаем:

  1. Получаем прошивку с сайта.
  2. Распаковываем в домашнюю директорию пользователя линукс. Желательно, чтобы путь не содержал кириллицы в имени и пробелов.
  3. Убеждаемся, что в системе стоит tftp. Для примера в Opensuse 13.1 по-умолчанию не установлен.
  4. Подключаем блок питания в розетку, предварительно отключив от точки доступа
  5. Подключаем патчкорд к компьютеру и точке доступа
  6. выставляем на компьютере сетевые настройки через NetworkManager: ip 192.168.1.1 mask 255.255.255.0 Очевидно, что вместо 192.168.1.1 можно взять любой ip в диапазоне 192.168.1.1-192.168.1.254, кроме 192.168.1.6 - это ip tftp сервера нашей точки доступа в режиме загрузки прошивки. Важно - в NetworkManager - ставим галочку в настройках на проводном соединении - Подключаться автоматически.
  7. Открываем терминал  и переходим в папку с файлами прошивок и скриптов.
  8. Вводим команду в терминал, но не нажимаем ENTER!

    tftp -m binary 192.168.1.6 -c put black_fw.bin


  9. Спичкой зажимаем ресет на точке доступа и удерживая его включаем БП. Смотрим на индикатор WLAN - загорелся? Отсчитываем 5-10 секунд. Отпускаем ресет. Быстро активируем окно терминала и жмём ENTER, Ждём - WLAN должен моргать. Ожидаем минуту и выключаем точку доступа (блок из точки). Тем самым мы обнулили флеш от прошлой прошивки, загрузчик мы не трогали!
  10. Вводим команду в терминал, но не нажимаем ENTER!

    tftp -m binary 192.168.1.6 -c put wive.bin
  11. Спичкой зажимаем ресет на точке доступа и удерживая его включаем БП. Смотрим на индикатор WLAN - загорелся? Отсчитываем 5-10 секунд. Отпускаем ресет. Быстро активируем окно терминала и жмём ENTER, Ждём - WLAN должен моргать. Не отключайте точку доступа хотя бы 7 минут (лучше 10 минут). После отключаем блок питания. 
  12. Выставляем на компьютере сетевые настройки через NetworkManager: ip 10.200.200.1 mask 255.255.255.0 Очевидно, то вместо 10.200.200.1 можно взять любой ip в диапазоне 10.200.200.241-10.200.200.254 кроме 10.200.200.249 - это ip tftp нашей точки доступа с новой прошивкой. Важно - в NetworkManager - ставим галочку в настройках на проводном соединении - Подключаться автоматически.
  13. Включаем питание точки доступа и через пару минут (на самом деле загрузка с этой прошивкой очень быстрая, но при первой загрузке лучше подождать) уже можем приступать к настройке точки доступа через ssh. Одним из признаков успешной прошивки будет пинг до 10.200.200.249 и появлением wifi сети с ssid SL-WL.
  14. Как получить доступ к нашей точке доступа? Вводим в терминал команду:

    ssh root@10.200.200.249

    По-умолчанию логин root и пароль rtl8186
  15. Что делать дальше? Настраивать - всё правкой конфигов, в интернете полно годных инструкций. Я пока ещё ничего не настроил - а посему написать об этом интересном и наверное увлекательном процесс ничего не могу.
Примечание: во многих инструкциях пишут, что должен быть пинг до 192.168.1.6, но данная точка доступа в режиме прошивки не отзывается. После прошивки во всех инструкция пишут, что ip будет 192.168.0.50, а у меня он был 10.200.200.249!  Ещё хочу акцентировать, что у меня не получилось сразу очистить флешку нулевой прошивкой и тут же залить новую - без перезагрузки между этими действиями tftp сервер точки доступа отказывался принимать файл прошивки wive.bin и писал: timed out (время вышло или превышено время ожидания). Моя ревизия точки доступа B2, родная прошивка 2.12.

1 комментарий:

  1. If you received an 'usage message' like shown below:

    shmakovpn@printer:~/Загрузки/InternetV.0.3.18$ tftp -m binary 192.168.1.6 -c put wive.bin
    usage: tftp host-name [port]
    tftp>

    You should use:
    shmakovpn@printer:~/Загрузки/InternetV.0.3.18$ tftp 192.168.1.6
    tftp> binary
    tftp> put
    (file) wive.bin
    Sent 1863682 bytes in 2.4 seconds
    tftp> q

    then ssh may return an error:
    shmakovpn@printer:~/Загрузки/InternetV.0.3.18$ ssh root@10.200.200.249
    Unable to negotiate with 10.200.200.249 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

    to resolve this issue change your ssh profile settings
    shmakovpn@printer:~/Загрузки/InternetV.0.3.18$ touch ~/.ssh/config
    shmakovpn@printer:~/Загрузки/InternetV.0.3.18$ vim ~/.ssh/config

    Host 10.200.200.249
    KexAlgorithms +diffie-hellman-group1-sha1
    HostKeyAlgorithms=+ssh-dss

    save and exit, then try to connect again, oops:
    DSA host key for 10.200.200.249 has changed and you have requested strict checking

    In my case I have to remove saved keys:
    ssh-keygen -f "/home/shmakovpn/.ssh/known_hosts" -R "10.200.200.249"

    then try again
    shmakovpn@printer:~/Загрузки/InternetV.0.3.18$ ssh root@10.200.200.249
    The authenticity of host '10.200.200.249 (10.200.200.249)' can't be established.
    DSA key fingerprint is SHA256:UoUC1Xw2Rx3BSIU5mEAGTK0QoW2h9QzXlkjZhKD3Zxg.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.200.200.249' (DSA) to the list of known hosts.
    root@10.200.200.249's password:
    ::Wive-NG-0.3.18::RTL8186-REALTIME::
    Base station firmware version
    Enter 'menu' for config router
    Sat, 01 May 2010 18:23:48 +0700
    [Wive-NG@/]#

    Success!


    ОтветитьУдалить