eburtsev / openwrt-on-dir-320-b1

Automatically exported from code.google.com/p/openwrt-on-dir-320-b1
0 stars 0 forks source link

Компиляция прошивкм #21

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Здравствуйте, подскажите новичку как 
правильно скомпилировать прошивку для 
этого девайса, перечитал кучу статей так и 
не получилось собрать рабочую, думаю 
ошибся на шаге конфигурации... выложите 
пожалуйста минимальный конфиг с 
поддержкой USB, 3g, pppoe, ну все необходимое, я 
понимаю так как вы собирали версию для всех 
с разными потребностями.. Хотелось бы 
минимизировать и собрать под себя. Но не 
знаю какие настройки необходимы для 
успешного запуска 

Original issue reported on code.google.com by schok...@gmail.com on 25 Jun 2013 at 8:13

GoogleCodeExporter commented 9 years ago
Еще меня беспокоят постоянные реконнекты 
на 3G. Выяснилась причина...
Описание проблемы разрывов на роутерах
Модуль pppoe в linux определяет пакеты своей 
сессии на основе идентификатора сесиии и 
мак адреса концентратора PPPoE (строго по 
RFC2516). На данный момент идентификатор во 
всех pppoe сессиях равнен 1 (очень надеемся 
что скоро он станет уникальным!). Даже на 
хороших управляемых коммутаторах в 
некоторых случаях чужие пакеты попадают на 
все порты коммутатора. Драйвер свитча 
роутера создает виртуальные устройства 
ethX.x и пропускает на них в модуль ядра, 
реализующего pppoe, пакеты с любыми мак 
адресами. При получении "чужих" пакетов PADT 
или LCP Term-Request/Term-Ack происходит разрыв 
сессии. Для устранения проблемы в pppoe.c была 
внесена модификация игнорирования всех pppoe 
пакетов с "не нашим" мак адресом назначения:

Вот кусок кода из ядра и жирным моя 
модификация (изначальная идея юзера good):
pppoe_recv:
//if (!po)
if ( !po || (memcmp(skb->mac.ethernet->h_dest, dev->dev_addr, ETH_ALEN) != 0) )

pppoe_disc_rcv:
po = get_item((unsigned long) ph->sid, skb->mac.ethernet->h_source); 
//изначально проверяется как и положено по 
RFC только идентификатор сессии и мак 
pppoe-концетратора
// if ( po ) {
if ( po && (memcmp(skb->mac.ethernet->h_dest, dev->dev_addr, ETH_ALEN) == 0) ) {
делаем разрыв...

Eсть готовое решение для роутеров Dir-320 Это 
собранная "антиразрывная" прошивка на базе 
OpenWRT, так же есть исходник для модификации 
обычной openwrt. она в аттаче. посмотрите 
пожалуйста и скажите нужно ли этот 
исходник переделывать под NRU Rev.B1, и ткните 
носом куда эту модификацию добавлять. 

Original comment by schok...@gmail.com on 25 Jun 2013 at 8:30

Attachments:

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Патч этот для вас смысла не имеет, т.к. он 
придназначен для pppoe (проводное 
соединение). Конфиг постараюсь выложить в 
ближайшее время (сейчас делаю прошивку под 
hyperboria)

Original comment by xakep6...@gmail.com on 2 Jul 2013 at 9:11

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Итак, конфиг и скрипт быстрой сборки есть в 
транке, модификация не нужна (для 2/3g точно).

Original comment by xakep6...@gmail.com on 29 Jul 2013 at 8:24