Как-то разобрав свою эту коробку, обнаружил, что внутри (как обычно) много чего разведено, но не впаяно. Одним из этих невпаянных деталек был USB. И тут мне очень сильно захотелось его впаять. Обвязки было совсем немного, но само собой, ничего не работало. На ftp d-link я нашёл старую прошивку для DIR-320NRU, которая бы влезла в стандартную 4Мб флешку, но она умела только работать с парой usb-модемов, так что интереса не представляла. Вообще, мне нужно было как-то отвязать от своего компьютера принтер, так как если кому-то надо было что-то напечатать, приходилось включать мой компьютер, что не меня, ни окружающих не сильно устраивало.
Поэтому пришёл к выводу, что нужно поставить *Wrt прошивку, ну и что там будет ещё. Итак, из всего что можно проделать с устройством по пунктам:
- USB — разведён на плате, требует минимум обвязки, задействовать достаточно просто.
- RAM — изначально установлено 32Мб SD-RAM, и это предел. 64Мб может быть установлено только в качестве ещё одной микросхемы (взято из нескольких источников), и места на плате для неё нет. К тому же 32Мб — это достаточное количество для всего, что нам будет нужно.
- Flash — установлена 4Мб MX25L25635E, в принципе её бы хватило, если бы в ней было свободно ещё всего 300Кб, но нет. Заменена будет на MX25L6445e, как самое недорогое предложение на Ali Express. Цена вопроса 260 рублей за 2 штуки. Столкнулся ещё с проблемой, что не все флешки подходят. Выдернутая из материнки не подошла.
- Внешняя антенна — на плате есть даже специально гнездо для неё. Можно спокойно выдернуть разъёмчик из какого-то сгоревшего ноутбука и купить Wi-Fi гнездо. Цена вопроса около 100 рублей.
- *Wrt прошивка — так как dd-wrt скисла и, на мой взгляд, уж сильно заумная, плюс ещё эту модель не поддерживает, то остаётся только OpenWrt, к слову, что очень даже радует. Плюс на сайте можно скачать даже уже собранную.
- UART — на плате JP1. нам он не понадобится, но можно и впаять. Порт работает на скорости 57400, это важно, иначе в терминал будет сыпать кракозябру.
Теперь более подробно о важном и главном.
Замена Flash
Сразу напишу, что через UART перешить мне ничего не удалось. В железке стоит U-boot версии 1.1.3, который позволяет шить только или загрузчик или прошивку. Как я понял, что существует ещё одна область памяти с данными об оборудовании, которую прошить из этого загрузчика просто невозможно, а без тех данных после перепрошивки просто тупо не работает сеть ни на какой прошивке, соответственно всё плохо. Так что поменять флешку на более ёмкую у меня получилось только на программаторе, полностью слив старую.
Программатор
Спасибо добрым людям, всё устройство выглядит как 4 резистора на 150 Ом и 1 конденсатор на 1 мкф и специальное ПО. Схема всего в сборе представлена ниже:
Питание 3.3V я взял прямо с платы маршрутизатора с разъёма UART, собственно сама распиновка;
Ну и само ПО для программатора: spipgm2.1. Программа консольная, но очень простая в использовании.
Уточню, что флешку надо выпаять из маршрутизатора, так, на всякий случай, и собрать программатор отдельно, с платы маршрутизатора можно только взять питание 3.3В.
Слив прошивку со старой флешки её надо преобразовать в 8Мб. Для этого нужно открыть файл прошивки в WinHex-редакторе и добавить пустоты на 4Мб. Теперь готовый файл на 8Мб можно преспокойно лить на новую флешку. После окончания процесса прошивки, новую флешку можно сразу впаивать в маршрутизатор и он будет работать.
Замечание
В DIR-300NRU B7 распределение памяти отличается от написанных руководств и область так называемого ART находится после загрузчика и перед линуксом, соответственно последние 64Кб не надо вытаскивать в конец нового файла.
Установка OpenWrt
Тут ничего сложного нет, единственный нюанс, что устанавливается она из режима экстренного восстановления (необходимо выключить маршрутизатор, зажать кнопочку Reset и не отпуская её подать питание и ещё держать 10 секунд или пока не замигает индикатор питания). Для режима экстренного восстановления лучше всего использовать обозреватель Internet Explorer, с другими иногда возникали проблемы при загрузке прошивки. Интерфейс экстренного восстановления находится по адресу 192.168.0.1, возможно понадобится присвоить вручную IP-адрес своему компьютеру 192.168.0.2. На всякий случай прошивка: openwrt-ramips-rt305x-dir-300-b7-squashfs-sysupgrade. После установки OpenWrt адрес маршрутизатора изменится на 192.168.1.1. В настройках сетевой карты необходимо будет установить получение IP-адреса автоматически.
Настройка Интернет на OpenWRT
Если ваш поставщик услуг Интернет не использует всякие VPN и прочее, то будет достаточно просто скопировать MAC-адрес своей сетевой карты в настройках интерфейса WAN.
Однако мой поставщик использует связку в стандартной прошивке под названием «Динамический IP + PPTP», и, честно говоря, у меня на этом месте был затык, в виду того, что в сборке OpenWrt пакет PPTP не установлен и соединения с Интернет из устройства тоже нет. Если у вас всё хорошо и Интернет появился, можете пропустить следующий абзац.
Настройка PPTP без доступа в Интернет
Замечание: Для доступа к Веб-интерфейсу «Люси» необходимо установить пароль root. Чтобы это сделать, нужно подключиться по telnet к маршрутизатору и выполнить команду «passwd«, после чего дважды ввести пароль. Об отсутствующем пароле будет указывать противная жёлтая табличка на странице авторизации.
Необходимо установить на своём компьютере HTTP-сервер. Лично я выбрал Apache, так как это было и самое быстрое и простое решение. Возможно, понадобиться добавить 80 порт в исключения брандмауэра. Далее я выкачал всю папку base из хранилища OpenWrt (лень было выискивать конкретные пакеты) и закинул её в папку htdocs. Теперь можно сказать Люси, что у нас есть хранилище пакетов на нашем компьютере, для этого идём в System -> Software и вкладка «Configuration». Меняем строчку src/gz barrier_breaker_base http://downloads.openwrt.org/barrier_breaker/14.07/ramips/rt305x/packages/base
на src/gz barrier_breaker_base http://ваш_IP_адрес/base
нажимаем «Сохранить» и возвращаемся обратно в Software, обновляем списки, ждём секунд несколько, видим сообщение, что списки пакетов типа «base» успешно обновлены. Нам теперь нужно в доступных пакетах найти ppp-mod-pptp и установить его.
Далее идём в Интерфейсы и добавляем новый типа PPTP на WAN, вводим настройки, нажимаем сохранить. Если счастье не наступило (приём и передача по нулям), можно зайти в системный журнал и посмотреть в чём дело. В моём случае дело было «possible DNS-rebind attack detected: адрес_сервера». В таком случае необходимо зайти в Network -> DHCP & DNS и или отключить защиту от DNS Rebinding, что НЕ рекомендуется, или добавить в Whitelist адрес_сервера, что и рекомендуется сделать.
После перезагрузки Интернет просто обязан заработать. Возвращаем настройки конфигурации в Software.
Настройка USB
Замечание: Очень рекомендую русифицировать Люси. Для этого в Software обновляем списки и устанавливаем пакет «luci-i18n-russian«.
Для работы USB необходимые пакеты:
- kmod-usb-core
- kmod-usb-ohci
- kmod-usb2
По спецификации Ralink RT5350F, система поддерживает OHCI и EHCI, 1.1 и 2.0 соответственно.
Замечание: После установки пакета kmod-usb2 у меня полностью отвалилось USB. методом стучания в бубн определил, что драйвер для USB 2.0 не работает на этом устройстве. Пришлось снести. Надеюсь, что в следующих выпусках OpenWRT проблема будет решена.
Обновлено: Чтобы USB нормально заработал, необходимо запаять резистор r129 на 8.2 кОм и конденсатор с209 номинал не критичен подберите по размеру. Находятся они с другой стороны платы под процессором (Спасибо пользователю aka Дмитрий). От себя добавлю, что нашёл только на 10 кОм, маршрутизатор был и этому доволен.
Установка принтера
Для работы принтера необходимо установить сервер печати. Необходимые пакеты:
- kmod-usb-printer
- p910nd
- luci-app-p910nd
После их установки появляется в меню пункт Сервисы -> p910nd — сервер печати. Там все настройки просты и понятны. Отдельно только хочется отметить флажок «Двунаправленный режим». На некоторых принтерах Canon есть проблема, в самом конце печати принтер вдруг повисает и держит бумагу. Если такое наблюдаете и вы у себя, рекомендуется снять этот флажок.
Далее надо настроить новый порт принтера. В Windows идём Панель управления -> Принтер. Находим свой принтер (или предварительно устанавливаем драйвер), двойной щелчок, в появившемся окне во вкладке принтер выбираем «Свойства», в свойствах выбираем вкладку «Порты». Нажимаем «Добавить порт», в появившемся окне выбираем «Standart TCP/IP Port», нажимаем кнопку «Новый порт», в появившемся мастере нажимаем «Далее», вводим ip_адрес_маршрутизатора в качестве имени порта, жмём «Далее», ждём пока он будет что-то искать (всё равно не найдёт), пока не предложит указать особые параметры. В особых параметрах выставляем «Протокол — RAW», «Номер порта — 9100», все остальные флажочки снимаем или не ставим, если не стоят, нажимаем OK. В свойствах принтера переходим на вкладку «Общие», нажимаем кнопку «Пробная печать». Если всё настроили правильно, принтер должен начать печатать.
Благодарю за внимание, ну и себе на заметку, чтобы не забыть.