Dwl 2100ap прошивка: Воскрешение D-Link DWL-2100AP / Хабр

Содержание

Воскрешение D-Link DWL-2100AP / Хабр

Я работаю в мелкой фирме-провайдере, предоставляющей интернет в области, в том числе и в частном секторе. В качестве технологии последней мили выбран Wi-Fi с направленными антеннами и точками доступа на обеих сторонах (в режимах WDS и «клиент»). Энергоснабжение в частном секторе оставляет желать лучшего — напряжение скачет и довольно часто пропадает совсем. Само собой, на оборудовании такие условия сказываются крайне негативно — точки часто выходят из строя, при этом многие из них вываливаются в циклическую перезагрузку из-за возникающих сбоев в прошивке. Таких точек у нас скопилась пара десятков. Начальство решило, что ремонтировать точки в итоге обойдется дороже чем купить новые. Но жаль, когда столько оборудования лежит мертвым грузом, но еще может послужить родине.

Вскрытие

Развинтив точку, я обнаружил на плате две группы контактных площадок. Одна из них напоминала разъем JTAG, другая не была подписана, но я предположил, что это может быть интерфейс RS-232. Интернет подтвердил мое предположение, к тому же нашлась распайка выводов.

Чтобы подключить эти выводы к компьютеру, нам потребуется преобразователь уровней — микросхема MAX232 (или любая похожая, с индексом 232). Счастливые обладатели ноутбуков без COM-портов могут приобрести и распотрошить data-кабель для старых телефонов Siemens (модели времен c62 и ранее). Такой кабель можно будет подпаять напрямую в разъем на плате точки доступа, не собирая преобразователей. Этот вариант я рассматривать не стану, поскольку кабеля у меня нет, но, погуглив, вы сможете найти нужную информацию самостоятельно.

Для преобразователя потребуются также пять конденсаторов — четыре конденсатора емкостью 10мкФ и один емкостью 1 мкФ. Вот его схема (к слову, типовая схема использования MAX232):

Мой преобразователь выглядит гораздо сложнее, чем должен, поскольку я собирал его гораздо раньше и для других целей. На макетной плате присутствуют две микросхемы MAX232 и еще некоторые «лишние» элементы. Также для удобства при подключении я разместил на плате разъем DB-9 «мама»:

Подпаиваем провода TX, RX и «земля» от преобразователя прямо к плате точки доступа.

Загрузка

Открываем любую терминальную программу (я пользуюсь PuTTY, но подойдет и HyperTerminal) и настраиваем соединение по последовательному порту (COM1 или COM2) с параметрами: скорость 9600 бит/с, 8 бит данных, 1 стоп-бит, контроль четности отключен, flow control — отключен. Подключаем к настроенному порту точку и преобразователь. Подав питание на преобразователь и точку, вы должны увидеть что в окне терминальной программы отобразится процесс загрузки точки — тестирование памяти, поиск и загрузка файла прошивки. Если этого не происходит — проверьте преобразователь, также попробуйте поменять местами провода, подпаянные к TX и RX.

Для восстановления прошивки нам потребуется TFTP-сервер (tftpd), FTP-сервер (Small HTTP Server или FileZilla) и набор файлов рабочей прошивки (apimg1, art, backup, apcfg, apcfg.bak).

По умолчанию адрес точки доступа в режиме восстановления — 192.168.1.20. Настроим ip-адрес компьютера как 192.168.1.1 с маской 255.255.255.0 и подключим его к точке доступа. Перезагрузим точку кнопкой «Reset». Сразу же после того, как в терминале появились строчки о том, что загрузчик тестирует память, многократно нажимаем клавишу ESC, пока загрузчик не выдаст нам следующее приглашение:

[Boot]:

Теперь мы можем посмотреть и изменить настройки загрузчика и самой точки доступа. Полный список команд выводится, если ввести символ «?» и нажать enter. Смена настроек производится командой «c». Вывод текущих — командой «p». Из справки мы узнаем, что загрузчик умеет запускать прошивку из локальной памяти (tffs) и через TFTP. Это-то нам и нужно. Вводим команду «c» и по очереди определяем настройки загрузчика:

boot device : ae1
processor number: 0
host name :
file name : art
inet on ethernet (e) : 192.168.1.20:0xffffff00
inet on backplane (b) :
host inet (h) : 192.168.1.1 (ip адрес компьютера с TFTP-сервером)
gateway inet (g) :
user (u) :
ftp password (pw) :
flags (f) : 0x80
target name (tn) :
startup script (s) :
other (o): ae

Настраиваем TFTPd так, чтобы его корневая директория указывала непосредственно на папку с распакованными файлами прошивки. Вводим команду «@» и жмем Enter. Если все настроено верно, бутлоадер скачает и загрузит файл art. После этого перед нами предстанет оболочка операционной системы VxWorks.

Прошивка

Нажмем Enter, чтобы открылось приглашение. Теперь настроим FTP-сервер. Он также должен указывать на файлы прошивки. Кроме того, в настройках ftp-сервера нужно добавить пользователя, под которым мы будем загружать файлы, например — guest с паролем 12345.

Для начала инициализируем flash-память (т.е. пересоздадим файловую систему точки доступа, при этом удалив прошивку и конфигурацию).

В терминале вводим следующую команду:

diskInit "/fl"

В случае удачи терминал выдаст код результата 0x0. Продолжим:

hostAdd "pc", "192.168.1.1"
netDevCreate "pc:", "pc", 1
cd "pc:"
iam "guest", "12345"

Теперь проверим работает ли FTP-сервер. Введем команду ls. Если команда выдала список файлов прошивки, лежащих на ftp-сервере, скопируем их во flash-память точки:

copy "pc:/apimg1", "/fl/apimg1"
copy "pc:/apcfg", "/fl/apcfg"
copy "pc:/apcfg.bak", "/fl/apcfg.bak"
copy "pc:/art", "/fl/art"
copy "pc:/backup", "/fl/backup"

После каждой команды система должна вернуть код 0x0 и размер записанного файла. Перезагружаем точку доступа и вызываем приглашение загрузчика, как мы это делали в начале. Приводим настройки загрузчика в исходное состояние:

boot device : tffs0
processor number: 0
host name :
file name : /fl/apimg1
inet on ethernet (e) : 192.168.1.20:0xffffff00
inet on backplane (b) :
host inet (h) : .
gateway inet (g) :
user (u) :
ftp password (pw) :
flags (f) : 0x0
target name (tn) :
startup script (s) :
other (o): ae

Следующая операция не обязательна, но у меня точка отказалась грузиться, пока я ее не проделал. Отключаем питание точки, зажимаем кнопку Reset, включаем питание и ждем, пока точка не выдаст надпись в терминале о том, что были загружены заводские настройки: «resetting to factory config». Отпускаем Reset.

На этом все. После повторной перезагрузки точка запустится в штатном режиме и после загрузки будет доступна извне по заводскому IP-адресу: 192.168.0.50.

Примечания

В случае, если загрузчик выводит надпись «boardData checksum error», следует перед загрузкой VxWorks проделать следующую операцию. В приглашении загрузчика ввести команду «B» (ввод настроек «платы») и пробежаться по всем пунктам клавишей Enter, не вводя ничего другого. Это следует делать с большой осторожностью. Если вы подозреваете, что произошла ошибка — проделайте еще раз, не перезагружаясь.

Dwl 2100ap прошивка русская – Тарифы на сотовую связь