Будем пошагово ставить на DIR-615 E4 Openwrt. Но сначала припаивать флешку на 8 или 16 мегабайт.
Нам понадобится куча всего:
- сам роутер
- паяльная станция (или прикуриватель от авто )
- флешка на 8 или лучше 16 мегабайт
- UART адаптер (можно сделать из кабеля от какого-нибудь старого телефона сименса или купить за 150 рублей). Хотя эта штука необязательна
- ардуина, куда ж без нее то. Ну или программатор SPI флешек или хотя бы LPT порт
1) Найти такую вот железяку – DIR 615 E4:
В этом роутере можно приделать USB кстати, в интернете полно инструкций – там все просто, не буду повторять их. Наша прошивка, которую мы сделаем в итоге, будет поддерживать USB.
2) Дальше надо найти флешку побольше – родная на 4 мб, последняя openwrt не влезет. Я нашел на 16 мегабайт 25q128fvsg.
3) Сделаем программатор для этой флешки. Можно сделать из LPT порта или использовать программатор CH341A, но у меня не было его под рукой. Так что сделаем свой программатор из ардуино наскоренькую. Вообще все делаем из ардуино Описано тут: 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 к роутеру и все проверить. Для этого будем использовать разъем на плате. Если его нет то нужно его впаять так:
Теперь нужно подключить к нему комп через преобразователь USB-to-UART. Другими словами это переходник USB <-> COM-порт (RS232). Бывают на микросхеме например CP2102 или типа того. Еще используется для программирования ардуино мини:
Нам понадобится земля, tx и rx. На компе определяется как COM порт. Включаем, качаем putty и подключаемся к этому порту со скоростью 115200.
Теперь включаем роутер, и пока он запускается, видим лог запуска линукса в терминале:
Если не видим ничего, можно попробовать поменять rx и tx местами. Если и это не помогло, скорее всего криво поставились драйвера. Чтобы проверить работоспособность UART переходника нужно отключить его от платы и соединить между собой rx и tx – а затем что-нибудь набрать в терминале Putty. Если вы увидите в терминале те символы, которые набрали – значит переходник работает. Если только черный экран и ни одного символа – что-то не так с переходником или драйверами.
В общем после загрузки жмем Enter и вводим df -h, размер точки монтирования «/» должен быть от 8 до 14 мегабайт для 16 мегабайтной флешки.
Собираем openwrt на DIR-615 с нужными пакетами и прошиваем его
Если все получилось надо далее собрать свой openwrt – это надо для того, чтобы ставить пакеты. Пакеты из репозитория не подойдут, так как у нас собственное ядро из-за 16 метровой флешки. Поэтому придется собирать свои пакеты и прошивку, но это даже веселее. Итак нам понадобится виртуалка с линуксом, я взял Ubuntu на Hyber-V. Качаем ставим убунту, затем открываем консоль (или через ssh – кому как) и выполняем команды:
Сначала поставим все пакеты, необходимые для сборки собственной openwrt
1 |
sudo apt-get install subversion git libncurses5-dev zlib1g-dev gawk flex libssl-dev |
Далее:
1 2 3 |
cd ~ mkdir openwrt cd openwrt |
Качаем архив с патчами тут: 615E4_patches.zip. Для 16мб флешки закидываем в этот каталог файл 615E4_16Mb.patch. Для 8 мегабайтной соответственно 615E4_8Mb.patch (этот вариант я не проверял, но должно работать я думаю)
1 2 3 4 5 6 |
git clone https://github.com/openwrt-mirror/openwrt.git cd openwrt/ patch -p1 < ../615E4_16Mb.patch ./scripts/feeds update -a ./scripts/feeds install -a make menuconfig |
Теперь надо выбрать пакеты, которые нам нужны на роутере и другие опции сборки. Сначала надо выбрать для какого роутера и процессора мы собираем. Для DIR 615 E4 надо выбрать это:
После этого надо выбрать пакеты, которые нам нужны. Автоматически программа проанализирует зависимости и их тоже выберет. При выборе пакета * значит что пакет будет скомпилирован и затем установлен в прошивку, 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, главное при выходе не забыть сохраниться.
Последняя команда, которая запускает сборку, это
1 |
make -j4 |
4 в этой команде это количество потоков для сборки – считается по формуле количество ядер + 1. Например у меня под виртуалку с убунтой выделено 3 ядра. Значит у меня make -j4.
Пару часов он будет компилировать в первый раз. Если второй раз собирать то будет быстрее.
Чтобы загрузить новую прошивку берем файл ~/openwrt/openwrt/bin/ar71xx/openwrt-ar71xx-generic-dir-615-e4-squashfs-sysupgrade.bin и загружаем его в роутер в обновление прошивки в вебинтерфейс. Если не получилось — то через UART или SSH прямо с роутера – командой sysupgrade, а сам образ можно закинуть на роутер в /tmp/ используя программу WinSCP:
1 |
sysupgrade /tmp/openwrt-ar71xx-generic-dir-615-e4-squashfs-sysupgrade.bin |
Или закинуть на какой-нибудь http сервер и обновиться прямо с него:
1 |
sysupgrade http://192.168.1.2/openwrt-ar71xx-generic-dir-615-e4-squashfs-sysupgrade.bin |
Раза с третьего я собрал нужную мне прошивку.
Степан
Помощь нужна все замерла.
nwrt/staging_dir/target-mips_34kc_musl-1.1.14/pkginfo/firewall.default.install /home/monter/firmware/openwrt/staging_dir/target-mips_34kc_musl-1.1.14/pkginfo/firewall.default.install.clean; fi; echo «firewall» >> /home/monter/firmware/openwrt/staging_dir/target-mips_34kc_musl-1.1.14/pkginfo/firewall.default.install
make[3]: Leaving directory
/home/monter/firmware/openwrt/package/network/config/firewall'
/home/monter/firmware/openwrt/package/utils/lua’make[3]: Entering directory
make[3]: Leaving directory
/home/monter/firmware/openwrt/package/utils/lua'
/home/monter/firmware/openwrt/feeds/luci/contrib/package/csstidy’make[3]: Entering directory
Makefile:39: *** Download/default is missing the FILE field.. Stop.
make[3]: Leaving directory
/home/monter/firmware/openwrt/feeds/luci/contrib/package/csstidy'
/home/monter/firmware/openwrt’make[2]: *** [package/feeds/luci/csstidy/host/compile] Error 2
make[2]: Leaving directory
make[1]: *** [/home/monter/firmware/openwrt/staging_dir/target-mips_34kc_musl-1.1.14/stamp/.package_compile] Error 2
make[1]: Leaving directory `/home/monter/firmware/openwrt’
make: *** [world] Ошибка 2
voip
Do you have latest openwrt 19 for this router? I could not load it. on 16MB flash