Jump to content
Калькуляторы

Rtl8186 Firmware Всем, кто пишет под RTL8186

Kitsok,

не дури :)

У меня вся настройка прошивки основанна на том, что я весь каталог упаковываю И ЗАПИСЫВАЮ ВО ФЛЕШ.

А на старте системы ЧИТАЮ ИЗ ФЛЕША и распаковываю в каталог.

 

И

Без этого долбанного драйвера

 

Если тебе лениво качать всю прошивку - то забери отсюда один файл.

Заметь - ОН РАБОТАЕТ :)

Я через эту прошивку между прочим сейчас в нете сижу :)

http://www.citylink.net.ua/flash_sr.c

Share this post


Link to post
Share on other sites
Ядро файловую систему не берет вообще, она подшита к ядру в виде рамдиска

Читай форум и разберись в принципе построения прошинвок.

 

Есть 2 способа формирования файловой системы:

1 - через initrd - действительно подшитая к ядру файловая. Применимо на системах с 16-ю метрами памяти. К примеру - ovisLink 5460. Эта железяка стоит сейчас у меня как точка для доступа в нет. На форуме сижу через нее. Файловая действительно прилинкованна к ядру. Настройки пишутся (у меня) фо влеш как tar.gz файл всего каталога /usr/local через /dev/mtd

 

2. - через отдельную файловую только для чтения. Используется в системах с 8-ю метрами памяит для экономии оперативки и не занимания ее файловой системой с бинарниками и т.д. Пишется во влеш как отдельный мрдуль root.bin, начинается с сигнатуры ROOT. При этом ядро ее открывает через /dev/mtdblock или /dev/mtd1 и примаунчивает как sqfs. Для этого в коммандную строку запуска ядра добавляется

strcat(arcs_cmdline,"root=/dev/mtdblock1 console=0 single")

в файле arch/mips/philips/nino/prom.c

При этоя ЯДРО ЧИТАЕТ ФЛЕШ для создания и поддержания файловой при каждрм обращении.

 

Учите мат.часть

 

Нет, я конечно понимаю, что в SDK от 5460 это просто отсутствует в мейках - но в mkimage то есть - можно ведь было и разобраться :)

Share this post


Link to post
Share on other sites

Еще чуток флейма на тему зависания 5460 (я думаю многих это интересует - просто на данный момент моя больная тема) . Значит так:

1) Точка 5460 в режиме клиент( с прошивкой dgreen ), сама плата без корпуса замотана в поролон + термодатчик на процессоре + короткозамкнутая антена аля биквад + 3 включенных точки на том же канале (имитация рабочей среды) + электронный осцилограф на ножке питания флеши и проца (на одной шине сидят) - коннект к точке g700ap в режиме AP (с родной прошивкой+ скрыли SSID)

2) Результаты тестов непонятные - прогонка файлов по фтп (фильмы по 700гиг) - результат успешный - ни одного зависания

3) Прогон ICMP пакетов по 65кбайт 10 сесий :) - начала виснуть-после старта 8мин все Ок и потом ни один интерфейс не отвечал до перезагрузки ... (может маскарад? ГЛЮЧИТ?) странно ... конечно никогда такого не видел ...

4)Подкинули консольный порт через max232 - rs232 - перестала глючить вообще

5)Если не коннектить eth0 или eth1 в свич(сетевуху или просто заглушку) она гглючит по страшному (чтот там бридж пытаеться подыматься при старте хотя явно судя по скриптам MODE=ROUTER стоит и скрипты соотвествующие) глючит в смысле - wlan не подымаеться больще 10секунд ... Пробывали все - но так оно и есть ...

6)Пока точка находилась под консолью rs232 -за 4 часа ничего не случилось ... хм точно НЛО....(хотелось посмотреть на состояние с консоли- а она невисла)

 

Прислушался тут к мнению N.Lieten : Вот только узнал еще один глюк дровов для беспроводного интерфейса - когда точка в режиме роутера, то до нее никак нельзя достучаться с беспроводки, если она сама не начинает передавать инфу.

Наверно все действительно в драйвере wlan кроеться ...

Залил на 5460 прошивку 2006 года овислинка .. видимо драйвер wlan другой совсем ... работает вообще без вышеописаных траблов пока ...

 

Во время тестов - изменений в напряжениях на контролирумых участках не наблюдалос и температура выше 55С не подымалась - вывод железо в норме ... с родным БП ... через соседние (паразитные AP работающие на этомже канале - были загружены трафиком по полной т.е. помеха была конкретной) .. НЛО - одним словом ...смеюсь и плачу ...

Share this post


Link to post
Share on other sites
Подкинули консольный порт через max232 - rs232 - перестала глючить вообще

....

Пока точка находилась под консолью rs232 -за 4 часа ничего не случилось

Наверно все действительно в драйвере wlan кроеться ...

 

Не стыкуется. Никак :(

 

Залил на 5460 прошивку 2006

.....

работает вообще без вышеописаных траблов пока

 

Вроде получается виноваты дрова.

 

Бред.

 

Учитывая еще, что овисы с родными прошивками изначально глючили (висли в непредсказуемый момент - это проверенно - а с новыми не виснут.... вроде софт виноват.

Но причем здесь подключение консольного порат ? Как это может повлиять на софт ?

 

Осталось провыерить в работе d-link с той же прошивкой. Других способов сбора информации я пока не вижу.

 

Хотя есть еще мысль. Овисовская прошивка работает ТОЛЬКО как бридж. Моя - ТОЛКО кк роутер.

Может собара ямки покопала именно здесь ?

Share this post


Link to post
Share on other sites

dgreen, Я ж говорю НЛО ... Пока подключена была консоль rs232 она не глючила :( (может совпадение конечно).

 

И не утверждаю что дрова виноваты ... но с железом (температура и питание) точно все в норме ... :(

 

Ну и странность в том что пока не воткнешь езернет кабель хотябы в один порт, wlan не подымаеться больше 10сек ... Вообще непонятно почему .. одновременно с консоли смотрел мибы cat /proc/*** и cat /proc/wlan0/****

 

Так и не нашел ГДЕ и вчем собачка рылась ...

Share this post


Link to post
Share on other sites
dgreen, Я ж говорю НЛО ... Пока подключена была консоль rs232 она не глючила :( (может совпадение конечно).

 

И не утверждаю что дрова виноваты ... но с железом (температура и питание) точно все в норме ... :(

 

Ну и странность в том что пока не воткнешь езернет кабель хотябы в один порт, wlan не подымаеться больше 10сек ... Вообще непонятно почему .. одновременно с консоли смотрел мибы cat /proc/*** и cat /proc/wlan0/****

 

Так и не нашел ГДЕ и вчем собачка рылась ...

 

Добавлю от себя еще про глюки.

Было замечено что при выключении базы клиенты(g700ap) через некоторое время просто зависали. не отвечали на пинги по eth0 и естественно к базе после ее оживания обратно не прицеплялись. То есть мертвый висюк.

 

Пробовал свою прошивку для g700ap вливать в овис 5460. работает. Правда только с 8 метрами так как ядро про большее не знает; Зато в овисе 2 сетевых интерсейса. Можно роутить между ними. Работает. Проверено.

Share this post


Link to post
Share on other sites

Так где можно пощупать прошивку посвежее? У меня стояла от adron2, но убрал, так как в ней 11b было только. Сейчас работает на стандартной, переконфигуренной в клиента, но очень уж хочется routed режим :)

Share this post


Link to post
Share on other sites

У меня есть свежая, на днях выложил... правда без доработак дгреена. Но еще немаловажный аспект уточнил - указание широковещательного айпишника, т.к. на нестандартных масках он не высчитывается...

адрес старый: ftp://193.227.250.26/firmware/

 

PS Добавил еще изменение параметров НАТ25 и МАС-клон... со вторым понятно, а что первый делает - не уяснил еще. И еще GRE туннелирование поддерживается.

Share this post


Link to post
Share on other sites

N.leiten,

Но еще немаловажный аспект уточнил - указание широковещательного айпишника, т.к. на нестандартных масках он не высчитывается...

Я на прошивке от adron2 в файлик rc.local прописывал ifconfig eth0 192.168.10.1 netmask 255.255.255.252 broadcast 192.168.10.3 metric 1 и.т.д

и кучу алиасов присобачивал (на точке был НАТ и от нее получали инет 7 клиентов каждый в своей подсети по /30bit маске (ну привык я так и броадкаста всякого меньше и клиенты друг дружку не видят)

строкаи типа такой ip a a 192.168.16.1/30 brd + dev eth0 :) и так подымаються и натяться все алиасные интерфейсы, подымал до 20 шт - дальше было лень :) Статья удобная для чтения тут http://forum.vingrad.ru/index.php?showtopic=37121 (про IP) .. Може пригодиться...

Share this post


Link to post
Share on other sites

Ну не все додумываются писать отдельно в rc.local. Вот и сделал на основные айпишники указание броадкастов. Я тоже хотел ручками крутить, но за неимением времени сделал так, чтоб потом не переделывать.

Кстати, есть еще один или глюк или баг - при пинге точка отвечает не менее 10мс, а то и до 50мс возрастает задержка. Я грешу на кривые дрова и загрузку проца (второе маловероятно, т.к. при родной прошивке пинг до 1мс). Кто-то сталкивался?

 

ЗЫ. С ifconfig я ушел уже давно и пользуюсь iproute2 - гораздо удобней и больше функционала в одной команде :)

Share this post


Link to post
Share on other sites

Ох, некогда мне все заниматься - так, вечерами помаленьку - в итоге двсе движется со скрипом :(

 

Это было предисловие. Теперь то, до чего не доходят пока руки, а сделать, наверное надо.

1 - это watchdog. Я с ним пробывал повозится -какой-то странный глюк наблюдается.

Сначала включаем его через iwpriv, затем пишем в регистр период. Если пишем маленькое число (1,2,5) -он великолепно срабатывает, точка уходит на перезагрузку. Но стоит записать что-то разумное и побольше - никакоего эффекта. Что-то я недопонял в его работе. А вот его запуск решил бы проблему (пусть не совсем хорошо - но хоть как-то) с зависанием устройств. По крайней мере, не надо было бы к ним бегать.

Может кто возьмется?

 

2. Самое основное для меня - корявость (отваливание) при работе со скрытым SSID.

Вчера просидел над дизассемблированным wireless_ag_net - ну и бардак же там. Плюч дизассемблер таки не все правильно понимает. Но похоже я понял, где можно избавится от этого глюка вместо моего костыльного решения с таймером. Только надо пробывать.

Если у кого есть время и желание - объясню.

При вызове rtk8185_expire_tuimer в /kernel/timer.c ему в качестве параметра передается указатель на приватную для таймера область данных (вроде как).

В этой облести по смещению +172 (нвашел таки в дизассемблированном участке :) ) лежит счетчик вызовов для отвала expired-станции. При доходе до 12 (интересно, почему именно 12 ?) происходит переход в процедуру отвала.

Если при каждом вызове менять его на 0 - то отвала не будет.

Можно конечно поискать там и чсетчик беаконов - не думаю, что есть это великая прболема. Тогда было бы красивее.

Но надо пробывать - а времени нет.

Сегодня уезжаю на 2 дня в Киев - вернусь - буду доделывать новое ядро с новым софтом (меня все достало - я собрал вю прошивку заново. С новым софтом. Со всеми последними версиями, даже последний uClibc присобачил.

К стати - ядро упаковал до 500К :)

После - если никто не повозится с параметрами драйвера - возьмусь за них.

 

N.leiten, когда все будет готово - тебе на фтп можно вылить ?

Share this post


Link to post
Share on other sites

ФТП открыт по-прежнему... правда у меня щас на канал больше нагрузки лягло, но это не проблема, думаю.

Я уже на днях получу три точки именно для экспериментов, так что включусь в работу :)

Share this post


Link to post
Share on other sites

N.leiten,

Кстати, есть еще один или глюк или баг - при пинге точка отвечает не менее 10мс, а то и до 50мс возрастает задержка. Я грешу на кривые дрова и загрузку проца (второе маловероятно, т.к. при родной прошивке пинг до 1мс). Кто-то сталкивался?  

 

Да к сожалению ... :( Есть такое дело : ( В прошивке dgreen, с ковырянными дровами на wlan ... Но зато хоть как то со скрытым SSID заработало :) В прошивках с нековырянным ssid такого не замечал - пинг ровный 1-2мс (даже при маленькой загрузке - железяка g700ap)

 

Залил в ovislink 5460 прошивку родную-последнюю 2006г с офицального сайта ... точка перестала вообще глючить пинг на wlan 1мс :( Все таки реалтековцы и молодцы что доделали свою прошивку до ума ... и совсем не молодцы потому что не дают исходники нового драйвера ... Ну ниче я думаю dgreen их переплюнет :)

 

З.Ы. Надежда - умирает последней ©

Share this post


Link to post
Share on other sites

Может действительно было бы проще достать дрова из прошивки овиса?

Share this post


Link to post
Share on other sites

Я думаю что можно - только нужно наверно лет 5-10 с ассемблером повозиться :(( И че я не програмист :( Говорила - же мама - учи сынок ассемблер :) (шутка ... зря что не говорила)... Я думаю процедура должна быть такая (не пинать - в ассемблере новичокс) : Декомпилить всю прошивку (и еще убедиться что отдекомпилилась правильно) и искать кусок где находиться драйвер ... ну а потом если найти - лучше конечно написать новый исходник для сборки ... Лень конечно с ассемблером разбираться но вижу что НАДО ...

Share this post


Link to post
Share on other sites

2N.leiten

Было быздорово маленький ридми добавлять в прошивку, типа такого

 

1) Что нового в данной версии

2) Порядок установки

как перепрошить

какой IP после перепрошивки

какой логин/пароль после перепрошивки

3) небольшой FAQ по конфигурации (как создать local.rc, какие команды вообще есть, у меня есть еще ADSL+WiFi модем G604T с самопальной прошивкой от McMCC, так там совсем иная идеология работы с конфигурацией, думаю этот раздел будет полезен тем, кто первый раз столкнулся с G700)

4) Контактная информация

Share this post


Link to post
Share on other sites

Вот сижу Киеве, все дела поделал - до поезда еще 4 часа. Скучно - зашел в инетклуб :)

 

То, что забыл спросить вчера - кто разбирался с QoS ?

Я посмотрел у поляков - там исходников нет. Только упоминание, что их переделки ядра неесть GPL

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

Share this post


Link to post
Share on other sites

По поводу QoS нужно у разработсчиков с http://forum.ixbt.com/topic.cgi?id=14:34671 спросить. Там подняли это дело.

 

2N.leiten:

не совсем понял как врубить 11g, arate старый, если руками, то выставить BASIC_RATES в 15?

Share this post


Link to post
Share on other sites

Со скоростями надо работать по маске. То есть, например у нас доступны скорости 1,2,5.5,11,6,9,12,18,24,36,48,54M, если по-порядку выставить нолики, то получим 12 ноликов/единичек - 12 бит. То есть, что-то, проде такого

111100000101 (это наша маска скоростей побитовая, теперь это двоичное число переворачиваем - то есть пишем зеркально, полчуим 101000001111, и переводим в десятичное и записываем в конфиг). Например, нам нужна скорость 24Мбит, то мы записываем порядок 000000001000, второй шаг - зеркало, получим 1000, в десятичной форме это 8. Тут стоит отметить отдельно режимы работы. Для 11g потребуется 12 бит, то есть 1000 это соответствие 24Мбит, а в 11b всего 4 бита, то есть 1000 это соответствие 11Мбит скорости.

 

Если я неправ, поправьте - я нечаянно, объяснил на сонную голову как вспомнил :)

 

PS Режимы переключаются ключом BAND, если 1 - то это 11B, если 2 - то это 11G

Share this post


Link to post
Share on other sites

Мда. Дело немного сдвинулось - причем сразу в нескольких направлениях.

Это все будет что-то типа отчета о проделанной работе :) Интересно - в основном разработчикам. Остальным можно и не читать :)

 

1. Я тут писал по поводу watchdog-а аппаратного Были у меня проблемы. Нашел. Как всегда - все просто. Ядро его уже включает. И на каждом тике таймера - сбрасывает. Именно поэтому у меня не ставились большие интервалы - он просто срывал его на следующем тике - а это около 10 мс. Называется - читайте конфиг. Там его можно выключить - и перенести с ядра в userspace. Зачем переносить ? А теперь подумайте. Точка виснет. Намертво - проверенно и мной и AlexNic. С оригинальной прошивкой (последней V2) она не виснет - но ПРОПАДАЕТ и сети, причем в те же моменты, кокда перешитая виснет. Проверенно - всю ночь проблем нет. С 9 до 11 часов обязательно повиснет. А С оригинальной прошивкой - исчезнет на срок от 3-х до 30-и минут. Сначала я решил, что она таки в этот момент перегружается. Но uptime не сбросился. А значит, овисы перегружают в ней дрова, реинициализируют в том случае, если она ушла в даун. Физически она не виснет, т.к. ВКЛЮЧЕ хардварный watchdog !!! А значит ядро продолжает работать. Но - на моей прошивке в цикле крутится мигание светодиода - причем именно в юзерспасе. И когда точка исчезает - светодиод не мигает. А значит ядро живое, а управление за пределы ядра не выходит. Т.е. где-то что-то мы ждем на уровне ядра - когда не отбирает ядро управление.

Если перенести wtchdog в юзеспасе - то этот момент отловится.

 

2. Не хочу ругаться сильно, поэтому ничего о реализации управления флешем реалеком писать не буду :) Опишу только, что mtdlink.o и mtdlink_gw.o отличаютмся тем, что первый делает устройство /dev/mtd MAJOR=31 MINOR=0 , которое есть блочное устройство для доступа к флешу по полной программе. Второе - делает 2 mtd_partition - соответственно от начала до файловой и саму файловую. А вот тут реалековским программерам стало лень. Лень искать сигнатуру ROOT, дкмать и проверять, это правильное место или нет - и они поли по пути наименьшего сопротивления. Они разбили флеш.... ПОПОЛАМ ! т.е.первая часть - /dev/mtd0 MAJOR=31 MINOR=0 - это участок от 0x0 до 0xFFFFF, а второй - /dev/mtd1 MAJOR=31 MINOR=1 - это участок от 0x100000 до 0x1FFFFF. И все. И код создания спрятан в mtdlink_gw.o :)

В общем - пока я смог доделать ядро так, чтобы оно по initrd подхватывала один кусок как root, а второй кусок из /dev/mtd1 примаунчивала в /ro_fs. Точка грузится и все работает. Но вот память (флеш) распределяется по дурацким принципам реалтека.

0x000000 boot-loader

hw, ds, cs

linux + initrd compressed ramdisk

ДЫРКА

0x100000 sqfs

ДЫРКА

 

И объеденить эти две дырки не представляется возможным.

А теперь хочется сделать на флеше еще одну файловую типа JFFS - и примаунтить ее в в /usr/local - сразу с запсью фо флеш при переписывании файла :)

Share this post


Link to post
Share on other sites

Кайф, dgreen. Слушай, а можешь скинуть мне твои исходники, в частности то, что уже исправлено, я буду делать прошивку по твоей схеме (с записываемым архивом).

Правда не знаю, стоит ли лепить туда jffs, просто каждый раз дергать флеш - не хочется. Так сказать минимизировать количество обращений записи/перезаписи к ней. То есть именно используя архив с частью файловой системы в конце флешки - самое оно.

 

ЗЫ. Вопрос не в тему, в общем при сборке файловой системы она у меня получается в полтора раза больше, чем обычно. Причеем видно даже по бинарникам. Беру Бизибокс адрона, собираю свой с тем же функционалом, и в полтора раза больше вышел - буду ковырять компиляторы, конечно, в частности ключи оптимизации, но все-же вопросы остаются.

Share this post


Link to post
Share on other sites

Нашел тут вроде новое SDK для BR-6204Wg

 

http://obm.edimax.com.tw/eugene/GPL/BR-6204Wg/

 

Specifications

BR-6204Wg

CPU

Realtek RTL8186

RF Module

Realtek RTL8225

Flash

2 MB NOR Flash

RAM

16MB SDRAM

WAN Port

One 10/100BaseT Fast Ethernet

LAN Ports

Four 10/100BaseT Fast Ethernet

 

Мне подсказали что это устройство от скрытого ssid не отваливаеться -а значит и wireless_ag_net.o там новый или в сырцах ... качаю ... в надежде :)

 

dgreen, Не дозвонился до тебя, елси что этот SDK закатаю на болванку ;) (если ты его еще не качал)

Share this post


Link to post
Share on other sites

Щас и я поставлю в закачку, может поможет :) У меня три точки на стенде для тестирования есть :) Буду лепить прошивку по образу дгреена :)

 

ЗЫ. На исходники и не надейся, если риалтековцы не выложили их изначально, значит есть что прятать для продажи подороже :)

Share this post


Link to post
Share on other sites

Кстати, теоретически MIPS должен эмулироваться в qemu... это так, на заметку. У меня отладка моего софта с эмулятором пошла намного быстрее. ПРавда у меня не MIPS.

Share this post


Link to post
Share on other sites

Вообщем мало чего полезного в этом SDK и сырцов драйвера нет :(

После долго ползанья по польскому форуму, нашел там человека который обещал помочь с драйвером в исполнений Appro (обещал последнюю версию по крайней мере) :)

 

З.Ы. Надежда умирает последней

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now