Как стать автором
Обновить

Воскрешение D-Link DWL-2100AP

Время на прочтение4 мин
Количество просмотров8.2K
Я работаю в мелкой фирме-провайдере, предоставляющей интернет в области, в том числе и в частном секторе. В качестве технологии последней мили выбран 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, не вводя ничего другого. Это следует делать с большой осторожностью. Если вы подозреваете, что произошла ошибка — проделайте еще раз, не перезагружаясь.
Теги:
Хабы:
Всего голосов 24: ↑24 и ↓0+24
Комментарии21

Публикации

Истории

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область