Будем пошагово ставить на DIR-615 E4 Openwrt. Но сначала припаивать флешку на 8 или 16 мегабайт.

Нам понадобится куча всего:

  • сам роутер
  • паяльная станция (или прикуриватель от авто Smile )
  • флешка на 8 или лучше 16 мегабайт
  • UART адаптер (можно сделать из кабеля от какого-нибудь старого телефона сименса или купить за 150 рублей). Хотя эта штука необязательна
  • ардуина, куда ж без нее то. Ну или программатор SPI флешек или хотя бы LPT порт

1) Найти такую вот железяку – DIR 615 E4:

В этом роутере можно приделать USB кстати, в интернете полно инструкций – там все просто, не буду повторять их. Наша прошивка, которую мы сделаем в итоге, будет поддерживать USB.

2) Дальше надо найти флешку побольше – родная на 4 мб, последняя openwrt не влезет. Я нашел на 16 мегабайт 25q128fvsg.

3) Сделаем программатор для этой флешки. Можно сделать из LPT порта или использовать программатор CH341A, но у меня не было его под рукой. Так что сделаем свой программатор из ардуино наскоренькую. Вообще все делаем из ардуино Smile Описано тут: http://skproj.ru/programmator-spi-flash-svoimi-rukami/

4) Надо выпаять старую 4мб флешку из DIR-615. Можно с помощью паяльного фена, а если такового нет – с помощью прикуривателя от авто…

5) Слить фулфлеш со старой флешки – жмем кнопку в программаторе и получаем файл размером в 4 мегабайта.

6) Сделать и залить фулфлеш для новой флешки

Сначала надо скачать фулфлеш для 8 и 16 мегабайтной флешки все тут: fullflash_16+8mb_nomac.zip (взято отсюда: http://31.132.122.196/615E4_16M/README.txt и из обсуждения тут http://texnikk.blogspot.ru/2014/02/dir-615-e4-16m-flash-64m-ram-usb-mod.html). А в старом 4мегабайтном фулфлеше есть пара мест, которые нам нужно перенести в 16мегабайтный. Для этого нам потребуется программа winhex – качаем ее где-нибудь. Хотя я не заморачивался и не переносил – это вроде б грозит потерей родного MAC адреса и глючным вайфаем. На мак адрес пофигу, а вайфай не глючит. В общем нам понадобится сохранить разделы флешки MAC и ART из старой прошивки. Я не заморачивался с их поиском, поэтому не могу ничего про это рассказать 🙂 Подробнее как восстановить и перенести эти разделы в написано в readme архиве вместе с фулфлешами.

7) Впаять новую флешку.

8) Если у тебя много везения то это необязательный пункт. Сейчас нужно подключиться по UART к роутеру и все проверить. Для этого будем использовать разъем на плате. Если его нет то нужно его впаять так:

uart

Теперь нужно подключить к нему комп через преобразователь USB-to-UART. Другими словами  это переходник USB <-> COM-порт (RS232). Бывают на микросхеме например CP2102 или типа того. Еще используется для программирования ардуино мини:

Нам понадобится земля, tx и rx. На компе определяется как COM порт. Включаем, качаем putty и подключаемся к этому порту со скоростью 115200.

putty_thumb.png

Теперь включаем роутер, и пока он запускается, видим лог запуска линукса в терминале:

image_thumb.png

Если не видим ничего, можно попробовать поменять rx и tx местами. Если и это не помогло, скорее всего криво поставились драйвера. Чтобы проверить работоспособность UART переходника нужно отключить его от платы и соединить между собой rx и tx – а затем что-нибудь набрать в терминале Putty. Если вы увидите в терминале те символы, которые набрали – значит переходник работает. Если только черный экран и ни одного символа – что-то не так с переходником или драйверами.

В общем после загрузки жмем Enter и вводим df -h, размер точки монтирования «/» должен быть от 8 до 14 мегабайт для 16 мегабайтной флешки.

image_thumb.png

Собираем openwrt на DIR-615 с нужными пакетами и прошиваем его

Если все получилось надо далее собрать свой openwrt – это надо для того, чтобы ставить пакеты. Пакеты из репозитория не подойдут, так как у нас собственное ядро из-за 16 метровой флешки. Поэтому придется собирать свои пакеты и прошивку, но это даже веселее. Итак нам понадобится виртуалка с линуксом, я взял Ubuntu на Hyber-V. Качаем ставим убунту, затем открываем консоль (или через ssh – кому как) и выполняем команды:

Сначала поставим все пакеты, необходимые для сборки собственной openwrt

Далее:

Качаем архив с патчами тут: 615E4_patches.zip. Для 16мб флешки закидываем в этот каталог файл 615E4_16Mb.patch. Для 8 мегабайтной соответственно 615E4_8Mb.patch (этот вариант я не проверял, но должно работать я думаю)

Теперь надо выбрать пакеты, которые нам нужны на роутере и другие опции сборки. Сначала надо выбрать для какого роутера и процессора мы собираем. Для DIR 615 E4 надо выбрать это:

menuconfig_thumb.png

После этого надо выбрать пакеты, которые нам нужны. Автоматически программа проанализирует зависимости и их тоже выберет. При выборе пакета * значит что пакет будет скомпилирован и затем установлен в прошивку, M – что пакет будет скомпилирован, но не включен в прошивку. Чем больше всего включено в прошивку, тем она жирнее. Чем больше нужно компилировать – тем дольше ждать пока все сделается.

Выбирать пакеты рекомендую в меню LuCI:

  • Например сразу добавить LuCI > Modules > Translations > Russian
  • LuCI > Applications > luci-app-ddns – динамический днс. Ну и другие приложения если в этом пункте есть то лучше отсюда добавить – тогда ими можно будет управлять через веб-интерфейс, а не через командную строку.
  • Kernel modules > Native Language Support > kmod-nls-cp1251 и kmod-nls-utf8
  • Если надо поддержку USB – выбираем Kernel modules > USB Support
    • kmod-usb-core
    • kmod-usb-storage как я понял для всяких флешек и дисков
    • kmod-usb-uhci
    • kmod-usb2

В принципе потом можно зайти в Network и наставить разных приложений, например PHP есть или Asterisk (аж 3 версии). Периодически жмем внизу окна Save и Ok – имя файла для сохранения всех выбранных настроек должно быть .config (оно по-умолчанию такое). Также если делается файловый сервер или нужно втыкать USB флешки, надо выбрать Kernel modules > Filesystems и тут kmod-fs-msdos для FAT32, kmod-fs-ntfs ну или какие захотите в зависимости от того, что хотите собрать на этом роутере.

Можно долго залипать в menuconfig, главное при выходе не забыть сохраниться.

Последняя команда, которая запускает сборку, это

4 в этой команде это количество потоков для сборки – считается по формуле количество ядер + 1. Например у меня под виртуалку с убунтой выделено 3 ядра. Значит у меня make -j4.

Пару часов он будет компилировать в первый раз. Если второй раз собирать то  будет быстрее.

Чтобы загрузить новую прошивку берем файл ~/openwrt/openwrt/bin/ar71xx/openwrt-ar71xx-generic-dir-615-e4-squashfs-sysupgrade.bin и загружаем его в роутер в обновление прошивки в вебинтерфейс. Если не получилось — то через UART или SSH прямо с роутера – командой sysupgrade, а сам образ можно закинуть на роутер в /tmp/ используя программу WinSCP:

Или закинуть на какой-нибудь http сервер и обновиться прямо с него:

Раза с третьего я собрал нужную мне прошивку.