Опишу историю, как я устанавливал OpenWRT на Dlink DIR-615 E4 из-под линукс. Wifi включается, всё работает, даже установил vnstat для статистики потребления трафика. Помудохался знатно о чем опишу ниже. Ох Ох Ох что же я маленьким не сдох…
Решил установить не оригинальную прошивку, почитал, как это сделать на офф сайте OpenWRT: https://wiki.openwrt.org/toh/d-link/dir-615
Оказалось, что в моём случае не пришлось использовать танцы с бубном, описанные в соответствующем разделе, посвященном модификации C1 и E4. Я просто прошил через стандартный веб-интерфейс роутера.
Всё заработало сразу, кроме wi-fi.
Нужно было сразу смотреть на английском, а я зачем-то прочитал русскую версию, где не сказано, что в образе отсутствует wi-fi. Ну да ладно.
Затем, нагуглив кучу ненужного, нашёл информацию что у роутера всего 4 Мб флеш, на него не помещаются пакеты kmod-ath9k и wpad-mini. Проверили вправду не помещаются. А другие пакеты не удаляются, т.к. вшиты наглухо. Ну и хрен бы с ними.
Между тем попробовал dd-wrt ( http://www.dd-wrt.com ), всё работало, но я хотел именно OpenWRT.
В мануале по прошивке OpenWRT нашлась ссылка: https://forum.openwrt.org/viewtopic.php?id=62912 , перейдя по которой были примеры, как уместить в прошивку и wifi и luci. Для этого нужно было покурить и разобраться, как эту «ебу**ю» прошивку сделать самому, что описано в https://wiki.openwrt.org/doc/howto/obtain.firmware.generate .
И так, я скачал ImageGenerator, как написано. А конкретно по ссылке: https://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/OpenWrt-ImageBuilder-15.05.1-ar71xx-generic.Linux-x86_64.tar.bz2 , распаковал, добавил файл ./files/etc/config/wifitoggle с содержимым:
config wifitoggle
option button ‘wps’
option persistent ‘0’
option timer ‘0’
option led_sysfs ‘d-link:blue:wps’
option led_enable_trigger ‘none’
option led_enable_delayon ‘0’
option led_enable_delayoff ‘0’
option led_disable_default ‘0’
Запустил сборку, выключив ppp и ipv6, но включив руссификацию luci:
make image PROFILE=DIR615E4 PACKAGES=»kmod-ath9k wifitoggle wpad-mini luci \
luci-i18n-base-ru -wpad -hostapd -hostapd-mini -ppp -ppp-mod-pppoe -kmod-ppp \
-kmod-pppoe -kmod-pppox -ip6tables -odhcp6c -kmod-ipv6 -kmod-ip6tables \
-luci-proto-ipv6 -luci-proto-ppp» FILES=files/
После чего появились файлы в папке ./bin/ar71xx. Два файла являются прошивками: openwrt-15.05.1-ar71xx-generic-dir-615-e4-squashfs-factory.bin – для полной прошивки со сбросом настроек, openwrt-15.05.1-ar71xx-generic-dir-615-e4-squashfs-sysupgrade.bin – для обновления существующей прошивки OpenWRT.
После dd-wrt пришлось потанцевать с бубном, как в мануале по первой ссылке. Перезагрузился на винду, через телефон скачал Firefox 13 Portable, после этого получилось прошить. В линукс как только не извращался, даже из VirtualBox запускал IE 6.
Дело в том, что я из консоли пытался прошить, т.к. dd-wrt никак не хотел использовать другую прошивку. В итоге даже там ничего не получалось, пока я из девайса не сделал кирпич где-то нагугленной командой:
mtd -e linux -r write firmware.bin linux
На самом деле нужно было по другому:
mtd -r write firmware.bin firmware
но возникала ошибка, что этот firmware не доступен для записи. firmware.bin – любая прошивка.
Вообще, этот метод должен работать, но не на dd-wrt. Читал, что люди никак не могли файл прошивки закинуть на роутер, для этого приходилось поднимать веб-сервер на компе. Но, зная линукс, можно многими способами это сделать, не устанавливая ничего лишнего. Я как истинный гуру закинул через netcat:
nc 192.168.1.125 9900 > /tmp/firmware.bin – на роутере;
nc -l 9900 < firmware.bin – на компе (тут вместо firmware.bin может быть любой файл, который нужно передать).
В общем прошил снова OpenWRT которую ставил ранее, затем, убедившись, что всё работает, прошил одной из своих сборок, которую сделал, как указано выше. Wifi включается, всё работает, даже установил vnstat для статистики потребления трафика.