Jump to content

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

Вопрос интересный... Я не столько по ядру программирую, сколько по прикладным. Хотя уже начинаю немного в ядро вылазить :)

 

По-поводу вышеописанной проблемы - в версии 0.5.7 wive будет решена эта и еще пара проблем.

Как показала практика проблема заключается в наличии всего двух виртуальных теримналов (на самом деле их в ядре 64, но в /dev/ их только два, вот надо будет расширить и тогда можно будет подключаться без проблем).

Вторая проблема, которая висит в воздухе - это сбой при работе с ФС, почему-то Jf_FS считает, что места на носителе нет, хотя его там еще 56Кбайт. Кажется, что проблема в доступе к флешке при объеме свободного пространства меньше 64Кбайт...

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

И третье - dgreen обещал дать свою прогу по удаленной перепрошивке точки доступа, так что в 0.5.7 обязательно включу ее, чтоб не бегать :).

Четвертое - документация, документация, документация :)

 

 

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

Share this post


Link to post
Share on other sites

Что в режиме клиента (бридж) нужно еще включать кроме нат25, ну и вифайных типичных настроек?. К АП коннектится нормально, рсси показывает, пинги из интерфейса точки до АП идут, а вот с компа, подключенного к eth0 ничего дальше бриджа не пингуется... ipv4forward отключен. Что можно еще проверить, посмотреть?

Share this post


Link to post
Share on other sites

Вопрос интересный... Я не столько по ядру программирую, сколько по прикладным. Хотя уже начинаю немного в ядро вылазить :)
Вопрос станет ещё более интересным, когда удастся-таки собрать модуль для sd/mmc и можно будеть лить столько софта, сколько будет необходимо...

 

По-поводу вышеописанной проблемы - в версии 0.5.7 wive будет решена эта и еще пара проблем.

Как показала практика проблема заключается в наличии всего двух виртуальных теримналов (на самом деле их в ядре 64, но в /dev/ их только два, вот надо будет расширить и тогда можно будет подключаться без проблем).

А не проще задать по умолчанию время жизни неактивной сессии?

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

Кстати, если линк плохой, то и 64 сессии будет мало! :)

 

Вторая проблема, которая висит в воздухе - это сбой при работе с ФС, почему-то Jf_FS считает, что места на носителе нет, хотя его там еще 56Кбайт. Кажется, что проблема в доступе к флешке при объеме свободного пространства меньше 64Кбайт...
В идеале, чтобы такого не возникало,- нужно сделать RO партишин, а для хранения настроек использовать не файлы, а nvram - по-моему гораздо удобнее, а главное если не обновлять boot, то и настройки в nvram не сотрутся, т.е. можно перепрошивать новыми версиями, а перенастраивать ничего не придётся.

 

Нашел лишние компоненты, которые можно смело вырезать из прошивки без потери функциональности, так что надеюсь и эта проблема решится.
А что за компоненты такие лишние? :)

Может место найдётся и для более свежего dropbear с человеческой поддержкой SCP протокола?

 

И третье - dgreen обещал дать свою прогу по удаленной перепрошивке точки доступа, так что в 0.5.7 обязательно включу ее, чтоб не бегать :).
К этой бы проге ещё удалённое администрирование АПшкой, раз уж до web-интерфейса никак... Хотя web-сервер в прошивке есть :)

 

Четвертое - документация, документация, документация :)

 

 

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

Как вариант я уже писал выше,- перейти на nvram и всю партишн сделать ReadOnly.

Как служебный вариант,- держать в nvram ключ, который пользовать при загрузке и который будет определять монтировать партишин как RO или как RW, тогда без проблем можно будет вносить какие-то изменения в скрипты и т.п., а в обычном режиме работать только в RO - так и безопаснее.

Share this post


Link to post
Share on other sites

Попробовал запустить сегодня собранные мною бинарники,- второй бинарь влез - его и мучал, но он так и не запустился... :-/

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

С модулем для sd/mmc пока глухо... :-/

 

N.leiten, вот исходник исправленого для G700AP модуля и Makefile к нему: http://slil.ru/23175979

Попробуй собрать, только пути до библиотек и компилятора в Makefile на свои поменяй.

Edited by Dr. Morg

Share this post


Link to post
Share on other sites

:)

Я нашел причину проблем при работе с ФС - глюк в ядре, а точнее в драйверах JFFS2 - надо патчить, буду заниматься.

Для dropbear скорее всего таймауты повыставляю в пределах 5 минут, так лучше будет.

Модуль скатал, сегодня подчищу сырцы, чтоб места больше стало и попробую. Идея мне уже ненашутку понравилась, очень удобно средства биллинга и служебные проги размещать :)

Share this post


Link to post
Share on other sites

Вооот, насчет лишних компонентов. В принципе это мусор из попыток включить pppd и использовать конфигурационную ФС.

В исходниках просто удали rw_fs_stub/etc/ppp директорию и еще rw_fs_stub/nomnt/conf

еще можно нафиг шейпер снести (он 200кбайт занимает бинарник и еще почти 140 библиотека для него, вполне можно хорошо места освободить...

Share this post


Link to post
Share on other sites

Что в режиме клиента (бридж) нужно еще включать кроме нат25, ну и вифайных типичных настроек?. К АП коннектится нормально, рсси показывает, пинги из интерфейса точки до АП идут, а вот с компа, подключенного к eth0 ничего дальше бриджа не пингуется... ipv4forward отключен. Что можно еще проверить, посмотреть?

У меня таже ситуация. Если разобрался напиши.

Share this post


Link to post
Share on other sites

Выложил подправленную версию 0.5.7. Вырезал из ядра поддержку ppp, т.к. самого демона там нет. Освободилось места, думаю глюков с ФС уже не будет. Расширил количество терминалов до 16, думаю должно хватить для нормальной работы.

Осталось заменить dropbear. Единственное, что я не нашел его вместе с scp и не нашел где выставлять таймаут на действующую (активную) сессию. Скачал последнюю версию 0.48.1.

Модули буду пробовать, когда точки новые зайдут, а то уже все разошлись.

Share this post


Link to post
Share on other sites

:)

Я нашел причину проблем при работе с ФС - глюк в ядре, а точнее в драйверах JFFS2 - надо патчить, буду заниматься.

Было бы замечательно, если бы свет увидела пропатченая версия прошивки с исправленым глюком ФС и снятым ограничением на терминальных 2 сессии.

А то марш-бросок через пол города для ребута/перепрошивки может и положительно сказывается на здоровье, но крайне негативно на нервах! :)

 

Для dropbear скорее всего таймауты повыставляю в пределах 5 минут, так лучше будет.
Так а причём тут таймауты? Или речь о таймаутах сессии?

Попробуй версию поновее поставить и SCP тоже, хотя оно всё в одном вроде было...

 

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

 

Было бы просто нереальной сказкой, если бы удалось найти схему G700AP, тогда можно было бы всё вычислить за один вечер! ;)

 

Идея мне уже ненашутку понравилась, очень удобно средства биллинга и служебные проги размещать :)
А то! ;)

Я на WRT54G так и делаю.

Толькопочему-то не получилось у меня запустить на G700AP собраную тестовую прогу... :(

Собирал вроде нормально всё...

Под MIPSEL собрал её же,- на WRT54G запустилась нормально...

 

Вооот, насчет лишних компонентов. В принципе это мусор из попыток включить pppd и использовать конфигурационную ФС.

В исходниках просто удали rw_fs_stub/etc/ppp директорию и еще rw_fs_stub/nomnt/conf

еще можно нафиг шейпер снести (он 200кбайт занимает бинарник и еще почти 140 библиотека для него, вполне можно хорошо места освободить...

Выкидывай всё, что не относится к компонентам первой необходимости!

ИМХО, нужно оставить ТОЛЬКО то, что требуется для запуска ОСи и базовые конфиги.

Всё это дело после настройки нужно перевести в RO, да бы ничего не запороть.

Всё остальное с лихвой влезет на sd/mmc, куда и следует его поместить.

 

Да, совсем забыл сказать!

 

Для работы mmc.o потребуется собрать под MIPS модуль ext2.o и утилиты для разметки и форматирования диска:

mkfs.ext2, fdisk

Share this post


Link to post
Share on other sites

Выложил подправленную версию 0.5.7. Вырезал из ядра поддержку ppp, т.к. самого демона там нет. Освободилось места, думаю глюков с ФС уже не будет. Расширил количество терминалов до 16, думаю должно хватить для нормальной работы.
Ещё бы утиль для удалённого рефлеша... :)

 

Осталось заменить dropbear. Единственное, что я не нашел его вместе с scp и не нашел где выставлять таймаут на действующую (активную) сессию. Скачал последнюю версию 0.48.1.
Эту версию и нужно ставить.

SCP там есть!

Вот выкладываю как собирается и настраивается dropbear для OpenWRT: http://slil.ru/23177084

 

Модули буду пробовать, когда точки новые зайдут, а то уже все разошлись.
Дособери под MIPS модуль ext2.o и утилиты mkfs.ext2 и fdisk.

Если всё ок, то на выходных схожу сниму G700AP и буду пробовать SD на неё вешать...

Edited by Dr. Morg

Share this post


Link to post
Share on other sites

В след. версии новый dropbear включу.

По-поводу утилитки, в общем компилятор немного кривой. Я просмотрел одним глазом прогу - избегай исключение кода методом #if 0

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

 

По-поводу nvram - не знаю. Мы от него специально ушли на перезаписываемую ФС. В принципе JFFS2 я попробую взять посвежее, Там проблема с перезаписью последнего блока в флеш. Поэтому и выводилась ошибка. Можно ручками переписать, но, думаю, уже исправлено в последних версиях - буду пробовать. Если убрать этот глюк, то можно работать и так. nvram накладывает ограничения на применимость точки. То есть прийдется описывать в скриптах (которые берут значения из nvram) все варианты использования или обрезать функциональность и остановится на достигнутом. Просто в точке действительно много возможностей с этой прошивкой есть. В частности туннелирование разных видов, настройки ipcad, не говорю о беспроводных режимах (всё в стандартах, просто в оффициальной прошивке этих возможностей нет). И описать все комбинации будет проблематично :) Обращаю внимание - не невозможно, а проблематично. Времени не хватит это обрабатывать :)

 

ЗЫ. Насчет компилятора - dgreen его лучше знает. Он с ним тоже немного посношался. В начале разработки он приводил много примеров конструкций, которые некорректно обрабатываются.

Edited by N.leiten

Share this post


Link to post
Share on other sites

Сейчас наконец доконца разобрался с разводкой GPIO на RTL8186...

 

В общем, тот исходник, который я выкладывал нужно немного подправить, т.к. я в нём заюзал некоторые GPIO, которые используются для JTAG и один GPIO, который обрабатывает нажатие кнопки Reset, что само по себе не страшно, но в исключительных случаях может привести к непредсказуемым результатам! :)

 

Вот исправленый исходник: http://slil.ru/23177261

Можно смело собирать,- работать должен.

Схемку подключения SD/MMC картчоки набросаю в ближайшее время (может вечером сегодня, если днём занят буду).

Share this post


Link to post
Share on other sites

N.leiten, ещё забыл сказать...

 

Почему в /dev/ сидит два (!!!) COM порта (ttyS0 и ttyS1), когда на борту 208 пинового QFP корпуса RTL8186 он всего один???

 

В связи с этим было бы полезно собрать под MIPS утилитку для работы с последовательными портами. Если мне не изменяет память -это minicom.

Share this post


Link to post
Share on other sites

name@ и MaksMMS

выложите сюда ваши /etc/network/interfaces /etc/network/bridge и /etc/network/wifi/general

шоб не мусорить в топке приаттачил.

my.txt

Edited by name@

Share this post


Link to post
Share on other sites

после 12 часов работы в dmesg такие записи:

 

jffs2_reserve_space_gc of 196 bytes for garbage_collect_dnode failed: -28

Argh. No free space left for GC. nr_erasing_blocks is 0. nr_free_blocks is 0. (erasingempty: yes, erasependingempty: yes)

jffs2_reserve_space_gc of 196 bytes for garbage_collect_dnode failed: -28

Argh. No free space left for GC. nr_erasing_blocks is 0. nr_free_blocks is 0. (erasingempty: yes, erasependingempty: yes)

jffs2_reserve_space_gc of 196 bytes for garbage_collect_dnode failed: -28

Argh. No free space left for GC. nr_erasing_blocks is 0. nr_free_blocks is 0. (erasingempty: yes, erasependingempty: yes)

 

при этом:

# df

Filesystem 1k-blocks Used Available Use% Mounted on

/dev/mtd1 960 960 0 100% /mnt/sqsh_fs

/dev/mtd2 128 56 72 44% /mnt/jf_fs

 

версия:

# uname -a

Linux (none) 2.4.18-MIPS #684 Sun Aug 27 21:02:55 EEST 2006 mips unknown

 

что это может быть?

 

Еще глюк, что винда в качестве клиента AP иногда теряет соединение. Лечится опусканием интерфейса на винде и поднятием обратно (так называемое "Исправить" в контекстном меню на иконке в трее).

 

Так же, может класть в /etc файлик типа wive_version чтобы было понятно какая версия прошивки? :)

 

Зарание спасибо за ответы. :)

Share this post


Link to post
Share on other sites

обновите версию прошивки до 0.5.7 уже пофиксили - проблема при работе с файловой системой. Дрова что-то где-то некорректно обрабатывают. Будем искать в ядре непосредственно ошибку, а пока пофиксил увеличением свободного места :)

Share this post


Link to post
Share on other sites

Сейчас сижу через ж700 в режиме клиента.

 

В интерфейсах:

 

BRIDGE_START=yes

AUTO_BRIDGE=no

IPV4_FORWARD_ENABLE=yes

 

в вайфай/дженерал кроме остального:

 

iwpriv wlan0 set_mib nat25_disable=1

iwpriv wlan0 set_mib macclone_enable=1

 

тоесть, использую бридж с клонированием мака моей сетевухи.

 

 

N.leiten, как попасть на Ваш фтп?

Share this post


Link to post
Share on other sites

N.leiten, как попасть на Ваш фтп?

ftp://193.227.250.26/firmware/nleiten/

 

N.leiten

 

а по поводу винды и файлика wive_version есть мысли? :)

 

и еще вопрос. :)

 

а что именно убрали для увелечения места?

Share this post


Link to post
Share on other sites

туплю я с фтп... Фар мне показывает:

-> CWD /firmware/nleiten

<- 250 Directory successfully changed.

-> PWD

<- 257 "/firmware/nleiten"

-> PORT 172,16,171,9,13,197

<- 500 Illegal PORT command.

 

в командной строке поюзать этот фтп тоже не получается...

Share this post


Link to post
Share on other sites

2 dgreen

2 nliten

 

наступил на странный грабль.

 

точки работают в режиме бридж. через них пробегает 10 шт. 802.1q vlan-ов. скорость 2 мбит.с

 

сношу вланы, точки в режим роутеров - скорость 1.2 мбайт.с

 

похоже на грабли с кодом linux bridge :(

Share this post


Link to post
Share on other sites

ingr

на точке доступа НАТ поднят? прошивка Вайв?

Если где-то еще нат поднят не забудь в линухе подключить модули ip_nat_ftp и ip_conntrack_ftp. Иначе пользуй пассивный фтп.

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

 

Ivan M. Kluchnick

10 ВиЛанов, а 2 мегабита суммарной или по вилану?

Share this post


Link to post
Share on other sites

_Virus_

 

Вырезал непосредственно мусор. Те части, которые работаю в сборке с чем-то еще. Например, в /nomnt/jf_fs/conf директория - это набор файлов с ключами, что-то наподобие nvram, но т.к. прогу запустить для использования не получилось (на писи работает нормально, а в точке не хочет - грабли с компилятором), то и не использовал, потом забыл об этой директории. Потом срезал из /etc/ppp директорию - демона pppd нет в этой версии. Ну и естественно вырубил в ядре поддержкц PPP. Вот собственно и всё :) Как доведем прошивку до более стабильного состояния - включу pppd с клиентами, но прийдется пожертвовать шейпером.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.