Фотогалереи

Услуги

Помощь при использовании сайта

Сборка Openwrt из исходников для D-Link DIR 615 E4

С выходом Openwrt Barrier Breaker (далее BB) захотелось обновиться с предыдущей версии и пощупать, что оно из себя представляет. Скачал, обновил, работает, но появилась проблемка, а именно очень мало свободного места для установки доп. пакетов. В резвизии E4 всего 4Мб энергонезависимой памяти и свободным было около 100Кб. И так как нужно еще было накатить русификацию Люси и VPN pptp. Собственно это и побудило пересобрать прошивку выкинув из нее все ненужное и запилить нужное. Вот такое предисловие, а теперь приступим к делу.

На самом деле самое сложное как ни странно это прошить роутер новой прошивкой из загрузчика, а не ее сборка. Но об этом позже.
Итак нам понадобится какой либо дистрибутив Linux, например Ubuntu, исходники Openwrt и немного времени.

Создаем директорию в которой будем хранить сорцы

mkdir ~/Openwrt && cd ~/Openwrt

и клонируем репозиторий

svn co svn://svn.openwrt.org/openwrt/branches/barrier_breaker ar71xx

cd ar71xx

Обновим репозитории пакетов:

./scripts/feeds update -a

И установим люсю

./scripts/feeds install luci

Это добавит возможность выбрать и установить Luci, а также ее различные подпакеты.
Далее, для проверки зависимостей необходимых для сборки запускаем

make defconfig
make prereq
make menuconfig

Если на данном этапе возникают ошибки, то нужно установить пакеты для сборки:

sudo apt-get install subversion build-essential

Это все стандартные вещи которые в принципе есть и на wiki.openwrt.org.

Теперь будем уменьшать размер образа прошивки за счет ненужного IPv6,дебага и USB которого у нас нет.

Выбираем Target:

Target System (Atheros AR7xxx/AR9xxx)  --->
             Target Profile (D-Link DIR-615 rev. E4)  --->
                Boot Loaders  --->
                  [ ] uboot-ar71xx-nbg460n_550n_550nh

Самое главное в меню Boot loaders снять выбор с uboot-ar71xx-nbg460n_550n_550nh. Именно из за этого я собрал рабочую прошивку только через 2 дня. Почему defconfig генерил нерабочий конфиг мне не понятно.

Далее приступим к выпилу ненужностей.

Выпилим USB:

Kernel modules  --->
USB Support --->

Выпиливаем IPV6:

Global build settings  --->
       [ ] Enable IPv6 support in packages

На самом деле ошметки ipv6 есть еще во многих местах. Например iptables6, но мне лень писать где оно лежит, так как таких пунктов штук 5 точно. Энтузиаст найдет сам если захочет. Тем более в menuconfig есть такая замечательная функция как поиск параметров сборки доступный по нажатию клавиши '/'

Я советую выпиливать только USB,debug и IPV6. Остальное может быть необходимым для работы устройства. Я например вырубаю еще и dnsmasq так как не использую дома DHCP, а также PPPoE.

Для того, чтобы точка доступа работала с шифрованием WPA2-PSK и чтобы сам роутер мог быть клиентом точки доступа с шифрованием WPA2-PSK.

 Network  --->
      <*> wpad......................... IEEE 802.1x Authenticator/Supplicant (full) 
           < > wpad-mini

Далее собираем все это дело

make

После успешной сборки в директории bin/ar71xx появится много файлов. Нужный нам будет выглядеть так:

openwrt-ar71xx-generic-dir-615-e4-squashfs-factory.bin

Теперь мы подошли к заключительному и самому сложному пункту, самому процессу перепрошивки. Сложный он потому, что переполнен шаманством. Мне за 3 года владения этим роутером так и не удалось выявить четкий алгоритм входа в веб морду загрузчика, но некоторые наработки есть.

  • Прошивать желательно из винды. XP или Win7
  • Установить IP адрес 192.168.0.10/24. Можно попробовать не указывать шлюз
  • Подключаться через WAN порт
  • Попробовать дискретную сетевую карту в слоте PCI-E (Да, было и такое)
  • Использовать браузер Firefox Portable 13.0.1

Для прошивки необходимо выдернуть питание, зажать кнопку Reset и не отпуская ее подоткнуть питание и держать 15 секунд. После того как замигает кнопка включения оранжевый цветом отпустить кнопку reset и пробовать перейти по адресу 192.168.0.1

Если подключение не произошло с первого раза, попробовать примерно 5-7 раз подолбиться в 192.168.0.1 и начинать попытки снова с выключением питания. Еще иногда работает такой финт. Зажимаем кнопку reset, и во время когда инициализируется сетевой интерфейс, еще до отпускания кнопки пробовать постучать в веб морду, а потом отпустив кнопку попробовать еще несколько раз.

Дабы не набивать шишек, я выложу конфиг для сборки, который можно взять за основу и далее уже экспериментировать самостоятельно. И по традиции: Ваши замечания, предложения оставляем в коментариях.

Также клиентам провайдера Кабинет советую прочитать статью по настройке Openwrt для работы в этой сети

Скачать конфиг

4.166665
6 votes
Ваша оценка: Нет


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
Аватар пользователя anonymous

Не, сейчас то понятно, что ставить
jidckii@brogue~14:13:17:~/ar71xx$ ls | grep e4
openwrt-ar71xx-generic-dir-615-e4-squashfs-factory.bin
openwrt-ar71xx-generic-dir-615-e4-squashfs-sysupgrade.bin

factory - нужна для перехода с офф прошивки, там часть билда просто забита нулями, точ бы по размеру пропустила родная.

sysupgrade - уже после этого надо накатывать, тут будет все что выбрал при конфигурации и все.
Если уже стоит какая от сторонняя прошивка, можно сразу sysupgrade накатывать.
Сегодня попробую.

Аватар пользователя anonymous

У меня вопрос - когда я ставил последний BB, периодически наблюдался отвал внутренней сети - компа на вин 7, приходилось перезагружать роутер. Поэтому сейчас сижу на старом dd-wrt. У вас эта самосборка стабильно работает?

Аватар пользователя admin

Сейчас стабильно. Год назад на BB часто была трабла такого рода:
eth0 (проводной интерфейс) отваливался часто. Симптомы непонятны, в логах только постоянное link up,link down. Wifi (wlan0) при этом работает. Заходишь через вифи и переподключаешь интерфейс и все работает. Отваливалось рандомно, может и несколько раз в день такая ситуация произойти, а может и неделю проработать. Сейчас стабильно, недавно ловил подобный глюк опять (одиножды), но больше не повторялось.
Так что с осени 2014 все в норме, пользоваться можно

Аватар пользователя anonymous

Подскажите кто может...
Делал по ману, только прошивка chaos_calmer. В итоге, после компиляции отсуствует LuCI... Пробовал дефолтные настройки оставлять, пробовал в вкладке конфигуратора - LuCI отмечать все, не помогло. После прошивки по телнет цепляется, по ссш после задания пароля руту, тоже. Как включить люську?
Роутер дир 615 R1, внутри чипсет BCM5357C0, wifi встроен в него. Но после установки скомпилированой прошивки для brcm47xx wifi не определяется, как побороть еще и это?

Аватар пользователя admin

Люська гуляет. Ее установить надо.

./scripts/feeds install luci

Потом:

 make menuconfig
LuCI  --->
    Collections  --->
         <*> luci

Translations --->
И собираешь прошивку.
Ну и для удобства

LuCI  --->
     Translations  --->
       <*> luci-i18n-russian

Все просто

Wi-fi не определяется потому, что не указаны правильные дрова для адаптера либо софтварную часть точки доступа (wpad и cfg2011 (iw)).
wpad-mini не работает с wpa2 PSK (aes/tkip), поэтому лучше юзать просто wpad (без mini).

Аватар пользователя anonymous

Cпасибо, проблему с люсей удалось победить повторно обновив всё, командой - "./scripts/feeds update -a".
Но вот подобрать драйвер с которым запустится вафля, не получается. Первоначально пробовал освободить Больше и больше места(в роутере флешка на 4мб) и залить прошивку со всеми драйверами, все тщетно, в wiki openwrt нашел что так делать не рекомендуется, т.к. система грузит первый по порядку драйвер и если не подойдет то устройство и не заработает. Начал подбирать перебором, попробовав примерно 7 вариантов с драйверами BCM, пока WiFi не определяется.
После компиляции перед новой компиляцией не нужно ничего чистить? Файл прошивки можно через люську лить или стоит каждый раз через фейлсейв мод?
Ниже как мне кажется информация о чипсете и вайфай адаптере, но не понятно что тут указывает способ подключения USB/PCI... Есть ли способ узнать наверняка, какой драйвер ставить? Можно ли поставить драйвер после перепрошивки?
[ 0.000000] bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x27, class 0x0)
[ 0.000000] bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x1C, class 0x0)
[ 0.000000] bcma: bus0: Core 2 found: GBit MAC (manuf 0x4BF, id 0x82D, rev 0x 03, class 0x0)

system type : Broadcom BCM53572
machine : Unknown Board
processor : 0
cpu model : MIPS 74Kc V4.9
BogoMIPS : 149.91
wait instruction : yes
microsecond timers : yes
tlb_entries : 32
extra interrupt vector : yes
hardware watchpoint : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa : mips1 mips2 mips32r1 mips32r2
ASEs implemented : mips16 dsp dsp2
shadow register sets : 1
kscratch registers : 0
package : 0
core : 0
VCED exceptions : not available
VCEI exceptions : not available

Аватар пользователя admin

А на дефолтном образе Openwrt (не самосбор) вафля работает? Если да, то ставь его, и lsmodом смотри какие модули загружены. Попробуй target для brcm47xx (думаю такой и выбран у тебя). А для вайвай пробуй b43

Аватар пользователя anonymous

На дефолтном не работает, пробовал эту связку, все также. Сейчас посмотрю вывод lsmod

Аватар пользователя anonymous

Есть способ вытащить драйвер из заводской прошивки и вогнать в OWRT?

Аватар пользователя admin

Учитывая разные тулчейны, среду сборки и непереносимость кода - 99% случаев что нет. Пробуйте, если не пробовать, то тогда на 100% работать не будет.
А на будущее - покупать нужно роутеры у которых есть поддержка OpenWRT. Насколько я помню есть HCL даже где то на сайте.