PDA

Bekijk de volledige versie : Новая прошивка 1.9.2.7-d/-rtn от энтузиастов и Олега



Pages : [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

lly
24-11-2008, 19:49
Мной и theMIROn, при поддержке сочувствующих товарищей (rss, al37919, angel_il и других форумчан),
сделан вариант прошивки Олега с обновленными ядром Linux, uClibc и многими пакетами.

Этот проект - http://wl500g.googlecode.com является развитием прошивки Олега (http://oleg.wl500g.info/).

Поддерживаемые ветки прошивки и модели роутеров:

1.9.2.7-rtn - основная, на ядре 2.6.22, поддерживает:

Asus RT-N16, RT-N15U, RT-N12, RT-N12B1, RT-N10, RT-N10U, RT-N10U_B, WL-500gP, WL-500gPv2, WL-500W
.
1.9.2.7-d - стабильная, на ядре 2.4.37, развитие приостановлено, поддерживает:

Asus WL-500gP, WL-500gPv2, WL-500W, WL-500gX, WL-520gU, WL-550gE, WL-330gE, WL-320gE, WL-320gP

Основные отличия от прошивки Олега 1.9.2.7-10:

Ядро Linux 2.4.37 [сделан бэкпорт драйвера EHCI (USB 2.0), драйвера option, FUSE, множество багфиксов]
uClibc 0.9.30.1
включён accel-pptp [ускорение pptp более чем в 2 раза]
iptables 1.3.8 [layer7, ipset, IMQ, webstr, esfq шедулер, багфиксы]
iproute2 2.4.7-now-ss020116 [pfifo_fast, esfq, багфиксы]
dnsmasq 2.55
busybox 1.17
vsftpd 2.3.2
поддержка dyndns сделана на inadyn
libusb 1.0 + usb_modeswitch 1.1
Более полный список изменений: http://code.google.com/p/wl500g/wiki/News

Примерный порядок перехода на нашу прошивку:

сохранить конфигурацию и flashfs (если у вас прошивка Олега)
прошить 1.9.2.7-d через web интерфейс
сбросить в дефолт (для прошивок Олега свежее, чем 1.9.2.7-8 необязательно)
восстановить конфигурацию и flashfs
по желанию - донастроить
Домашняя страница проекта: http://wl500g.googlecode.com , там же выложены релизы прошивок.

Прошивки, выложенные на других серверах, являются или тестовыми сборками или локальными модификациями
сторонних разработчиков. Их использование целиком на совести пользователя, при этом предполагается, что
пользователь знаком с содержимым ревизий, публикуемым на http://code.google.com/p/wl500g/source/list

Ежедневные ночные сборки для тестирования можно скачать здесь:


http://asus.vectormm.net/rtn/
http://wpte.kicks-ass.net/downloads/Oleg Firmware/Nightlys/
http://vampik.ru/wl500g/rtn/
http://rtn.alegzz.ru/

Если у вас вдруг возникло желание отблагодарить нас за проделанный труд, это можно сделать
перечислением на электронные кошельки WebMoney (http://webmoney.ru/), в том числе через платежные автоматы:


R300118637923
Z268767167768

Ищем энтузиастов для помощи дальнейшему развитию прошивки и написанию статей в Wiki (http://wiki.vectormm.net/).

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

Novik
24-11-2008, 21:48
т.е. в перспективе можно надеяться прийти к сборке прошивки и пакетов одним тулчейном?
Я бы сказал "можно надеяться прийти к сборке пакетов хоть каким нибудь образом". Т.к. с имеющимся сейчас тулчейном их собрать попросту невозможно.

al37919
24-11-2008, 22:12
Я бы сказал "можно надеяться прийти к сборке пакетов хоть каким нибудь образом". Т.к. с имеющимся сейчас тулчейном их собрать попросту невозможно.
с этим полностью не соглашусь. Существует устаревший тулчейн unslung/wl500g ( http://ipkg.nslu2-linux.org/feeds/unslung/wl500g/ ) коим скомпилировано немало пакетов. Прошивка Олега, насколько мне известно, компилится им же. По крайней мере, если устанавливать софт в flashfs, то эти пакеты --- есть правильный выбор, не требующий установки uclibc-opt.

lly
26-11-2008, 19:58
Почему гады чехи своих патчей не отдают... редиски. Давайте их засудим : ))
Почему-же не отдают - все у них лежит, только в неудобоваримом варианте. Т.е. скрипты для сборки отсутствуют, а руками можешь накладывать и компилить...сколько влезет :rolleyes:

lly
27-11-2008, 14:10
Ily, а можно ещё вверху ссылочку на то, как это дело пересобрать. Что-то сходу не могу разобраться.

Надо добиться успешного пересобирания прошивки Олега, линки на главной странице oleg.wl500g.info и http://wiki.wl500g.info/index.php/compilingcustomfirmware

Потом станут понятны мои фразы в первом сообщении. Времени написать детальное руководство нет, увы.

lly
27-11-2008, 20:27
Ага, спасибо. Разберусь.
Сейчас пока пересобираю пакеты.
А зачем?
Много ли пакетов завязано на ядро? Навскидку - apcupsd, bluez, gdb, modutils, usbutils, wpa-supplicant
Да и то, если используемые структуры не изменились - всё будет OK.
В большинстве пакетов /opt уже используется uClibc 0.9.28 и новее, да и ищется она в /opt/lib ...


Вопрос - тулчейны прошивки и пакетов насколько я понимаю разные? Если так, то как оно одно с другим коррелирует? Если например изменилось ядро, то тупая пересборка всех пакетов не спасёт от потенциальной несовместимости?
Для подавляющего большинства пакетов роялит ТОЛЬКО uClibc!
IMHO стоит перекомпилировать только по факту segfault, ну или если уж очень хочется использовать только один экземпляр uClibc.

lly
30-11-2008, 08:24
Такое ощущение, что этот патч к ядру linux-2.4.35.5 , А lly пишет, что надо не ниже 2.4.36.7 (что я и подсунул). Отсюда и мой вопрос. Какое ядро надо брать и как именно его подсовывать.
Да нет, вроде всё так. kernel-buildhost.patch не менялся год, так как подходил у меня ко всем ядрам. Во-первых, OpenWRT патчи наложились успешно?
Во-вторых, для отладки в каталоге wl500g-1.9.2.7-d/kernel формируется отладочный лог patch_debug.log, пришли мне его или глянь сам.
У меня сейчас используется последнее ядро - 2.4.36.9

lly
30-11-2008, 10:39
E2fsprogs подожмем как-нибудь, а за uClibc я следил около года. Парни неплохо развивались.
Именно 29 -> 30 ? Что-нибудь критичного для MIPS ты нашел?

А на счет бинарников, wl насколько я понимаю - модуль ядра. Он не должен от libc зависеть. А кто такой nas? Прошу прощения что напрягаю глупыми вопросами связанными с тем, что у меня пока еще нет девайса.
Это бинарники управления Wi-Fi модулем у АСУС'а. У Олега они лежат сразу в ELF, даже не .o :( И Broadcom свой SDK просто так не раздает:mad:
На сайте OpenWRT валяется какой-то вариант broadcom-wl-4.150.10.5.3.tar.bz2 , но чем он отличается от варианта Олега, в его отсутствие, спросить не у кого... И версионными тегами Broadcom'овцы брезгуют :confused:

Добавлено в 13:19: слинковал nas_exe.o и wl_exe.o из OpenWRT'шного варианта - получил ту-же версию wl и неизвестную nas (т.к. опции выдачи версии в нём не обнаружил). В чём разница - пока не понимаю, ушел думать...

lly
02-12-2008, 07:27
Кроме того, кто-нибудь знает, подойдут ли модули для ядра 2.4.20 к ядру 2.4.36.9 ? Они только в виде .o
Часть пойдет, часть нет. Ты точно уверен что нет исходников? Может они просто лежат в инете, а не включены в чешский патч.
Глянул сам:

ipw.o - бекпорт из ядра 2.6, можно просить у engy
zadacom.o - бекпорт драйвера от Sierra (http://sierrawireless.custhelp.com/app/answers/detail/a_id/500/session/L3Nuby8xL3NpZC9UQ3pjY2xrag==), вроде-бы GPL, тоже надо списываться с автором
modem.o - ??



P.P.S. а насколько проблема ядро 2.6 юзать?OpenWRT вроде оное осилили? :confused:
Ядро 2.6 несовместимо с Broadcom'овским SDK, соответственно все оригинальные утилиты из прошивки ASUS по управлению WiFi идут лесом, и до сих пор остались проблемы с драйверами. Итого, получаем OpenWRT №2 - и зачем? :cool:

angel_il
02-12-2008, 16:11
Увы, не так всё просто - модули в объектниках часть кода мне пока не хотелось вставлять в mainstream без чёткого понимания необходимости и того факта, что всё остальное не поломается. А на анализ нужно время... про необходимость драйвера /proc/bus/usb/devpath я пока не понял, кроме того, что он используется в dial скриптах, а доки нет /usr/sbin/serialcomm тоже бинарник - надо искать исходник вся надежда на artp

P.S. Некоторое время назад engy интересовался моими наработками, я ему их отправил, но ответа пока не было.

а нельзя ли основную часть чешских нароботок сделать модулями в отдельном пакете и не включать в прошивку?

AndreyPopov
02-12-2008, 16:57
а нельзя ли основную часть чешских нароботок сделать модулями в отдельном пакете и не включать в прошивку?

ну они и так вроде лежат отдельно:
http://koppel.cz/cdmawifi/download/171/usb-1.9.2.7-10-USB-1.71.tar.gz

lly
02-12-2008, 17:57
а нельзя ли основную часть чешских нароботок сделать модулями в отдельном пакете и не включать в прошивку?
За исключением патчей на ядро - можно. Но мне казалось, что это должен был сделать автор :(
По патчам на ядро - надо сидеть и разбираться, что уже включено в последнее ядро, а что нет. У меня пока нет времени.
P.S. Даже уже если бы он сделал подключение devpath через условие CONFIG_USB_xxx, было бы намного легче.

lly
03-12-2008, 09:58
Выдалось время - глянул подробнее на чешский патч, побил на части по функционалу:
cdma-kernel-ftdi.diff - Обновление драйвера ftdi_sio.c, включил в свою прошивку
cdma-kernel-usb_acm.diff - Обновление драйвера acm.c, включил в свою прошивку
cdma-kernel-conntrack.diff - новая функция ip_conntrack_clear - кто знает зачем??
cdma-kernel-ppp.diff - новая функция ppp_filter, добавлю по возможности
cdma-kernel.diff - остальные патчи на ядро, требуется фильтровать правки usbserial.c от нового функционала devpath. Как будет еще время, гляну
cdma.diff - всё остальное, не относящееся к ядру, разбираться времени нет. Кто там хотел ? artp, angel_il - смотрите!


P.S. По поводу исходников модулей cdma модемов я напишу engy, но что он ответит, это еще вопрос...

angel_il
03-12-2008, 10:29
Выдалось время - глянул подробнее на чешский патч, побил на части по функционалу:
cdma-kernel-conntrack.diff - новая функция ip_conntrack_clear - кто знает зачем??



возможно этот патч чистит таблицу контроля сессий ip_conntrack
чтобы ядро не ругалось...

angel_il
03-12-2008, 10:40
а можно текущий файл посмотреть linux/net/ipv4/netfilter/ip_conntrack_core.c

lly
03-12-2008, 11:14
а можно текущий файл посмотреть linux/net/ipv4/netfilter/ip_conntrack_core.c
Это вопрос или утверждение? В ветке 2.4 такого нет, в 2.6 вплоть до 2.6.25 тоже, сейчас тяну 2.6.27

Добавлено:Проверил - в 2.6.27 тоже нема, и гугль молчит...

angel_il
03-12-2008, 13:04
Это вопрос или утверждение? В ветке 2.4 такого нет, в 2.6 вплоть до 2.6.25 тоже, сейчас тяну 2.6.27

Добавлено:Проверил - в 2.6.27 тоже нема, и гугль молчит...

это была просьба выложить этот файл :)

как же нет, если в патче cdma-kernel-conntrack.diff написано

--- oldlinux/linux/net/ipv4/netfilter/ip_conntrack_core.c 2008-03-30 14:00:44.000000000 +0200
+++ linux/linux/net/ipv4/netfilter/ip_conntrack_core.c 2008-09-01 15:02:04.000000000 +0200

angel_il
04-12-2008, 14:53
lly,
вобщем эта, я тут тестик для асинхронного резолва наваял, по идее на текущей прошивке не должен работать. Если не сложно запусти пожалуйста со своим ядром.

собирать так cc async_resolv.c -o ifenum -levent


#include <arpa/inet.h>
#include <net/if.h>
#include <netinet/ether.h>
#include <netinet/in.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <event.h>
#include <evdns.h>
//#include <evutil.h>

#include <stdio.h>

struct lookup_info
{
int start_index;
int current_index;
struct event ev;
};

int num;

void evdns_cb(int result, char type, int count, int ttl, void *addresses, void *arg) {
struct in_addr *addrs = addresses;
int i;
if (result != 0) {
printf("Error looking up address.\n");
exit(1);
} else {
for (i = 0; i < count; i++) {
printf("callback recolve test: %s\n", inet_ntoa(addrs[i]));
num = 7;
}
exit(0);
}
}

int main(int argc, char *argv[]) {
char buf[1024];
struct ifconf ifc;
struct ifreq *ifr;
int sck;
int nInterfaces;
int i;
/* Get a socket handle. */
sck = socket(AF_INET6, SOCK_DGRAM, 0);
if(sck < 0) {
perror("socket");
return 1;
}

/* Query available interfaces. */
ifc.ifc_len = sizeof(buf);
ifc.ifc_buf = buf;
if(ioctl(sck, SIOCGIFCONF, &ifc) < 0) {
perror("ioctl(SIOCGIFCONF)");
return 1;
}

/* Iterate through the list of interfaces. */
ifr = ifc.ifc_req;
nInterfaces = ifc.ifc_len / sizeof(struct ifreq);
for(i = 0; i < nInterfaces; i++) {
struct ifreq *item = &ifr[i];

/* Show the device name and IP address */
printf("%s: IP %s", item->ifr_name, inet_ntoa(((struct sockaddr_in *)&item->ifr_addr)->sin_addr));

/* Get the MAC address */
if(ioctl(sck, SIOCGIFHWADDR, item) < 0) {
perror("ioctl(SIOCGIFHWADDR)");
return 1;
}

printf(", MAC %s\n", ether_ntoa((struct ether_addr *)item->ifr_hwaddr.sa_data));
}
/* Lookup host name. */
num = 1;
char *host;
if (argc == 2) {
host = argv[1];
}
struct lookup_info *info;
/* Initialize the event library */
event_init();
evdns_init();
/* need two priorities */
event_priority_init(2);
printf("Async resolving [%s]\n", host);
int rc = evdns_resolve_ipv4(host, 0, evdns_cb, info);
if(rc != DNS_ERR_NONE) {
printf("Failed to lookup '%s': %s", host, evdns_err_to_string(rc));
}
printf("result [%d]\n", rc);
event_dispatch();
printf("num [%d]\n", num);
return 0;
}

angel_il
04-12-2008, 14:55
запускать так

$ ./ifenum ya.ru

lly
04-12-2008, 15:26
lly,
вобщем эта, я тут тестик для асинхронного резолва наваял, по идее на текущей прошивке не должен работать. Если не сложно запусти пожалуйста со своим ядром.

собирать так cc async_resolv.c -o ifenum -levent

libevent - это эта? http://www.monkey.org/~provos/libevent/ какая версия требуется?

P.S. А исходники ветки 2.4, не скачивая, удобно смотреть через http://www.linuxhq.com/kernel/v2.4/

crick
04-12-2008, 17:01
Я не спрашивал про конкретно OpenWRT.Я спрашивал почему упорно цепляются за (древнее и местами бестолковое) 2.4, которое лично мне ни разу не симпатично.Ну, вроде примерно причину узнал.Правда так и не понял почему нельзя обойтись без этих утилит.Они делают что-то такое что по другому никак и - без сорцев?Постараюсь еще более доходчиво ответить: родные драйвера wifi-части от ASUS распространяются только в виде готовых модулей к ядру 2.4, что и заставляет людей на нем сидеть.
Однозначно хочется.Потому что ... Олег - хорошая прошивка.Даже очень.Но - со своими недостатками.Которые лично меня - анноятЕще раз говорю, пользуйся OpenWRT и будет тебе счастье. У уважаемых lly и Олега немного другие цели и задачи. Они хотят сделать из железяки именно то, что хотел сделать сам ASUS, но не смог.
А какие там фишки отсутствуют so far?Мне собссно кроме режима AP от асуса ничего не надо.Делаю вывод, что по ссылкам, которые я давал ты не ходил. Привожу ссылку еще раз: http://linuxwireless.org/en/users/Drivers/b43 . На всякий случай объясню. Броадком не делает драйверов для ядра 2.6 (даже бинарных). Для wifi на броадкомовских чипах и ядра 2.6 есть альтернативный драйвер b43, ссылку на информацию по которому я уже второй раз привожу. Если функционал b43 тебя устраивает, то ПОВТОРЯЮ БОЛЬШИМИ БУКВАМИ - используй OpenWRT (c ядром 2.6 и драйвером b43)!
Кроме того, ты почти поэму написал с аргументами, говорящими в пользу OpenWRT. Ты сам себя уговорить ни как не можешь?

lly
04-12-2008, 17:14
Для artp и других фанатов чешской прошивки:

Ядерную часть прикрутил.
На вашу долю осталось допилить остальные исправления в пакетах - это должно быть не очень сложно (cdma.diff).
Бинарные модули при попытке сделать insmod грузятся, и unresolved не выдают. engy пока не ответил.
Обновленные исходники залью как смогу и ссылку в первом посте темы поправлю, ChangeLog уже перезалил.

Partos
05-12-2008, 08:33
Парни! А вопрос чисто юзерского плана - на существующей проше Асус (в частности у меня wl-500w) при обмене данными по самбе сильно грузит проц - до 60-70%. Насколько я понял, это проблема драйвера USB - он генерирует слишком много прерываний и перегружает проц. Скорость обмена с подключенным к девайсу винтом при этом не поднимается выше 4МБ/с. Соответственно, при такой загрузке проца другие операции при копировании данных на/с винта просто подвисают, интернет еле ползает.
Драйвер USB вроде как в ядре сидит? В этой прошивке как с этой проблемой?

lly
05-12-2008, 08:46
Это проблема общей производительности платформы. Новое ядро той-же ветки 2.4 никак не может её решить, разве что предоставить более свежие методы удавления приоритетов.

lll123lll
08-12-2008, 08:14
да это строка появляется в iptables -t mangle -vnL
при указании acl правила
Action Service Source Destination NAT Route
Allow POP3 192.168.2.2 194.67.23.102 AUTO eth2
через веб интерфейс на asusrx3042h
как посмотреть с какими параметрами запускается iptables я не знаю
соответственно не понимаю как задать его на 500gP
но это правило дает нужный результат - пакеты tcp для порта 110 уходят в нужном направлении

если функционал встроен в ядро то как до него добраться?
цель - разводить трафик по разным провайдерам в зависимости от номера tcp порта
тема балансировки и резервирования набирает актуальность хотелось бы иметь такие возможности в прошивке

вот здесь прочитал про патчи для добавления ROUTE в iptables v.1.3.4 (http://www.linuxcenter.ru/lib/articles/networking/linux_link_balance.phtml)

патчи из набора "patch-o-matic-ng" которые добавляют поддержку ROUTE, nth и random для Iptables. Патчи и iptables вы можете найти здесь (http://www.netfilter.org/downloads.html#ftp)

lly
08-12-2008, 09:15
да это строка появляется в iptables -t mangle -vnL
при указании acl правила
Action Service Source Destination NAT Route
Allow POP3 192.168.2.2 194.67.23.102 AUTO eth2
через веб интерфейс на asusrx3042h
как посмотреть с какими параметрами запускается iptables я не знаю

iptables-save на том девайсе есть? а доступ по telnet/ssh?


вот здесь прочитал про патчи для добавления ROUTE в iptables v.1.3.4 (http://www.linuxcenter.ru/lib/articles/networking/linux_link_balance.phtml)
1) статья от 2006 года, ipt_ROUTE убрали из patch-o-matic-ng в августе 2007
2) По этим ссылкам не написано ЗАЧЕМ нужен в нашем случае ipt_ROUTE
3) В оригинальной статье написано про отключение rp_filter - ты с этим экспериментировал?

Опять повторюсь - лично у меня один провайдер, поэтому построить тест проблематично.

ABATAPA
15-12-2008, 17:34
telnet есть
iptables-save нет

повторюсь - мне нужно разруливать трафик по провайдерам в зависимости от номера порта
в частном случае принимать почту (110) через безлимитный,но с вялым upload т.к. adsl, стрим , а отправлять (25) через корбину

Читайте
http://www.lartc.org/howto/

В принципе, там есть все необходимое.
Так же Вы легко найдете нужное, сформулировав Ваш вопрос поисковику.

theMIROn
22-12-2008, 07:58
можно ли патч к ez-ipupdate добавить для восстановления совместимости с dyndns сервисом zoneedit.com, который:
1. или меняет адрес сервера www.zoneedit.com на dynamic.zoneedit.com
2. или при http ответе 301 Moved Permanently заново соединяется по адресу переадресации
p.s подробнее - в теме Отвалился DDNS от zoneedit (http://wl500g.info/showthread.php?t=14554)

lly
22-12-2008, 08:02
можно ли патч к ez-ipupdate добавить для восстановления совместимости с dyndns сервисом zoneedit.com, который:
1. или меняет адрес сервера www.zoneedit.com на dynamic.zoneedit.com
2. или при http ответе 301 Moved Permanently заново соединяется по адресу переадресации
Давай ссылку на рабочий патч, добавлю.

theMIROn
22-12-2008, 09:03
у меня нет файла ez-ipupdate.c из олеговской, только из последней гпл асуса. Прикрепи, сделаю.
На самом деле там только дефайн адреса zoneedit сервера поменять

lly
22-12-2008, 09:32
у меня нет файла ez-ipupdate.c из олеговской, только из последней гпл асуса. Прикрепи, сделаю.
ну так скачай сам - http://oleg.wl500g.info/1.9.2.7-10/wl500g-1.9.2.7-10.tar.bz2
из "последней асуса" это какой?


На самом деле там только дефайн адреса zoneedit сервера поменять
это п.1 - делается за 5 секунд, а п.2 ?

P.S. Насколько я тебя понял, патча не существует в природе. Тогда и стоило писать в исходном письме не "добавить", а "сделать", "написать", "создать".

theMIROn
22-12-2008, 19:37
ну так скачай сам - http://oleg.wl500g.info/1.9.2.7-10/wl500g-1.9.2.7-10.tar.bz2
из "последней асуса" это какой?
GPL_WL500gP_1977.zip последний сорц для wl-500gP на сайте асуса
в wl500g-1.9.2.7-10.tar.bz2 нет исходников ez-ipupdate, только патчи и дополнения, я думал ты в курсе

это п.1 - делается за 5 секунд, а п.2?идеологически правильнее сделать только п.1, но Angus Mackay с 2002 года не обновлял ez-ipupdate


P.S. Насколько я тебя понял, патча не существует в природе. Тогда и стоило писать в исходном письме не "добавить", а "сделать", "написать", "создать".
в аттачи и п.1 и п.2

lly
23-12-2008, 06:57
GPL_WL500gP_1977.zip последний сорц для wl-500gP на сайте асуса
в wl500g-1.9.2.7-10.tar.bz2 нет исходников ez-ipupdate, только патчи и дополнения, я думал ты в курсе

Просто не смотрел, т.к. не пользуюсь данным пакетом. А насчет последней версии - ASUS очень беспорядочно обновляет версии пакетов, поэтому последняя версия может быть и в 520GU, и в 500gP V2 ...
Да и скачать ez-ipupdate можно отдельно с домашней странички - http://www.ez-ipupdate.com/
Я думал, так как ты им пользуешься, уж линк-то знаешь ...


идеологически правильнее сделать только п.1, но Angus Mackay с 2002 года не обновлял ez-ipupdate
Это да :(
Патчи добавил, чуть позже выложу ссылки на полную сборку в первом посте темы.

lly
25-12-2008, 07:22
Отчитываюсь о тестировании версии D6 на роутере Dlink DIR-320:

Работают, проверял: DDNS, USB, Samba, PPPoE, DHCP, Wlan.
Спасибо, а DIR-320 это клон 500gP V2 ?


Проблемы:
1. Не работает обновление времени с NTP.

Это я поспешил 23-го выложить нерабочий новый ntpclient :( Вчера в ночь выложил исправление.


2. После прошивки порт WAN ассоциируется с VLAN2 а не с VLAN1 (до прошивки Олега на роутере Dlink DIR-320 стояла прошивка DD-WRT).
Я правильно понял, что на прошивке Олега 1.9.2.7-10 ровно то же самое? Тогда это придётся разбираться с ASUS'овским rc - тягомотина жуткая...
А что говорит:
nvram get boardtype
nvram get wan_ifname
nvram get wan_ifnames

sorine
25-12-2008, 08:06
Спасибо, а DIR-320 это клон 500gP V2 ?


Скорее это клон WL-520GU. Процессор BCM5354. 32 МБ ОЗУ, 4 МБ ПЗУ, 1 USB. Цена роутера Dlink DIR-320 около 1700 рублей.
А вот со старой прошивкой 1.9.2.7-10 на ядре 2.4.20 он не завелся, так как в старом ядре нет поддержки флэшки Dlink DIR-320.

Вот кусок конфига ядра(kernel.config), который мне пришлось изменить чтобы прошивка заработала на DIR-320.

#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_GEN_PROBE=y
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_NOSWAP=y
# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
CONFIG_MTD_CFI_GEOMETRY=y
CONFIG_MTD_CFI_B1=y
CONFIG_MTD_CFI_B2=y
CONFIG_MTD_CFI_B4=y
CONFIG_MTD_CFI_B8=y
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
CONFIG_MTD_CFI_I4=y
CONFIG_MTD_CFI_I8=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_CFI_AMDSTD=y
CONFIG_MTD_CFI_STAA=y
CONFIG_MTD_CFI_SSTSTD=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_OBSOLETE_CHIPS is not set
# CONFIG_MTD_AMDSTD is not set
# CONFIG_MTD_SHARP is not set
# CONFIG_MTD_JEDEC is not set

Пожалуйста сделай изменения конфига у себя в прошивке по умолчанию. На другие устройства это не повлияет и код не увеличивает.

Сейчас перекомпилирую прошивку проверю на устройстве и напишу инструкцию народу по установке на DIR-320.

sorine
25-12-2008, 11:06
Насчёт параметров ядра - проверь, пожалуйста, достаточно ли:
CONFIG_MTD_CFI_B4=y
? или
CONFIG_MTD_CFI_B1=y
нужен тоже ?

насчет 64-x битной шины(CONFIG_MTD_CFI_B8) и интерлива 2-x и более flash чипов верю слабо (CONFIG_MTD_CFI_I2, CONFIG_MTD_CFI_I4, ...). Проверь также без них.

[/CODE]
Несколько раз перекомпилировал. Для запуска прошивки на Dlink DIR-320 достаточно добавить лишь одну опцию ядра:

CONFIG_MTD_CFI_B1=y

Обновление времени ntp заработало.

Вечером залью прошивку для проверки в WL-500gP. Проверю на нем WDS между старой и новой прошивкой.

Начинаю писать инструкцию по прошивке Dlink DIR-320.

Скомпилированные прошивки и модули для всех устройств здесь: http://rapidshare.de/files/41208104/1.9.2.7-d.tar.bz2.html

sorine
25-12-2008, 11:55
offtop

ребят, а можите в эту бету прошивку влючить поддержку UFS и UFS2 ? буду очень признателен. остался винт с файловой помойкой на 750 гигов от роутера под бсд, софт читать и переливать в ext2 нету возможности :-( поэтому хочется поддержка этой файловой системы на асусе премиуме первой ревизии.

http://rapidshare.de/files/41208198/WL500gp-1.9.2.7-d.trx.html пробуй

lly
25-12-2008, 12:56
lly: Да, нужно хотя бы чтение.
Как смогу - добавлю в архив модулей и выложу.

Mr.Hunt
25-12-2008, 13:13
Как смогу - добавлю в архив модулей и выложу.

Ок, спс! будем ждать :-)

sorine
25-12-2008, 15:35
[/CODE]

Ну что же попробовал я прошивку поставить на 2 Wl-500gP v1.
Режим WDS(WPA-PSK) между ними работает.

Проблема: ни под каким соусом не работает FTP сервер.

lly
25-12-2008, 19:06
Проблема: ни под каким соусом не работает FTP сервер.
Ты прав :( Буду смотреть когда сломал, т.к. ничего в этой части не правил по сравнению с 1.9.2.7-10.

P.S. Обновлённые исходники и модули выложил.

Mr.Hunt
26-12-2008, 05:59
http://rapidshare.de/files/41208198/WL500gp-1.9.2.7-d.trx.html пробуй

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

lly
26-12-2008, 18:49
vsftpd починил - фишка была в вызовах uClibc, пробуйте.

theMIROn
27-12-2008, 16:35
lly, еще 2 патчика, один правит "Format string vulnerability in syslog handling"
http://bugs.gentoo.org/show_bug.cgi?id=69658
второй - создает /etc/ddns.conf для ez-ipupdate с возможностью подтянуть свои настройки из /usr/local/etc/ddns.conf (ну типа как в dnsmasq сделано), если это понадобится
поэтому патч редиректа можно 100% убирать, он серьезно лишний

p.s rc-ddnsconf.patch накладывается после rc.diff, сам не компилировал, возможны очепятки

lly
27-12-2008, 19:41
lly, еще 2 патчика,
Первый добавил без изменений, второй - косметика.

поэтому патч редиректа можно 100% убирать, он серьезно лишний
А вот теперь убеди :D А если серьезно, то он мне понравился наличием redir_count :cool:

angel_il
28-12-2008, 08:21
давайте я на sf.net заведу местечко для выкладывания релизов и патчей и репозитарий, а то потом концов не найти бедет.

lly
28-12-2008, 09:26
давайте я на sf.net заведу местечко для выкладывания релизов и патчей и репозитарий, а то потом концов не найти бедет.
Я уже об этом думал, да и логин у меня самого есть на sf.net. Ждал еще мнения Олега, так как лидер и основатель всей прошивки то он, без него очень тяжко. Я сделал большой кусок черновой работы по миграции на новое ядро/тулчейн, а на будущее с удовольствием оставил бы себе какую-то часть, а вот ведение и координацию всего проекта сдал обратно Олегу... как изначально весной с ним и договаривались. Но пауза затянулась :(

theMIROn
28-12-2008, 10:49
по редиректу: в данном случае он больше вреден, т.к:
1. можно легко украсть пароль, при редиректе на внешний адрес (т.е сервер не проверяется, соответственно уязвимость)
2. сервер zoneedit отвечает редиректом как временной мерой для старых клиентов, не знающих корректный адрес, т.е это не стандартное поведение, как если бы сервер редиректил на страницы ошибок
3. код крив бо используется goto для уменьшения объема изменений, лучше бы рекурсию, но оно тут не нужно
4. патч никогда не войдет в оффсорц и пакеты для других дистрибутивов, т.к задача решается изменением конфигурационного файла, поддерживать этот функционал никто не собирается
5. возможность соверрайдить дефолтные настройки ez-ipupdate с помощью конффайла уже есть в гораздо более понятном и изящном виде :)
убедил?

p.s можно перевыложить прошивку в скомпилированном виде с последними патчами, хочу заюзать, а в виртуалке тупо места нет для распаковки сорцов и всего прочего

p.p.s работоспособность установленных пакетов сохранится? gcc 4.1.1, uClibc 28я

lly
28-12-2008, 11:58
по редиректу: в данном случае он больше вреден, т.к:
1. можно легко украсть пароль, при редиректе на внешний адрес (т.е сервер не проверяется, соответственно уязвимость)

Если сервер взломан, то что стоит подменить оригинальную страничку не парясь с редиректом?


3. код крив бо используется goto для уменьшения объема изменений, лучше бы рекурсию, но оно тут не нужно

Ну не настолько уж и крив, ты себе льстишь :rolleyes:

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

Проект похоже вообще заморожен :(

5. возможность соверрайдить дефолтные настройки ez-ipupdate с помощью конффайла уже есть в гораздо более понятном и изящном виде :)
убедил?

Почти, сделаю через #ifdef по умолчанию в 0


p.s можно перевыложить прошивку в скомпилированном виде с последними патчами, хочу заюзать, а в виртуалке тупо места нет для распаковки сорцов и всего прочего

p.p.s работоспособность установленных пакетов сохранится? gcc 4.1.1, uClibc 28я
Вечером выложу. Места в виртуалке мне на работе хватает 5Gb с лихвой.

gcc тут вообще ни при делах. Если пакет использует uClibc из /opt - тогда вообще не о чем заботится, иначе возможны ньюансы, например, как с vsftpd.

добавлено:
Выложил исходники и бинарники.

theMIROn
29-12-2008, 05:50
добавлено:
Выложил исходники и бинарники.Все работает, сенкую

al37919
29-12-2008, 17:44
нашел микробаг на этапе компиляции:
в файле Makefile.diff [строки 334-335]
так не работает:

+<----->$(MAKE) -C $(LINUXDIR)/scripts/squashfs mksquashfs-lzma \
+<-----><------>LZMAPATH=$(SRCBASE)/lzma/SRC/7zip/Compress/LZMA_Lib CC=$(HOSTCC) CXX=$(HOSTCC)
зато работает по старому (так было в 10й версии):

+<----->$(MAKE) -C $(LINUXDIR)/scripts/squashfs mksquashfs-lzma \
+<-----><------>LZMAPATH=$(SRCBASE)/lzma/SRC/7zip/Compress/LZMA_Lib CC=gcc CXX=g++
lzma и mksquash-lzma должны компилиться похоже с помощью g++, а не gcc

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

Иначе, make lzma придется делать вручную, причем предварительно все равно удалив директорию src/lzma. При наличии этой директории никаких действий при этом не выполняется. Почему --- х.з.

lly
29-12-2008, 18:04
lzma и mksquash-lzma должны компилиться похоже с помощью g++, а не gcc

А версия gcc? У меня сработало на 4.3.2, но всё равно еще раз гляну - спасибо


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

Иначе, make lzma придется делать вручную, причем предварительно все равно удалив директорию src/lzma. При наличии этой директории никаких действий при этом не выполняется. Почему --- х.з.

глянул: lzma создается только при make kernel. Зависимость очень простая - наличие каталога src/lzma. В каких случаях у тебя проявляется сбой? У меня было только один раз, когда сапгрейдил SuSe

lly
12-01-2009, 18:30
Нет, не компилировал.
Если не трудно, можете рассказать как это сделать?
Пошагово не расскажу - это тема отдельной статьи. Вкратце: нужен линукс, взять тулчейн из первого поста данной темы, развернуть в /opt/brcm/ , прописать путь /opt/brcm/hndtools-mipsel-uclibc-4.1.2/bin
компилятор зовется mipsel-uclibc-gcc
взять исходники aria2c, прочитать README, скорее всего там есть стандартный configure, тогда

./configure --host=mipsel-linux --prefix=/opt
make

и должно собраться.

P.S. aria2c - это http://sourceforge.net/projects/aria2/ ?

lly
19-01-2009, 08:53
Подскажите, а чем отличаются драйвера wi-fi от broadcom:
wl_ap.o
wl_sta.o
wl_apsta.o
wl_ap_onchip_g.o
wl_sta_onchip_g.o
wl_apsta_onchip_g.o

с прошивкой 1.9.2.7-10 в комплекте идет только wl_apsta.o, есть подозрение что можно использовать другой драйвер для BCM5354, более "легкий", для уменьшения размера прошивки, только вот какой из них, и где взять драйвера той же версии, что и в 1.9.2.7-10 ?
c суффиксом _g - для отладки, подробнее не знаю
wl_ap.o - "Access point"
wl_sta.o - "Station"
wl_apsta.o - и то и другое в одном флаконе.

Берутся из GPL ASUS'а

lly
19-01-2009, 19:36
Просьба к владельцам wl-500gp V2 - пришлите кто-нибудь результат вывода следующих команд:

nvram get boardtype
nvram get boardnum
nvram get boardrev
А то что-то в инете вывешены противоречивые данные :confused:

asp
20-01-2009, 01:34
nvram get boardtype
0x48E
nvram get boardnum
45
nvram get boardrev
0x10

lightix
20-01-2009, 04:17
nvram get boardtype
0x48E
nvram get boardnum
45
nvram get boardrev
0x10

Выходит, что для 500GPV2/520GU/520GC невозможно определить по этим значениям модель, т.к. они одинаковые...
В исходниках 520gc последней официальной прошивки, в rc.c, выкрутились по-другому


/* predefined config for WL520gu, WL520gc -- check boardtype for others */
/* there is no easy way to do LANx to real port number mapping, so we use array */

if (nvram_match("boardtype", "0x48E") && (nvram_match("boardnum", "45")))
{
/* why don't you use different boardnum??? */
if (nvram_match("productid","WL500gpv2"))
{

lly
20-01-2009, 07:33
asp
спасибо


Выходит, что для 500GPV2/520GU/520GC невозможно определить по этим значениям модель, т.к. они одинаковые...
Я до последнего надеялся на обратное :mad:
Значит опять придётся выкручиваться через одно место :(

sorine
20-01-2009, 15:55
asp
спасибо


Я до последнего надеялся на обратное :mad:
Значит опять придётся выкручиваться через одно место :(
Все будет хорошо, выкрутимся. Устройства можно идентифиицировать и по объему инициализируемой оперативной памяти(параметр sdram_init). Например для Dlink DIR-320 это выглядело бы так:

3074 if (nvram_match ("boardtype", "0x048e") && !nvram_match("boardrev", "0x35") && !nvram_match("sdram_init", "0x000b"))

Значения удаленно проверил на роутере Dlink DIR-320 зятя.
:rolleyes:

angel_il
25-01-2009, 16:44
Я сегодня закончил краткую инструкцию о том как организовать линуксовое окружение для сборки пакетов и компиляции прошивки под windows, может кому пригодится...

http://code.google.com/p/wl500g/wiki/colinux

theMIROn
28-01-2009, 06:31
А где взять версию 2009.01.24?
бинарники http://code.google.com/p/wl500g/downloads/list
или напрямую из svn

svn checkout http://wl500g.googlecode.com/svn/trunk/ wl500g-1.9.2.7-d

theMIROn
01-02-2009, 20:42
allow_restart надо где-то включать. Делать это абсолютно для всех дисков я не хочу. А механизм slave_configure позволяет это делать только для всех USB дисков в scsiglue.с. Т.о. надо или втискиваться в существующие hook'и (куда??) или добавлять из 2.6
функции START_UNIT в 2.6 выполнены чуть по другому. Бэкпорт возможен, но надо посидеть и подумать.


Updated: Глянул - это не поможет. Основной вопрос - куда в существующем коде пихать вызов START_UNIT (он же scsi_eh_try_stu в 2.6)?

Updated2: Ну глобально-то понятно - в scsi_unjam_host. А конкретно разобрать эту жуткую функцию в 2.4 на 500 с лишним строк мне тяжеловато. Может найдутся желающие?

Вообщем, реализованы такие дела в /drivers/scsi/
* дополнительные функции STATIC int scsi_send_stu(Scsi_Cmnd * SCpnt) и STATIC int scsi_try_start_unit(Scsi_Cmnd * SCpnt)
* в scsi_unjam_host использование в нужном месте + в reset_host
* в scsi_check_sense возврат FAILED по INIT COMMAND REQUIRED (0x02) для вызова scsi_unjam_host

только INIT COMMAND REQUIRED никогда не придет от usb_storage, там его просто нет, поэтому только по статусу флаг allow_restart устанавливать нельзя. а где именно в /drivers/usb/stogare/ установить флаг srb->allow_restart мне что то совсем не по глазам, доделывать callback фунцкции по типу slave_configure невариант вообще...
что делать будем?

пре-патчи выложу.

tb813
03-02-2009, 15:35
все кричат что очень надо! срочно! без этого жить не можем! А потом тишина...
Вы работаете быстрее, чем я на форум захожу :)... Спасибо огромное! Прошивку залил, опробую как только смогу попозже сегодня - "проблемный" диск сейчас не у меня. Но по-крайней мере работу с другими дисками и флэш-драйвами новый патч не сломал :).

По-поводу Speedmod из Tomato... Насколько я понимаю, большинство изменений в netfilter - это бэкпорт из более нового ядра 2.4.3x (в частности, JHASH в новых ядрах используется стандартно безо всяких define), а по сути там 3 составляющие. (1) Безусловное задание размеров хэш-таблицы в ip_conntrack_core.c (ip_conntrack_htable_size, ip_conntrack_max) и изменение % на & в одном месте, (2) "тонкие настройки" в route.c (ip_rt_gc_elasticity, goal, ipv4_dst_ops.gc_thresh, ip_rt_max_size), и (3) изменения в jhash.h, которые вы пропустили - для использования lookup3 вместо lookup2. Сейчас нет сорсов под рукой кроме вашего дифа - патч не могу сделать.

Знакомый тестировал Tomato до и после Speedmod на 500gPv2. До - роутер умирал после приблизительно 4000 connections и перегружался сам. После - доживал до 9500, и потом, после уменьшения числа коннектов, возвращался к нормальной работе. Правда, неизвестно какова в этом доля собственно Speedmod-изменений, в сравнении с бэкпортом остального кода netfilter из 2.4.3x...

lly
03-02-2009, 17:27
Вы работаете быстрее, чем я на форум захожу :)...
theMIROn изнывает от нетерпения, а ты чем занимаешься??? :D


По-поводу Speedmod из Tomato... Насколько я понимаю, большинство изменений в netfilter - это бэкпорт из более нового ядра 2.4.3x (в частности, JHASH в новых ядрах используется стандартно безо всяких define), а по сути там 3 составляющие.
Именно так!

(1) Безусловное задание размеров хэш-таблицы в ip_conntrack_core.c (ip_conntrack_htable_size, ip_conntrack_max) и изменение % на & в одном месте, (2) "тонкие настройки" в route.c (ip_rt_gc_elasticity, goal, ipv4_dst_ops.gc_thresh, ip_rt_max_size), и (3) изменения в jhash.h, которые вы пропустили - для использования lookup3 вместо lookup2. Сейчас нет сорсов под рукой кроме вашего дифа - патч не могу сделать.
(1) - не нравится
(2) - надо смотреть и анализировать
(3) - посмотрел на сайте автора, тесты все убедительные. Будем экспериментировать? ;)

Изменения в include/ пропустил потому, что они есть только в старой версии 1.21! Конспираторы блин! :mad:

Updated 04.02:
Приаттачил diff'ы к обеим версиям.

lly
04-02-2009, 18:28
По-поводу Speedmod из Tomato:

Решил проэкспериментировать с jhash, т.к. на сайте автора (Bob Jenkin's) тесты убедительные. (r79 - 312-netfilter-jhash.patch)
Кто может сказать нафига в Tomato вынесены в procfs sysctl_ip_conntrack_tcp_timeouts[]/sysctl_ip_conntrack_udp_timeouts[] :confused: Когда это уже всё есть, только в разбивку, а не одним массивом.
оставшиеся константы:

ip_conntrack_core.c:
ip_conntrack_htable_size
ip_conntrack_max
route.c:
ip_rt_gc_elasticity
goal
ip_rt_max_size

Кто-нибудь может добавить убедительное в дополнению к письму tb813


На данный момент размер таблицы conntrack у меня:
ip_conntrack version 2.1 (5953 buckets, 5953 max) - 312 bytes per conntrack

sorine
08-02-2009, 14:52
Думаю, что денек стоит подождать - может кто еще из энтузиастов какие баги найдет и сумеет либо сам поправить, либо четко сформулировать что не так. Уж больно я не люблю письма в стиле "а у нас в подвале стук".
Предлагаю полностью подготовить прошивку к работе с USB модемами. Для начала хотя бы из коммандной строки.
Для этого:
1. Включить в прошивку модули драйверов acm.o и ipw.o. Для этого в файле /Makefile.diff после 277 строки добавить две строки
+ $(SRCMODULESDIR)/drivers/usb/serial/ipw.o
+ $(SRCMODULESDIR)/drivers/usb/acm.o

2. Включить в папку /usr/sbin прошивки бинарник номеронабирателя chat от последней OPENWRT.

theMIROn
10-02-2009, 19:34
Только это похоже фича от авторов DNSMASQ... Насколько я помню, в 1.9.2.7-10 там вообще стояло имя не из hosts, а сообщенное компом... А теперь при обращении к alexey.net, происходит обращение не к 172.16.0.2, как мы хотим, а к адресу внешнего интерфейса роутера (ибо так прописано в днс провайдера)...
стоит почитать на предмет доменов и/или алиасов
http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq.conf.example

theMIROn
10-02-2009, 19:49
Насколько я помню, если имя прописано в hosts, то оно имеет приоритет над DNS серверами, как и было в 1.9.2.7-10, а тут имя просто искажается и не резольвится по hosts...

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
#local=/localnet/
...
# If you don't want dnsmasq to read /etc/hosts, uncomment the
# following line.
#no-hosts
# or if you want it to read another file, as well as /etc/hosts, use
# this.
#addn-hosts=/etc/banner_add_hosts

# Set this (and domain: see below) if you want to have a domain
# automatically added to simple names in a hosts-file.
#expand-hosts

# Set the domain for dnsmasq. this is optional, but if it is set, it
# does the following things.
# 1) Allows DHCP hosts to have fully qualified domain names, as long
# as the domain part matches this setting.
# 2) Sets the "domain" DHCP option thereby potentially setting the
# domain of all systems configured by DHCP
# 3) Provides the domain part for "expand-hosts"
#domain=thekelleys.org.uk


p.s для добавления опций, нужно их прописывать в /usr/local/etc/dnsmasq.conf, который будет дописываться к генерируемому /etc/dnsmasq.conf

theMIROn
10-02-2009, 20:14
Не знаю, в прошивке Олега используется pptpclient.Кстати, летом 2008 вышел новый релиз этого пакета после более чем двухлетнего перерыва - 1.7.2 (с)
http://pptpclient.sourceforge.net/

sorine
11-02-2009, 20:43
Ну вот как и обещал, осилил я универсальный скрипт подъема соединения посредством USB модемов(GPRS, CDMA, DIALUP, IPW). Скрипт одним файлом.
Для его нормальной работы необходимо чтобы в прошивке были модули acm.o и ipw.o, а также в ядре включен параметр CONFIG_USB_DEVPATH=y.
Входные параметры скрипта которые надо задать:

nvram set modem= может принимать значения gprs, cdma, dialup, ipw - это параметр зависит от того, какой у вас модем;
nvram set apn= точка доступа для gprs и ipw модемов, например internet.mts.ru;
nvram set dialnumber= номер набора для gprs и dialup модемов например *99#;
nvram set dialinit= строка инициализации dialup модема;
nvram set username= имя пользователя;
nvram set ipwpin= пин код ipw модема;
nvram set ipwclpin= пин код ipw модема;
nvram set ipwmode= режим ipw модема.
nvram set maxpacketsize= максимальный размер пакета ACM модема;
nvram set vid= индентификатор модема;
nvram set pid= индентификатор модема.

Вот сам скрипт usbmodem.sh

#!/bin/sh
kill -9 $(ps|grep pppd|awk -F' ' '{print $1}') 2>/dev/null
mkdir /tmp/ppp/
mkdir /tmp/ppp/peers/
apn=$(nvram get apn)
dialnumber=$(nvram get dialnumber)
dialinit=$(nvram get dialinit)
ipwpin=$(nvram get ipwpin)
ipwclpin=$(nvram get ipwclpin)
ipwmode=$(nvram get ipwmode)
modem=$(nvram get modem)
username=$(nvram get username)
vid=$(nvram get vid)
pid=$(nvram get pid)
maxpacketsize=$(nvram get maxpacketsize)
if [ "$maxpacketsize" == "" ]; then
insmod acm
else
insmod acm maxpacketsize=$maxpacketsize
fi
if [ "$vid" == "" -o "$pid" == "" ]; then
insmod usbserial
else
insmod usbserial vendor=$vid product=$pid
fi
insmod pl2303
insmod ftdi_sio
insmod ipw
echo "'' ''" > /tmp/ppp/peers/cdma.chat
echo "'' 'ATZ'" >> /tmp/ppp/peers/cdma.chat
echo "'OK' 'ATI'" >> /tmp/ppp/peers/cdma.chat
echo "'OK' 'ATDT#777'" >> /tmp/ppp/peers/cdma.chat
echo "'CONNECT' 'ATO'" >> /tmp/ppp/peers/cdma.chat
echo "ABORT 'NO CARRIER'" > /tmp/ppp/peers/ipw.chat
echo "'' ''" >> /tmp/ppp/peers/ipw.chat
echo "'' 'ATZ'" >> /tmp/ppp/peers/ipw.chat
echo "'OK' 'AT+CPIN?'" >> /tmp/ppp/peers/ipw.chat
echo "'OK' 'AT+CPIN=$ipwpin'" >> /tmp/ppp/peers/ipw.chat
echo "TIMEOUT 2" >> /tmp/ppp/peers/ipw.chat
echo "OK-ATZ-OK 'ATZ'" >> /tmp/ppp/peers/ipw.chat
echo "'OK' 'AT+CLCK=\"SC\",0,\"$ipwclpin\"'" >> /tmp/ppp/peers/ipw.chat
echo "OK-ATZ-OK 'ATZ'" >> /tmp/ppp/peers/ipw.chat
echo "TIMEOUT 30" >> /tmp/ppp/peers/ipw.chat
echo "'OK' 'AT+CLCK=\"SC\",2'" >> /tmp/ppp/peers/ipw.chat
echo "'OK' 'AT+CIMI'" >> /tmp/ppp/peers/ipw.chat
echo "OK-AT+CIMI-OK 'AT+CGMI'" >> /tmp/ppp/peers/ipw.chat
echo "'OK' 'AT+CGMM'" >> /tmp/ppp/peers/ipw.chat
echo "'OK' 'AT+CGMR'" >> /tmp/ppp/peers/ipw.chat
echo "'OK' 'AT+CSQ'" >> /tmp/ppp/peers/ipw.chat
echo "'OK' 'AT+CBC'" >> /tmp/ppp/peers/ipw.chat
echo "'' 'AT+CFUN=4,$ipwmode'" >> /tmp/ppp/peers/ipw.chat
echo "'' 'AT+CGATT?'" >> /tmp/ppp/peers/ipw.chat
echo "'' 'AT+CGSN'" >> /tmp/ppp/peers/ipw.chat
echo "'CGSN:' 'AT+COPS?'" >> /tmp/ppp/peers/ipw.chat
echo "\\\"-AT+COPS?-OK 'AT&FE1Q0V1&C1&D2S0=0S7=60&K3N1'" >> /tmp/ppp/peers/ipw.chat
echo "'OK' 'AT+CGDCONT=1,\"PPP\",\"$apn\",\"0,0\",0,0'" >> /tmp/ppp/peers/ipw.chat
echo "ABORT ERROR" >> /tmp/ppp/peers/ipw.chat
echo "'OK' 'ATDT*99#'" >> /tmp/ppp/peers/ipw.chat
echo "'CONNECT' ''" >> /tmp/ppp/peers/ipw.chat
echo "'' ''" > /tmp/ppp/peers/dialup.chat
echo "'' 'ATI'" >> /tmp/ppp/peers/dialup.chat
echo "'' 'ATZ'" >> /tmp/ppp/peers/dialup.chat
echo "$dialinit" >> /tmp/ppp/peers/dialup.chat
echo "'OK' 'ATD$dialnumber'" >> /tmp/ppp/peers/dialup.chat
echo "'CONNECT' ''" >> /tmp/ppp/peers/dialup.chat
echo "'' ''" > /tmp/ppp/peers/gprs.chat
echo "'' 'ATZ'" >> /tmp/ppp/peers/gprs.chat
echo "'OK' 'ATI'" >> /tmp/ppp/peers/gprs.chat
echo "'OK' 'AT+COPS?'" >> /tmp/ppp/peers/gprs.chat
echo "'OK' 'AT+CGDCONT=1,\"IP\",\"$apn\"'" >> /tmp/ppp/peers/gprs.chat
echo "'OK' 'ATD$dialnumber'" >> /tmp/ppp/peers/gprs.chat
echo "'CONNECT' ''" >> /tmp/ppp/peers/gprs.chat
echo $(cat /proc/bus/usb/devpath | grep -o "/.*" | awk -F ':' '{print $1}') > /tmp/ppp/peers/$modem
echo "debug" >> /tmp/ppp/peers/$modem
echo "crtscts" >> /tmp/ppp/peers/$modem
echo "noipdefault" >> /tmp/ppp/peers/$modem
echo "ipcp-accept-local" >> /tmp/ppp/peers/$modem
echo "lcp-echo-interval 60" >> /tmp/ppp/peers/$modem
echo "lcp-echo-failure 5" >> /tmp/ppp/peers/$modem
echo "usepeerdns" >> /tmp/ppp/peers/$modem
echo "noauth" >> /tmp/ppp/peers/$modem
echo "nodetach" >> /tmp/ppp/peers/$modem
echo "user \"$username\"" >> /tmp/ppp/peers/$modem
echo "connect \"/usr/sbin/chat -s -S -V -t 30 -f /tmp/ppp/peers/$modem.chat 2>/tmp/chat.log\"" >> /tmp/ppp/peers/$modem
pppd call $modem >> /tmp/chat.log

Ily, предлагаю скрипт внести в исходный код others.diff с компиляцией скрипта в папку /usr/sbin c правами 755, включить модули acm.o ipw.o и параметр ядра CONFIG_USB_DEVPATH=y.
В дальнейшем останется только сделать веб морду. Но тем, кому очень надо смогут пользоваться USB модемами прямо сейчас.

P.S. Сейчас пишу через Nokia N81 и роутер на котором запущен этот скрипт.

al37919
14-02-2009, 20:02
да, пожалуй. Возможно, в этом и есть причина, почему Олег не добавил эту фичу сам. У него в прошивке не пишется ничего в flashfs. Хотя почему --- до конца не понятно, т.к. flashfs неотъемлемая часть прошивки.

О, кстати, я не прав --- /tmp/local/root создается. Впрочем, нет. Он создается при каждой загрузке и при этом не сохраняется.

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

Мне видится следующая логика:
1) если flashfs disabled, то do nothing
2) если enabled, то проверить наличие /tmp/local/etc/dropbear
3) если его нету, то сгенерить ключи и сохранить flashfs

Коллеги, что скажете?

al37919
15-02-2009, 09:17
есть еще один вариант. Хранить ключ в nvram. Места там хватает.

Тогда можно сделать так:
1) если ключей в nvram нет, то сгенерить их
2) если flashfs disabled то создать /tmp/local/etc/dropbear и развернуть туда ключи (flashfs не сохраняем --- оставляем это на совести юзера)
3) если enabled то проверить наличие директории и при необходимости развернуть туда же (flashfs либо сохранить, либо нет --- вроде без большой разницы)

ключ в nvram можно хранить в текстовом формате.

Единственная проблема остается --- если юзер сгенерит ключи сам, то в flashfs и в nvram будут храниться разные ключи. Однако, функциональность будет сохранена в любом случае.

Кстати, любопытный вопрос. Размер nvram составляет 64К:

cat /proc/mtd | grep nvram
mtd3: 00010000 00010000 "nvram"
С другой стороны, объем используемой памяти составляет ровно 32768 байт:

nvram show > /dev/null
size: 11633 bytes (21135 left)

Сидит эта цифра в макросе NVRAM_SPACE объявленном как 0x8000. Выходит, что 32К пропадают совсем впустую.

Oleg
16-02-2009, 12:45
О как. Оказывается существует такая ветка. :)

Я сейчас времени кодировать не имею особо, но подсказать могу. :D

Спрашивайте конечно.

У меня остались какие-то исправления, я планировал выпустить обновления для 1.9.2.7-9 и 10. Может ещё и выпущу. Там нужно хорошо поразбираться ещё раз с PPTP/PPPoE/L2TP со свзякой с DHCP и DNS. Какие-то грабли там остались, в основном из попыток скрестить ужа с ежом. По хорошему, там вообще нужно переделать веб-интерфейс, чтобы логика была максимально приближена к форточкам. И убить MAN в маршрутах, назвав его WAN. :)

Что касается dropbear и генерации ключей. У меня была задумка, нереализованная, добавить дефолтный стартовый скрипт, который бы автоматом генерировал ключи и сохранял их во flashfs при необходимости. Тогда в post-boot нужно было бы только этот скрипт запустить.

От хранения ключей в nvram я отказался (изначально так и было) после добавления flashfs, т.к. это сильно упростило запуск dropbear да и других программ - ключ не нужно было перепаковывать туда-сюда. Кроме того, с nvram есть подстава. Размер всего 32к, который имеет свойства заканчиваться. Поглядите на dd-wrt: там постоянно проблемы c nvram. В общем это место я решил не использовать тогда.

ЗЫ: Сейчас у меня на столе лежит инженерный образец ASUS RT-N16. BCM4718@533Mhz, 128MB DDR2 RAM, дофига флеша (типа 32мегабайта, не помню), гигабит, 802.11n, 2xUSB 2.0. В продаже ожидается летом. Цена, думаю будет в районе 150 долларов.

lly
16-02-2009, 13:02
О как. Оказывается существует такая ветка. :)
Стараемся выжать максимум из того что есть :)

Я сейчас времени кодировать не имею особо, но подсказать могу. :D
Парочка вопросов есть:

Не помнишь зачем добавлялся к pptp route_add() ?
http://wl500g.info/showthread.php?p=115389#post115389
http://wl500g.info/showthread.php?t=14081&page=2
Почему ты не стал включать CONFIG_PACKET_MMAP? Для большинства это лишнее?


ЗЫ: Сейчас у меня на столе лежит инженерный образец ASUS RT-N16. BCM4718@533Mhz, 128MB DDR2 RAM, дофига флеша (типа 32мегабайта, не помню), гигабит, 802.11n, 2xUSB 2.0.
Я надеюсь хоть ядро там 2.6? Broadcom опять всё в бинарниках поставляет?

Oleg
16-02-2009, 13:21
Стараемся выжать максимум из того что есть :)

Парочка вопросов есть:

Не помнишь зачем добавлялся к pptp route_add() ?
http://wl500g.info/showthread.php?p=115389#post115389
http://wl500g.info/showthread.php?t=14081&page=2
Почему ты не стал включать CONFIG_PACKET_MMAP? Для большинства это лишнее?



1) Да, вот он глюк о котором я написал выше. Маршрут добавляться должен, иначе Корбина и похожие на неё работать перестанут, т.к. у них адрес впн сервера совпадает с пиром, который используется ппп. В данном случае маршрут не стоило добавлять, т.к. сервер находится в одной сети с роутером. Я это переделывал в 9/10 прошивке, в предыдущих код был немного другим и таких вещей не происходило, но были какие-то другие несчастья, при исправлении которых я испортил логику. Где-то я убрал проверку гейта. Зачем-то. В общем сравни этот кусок в разных версиях. МОжешь сюда запостить оба варианта, я тоже гляну. В L2TP должен быть точно такой же код.

2) А нафига он? :) Я вообще воздерживался от включения многих фич по одной причине - мало места. Единственное, что включать нельзя - ebtables, т.к. фаервол наш начнёт работать неправильно. :)



Я надеюсь хоть ядро там 2.6? Broadcom опять всё в бинарниках поставляет?
Я его не включал. :) Т.е. включил вслепую, проверил, что в режиме восстановления он входит и сразу выключил. :) При случае гляну. А вообще плата приятная в том плане, что на ней есть jtag. :)

theMIROn
16-02-2009, 16:36
3. Чейнджлог - это здорово, но для ламерской части форума (к коей себя и отношу) очень было бы неплохо (по аналогии с чешским сайтом) некий презентационный характер того же первого поста.http://code.google.com/p/wl500g/wiki/NEWS


- скриншот веба (в нем же есть изменения?)практически никаких (за исключением запуска dropbear)


- кратко чем новая проша лучше, какие возможностиhttp://code.google.com/p/wl500g/wiki/NEWS


- поддержка устройстввсе поддерживаемые ядром Linux 2.4.37 + IPWireless + SigmaTel 4200 + ftdi FT232R + Sierra wireless driver + USB serial 3G cards


- краткие планы ближайшего развитияlly написал об этом с самого начала:

Смысл предложения в следующем - хорошо бы потестировать патчи до возвращения Олега, для ускорения процесса включения в mainstream. Должен сразу предупредить - я, увы, не разбираюсь в вопросе так же глубоко, как Олег. Поэтому обращаюсь к людям способным самостоятельно исследовать проблему и не боящихся слова tftp :rolleyes:


То есть, все мои настроенные сервисы будут работать, dropbear будет пускать меня по тому же настроенному мной порту, файлы pre-boot, post-boot, post-mount и т.п. этой прошивкой поддерживаются и т.д. Иначе говоря, ПРОШИВКА 1.9.2.7-d ИМЕЕТ ПОЛНУЮ ОБРАТНУЮ СОВМЕСТИМОСТЬ С ПРОШИВКОЙ ОЛЕГА 1.9.2.7-10. Правильно?1.9.2.7-d основана на 1.9.2.7-10 (вся логика) + обновления ядра, модулей + различные фиксы и патчи, соответственно совместимость и преемственность сохраняется полностью


Аналогично, я могу в любой момент вернуться на Олегову. Так?Да, как и на любую другую совместимую (dd-wrt, cdmawifi, etc)

bmenee
17-02-2009, 06:55
Есть идеи как можно организовать переключение между различными версиями /www ? Например разный внешний вид веб интерфейса или перевод (как раз такой патч хочу подготовить).

al37919
17-02-2009, 06:58
тебе же ответили --- монтировать поверх каталога www с опцией bind

lly
17-02-2009, 08:11
Можно ли добавить USB модуль ipaq. Он нужен для работы Windows Mobile 6 устройств в качестве USB modema. Вот тут немного об этом http://www.3g.co.ua/forum/forum_posts.asp?TID=3827&PN=1, правда ядро 2.6.
Преамбула: надо было не полениться, и не давать ссылок на бла-бла-бла, а залезть в доку ядра 2.4 и обнаружить там модуль ipaq. И попросить его просто скомпилировать.

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

Oleg
18-02-2009, 19:26
Немного офф, но с другой стороны и не офф.

По поводу RT-N16. Был вопрос, что там за ядро. Догадайтесь с одного раза. :)



CFE version 1.0.37 for BCM947XX (32bit,SP,LE)
Build Date: Thu Dec 4 16:48:54 CST 2008 (root@localhost.localdomain)
Copyright (C) 2000-2008 Broadcom Corporation.

Init Arena
Init Devs.
Boot partition size = 262144(0x40000)
et0: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 5.10.56.3
CPU type 0x19740: 532MHz
Tot mem: 131072 KBytes

CFE mem: 0x80700000 - 0x8079AE30 (634416)
Data: 0x80731670 - 0x807343A0 (11568)
BSS: 0x807343A0 - 0x80734E30 (2704)
Heap: 0x80734E30 - 0x80798E30 (409600)
Stack: 0x80798E30 - 0x8079AE30 (8192)
Text: 0x80700000 - 0x80731670 (202352)

Device eth0: hwaddr 00-90-4C-08-00-2D, ipaddr 192.168.1.1, mask 255.255.255.0
gateway not set, nameserver not set
Null Rescue Flag.
Loader:raw Filesys:raw Dev:flash0.os File: Options:(null)
Loading: .... 1585152 bytes read
Entry at 0x80001000
Closing network.
Starting program at 0x80001000
CPU ProcId is: 0x00019740, options: 0x000021cd
Primary instruction cache 32kb, linesize 32 bytes (4 ways)
Primary data cache 32kb, linesize 32 bytes (4 ways)
Linux version 2.4.20 (root@localhost.localdomain) (gcc version 3.2.3 with Broadcom modifications) #18 Thu Dec 4 11:19:32 CST 2008
Determined physical RAM map:
memory: 07fff000 @ 00000000 (usable)
On node 0 totalpages: 32767
zone(0): 32767 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/mtdblock2 noinitrd console=ttyS0,115200
CPU: BCM4716 rev 1 at 532 MHz
Calibrating delay loop... 265.42 BogoMIPS
Memory: 127872k/131068k available (1352k kernel code, 3196k reserved, 112k data, 64k init, 0k highmem)
Dentry cache hash table entries: 16384 (order: 5, 131072 bytes)
Inode cache hash table entries: 8192 (order: 4, 65536 bytes)
Mount-cache hash table entries: 2048 (order: 2, 16384 bytes)
Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
Page-cache hash table entries: 32768 (order: 5, 131072 bytes)
Checking for 'wait' instruction... unavailable.
POSIX conformance testing by UNIFIX
PCI: Using membase 8000000
PCI: Initializing host
PCI: Reset RC
PCI: Fixing up bus 0
PCI: Fixing up bridge
PCI: Fixing up bridge
PCI: Enabling device 01:00.1 (0004 -> 0006)
PCI: Fixing up bus 1
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
ttyS00 at 0xb8000300 (irq = 8) is a 16550A
PPP generic driver version 2.4.2
Amd/Fujitsu Extended Query Table v1.3 at 0x0040
number of CFI chips: 1
Flash device: 0x2000000 at 0x1c000000
Physically mapped flash: cramfs filesystem found at block 918
Creating 4 MTD partitions on "Physically mapped flash":
0x00000000-0x00040000 : "boot"
0x00040000-0x01fe0000 : "linux"
0x000e5a94-0x01fe0000 : "rootfs"
0x01fe0000-0x02000000 : "nvram"
Found a 0MB serial flash
sflash: found no supported devices
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 8192 bind 16384)
Linux IP multicast router 0.06 plus PIM-SM
ip_conntrack version 2.1 (1023 buckets, 8184 max) - 344 bytes per conntrack
ip_tables: (C) 2000-2002 Netfilter core team
ipt_time loading
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: Ethernet Bridge 008 for NET4.0
802.1Q VLAN Support v1.7 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
VFS: Mounted root (cramfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 64k freed
Using /lib/modules/2.4.20/kernel/drivers/net/emf/emf.o
Using /lib/modules/2.4.20/kernel/drivers/net/igs/igs.o
Using /lib/modules/2.4.20/kernel/drivers/net/et/et.o
Using /lib/modules/2.4.20/kernel/drivers/net/bcm57xx/bcm57xx.o
insmod: init_module: bcm57xx: No such device
Using /lib/modules/2.4.20/kernel/drivers/net/wl/wl.o
Hit enter to continue...telnetd: starting
port: 23; interface: any; login program: /bin/sh
WARNING: console log level set to 1
vlan1: No such device
ifconfig: No such device
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Operation not supported
eth1: Invalid argument
eth1: Invalid argument
eth1: Operation not supported
br1: Network is unreachable
killall: upnp: no process killed
UPnP::upnp_init:UPnP daemon is ready to run
killall: wps_monitor: no process killed
killall: wps_ap: no process killed
killall: wps_enr: no process killed
Hit enter to continue...Hit enter to continue...


BusyBox v0.60.0 (2008.11.17-08:51+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.

#
# cat /proc/cpuinfo
system type : Broadcom BCM4716 chip rev 1
processor : 0
cpu model : V4.0
BogoMIPS : 265.42
wait instruction : no
microsecond timers : yes
tlb_entries : 64
extra interrupt vector : no
hardware watchpoint : yes
VCED exceptions : not available
VCEI exceptions : not available
unaligned_instructions : 0
System clocks
(cpu/mem/si/xtal) : 532/266/133/20 Mhz.
dcache hits : 2147483648
dcache misses : 3750653946
icache hits : 2147483648
icache misses : 1840993899
instructions : 2147483648
# wl revinfo
vendorid 0x14e4
deviceid 0x4329
radiorev 0x72056000
chipnum 0x4716
chiprev 0x1
corerev 0x11
boardid 0x4cf
boardvendor 0x14e4
boardrev P221
driverrev 0x50a3803
ucoderev 0x1fc0066
bus 0x0
phytype 0x4
phyrev 0x5
anarev 0x8
# wl status
SSID: "Broadcom"
Mode: Managed RSSI: 0 dBm noise: 0 dBm Channel: 11
BSSID: 00:90:4C:09:00:2D Capability: ESS ShortSlot
Supported Rates: [ 1(b) 2(b) 5.5(b) 6 9 11(b) 12 18 24 36 48 54 ]
802.11N Capable:
Chanspec: 2.4GHz channel 11 20MHz (0x2b0b)
Control channel: 11
802.11N Capabilities:
Supported MCS : [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]

# wl cap
ap led wme pio 802.11d 802.11h rm cqa mbss16 afterburner ampdu amsdurx amsdutx


Богомипсов как-то маловато. Хотя может не в попугаях счастье? :)

Устройство полуживое, при загрузке usb модулей просто вешается. Версия броадкомовской части 5.10.56.3, сорцов у меня нет.

theMIROn
23-02-2009, 09:33
Привет. Спасибо огромное за проделанный труд.
Я правильно понимаю, что сборка для WL-HDD не возможна ?
В WL-HDD используется BCM4702 CPU, который больше не поддерживается вендором

ghost_ufa
23-02-2009, 15:36
Господа, обратил внимание что тулчейн под данную прошивку сделан из gcc 4.1.2 & uClibc 0.9.29 - что на ступеньку дальше чем в текущем optware. Ну и сразу вопросы - во первых, этот тулчейн собирался на базе оптваревского или отдельно, и во-вторых как это повлияет на сам установленый optware? Ну и напоследок - а optware таким тулчейном собирается?

...а то я тут оптваревский отапгрейдил до того же состояния, а потом обнаружил, что все уже придумано ДО нас :)

theMIROn
23-02-2009, 15:39
Господа, обратил внимание что тулчейн под данную прошивку сделан из gcc 4.1.2 & uClibc 0.9.29 - что на ступеньку дальше чем в текущем optware. Ну и сразу вопросы - во первых, этот тулчейн собирался на базе оптваревского или отдельно, и во-вторых как это повлияет на сам установленый optware? Ну и напоследок - а optware таким тулчейном собирается?

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

lly
23-02-2009, 15:43
Ну и сразу вопросы - во первых, этот тулчейн собирался на базе оптваревского или отдельно, и во-вторых как это повлияет на сам установленый optware? Ну и напоследок - а optware таким тулчейном собирается?
optware делался параллельно и не имеет прямого отношения к нашему. Наш собран на базе OpenWRT плюс кой-какие докрутки к uClibc (см. каталог uClibc в прошивке). На optware не влиет никак, т.к. линковка идет с путями в /lib, а не /opt/lib.
optware ведет oleo из англоязычного форума, логично спрашивать его.

ghost_ufa
23-02-2009, 16:57
>optware делался параллельно и не имеет прямого отношения к нашему.

дык о том и речь - пробовалось ли этим тулчейном оптваревские пакеты пособирать?


>на optware не влиет никак, т.к. линковка идет с путями в /lib, а не /opt/lib.

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

Да, а сорцы этого тулчейна можно где глянуть?

lly
23-02-2009, 17:19
дык о том и речь - пробовалось ли этим тулчейном оптваревские пакеты пособирать?
99% собирается.


>на optware не влиет никак, т.к. линковка идет с путями в /lib, а не /opt/lib.

ну так то да, только в памяти при этом присутствуют два экземпляра почти одной библиотеки, что для мелкой системы некошерно.
Согласен, но кто будет весь nslu2 пересобирать? Пушкин? И с oleo надо еще договориться, он в своё время был против базирования на OpenWRT...

Да, а сорцы этого тулчейна можно где глянуть?
Не догадываешься? ;) https://dev.openwrt.org/browser/trunk/toolchain
Могу выложить и свои конфиги, но скажи, зачем?

ghost_ufa
23-02-2009, 17:55
>99% собирается.

это радует.

> но кто будет весь nslu2 пересобирать? Пушкин?

а зачем пересобирать весь? Желающие для себя пересоберут то что надо, и этим можно ограничиться :)

>Не догадываешься?

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

>Могу выложить и свои конфиги, но скажи, зачем?

Затем что у мну не собирается несколько приложений ни нативно, ни кроссово. Смена тулчейна - последняя надежда.

ЗЫ. Пересобрал версию 10-d прошивки с поддержкой tmpfs (правда не как основной fs...), щас тестирую малость.


ЗЗЫ. Задание неких ключей компиляции конфигуру для PHP сократило размер полученых бинарников в ДВА С ПОЛОВИНОЙ раза (по сравнению с просто "О2"). Увидел - не поверил, однако make test прошло с эээ... допустимым числом ошибок, и работает заметно быстрее. Вопрос спецам - а че эт оно так?


CFLAGS="-O2" CXXFLAGS="-O2 -felide-constructors -nortti" \
ac_cv_sys_restartable_syscalls=yes \
./configure ...

ЕМНИМС других изменений при сборке не было.

lly
23-02-2009, 18:04
>Могу выложить и свои конфиги, но скажи, зачем?

Затем что у мну не собирается несколько приложений ни нативно, ни кросоово. Смена тулчейна - последняя надежда.
Ну и зачем тебе самому пересобирать тулчейн? Скрипты линковки можно править в уже выложенном. Или замахиваешься на правку gcc или uClibc?

ghost_ufa
23-02-2009, 18:21
Или замахиваешься на правку gcc или uClibc?

именно. Бакпортом патчей из старших версий. На mipsel там мнооого всего :-/

lly
23-02-2009, 18:51
именно. Бакпортом патчей из старших версий. На mipsel там мнооого всего :-/
Если uClibc - то планы переезда на 0.9.30.1 (как отрелизят) есть. Но обязательно придётся тщательно тестировать, бывает много сырого кода :(
Тогда мне надо пройтись по дереву и вытащить чего менял, готового пакета/архива нет. Как смогу, выложу. Версия SVN OpenWRT - 14025.

ghost_ufa
23-02-2009, 19:32
>Но обязательно придётся тщательно тестировать, бывает много сырого кода

как же без этого :confused: Порой один патч требует еще три чтобы хоть как-то компиляться начало, как раз столкнулся.


>Тогда мне надо пройтись по дереву и вытащить чего менял


Спасибо, жду.

> Версия SVN OpenWRT - 14025.

Скачал последнюю - так у них даже для gcc 4.3.3 уже патчи есть :) Вселяет надежду :rolleyes:

lly
23-02-2009, 19:52
Скачал последнюю - так у них даже для gcc 4.3.3 уже патчи есть :) Вселяет надежду :rolleyes:
Не стоит, с 4.3 большинство пакетов не соберутся, а уж про ядро и драйвера я молчу.
Имеет смысл только для супер-пупер C++ проектов, кои для роутера не сильно актуальны.

ghost_ufa
24-02-2009, 01:04
не, я про то что наличие 4.3 повышает вероятность работоспособности 4.2.4 :D


UPD:

кстати об отладке прошивок без опасности угробить коробочку - а что уважаемые гуру думают про kexec?

ОпенВРТ таки да - https://dev.openwrt.org/browser/trunk/package/kexec-tools/Makefile?rev=11856

ghost_ufa
24-02-2009, 11:57
У gcc 4.1.2 пожестче с типизацией, и mysql не собирается без такого патча


#http://sunsite.icm.edu.pl/listserv/wa.cgi?A2=ind0207&L=sun-admins-pl&F=lf&P=14515


--- mysql-4.1.22/sql/mysqld.cc.orig 2006-11-03 07:15:29 +0500
+++ mysql-4.1.22/sql/mysqld.cc 2009-02-24 07:38:09 +0500
@@ -3778,7 +3778,7 @@
{
size_socket length=sizeof(struct sockaddr_in);
new_sock = accept(sock, my_reinterpret_cast(struct sockaddr *) (&cAddr),
- &length);
+ (socklen_t *)&length);
#ifdef __NETWARE__
// TODO: temporary fix, waiting for TCP/IP fix - DEFECT000303149
if ((new_sock == INVALID_SOCKET) && (socket_errno == EINVAL))
@@ -3851,7 +3851,7 @@
size_socket dummyLen;
struct sockaddr dummy;
dummyLen = sizeof(struct sockaddr);
- if (getsockname(new_sock,&dummy, &dummyLen) < 0)
+ if (getsockname(new_sock,&dummy, (socklen_t *)&dummyLen) < 0)
{
sql_perror("Error on new connection socket");
(void) shutdown(new_sock,2);

lly
24-02-2009, 12:22
У gcc 4.1.2 пожестче с типизацией
В 4.2 и 4.3 должно быть еще жестче.

Oleg
24-02-2009, 12:25
У gcc 4.1.2 пожестче с типизацией, и mysql не собирается без такого патча


#http://sunsite.icm.edu.pl/listserv/wa.cgi?A2=ind0207&L=sun-admins-pl&F=lf&P=14515


--- mysql-4.1.22/sql/mysqld.cc.orig 2006-11-03 07:15:29 +0500
+++ mysql-4.1.22/sql/mysqld.cc 2009-02-24 07:38:09 +0500
@@ -3778,7 +3778,7 @@
{
size_socket length=sizeof(struct sockaddr_in);
new_sock = accept(sock, my_reinterpret_cast(struct sockaddr *) (&cAddr),
- &length);
+ (socklen_t *)&length);
#ifdef __NETWARE__
// TODO: temporary fix, waiting for TCP/IP fix - DEFECT000303149
if ((new_sock == INVALID_SOCKET) && (socket_errno == EINVAL))
@@ -3851,7 +3851,7 @@
size_socket dummyLen;
struct sockaddr dummy;
dummyLen = sizeof(struct sockaddr);
- if (getsockname(new_sock,&dummy, &dummyLen) < 0)
+ if (getsockname(new_sock,&dummy, (socklen_t *)&dummyLen) < 0)
{
sql_perror("Error on new connection socket");
(void) shutdown(new_sock,2);

Бредовый патч. Надо не тип приводить, а переменную определить сразу нужного типа.

ghost_ufa
24-02-2009, 16:53
Тип переменной менять - это еще и все окружение можно зацепить, а локальное приведение и компиляется, и даже работает. Что там действительно бредовое - так это стиль майскулевских программеров.

Oleg
24-02-2009, 17:28
Тип переменной менять - это еще и все окружение можно зацепить, а локальное приведение и компиляется, и даже работает.
С таким подходом лучше вообще не браться...

sorine
24-02-2009, 19:21
lly,
У меня просьба бэк портировать anydata.c из 2.6 в нашу. Именно этот модуль входит в чешский модуль modem.o

lly
24-02-2009, 20:06
Дело даже не в этом. Просто МИПС он у каждого свой. :) Вот в писюке всё просто есть и биос и фиксированные точки входа. А здесь - кто на что горазд.
Ну базовый набор команд конечно совпадает, а вот параметры инициализации ...

Кстати, в твоё отсутствие возник вопрос о наличии DSP ASE в нашем проце BCM4704 and DSP instructions (http://wl500g.info/showthread.php?t=17234)
Я перетащил расшифровку config1-config3 из ядра 2.6, согласно ему DSP отсутствует как класс, а на сайте броадкома заявляется что какой-то DSP есть! И кому верить?

Oleg
24-02-2009, 20:15
Я перетащил расшифровку config1-config3 из ядра 2.6, согласно ему DSP отсутствует как класс, а на сайте броадкома заявляется что какой-то DSP есть! И кому верить?
Я на блок схеме DSP не нашёл. А где броадком про это пишет? Я раньше не встречал...

sorine
24-02-2009, 20:17
Пальцем ткни?! Ни в 2.6.27, ни в 2.6.28.7 я не вижу anydata.c.
:mad:

В новых ядрах:
drivers/usb/serial/option.c
Начиная с 2005 года появился доп модуль для usb модемов по названием
"option" (ком. разработчика: "This driver is named "option" because the
most common device it's used for is a PC-Card (with an internal OHCI-USB
interface, behind which the GSM interface sits), made by Option Inc.")
(в ядрах с 2.6.18 уже точно рабочая версия присутствует, а впревые
пришёл из git веток ядра 2.6.xз).

Описание модуля(это и есть чешский modem.o):

USB Driver for GSM modems v0.7.1
Copyright (C) 2005 Matthias Urlichs <smurf@smurf.noris.de.>

This driver exists because the "normal" serial driver doesn't work too well
with GSM modems. Issues:
- data loss -- one single Receive URB is not nearly enough
- nonstandard flow (Option devices) control
- controlling the baud rate doesn't make sense

В нем сразу многих нестандартных CDMA и GPRS
Он включает в себя старый отдельный anydata.c например в 2.6.16
http://www.gelato.unsw.edu.au/lxr/source/drivers/usb/serial/anydata.c?a=i386

sorine
24-02-2009, 20:36
lly,
патч usbserial для модема ZTE MF626 (билайновский)
http://www.gentoo.ru/node/12140?page=1

ConstZ
24-02-2009, 21:22
Я на блок схеме DSP не нашёл. А где броадком про это пишет? Я раньше не встречал...
Вроде как Broadcom говорит о "DSP-подобных" инструкциях, имея в виду MDMX, реализованный в математическом сопроцессоре. Это SIMD, обрабатывающие спаренные операнды типа single.

А вот аппаратная поддержка шифрования там точно есть, и в OpenWRT вроде как поддерживается.
HardwareAcceleratedCrypto (http://wiki.openwrt.org/HardwareAcceleratedCrypto)

liutyi
24-02-2009, 21:52
WL500gpv2-1.9.2.7-d-20090225.trx

top стал показывать значительно лучше :-)

заметил что на флешку с FAT32 1.3ГБ файл залить нелзя. (5МБ можно.)
А вот если поформатить флешку в ext3 то все ОК.
это у всех так или я что-то не так делаю?

ghost_ufa
25-02-2009, 06:17
В продолжение вопроса про отладку ядра - вот как это происходит у одних соседей http://dsmg600.info/howto:loader_o. И у других соседей - https://dev.openwrt.org/changeset/10803


ЗЫ. Oleg как-то писАл: "нативная компиляция просто халява по сравнению с кроссовой! Большинство разработчиков вообще не задумываются о кросс-компиляции своих пакетов". Вот только что еще раз столкнулся - отрывок из configure пакета PHP


echo "$as_me:$LINENO: checking for BZip2 in default path" >&5
echo $ECHO_N "checking for BZip2 in default path... $ECHO_C" >&6
for i in /usr/local /usr; do
if test -r $i/include/bzlib.h; then
BZIP_DIR=$i
echo "$as_me:$LINENO: result: found in $i" >&5
echo "${ECHO_T}found in $i" >&6
break
fi
done


И что самое удивительное - PHP вроде как числится среди успешно кросс-компиляемых пакетов...

lly
25-02-2009, 07:29
lly,
патч usbserial для модема ZTE MF626 (билайновский)
http://www.gentoo.ru/node/12140?page=1
Мимо тазика. Ты сам в текущий unusual_devs.h из SVN заглядывал?

P.S. Данную проблему должен решать патч openwrt/802-usb_serial_3g_cards.patch

lly
25-02-2009, 07:36
Вроде как Broadcom говорит о "DSP-подобных" инструкциях, имея в виду MDMX, реализованный в математическом сопроцессоре. Это SIMD, обрабатывающие спаренные операнды типа single.
В теории - ДА! А в практике, 5-й бит (MD) в регистре config1 не выставлен, что по стандарту означает отсутствие MDMX.

А вот аппаратная поддержка шифрования там точно есть, и в OpenWRT вроде как поддерживается.
HardwareAcceleratedCrypto (http://wiki.openwrt.org/HardwareAcceleratedCrypto)
Проглядел, буду читать. Но меня смущает то, что якобы это только для чипа 4704P, а нигде в открытом доступе разблюдовки по модификациям я не нашел :(

theMIROn
25-02-2009, 07:45
И у других соседей - https://dev.openwrt.org/changeset/10803
проблемы там
http://forum.openwrt.org/viewtopic.php?id=17768

ghost_ufa
25-02-2009, 08:32
Ага, где-то по первой линке как раз и говорится, что кернел для мипса надо патчить - чтобы он мог загружаться через kexec. Определение памяти, параметры запуска, прочее...

Но судя по переписке - вопрос будет в разумное время решен.

ConstZ
25-02-2009, 09:32
В теории - ДА! А в практике, 5-й бит (MD) в регистре config1 не выставлен, что по стандарту означает отсутствие MDMX.

Проглядел, буду читать. Но меня смущает то, что якобы это только для чипа 4704P, а нигде в открытом доступе разблюдовки по модификациям я не нашел :(

Здесь (http://www.danm.de/files/src/bcm5365p/REPORTED_DEVICES) и в окресностях находится первоисточник. А на всех фотографиях "потрохов" обсуждаемых маршрутизаторов, что я видел, Broadcom'овские чипы имели заветную "P".
По поводу MDMX - лучше всё-таки проверить FIR(bit.18). Однако много выиграть от использования этого "древнего" расширения, IMHO не удастся.

Oleg
25-02-2009, 09:51
Криптопроцессор есть у BCM5365 (но нет у BCM5364) - эти использовались в Делюксах, а также во всех BCM4704/4780 - премиум, в, 700. В дешёвых BCM535x его нет. Ну и вроде есть в BCM4716/17/18. В последних и ядро посвежее.

lly
25-02-2009, 10:31
Криптопроцессор есть у BCM5365 (но нет у BCM5364) - эти использовались в Делюксах, а также во всех BCM4704/4780 - премиум, в, 700. В дешёвых BCM535x его нет. Ну и вроде есть в BCM4716/17/18. В последних и ядро посвежее.
Уже понял свою ошибку - я то думал, что есть расширения команд в самом CPU, а оказалось что на backplain'e сидит отдельный криптопроцессор.
В OpenWRT драйвер usec_ssb под 2.6 сделали, но бекпортить его вместе с родным драйвером ssb (Sonics Silicone Backplain) - это больше чем пуд соли съесть :(

ghost_ufa
25-02-2009, 11:51
а это не поможет? http://lwn.net/Articles/196716/

UPD: или вот свежЕе http://lwn.net/Articles/243521/

lly
25-02-2009, 12:02
а это не поможет? http://lwn.net/Articles/196716/
Наличие файликов Kconfig в патче не подсказывает версию ядра? Нет? :(

ghost_ufa
25-02-2009, 13:06
Не поверишь - НЕТ! Про что я тут уже высказывался...
В комментах на форуме было про 2.4 :(

lly
25-02-2009, 13:37
ghost_ufa
Не хочу учить тебя жить, но в таком случае тебе хорошо было бы посидеть, поанализировать информацию, прежде чем кидать по форумам налево и направо.

lly
25-02-2009, 13:41
В новых ядрах:
drivers/usb/serial/option.c

Сегодня сделаю, сам соберешь из SVN?


Описание модуля(это и есть чешский modem.o):

USB Driver for GSM modems v0.7.1
Copyright (C) 2005 Matthias Urlichs <smurf@smurf.noris.de.>
В таком раскладе я вообще не понимаю какого фига чехи поставили лицензию "private" :mad:

azhur
25-02-2009, 14:06
А насчет размера фрейма УСБ кто-нить копался уже, или собирается?
http://wl500g.info/showpost.php?p=133424&postcount=579
Глянул бы сам, но не понимаю в этом ни бельмеса к сожалению :(
ЗЫ Скорость УСБ - практически единственное что не устраивает в 500гп.

Oleg
25-02-2009, 14:10
А насчет размера фрейма УСБ кто-нить копался уже, или собирается?
http://wl500g.info/showpost.php?p=133424&postcount=579
Глянул бы сам, но не понимаю в этом ни бельмеса к сожалению :(
ЗЫ Скорость УСБ - практически единственное что не устраивает в 500гп.
Всё что можно выкручено на максимум. Включая недокументированные регистры.

lly
25-02-2009, 14:18
Всё что можно выкручено на максимум. Включая недокументированные регистры.
Точнее, всё, что ты раскопал :D
А если серьезно - IMHO это тупиковый вопрос. Я подозреваю, что тормоза на одной из внутренних шин. Которые, скорее всего, программному разгону не подлежат.

azhur
Не надо приводить пример с CDMA/3g модемами - там дело в буфере usbserial который прекрасно настраивается при загрузке модуля.

ghost_ufa
25-02-2009, 14:22
ghost_ufa
Не хочу учить тебя жить, но в таком случае тебе хорошо было бы посидеть, поанализировать информацию, прежде чем кидать по форумам налево и направо.


Хм. Налево и направо, говоришь? Мне показалось что я только сюда кинул. "Хотели как лучше, а вышло как всегда" (С) Черномырдин :confused:

Наверное теперь надо в таком же тоне писАть багрепорты на корявые пакеты...

lly
25-02-2009, 14:30
Наверное теперь надо в таком же тоне писАть багрепорты на корявые пакеты...
Назови мне хоть один "некорявый" пакет?

Offtopic: Поставь себя на место разработчика. Ты хочешь получать письма с требованиями исправьте "ЭТО" или "ВСЁ"? А в ответ на вопрос что же конкретно править - "не знаю и знать не хочу, вы тут понаписали, сами и разбирайтесь".

P.S. Больше на эту тему писать не буду.

sorine
25-02-2009, 15:37
Сегодня сделаю, сам соберешь из SVN?


В таком раскладе я вообще не понимаю какого фига чехи поставили лицензию "private" :mad:
Готов для компиляции. Жду обновления SVN.

ghost_ufa
25-02-2009, 15:45
Праавильно говоришь. А теперь поставь себя на мое место - время было потрачено на поиск чего-то, пусть даже нашлось не то что надо. И тут такая реакция :mad:

Резюмируя. Три предложеных патча отвергнуты, один вообще обозван бредовым (несмотря на работоспособность). Попытка что-то найти на НЕ АКТУАЛЬНУЮ МНЕ тему - "сначала разбирайся сам".

Так что пожалуй покину я вашу тесную компанию, похоже что TYT милее ламеры, изо дня в день задающие одни и те же (зато хорошо понятные) вопросы.

Удачи.

ЗЫ. Вот меня на место разработчика ставить ни к чему. Знаю, плавал...

lly
25-02-2009, 17:51
Готов для компиляции. Жду обновления SVN.
Готово, забирай. И отпиши, пожалуйста, результаты.

azhur
26-02-2009, 07:07
Всё что можно выкручено на максимум. Включая недокументированные регистры.Жаль. :(
И нового девайса на замену не вырисовывается среди асусов.
У RT-N11 УСБ вообще отсутствует.

Oleg
26-02-2009, 09:42
Жаль. :(
И нового девайса на замену не вырисовывается среди асусов.
У RT-N11 УСБ вообще отсутствует.
Поиск по RT-N16.

azhur
26-02-2009, 13:45
ЗЫ: Сейчас у меня на столе лежит инженерный образец ASUS RT-N16. BCM4718@533Mhz, 128MB DDR2 RAM, дофига флеша (типа 32мегабайта, не помню), гигабит, 802.11n, 2xUSB 2.0. В продаже ожидается летом. Цена, думаю будет в районе 150 долларов.
На этом форуме нашёл только это, гугль и сайт самого асуса молчат как партизане.
А скорость работы УСБ на нем не проверяли? А то может второй раз на те же грабли тварищи умудрились встать?
Ну и можно ли ожидать прошивку "от Олега" под сей чудо-агрегат?

AlexeyS
26-02-2009, 15:58
Сегодня появилось 2 новых патча к busybox на официальном сайте.

Dao_Dezi
26-02-2009, 16:10
2 lly

Сегодня узрел ревизию r134 на гуглькоде. Она входит в собранные 25-го числа прошивки? Теперь для всяких ZTE MF626 можно будет прописывать модуль option вместо usbserial? Или сам подтянется? И как теперь можно будет указать maxSize для USB пакетов?

theMIROn
26-02-2009, 16:19
Сегодня узрел ревизию r134 на гуглькоде. Она входит в собранные 25-го числа прошивки?Нет, не входит. 25 числа прошивки были пересобраны по r128 включительно

al37919
26-02-2009, 16:31
н-да, с тех пор уже 8 ревизий сделаны --- и все 25.02 :D
По моему пора именовать сборки не по датам а по ревизиям. А соответствие датам всегда легко однозначно установить по списку ревизий. И еще, надо бы завести файлик типа /.svnrev по аналогии с /.version, а то иной раз не поймешь какая версия установлена.

theMIROn
26-02-2009, 16:38
ну я ж не вручную их нумерую =) будут по ревизиям

UPD: будет примерно так WL500gp-1.9.2.7-d-r136-20090226.trx, ок?
Плюс r136-20090226 в .svnrev в архиве с сорцами

lly
26-02-2009, 19:12
Сегодня узрел ревизию r134 на гуглькоде. Она входит в собранные 25-го числа прошивки?
нет
Теперь для всяких ZTE MF626 можно будет прописывать модуль option вместо usbserial? Или сам подтянется? И как теперь можно будет указать maxSize для USB пакетов?
сами только кошки родятся :)
драйвер option еще не протестирован, поэтому и нет в public доступе.
модуль usbserial по прежнему нужен для работы любого serial over USB, поэтому maxSize указывается в нём, как и всегда.

JipJip
27-02-2009, 11:57
Ребята, подскажите, пожалуйста. Я хочу попробовать собрать из сырцов прошу для dir-320. Какие манипуляции нужно произвести с исходниками для полной совместимости (ну типа CONFIG_MTD_CFI_B1=y )? или же WL-500gPv2 firmware 1.9.2.7-d уже все необходимое содержит (собирай и заливай) ?

theMIROn
27-02-2009, 14:42
Ребята, подскажите, пожалуйста. Я хочу попробовать собрать из сырцов прошу для dir-320. Какие манипуляции нужно произвести с исходниками для полной совместимости (ну типа CONFIG_MTD_CFI_B1=y )? или же WL-500gPv2 firmware 1.9.2.7-d уже все необходимое содержит (собирай и заливай) ?
все манипуляции описаны на WIKI: Самостоятельная сборка прошивки (http://code.google.com/p/wl500g/wiki/CompilingCustomFirmware)
собирай и заливай

JipJip
27-02-2009, 20:40
собирай и заливай
Спасибо. Однако там про dir-320 ни слова, по этому я и спрашиваю, надо ли дорабатывать напильником WL-500gp V2 ?

theMIROn
27-02-2009, 21:00
Спасибо. Однако там про dir-320 ни слова, по этому я и спрашиваю, надо ли дорабатывать напильником WL-500gp V2 ?
да нет же.
тут подробнее http://wl500g.info/showthread.php?t=17641

al37919
28-02-2009, 05:31
Вообще то на googlecode тоже поиск есть:
http://www.google.com/codesearch/p?hl=en#kjJ_yLEz2oM/trunk/kernel/kernel.config&q=CONFIG_MTD_CFI_B1%20package:http://wl500g\.googlecode\.com
http://code.google.com/p/wl500g/source/detail?r=36

vigera
28-02-2009, 22:13
Прошил r141, на DIR-320 скорость сливания файлов через самбу упала до ~1600КБ/c (14,3mbps), в версии от 02.25 было ок 2500:( (интересно, только ли у меня так?). Справедливости ради добавлю, работа связки bluetooth-HDD в USB2.0 стала при этом существенно стабильнее, раньше роутер ребутился через несколько секунд после начала копирования, сейчас - через минуту-две.

Dao_Dezi
01-03-2009, 12:32
Добавьте, пожалуйста, в вики по самостоятельной сборке прошивки в раздел "необходимый софт" пакет rcs

Dao_Dezi
02-03-2009, 05:45
Чвой-то пошукал, но так и не нашёл... А как внедрить бинарий в подготавливаемую прошивку?

Dao_Dezi
02-03-2009, 06:09
Небольшой отчётец по r134.

Я пока путаюсь в разном поведении ядер - привык к 2.6.
Особенно касательно hotplug.

Есть в драйвере option 0.7.2 такой кусок (присутствует в 813-gsm-option.patch):


+/* ZTE PRODUCTS */
+#define ZTE_VENDOR_ID 0x19d2
+#define ZTE_PRODUCT_MF622 0x0001
+#define ZTE_PRODUCT_MF628 0x0015
+#define ZTE_PRODUCT_MF626 0x0031
+#define ZTE_PRODUCT_CDMA_TECH 0xfffe


Собственно, он и занимается моим модемом ZTE MF622. Ну а т.к. он зависит от usbserial - тащит его за собой.

Какая ситуация сложилась в 2.4 на роутерах.
option не тащит за собой usbserial. Это полбеды. Просто загружаем usbserial перед option.
Если загрузить оба модуля без параметров - tty-порты в системе не появляются.
Параметры vendor и product для option указать нельзя.
Если загрузить usbserial с vendor/product (модем уже заработает), а потом option без параметров, получается странная ситуация. tty-порты в системе появляются, но на обращение к ним идёт посыл - no such device.

al37919
02-03-2009, 06:12
взять здесь http://code.google.com/p/wl500g/downloads/list
положить в gateway/mipsel-uclibc/target и выполнить две комманды:
mksquashfx-lzma и asustrx
Передаваемые параметры посмотреть в gateway/Makefile

JipJip
02-03-2009, 07:11
да нет же.
Ура !!! Спасибо уважаемым
Author: lly.dev за
Add defaults for DLINK DIR-320

lly
02-03-2009, 07:14
Небольшой отчётец по r134.

Какая ситуация сложилась в 2.4 на роутерах.
option не тащит за собой usbserial. Это полбеды. Просто загружаем usbserial перед option.
Если загрузить оба модуля без параметров - tty-порты в системе не появляются.
Параметры vendor и product для option указать нельзя.
Если загрузить usbserial с vendor/product (модем уже заработает), а потом option без параметров, получается странная ситуация. tty-порты в системе появляются, но на обращение к ним идёт посыл - no such device.
Спасибо за тесты.
К сожалению, бекпорт я делал "вслепую" - не имея модема. Отсюда и результаты :(
Попытаюсь исправить, но без девайса гарантий не дам.

P.S. А может кто-нибудь в Москве дать мне на время этот модем? а то он мне лично в хозяйстве не нужен, покупать не хочу.

Dao_Dezi
02-03-2009, 07:15
Во! Спасибо! Собрал по методе al37919 - совпадение до байта. md5 ешшо не сверял.

На упоминание Addon в Makefile натыкался, кусок


# Install binary Addons, if any
@-( if [ -d $(SRCBASE)/router/Addon ]; then \
( cp -dup $(SRCBASE)/router/Addon/* $(TARGETDIR)/usr/sbin/ ) \
fi )

видел, но рисковать не стал.

А чтобы модули перенести внутрь прошивки (которые у вас отдельно архивом), что нужно сделать? Достаточно будет простого копирования в /lib/modules?

Dao_Dezi
02-03-2009, 08:30
Ещё раз попробовал:
Модем воткнут
dmesg


usb.c: USB device 3 (vend/prod 0x19d2/0x1) is not claimed by any active driver.

syslog


Jan 1 06:00:05 kernel: hub.c: new USB device 00:03.1-1.1, assigned address 3
Jan 1 06:00:05 kernel: usb.c: USB device 3 (vend/prod 0x19d2/0x1) is not claimed by any active driver.


insmod usbserial

dmesg


usbserial.c: USB Serial support registered for Generic
usbserial.c: USB Serial Driver core v1.4


syslog


Jan 1 06:02:32 kernel: usb.c: registered new driver serial
Jan 1 06:02:32 kernel: usbserial.c: USB Serial support registered for Generic
Jan 1 06:02:32 kernel: usbserial.c: USB Serial Driver core v1.4


insmod option

dmesg


usbserial.c: USB Serial support registered for Option GSM modem
usbserial.c: Option GSM modem converter detected
usbserial.c: Option GSM modem converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
usbserial.c: Option GSM modem converter detected
usbserial.c: Option GSM modem converter now attached to ttyUSB1 (or usb/tts/1 for devfs)
usbserial.c: Option GSM modem converter detected
usbserial.c: Option GSM modem converter now attached to ttyUSB2 (or usb/tts/2 for devfs)
option.c: USB Driver for GSM modems: v0.7.2


syslog


Jan 1 06:03:45 kernel: usbserial.c: USB Serial support registered for Option GSM modem
Jan 1 06:03:45 kernel: usbserial.c: Option GSM modem converter detected
Jan 1 06:03:45 kernel: usbserial.c: Option GSM modem converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
Jan 1 06:03:45 kernel: usbserial.c: Option GSM modem converter detected
Jan 1 06:03:45 kernel: usbserial.c: Option GSM modem converter now attached to ttyUSB1 (or usb/tts/1 for devfs)
Jan 1 06:03:45 kernel: usbserial.c: Option GSM modem converter detected
Jan 1 06:03:45 kernel: usbserial.c: Option GSM modem converter now attached to ttyUSB2 (or usb/tts/2 for devfs)
Jan 1 06:03:45 kernel: option.c: USB Driver for GSM modems: v0.7.2


pppd call mts (заведомо рабочий)

dmesg


option_indat_callback: resubmit read urb failed. (-19)
ehci_hcd 00:03.1: clear toggle dev3 ep2in: not idle
ehci_hcd 00:03.1: clear toggle dev3 ep2in: not idle
option_indat_callback: resubmit read urb failed. (-19)
option_indat_callback: resubmit read urb failed. (-19)
option_indat_callback: resubmit read urb failed. (-19)
ehci-q.c: can't resubmit interrupt urb 819561c0: status -22


syslog


Jan 1 06:05:11 pppd[182]: pppd 2.4.5 started by root, uid 0
Jan 1 06:05:11 kernel: option_indat_callback: resubmit read urb failed. (-19)
Jan 1 06:05:11 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep2in: not idle
Jan 1 06:05:11 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep2in: not idle
Jan 1 06:05:12 kernel: option_indat_callback: resubmit read urb failed. (-19)
Jan 1 06:05:12 kernel: option_indat_callback: resubmit read urb failed. (-19)
Jan 1 06:05:12 kernel: option_indat_callback: resubmit read urb failed. (-19)
Jan 1 06:05:12 kernel: ehci-q.c: can't resubmit interrupt urb 819561c0: status -22

Dao_Dezi
02-03-2009, 08:36
Сейчас попробовал
insmod usbserial vendor=0x19d2 product=0x0001 maxSize=4096
insmod option

Вроде работает, но непонятно, участвует ли option в процессе вообще, потому как и без него usbserial с параметрами работал.
lsmod


option 12208 0 (unused)

al37919
02-03-2009, 08:41
что то я в этом googlecode запутался.
1) В r2 отсутствуют Makefile и Makefile.diff --- это глюк или я не так смотрю?
2) diff по файлу можно посмотреть только между ближайшими изменениями, а между, скажем r2 и r141 нельзя?
3) переход по номеру ревизии тоже не нашел, а число ревизий растет.
я понимаю, что последние два пункта можно, конечно, посмотреть с помощью простого svn, но тут, конечно, удобно, с цветовым выделением и т.п.

theMIROn
02-03-2009, 08:53
что то я в этом googlecode запутался.
1) В r2 отсутствуют Makefile и Makefile.diff --- это глюк или я не так смотрю?
да вродь есть
http://code.google.com/p/wl500g/source/detail?r=2&path=/trunk/Makefile
http://code.google.com/p/wl500g/source/detail?r=2&path=/trunk/Makefile.diff


2) diff по файлу можно посмотреть только между ближайшими изменениями, а между, скажем r2 и r141 нельзя?
я пользуюсь на бб tortoisesvn, внутри svn diff > current.diff + mc. там видно, но у меня гуя вообще нет.
есть gui svn клиенты, в них будет визуально все видно


3) переход по номеру ревизии тоже не нашел, а число ревизий растет.в смысле?

al37919
02-03-2009, 09:09
1) по этим ссылкам имею список изменений, среди которых отстутствуют данные файлы. Файл доступен, скажем по такой ссылке, но набирать ее приходится вручную: http://code.google.com/p/wl500g/source/browse/trunk/Makefile.diff?spec=svn2&r=2
2) и 3) имелось в виду в броузере непосредственно на сайте.

theMIROn
02-03-2009, 09:13
2) и 3) имелось в виду в броузере непосредственно на сайте.
примерно вот так
http://code.google.com/p/wl500g/source/diff?format=side&path=/trunk/Makefile.diff&old_path=/trunk/Makefile.diff&r=96&old=2

al37919
02-03-2009, 09:32
в общем понятно --- требуемая ссылка создается вручную.

lly
02-03-2009, 09:40
Сейчас попробовал
insmod usbserial vendor=0x19d2 product=0x0001 maxSize=4096
insmod option

Вроде работает, но непонятно, участвует ли option в процессе вообще, потому как и без него usbserial с параметрами работал.
Указание vendor/product в usbserial перебивает по приоритету остальные драйвера, вот option и остаётся не у дел.

За dmesg спасибо, теперь есть направление куда копать.

theMIROn
02-03-2009, 09:41
в общем понятно --- требуемая ссылка создается вручную.
не совсем, порядок действий:
1. http://code.google.com/p/wl500g/source/browse/
2. оттуда http://code.google.com/p/wl500g/source/browse/trunk/Makefile
3. справа под Older revisions выбираем сравнение с нужной ревизией по ссылке Diff
4. в строке Changes to или жмем Edit и выбираем ревизии, или пользуемся кнопками перехода

al37919
02-03-2009, 10:18
о! вот edit я и не нашел. А переход по стрелкам выдает сравнение только соседних ревизий. Спасибо!

theMIROn
02-03-2009, 10:27
интересно, у меня одного виснет роутер при перепрошивке из web интерфейса с более младшей ревизии на более старшую, если началось после 25.02.
фактически через ps в это время видно, что:
1. httpd форкнул write c записью во флеш
2. запускается pre-shutdown
3. стопаются сервисы (rc.unslung stop)
4. запускается awk
5. запускается sort
и все... висяк. пока не убьешь sort и awk

если ждать достаточно долго, то перезапускается pptpd, запускает post-firewall, запускается ntp и прочие радости

pre-shutdown


#!/bin/sh
/opt/etc/init.d/rc.unslung stop >/dev/null 2>&1
sleep 5s
sync
for i in $(cat /proc/mounts | sort -r | \
/usr/bin/awk '/ext3/{print $1}' | /usr/bin/sort -u); do
/bin/mount -o remount,ro $i >/dev/null 2>&1
done
sleep 1s

lly
02-03-2009, 10:51
интересно, у меня одного виснет роутер при перепрошивке из web интерфейса с более младшей ревизии на более старшую, если началось после 25.02.
У меня не наблюдается :)
Видимо, тебе надо таки побороть свою лень и сделать консоль ;) Добавить вывод скрипта на консоль и всё увидеть своими глазами...
Кстати, а ты перепрошиваешься со смонтированной флешкой?

al37919
02-03-2009, 10:56
а если прибьешь sort и awk на reboot реагирует? если да, то на какую-нибудь комманду busybox --- те же sort и awk при ручном запуске?

Вообще, тема любопытная и я тоже немного экспериментировал на этот счет.

Я для себя проблему неперезагрузки понимаю так:
мы переписываем содержимое squashfs на носителе. Я полагаю, что при этом в памяти должна сидеть некая таблица с точками входа в определенные функции. После заливки прошивки она перестает соответствовать реальному содержимому носителя. Причем при незначительных изменениях съехать может только некоторая часть и потеря функциональности может не бросаться в глаза сразу.

Я последнее время шьюсь через ssh коммандой flash, причем, часто удаленно. Речь идет, скажем, о заливке ревизии rN+1 после ревизии rN или вообще, о добавлении чужого бинарника, для бездисковой системы. Т.е. это действительно незначительные изменения. Обычно после этого спокойно выполняешь ребут (pre-shutdown, естественно, до того) и все нормально перезагружается. Однако, как то пробовал ковырять rc и обнаружил, что после заливки прошивки перезагрузиться невозможно, [а поскольку я при этом rc поломал, то и перепрошиться тоже невозможно :) но это отдельная история]. Наблюдал такие варианты --- после reboot переводится строка и ничего не выполняется --- но роутер реагирует на комманды. Второй вариант --- sh: not found.

У меня есть предложение, которое возможно позволит решить эту проблему. Добавить в комманду flash из rc необязательный третий параметр:
flash file device [reboot]

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

И, естественно, посмотреть на вызов pre-shutdown --- при перепрошивке логично было бы выполнять его до операции, а после не выполнять.

lly
02-03-2009, 11:12
И, естественно, посмотреть на вызов pre-shutdown --- при перепрошивке логично было бы выполнять его до операции, а после не выполнять.
Как раз сейчас он выполняется вовремя - параллельно записи во флэш. Другое дело, что где-то может не быть нормального выхода в случае нештатной ситуации, но это надо исследовать.

Dao_Dezi
Одну багу нашел - попробуй новую версию:

theMIROn
02-03-2009, 11:20
У меня не наблюдается :)
Видимо, тебе надо таки побороть свою лень и сделать консоль ;) Добавить вывод скрипта на консоль и всё увидеть своими глазами... Ткни пальцем в описалово как это сделать. Уже созрел таки

Кстати, а ты перепрошиваешься со смонтированной флешкой?Да. Раньше чистил параметры, потом обленился, чтобы по несколько раз на дню не скидывать все - так, по горячему

theMIROn
02-03-2009, 11:26
а если прибьешь sort и awk на reboot реагирует?после прибития бизибоксовых команд все штатно дальше отрабатывает.
если в момент зависания awk/sort/basename/find (все это было, висят по ps как R) попробовать выполнить еще что то бизибоксовое - тоже висит, за исключением ps правда.


У меня есть предложение, которое возможно позволит решить эту проблему. Добавить в комманду flash из rc необязательный третий параметр:
flash file device [reboot]
Это позволит после перепрошивки не требовать выполнения дополнительной комманды, которая возможно не может быть выполнена.
это может ничего не дать, т.к погялди как шатдаун в rc сделан

theMIROn
02-03-2009, 11:31
Как раз сейчас он выполняется вовремя - параллельно записи во флэш. Другое дело, что где-то может не быть нормального выхода в случае нештатной ситуации, но это надо исследовать.
М... не, не вовремя.
сначала httpd пишет прошивку в mtd, потом выполняет ребут.
при отработке ребута и исполняется pre-shutdown, что уже неверно.
выполнять pre-shutdown нужно до прошивки, осталось найти нужный механизм

UPD: либо:
1. flashfs disable && reboot, прошиваться и после flashfs enable...
2. pre-shutdown && rm -f pre-shutdown && flash /tmp/firmware.trx ... && reboot

theMIROn
02-03-2009, 11:45
Вот и наши братья по разуму из New oleg firmware wersion (http://wl500g.info/showthread.php?t=18004&page=5) пишут о проблемах перепрошивки

Dao_Dezi
02-03-2009, 11:46
Dao_Dezi
Одну багу нашел - попробуй новую версию:

pppd call mts



Jan 1 06:01:44 pppd[131]: pppd 2.4.5 started by root, uid 0
Jan 1 06:01:44 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep2in: not idle
Jan 1 06:01:44 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep2in: not idle
Jan 1 06:01:44 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep2in: not idle
Jan 1 06:01:44 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:01:46 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:01:48 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:01:50 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:01:52 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:01:54 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:01:57 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:01:59 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:02:01 kernel: usb/tts/0: 1 input overrun(s)


Типа того.

AlexeyS
02-03-2009, 11:54
Вот и наши братья по разуму из New oleg firmware wersion (http://wl500g.info/showthread.php?t=18004&page=5) пишут о проблемах перепрошивки

Повисание на перезагрузке практически всегда встречалось на Олеговой прошивке, а вот в 1.9.2.7-d пока не встречал (правда последние версии пока не заливал)... Надо бы посмотреть, что такого меняли в последнее время.

lly
02-03-2009, 11:59
Ткни пальцем в описалово как это сделать. Уже созрел таки
Уже и ты совсем обленился :rolleyes:
Покупаешь дата-кабель от мобильника постарее (я брал типа http://www.qmarket.ru/data-kabel-siemens-25-35-45-50-usb-zaryadka-cd-_p.html) желательно на pl2303, подпаиваешь разъем на плату:
http://wl500g.info/showthread.php?t=5550
http://wiki.openwrt.org/OpenWrtDocs/Hardware/Asus/WL500GP, и вуаля
Подробнее - в темах:
http://wl500g.info/showthread.php?t=15198
http://wl500g.info/showpost.php?p=73239&postcount=64
http://wl500g.info/showthread.php?t=3838
http://wl500g.info/showthread.php?t=1993

lly
02-03-2009, 12:01
Jan 1 06:01:44 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep2in: not idle
Jan 1 06:01:44 kernel: usb/tts/0: 1 input overrun(s)

Это без девайса будет тяжеловато раскопать :(

theMIROn
02-03-2009, 12:16
Уже и ты совсем обленился :rolleyes:спасибо, будем делать

lly
02-03-2009, 13:36
pppd call mts
Последняя попытка что-то сделать без самого девайса.

Oleg
02-03-2009, 13:46
theMIROn, если найдёшь, где кабели продают дешевле 200р, то напиши мне в личку плиз. А то у меня кончились. :)

al37919
02-03-2009, 14:17
Как раз сейчас он выполняется вовремя - параллельно записи во флэш.
если так, то это совсем неправильно. Однако, такого не вижу --- сначала выполняется sys_upgrade(), потом sys_reboot().


если в момент зависания awk/sort/basename/find (все это было, висят по ps как R) попробовать выполнить еще что то бизибоксовое - тоже висит, за исключением ps правда.

вроде как раз говорит в пользу того, что в этом случае измененный busybox невыполняется


это может ничего не дать, т.к погялди как шатдаун в rc сделан
видел я как он сделал. Потому ИМХО в принципе несложно его изменить.

Например так:

в rc/init.c:
добавить передачу полученного сигнала из fatal_signal() в shutdown_system()
если сигнал == SIG_X, то pre-shutdown не запускать

в rc/rc.c
в коммандах flash и write при наличии третьего параметра выполнять kill(1, SIG_X)

в httpd/web_ex.c
перед коммандой sys_upgrade() добавить принудительный вызов pre-shutdown

вот на какой сигнал это можно было бы привязать у меня сомнения --- может SIGABRT

осталось найти нужный механизм

UPD: либо:
1. flashfs disable && reboot, прошиваться и после flashfs enable...
2. pre-shutdown && rm -f pre-shutdown && flash /tmp/firmware.trx ... && reboot
это улучшает ситуацию, но решает только часть проблемы. В первом посте я привел случай, когда после заливки reboot просто отказался выполняться.

P.S. если уж касаться этой темы, то я бы еще предложил добавить в rc следующую комманду:
burn file.trx
благо размер требуемого кода мизерный, но снижает риск до нуля, а то в коммандах flash и write достаточно в одной цифирке ошибиться и ищи программатор...

theMIROn
02-03-2009, 15:36
theMIROn, если найдёшь, где кабели продают дешевле 200р, то напиши мне в личку плиз. А то у меня кончились. :)
Олег, нашел кабель для сименса на pl2303 в евросети по дороге с работы домой.
только вот по первых за 390р, во вторых в екатеринбурге ;)
p.s разьем не распаян...

ABATAPA
02-03-2009, 16:29
Олег, нашел кабель для сименса на pl2303 в евросети по дороге с работы домой.
только вот по первых за 390р, во вторых в екатеринбурге ;)
p.s разьем не распаян...

Что так дорого? В Мурманске 160. :-D

theMIROn
02-03-2009, 16:37
Что так дорого? В Мурманске 160. :-D
та искать лениво было, плюс минус 200р не деньги
щас думаю что то вроде этого собрать
http://wl500g.info/attachment.php?attachmentid=423&stc=1&d=1113402149
http://wl500g.info/attachment.php?attachmentid=424&stc=1&d=1113402191
http://wl500g.info/attachment.php?attachmentid=425&stc=1&d=1113402234

ABATAPA
02-03-2009, 16:56
та искать лениво было, плюс минус 200р не деньги
щас думаю что то вроде этого собрать
http://wl500g.info/attachment.php?attachmentid=423&stc=1&d=1113402149
http://wl500g.info/attachment.php?attachmentid=424&stc=1&d=1113402191
http://wl500g.info/attachment.php?attachmentid=425&stc=1&d=1113402234

Хм... А зачем _такое_?

Oleg
02-03-2009, 17:15
во вторых в екатеринбурге ;)
Передавай привет Гене Букину! :D

theMIROn
02-03-2009, 17:24
Передавай привет Гене Букину! :D
ога, а от меня - Ксюше Собчак :D

ABATAPA
02-03-2009, 17:32
Скажите, это только у меня на 1.9.2.7-d-r141 на wan-интерфейсе, для которого в настройках не указан адрес, и не стоит "Получать по DHCP", назначается адрес 144.55.71.0/255.255.0.0? Вы посмотрите хоть whois на эту сеть. :)
Причем, это происходит и при полностью отключенном от сети роутере. Адрес назначается не по DHCP/BOOTP - tcpdump как со стороны устройства, так и от провайдера запросов не показывает, после удачения IP "вручную" udhcpc ничего не получается. Бегло поискал по исходникам - не нашел.
После отката на 1.9.2.7-10 (конфиг не меняется) - все нормально.
Это откуда "приветы"? ;)

theMIROn
02-03-2009, 18:02
Хм... А зачем _такое_?
ну а как? разместить конвертор внутри - самое то имхо, чтобы не держать открытым и не болтались провода
а у тебя как? фото приветствуется, в отдельной теме про консоли

lly
02-03-2009, 18:32
Скажите, это только у меня на 1.9.2.7-d-r141 на wan-интерфейсе, для которого в настройках не указан адрес, и не стоит "Получать по DHCP", назначается адрес 144.55.71.0/255.255.0.0? Вы посмотрите хоть whois на эту сеть. :)
После отката на 1.9.2.7-10 (конфиг не меняется) - все нормально.
Это откуда "приветы"? ;)
Почти, у меня - 160.55.71.0
Так как такая конфигурация лишена смысла, то и не проверяли. Где-то дыра в rc - очень похоже на левое содержимое nvram.

ABATAPA
02-03-2009, 18:40
Почти, у меня - 160.55.71.0
Так как такая конфигурация лишена смысла, то и не проверяли. Где-то дыра в rc - очень похоже на левое содержимое nvram.

С какого это "лишена смысла"? Это у кого такой "смысл"? Если у меня только PPPoE, и провайдер там IP не дает? Что, обязательно самому присваивать "левый" IP? А не дай Бог еще кто-то будет анонсить по BGP - будет покруче посленедельного "ЧП"... ;-)

Dao_Dezi
03-03-2009, 03:10
2 lly

Примерно то же самое



Jan 1 06:01:44 pppd[135]: pppd 2.4.5 started by root, uid 0
Jan 1 06:01:44 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep2in: not idle
Jan 1 06:01:44 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep2in: not idle
Jan 1 06:01:44 kernel: ehci_hcd 00:03.1: clear toggle dev3 ep2in: not idle
Jan 1 06:01:45 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:01:45 kernel: ehci-q.c: can't resubmit interrupt urb 818f11c0: status -22
Jan 1 06:01:48 kernel: usb/tts/0: 36 input overrun(s)
Jan 1 06:01:50 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:01:52 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:01:54 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:01:57 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:01:59 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:02:01 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:02:03 kernel: usb/tts/0: 1 input overrun(s)
Jan 1 06:02:05 kernel: usb/tts/0: 1 input overrun(s)

msevm
03-03-2009, 04:01
"OHCI support for Broadcom SSB OHCI core" - должно исправлять ситуацию на bcm5354
Уважаемый, стоит ли надеяться на бэкпорт сего чуда дабы избавиться от глюков usb?

slaynew
03-03-2009, 06:30
theMIROn, если найдёшь, где кабели продают дешевле 200р, то напиши мне в личку плиз. А то у меня кончились. :)

на ebay.com в поиске по слову pl2303 находятся кабели по 6.49$ с бесплатной доставкой в РФ.

ABATAPA
03-03-2009, 06:56
на ebay.com в поиске по слову pl2303 находятся кабели по 6.49$ с бесплатной доставкой в РФ.

Очнитесь, кризис на дворе. :) По нынешнему курсу (например, курс обмена "Сбербанка") это почти 250 р., что не удовлетворяет задаче. :)
Хотя честно скажу - я иногда так и покупаю мелочевку (переходники, кабели, в том числе интерфейсов) у гонгконцев - если не срочно, это - самый ненапряжный вариант, в магазинах порою этого не найдешь (особенно за МКАДом), а доставка от них и правда бесплатная - чего не скажешь про доставку по России из наших интернет-магазинов...

lly
03-03-2009, 06:56
С какого это "лишена смысла"? Это у кого такой "смысл"? Если у меня только PPPoE, и провайдер там IP не дает? Что, обязательно самому присваивать "левый" IP? А не дай Бог еще кто-то будет анонсить по BGP - будет покруче посленедельного "ЧП"... ;-)
По замыслу ASUS'а в твоем случае надо ставить "Dynamic IP" или ты должен прописывать IP сам. И ЛЮБОМ подобном случае будет присвоен левый IP, если не веришь, посмотри код pppd+rp-pppoe сам.
Максимум, что можно сделать - запретить кнопки Apply и Finish, если не прописан IP в случае static.




"OHCI support for Broadcom SSB OHCI core"
Уважаемый, стоит ли надеяться на бэкпорт сего чуда дабы избавиться от глюков usb?
Маловероятно, огромный объем работы и отсутствие самого девайса для тестов у меня.

lly
03-03-2009, 06:59
2 lly
Примерно то же самое
Жалко, значит остаётся ждать, пока кто-нибудь не одолжит мне девайс или сам сможет найти баг.

Updated: А с /dev/tts/1 и /dev/tts/2 то же самое?

ABATAPA
03-03-2009, 07:11
По замыслу ASUS'а в твоем случае надо ставить "Dynamic IP" или ты должен прописывать IP сам. И ЛЮБОМ подобном случае будет присвоен левый IP, если не веришь, посмотри код pppd+rp-pppoe сам.


Ну здравствуйте... Во-первых, вряд ли известны помыслы Asus'а (несмотря на код), во-вторых, что значит "в любом"? У меня на "Большом Брате" ничего само "в ЛЮБОМ" случае при PPPoE не назначается. Да и с чего бы?! PPPoE - это "... over Ethernet", а не "... over IP". PPPoE - протокол того же уровня OSI, что и IP - так зачем мне там IP нужен?! Он мне там не нужен.
И уж тем более - чужие случайные адреса.
И задержки DHCP, равно как его пакеты НАРУЖУ мне тоже не нужны.
И потом, почему это я "должен"? Там есть "Get IP automatically?", и стоит оно в "No". А поведение - непредсказуемое: оно не только "automatically", оно еще и ничуть и не "get", а просто "set" ЧУЖОЙ (и, как выясняется тут, во многом случайный) адрес.
И, как я указал, на прошивке Олега все работает ожидаемым образом.
Так что, все же, что ни говорите, но это баг, и немалый. "Светить" наружу чужими адресами... Можно получить и блок от провайдера...

Я, конечно, могу после поднятия интерфейса делать "ip addr del ...", но это не устранение ошибки, а "костыль".

lly
03-03-2009, 07:15
И, как я указал, на прошивке Олега все работает ожидаемым образом.
ifconfig -a в студию!

In4m
03-03-2009, 07:22
При смене ip адреса отваливается хост.
Предыстория:
Зарегистрировался на dyndns.(Щелкаю опредилить ip) Прописываю настройки аккаута не веб морде роутера. захожу на хост все нормально. При смене ip адреса host не доступен. :(
В систем логе есть сообщение примерно такого содержания: delete /var/ чего-то там/ez-ipupdate.block.
Сам файл пустой. Удаление не помогло.

В чем может быть проблема???

theMIROn
03-03-2009, 07:38
При смене ip адреса отваливается хост.
Предыстория:
Зарегистрировался на dyndns.(Щелкаю опредилить ip) Прописываю настройки аккаута не веб морде роутера. захожу на хост все нормально. При смене ip адреса host не доступен. :(
В систем логе есть сообщение примерно такого содержания: delete /var/ чего-то там/ez-ipupdate.block.
Сам файл пустой. Удаление не помогло.

В чем может быть проблема???
нужен более полный лог

ABATAPA
03-03-2009, 07:44
ifconfig -a в студию!

Я же уже приводил адреса. Что даст ifconfig? Ничего нового. К тому же, у тебя же ситуация повторяется?

У меня 3 VLAN, один из них, разумеется, WAN.
На прошивке Олега на нем:
vlan897 Link encap:Ethernet HWaddr 00:1B:FC:XX:XX:XX
inet6 addr: fe80::21b:fcff:feXX:XXXX/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

На новой:
vlan897 Link encap:Ethernet HWaddr 00:1B:FC:XX:XX:XX
inet addr:144.55.71.0 Bcast:144.55.255.255 Mask:255.255.0.0

vlan896 - LAN, в br0. На нем IP не назначается.

Если "обнулить" настройки VLAN, то ситуация - аналогичная.

lly
03-03-2009, 07:48
Я же уже приводил адреса. Что даст ifconfig? Ничего нового. К тому же, у тебя же ситуация повторяется?
По кастрированной инфе, даже и смотреть ничего не буду. Ты пошел на принцип - "разбирайтесь сами", ну и я аналогично.

P.S. Если кто-нибудь другой попросит по человечески, без выпендриваний, я буду смотреть.

ABATAPA
03-03-2009, 08:05
По кастрированной инфе, даже и смотреть ничего не буду. Ты пошел на принцип - "разбирайтесь сами", ну и я аналогично.

P.S. Если кто-нибудь другой попросит по человечески, без выпендриваний, я буду смотреть.
О Господи!..
Мда... Бывают трудные в общении люди с завышенным самомнением...
Что там было "кастрировано"? Все, что касалось состояния интерфейса, было указано. Что еще надо? Мои MACи? Или топологию моей сети? У тебя же ситуация повторилась - разве этого не достаточно?
Что касается "по-человечески"... Знаешь, по-моему, это ты не "по-человечески" тут отвечаешь. А уж что касается "выпендрежа"... Не ты ли тут упоминаешь "принципы", "человечность"?
Да не смотри. Плоди ошибки, и по-прежнему считай, что ты выше всего этого.
За сим прощаюсь.

jan_h
03-03-2009, 08:21
/оффтоп
Уважаемые Forum Guru, не ругайтесь между собой, пожалуйста, а то без Вас дитя-то без присмотра

lly
03-03-2009, 08:25
Для всех остальных: эта часть в rc не изменялась!

Возможно влияние новой uClibc, но для раследования нужно было _полное_ состояние интерфейса WAN, которое некоторые товарищи всегда излагающие правильное мнение, порезали. А роутера у меня под рукой сейчас нет.

Dao_Dezi
03-03-2009, 08:40
Updated: А с /dev/tts/1 и /dev/tts/2 то же самое?

В этой строчке

ehci_hcd 00:03.1: clear toggle dev3 ep2in: not idle
на tty/1 - ep4in
на tty/2 - ep6in

Ну и на tty/1 - не появляются сообщения про input overrun. Но этот порт и так на pppd никогда не отзывался. Это диагностический порт для QPST.

theMIROn
03-03-2009, 13:50
консольку сделал... проверю, что при зависаниях там такое

lly
03-03-2009, 14:30
консольку сделал... проверю, что при зависаниях там такое
Это могут быть фирменные патчи busybox'а :( Да и, насколько я вижу, в английской ветке ничего не ответили по этому поводу.

theMIROn
03-03-2009, 14:50
Это могут быть фирменные патчи busybox'а :( Да и, насколько я вижу, в английской ветке ничего не ответили по этому поводу.
я так подозреваю что ничего и не увижу.
более того, в ветке пишут про невозможность загрузиться, если перешиваться с предыдущих прошивок (от 25.02) со включенным flashfs

lly
03-03-2009, 14:57
я так подозреваю что ничего и не увижу.
более того, в ветке пишут про невозможность загрузиться, если перешиваться с предыдущих прошивок (от 25.02) со включенным flashfs
Это я читал, не воспроизводится, мне осталось проверить влияние USB-флэшки. flashfs у меня естественно включено (enabled). Ну разве что откатиться на просто "enable" и проверить?

Updated: Специально не собирал сам, а скачал r141 c googlecode, перепрошил с 20090124 на r141 - всё ок. Чудеса?

sorine
03-03-2009, 19:36
Одну багу нашел - попробуй новую версию:
option.c: In function `option_instat_callback':
option.c:959: error: `&priv' undeclared (first use in this function)
option.c:959: error: (Each undeclared identifier is reported only once
option.c:959: error: for each function it appears in.)

lly
03-03-2009, 19:43
option.c: In function `option_instat_callback':
option.c:959: error: `&priv' undeclared (first use in this function)
По ошибке залил в SVN не последнюю версию :(
Но и эта, похоже, работать не должна :(
В 2.6 у кого-нибудь работает? на каком ядре?

theMIROn
03-03-2009, 20:05
lly, раз уж ты успел раньше, чем я занялся /linuxrc, то поправь r152 (http://code.google.com/p/wl500g/source/detail?r=152)
если отключен usb 2.0, то условие не выполнится и usb-uhci так же не будет загружен

lly
03-03-2009, 20:11
lly, раз уж ты успел раньше, чем я занялся /linuxrc, то поправь r152 (http://code.google.com/p/wl500g/source/detail?r=152)
если отключен usb 2.0, то условие не выполнится и usb-uhci так же не будет загружен
Товарищь с DIR320 убеждал меня, что так и должно быть! Надо было переспросить еще раз :(

P.S. Без девайса всё одно протестировать невозможно...
P.P.S. А уж сколько народу обещало мне протестировать то или иное и сгинуло в туман... :(

Updated: Вроде так оно и есть - uhci не нужен:
http://wiki.openwrt.org/OpenWrtDocs/Hardware/Asus/WL500GPV2

sorine
03-03-2009, 21:03
P.S. Без девайса всё одно протестировать невозможно...
P.P.S. А уж сколько народу обещало мне протестировать то или иное и сгинуло в туман... :(
[/url]
Прошивка для тестирования модемов с поддержкой USB модемов из командной строки при помощи скрипта.
Внутри прошивки все модули для модемов и скрипт usbmodem.sh Перед запуском скрипта устанавливаем тип модема и дополнительные параметры:

nvram set modem= может принимать значения gprs, cdma, dialup, ipw - это параметр зависит от того, какой у вас модем;
nvram set apn= точка доступа для gprs и ipw модемов, например internet.mts.ru;
nvram set dialnumber= номер набора для gprs и dialup модемов например *99#;
nvram set dialinit= строка инициализации dialup модема;
nvram set username= имя пользователя;
nvram set ipwpin= пин код ipw модема;
nvram set ipwclpin= пин код ipw модема;
nvram set ipwmode= режим ipw модема.
nvram set maxpacketsize= максимальный размер пакета модема;
nvram set vid= индентификатор модема;
nvram set pid= индентификатор модема.

В настройках подключения переводим роутер в режим Automatic IP.
И запускаем скрипт просто введя в командной строке usbmodem.sh (Скрипт хранится в /usr/sbin).

Вот прошивки 500gP, 500gPV2, 500W одним файлом http://rapidshare.de/files/45805256/1.9.2.7-d-USB.tar.bz2.html
И сам скрипт отдельно во вложении.

theMIROn
03-03-2009, 21:25
начет перепрошивки, post-firewall, зависаний, etc:
1. после перпрошивки с билда от 25.02.2009 на текущий транк в консоли ошибки чтения SQUASHFS. awk виснет, остальное живое
2. iptables-restore не может корректно загрузить правила (причем без таргета BRUTE пишет ошибку в строке, но грузит)
соответственно остаются только 3 таргета INPUT, FORWARD, OUTPUT c политикой ACCEPT и все пустые
3. если включен flashfs, выполняется post-firewall. у многих, у меня в том числе меняется политика iptables -P INPUT DROP
вуаля, доступа к роутеру нет.
4. сброс nvram приводит к нормалной отработке iptables-restore

думаю, нужно глядеть в http://code.google.com/p/wl500g/source/browse/trunk/rc/rc-recent.patch?spec=svn131&r=131 и, возможно, чуть дальше

Dao_Dezi
04-03-2009, 03:02
В 2.6 у кого-нибудь работает? на каком ядре?

У мя 622 уже давно работает. Из последних - и на 27ом и на 28-ом работает. На убунтовых от 8.10 и 9.04. А до этого на 8.04 приходилось ещё usbserial использовать - щас уже и не вспомню, какое там ядро было.

А так - AFAIK, эти модемы вынесли в option совсем недавно.

theMIROn
04-03-2009, 07:27
Updated: Вроде так оно и есть - uhci не нужен:
http://wiki.openwrt.org/OpenWrtDocs/Hardware/Asus/WL500GPV2
Так и есть, usb-ohci.o и usb-uhci.o драйвера для разных типов контроллеров, но оба USB 1.1.
В WL-500gPv1 используется uhci (т.к он для Intel, VIA, etc), в WL-500gPv2 - ohci (Nec, Compaq, iMacs, OPTi, SiS, ALi, ...) и в makefile для моделей уже прописана установка нужного драйвера.
Вообщем предлагаю


insmod usbcore
insmod usb-ohci
[ "$(nvram get usb20_disable_x)" -ne 1 ] && insmod ehci-hcd && insmod usb-uhci && sleep 2s

поменять на что то вроде


insmod usbcore
insmod usb-ohci
insmod usb-uhci
[ "$(nvram get usb20_disable_x)" -ne 1 ] && insmod ehci-hcd
sleep 2s

lly
04-03-2009, 08:21
theMIROn
Ты предлагаешь более универсальное решение, ну что-ж, я не против.

Для владельцев DIR-320 с проблемным USB я запостил предложение - http://wl500g.info/showpost.php?p=135243&postcount=251


Прошивка для тестирования модемов с поддержкой USB модемов из командной строки при помощи скрипта.
Большое спасибо за подборку, однако основаная проблема в том, что ни у меня, ни у theMIROn нет 3g модема...
Хорошо сейчас вызвался на удаленную отладку Dao_Dezi, но насколько это затянется?

theMIROn
04-03-2009, 08:26
Большое спасибо за подборку, однако основаная проблема в том, что ни у меня, ни у theMIROn нет 3g модема...
Хорошо сейчас вызвался на удаленную отладку Dao_Dezi, но насколько это затянется?
Вообще то где то валялись CDMA модемы AnyData ADU-E100A и ADU-500A от СкайЛинка
Найти бы

ghost_ufa
04-03-2009, 13:24
По перепрошивке (ну не могу промолчать, ибо в свое время походил по похожим граблям предостаточно).

Чтобы это сделать чисто, одних шаманств с rc недостаточно - корневая ФС остается смонтированой со всеми вытекающими. По уму ежели, то надо
1. создать новый tmpfs
2. скопировать туда необходимое
3. сделать туда pivot_root
4. запустить перепрошивальщик оттуда, и им же выполнить перезагрузку.

ЗЫ. прошивка с tmpfs вместо ramfs работает нормально, при наличии свопа переполнение памяти вообще не случается, при отсутствии свопа и выделении 16мб(по умолчанию) возвращает ошибку, сохранив работоспособность. При отсутствии свопа и выделении всех 32мб ведет себя в точности как рамфс :) Так что - очень рекомендую.

ЗЗЫ. Монтирую с noatime nodiratime

Goletsa
04-03-2009, 15:48
Может немного оффтоп но пробовал ли ктонибудь собирать прошивки для новых роутеров от асуса. Конкретно интересует RT-N15

USB так конечно нету но в целом железка интересная.

sorine
04-03-2009, 17:08
Жалко, значит остаётся ждать, пока кто-нибудь не одолжит мне девайс или сам сможет найти баг.

Ну что тестируем на модемах.
Точно работают модемы телефонов Motorola L6, Nokia smartphone.
Оба подхватываются драйвером acm.
CDMA так и не работают. Проверено на Anydata 500, ZTE 626

Jan 1 00:05:50 kernel: usbserial.c: USB Serial support registered for Option GSM modem
Jan 1 00:05:50 kernel: usbserial.c: Option GSM modem converter detected
Jan 1 00:05:50 kernel: usbserial.c: Option GSM modem converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
Jan 1 00:05:50 kernel: usbserial.c: Option GSM modem converter detected
Jan 1 00:05:50 kernel: usbserial.c: Option GSM modem converter now attached to ttyUSB1 (or usb/tts/1 for devfs)
Jan 1 00:05:50 kernel: option.c: USB Driver for GSM modems: v0.7.2

Jan 1 00:05:56 pppd[210]: pppd 2.4.5 started by admin, uid 0
Jan 1 00:05:56 pppd[210]: Failed to open /dev/usb/tts/0: No such device
Думаю для них нам нужно еще такую вот переключалку режимов модема, как у чехов в прошивке
http://www.draisberghof.de/usb_modeswitch/

theMIROn
04-03-2009, 19:53
начет перепрошивки, post-firewall, зависаний, etc:
1. после перпрошивки с билда от 25.02.2009 на текущий транк в консоли ошибки чтения SQUASHFS. awk виснет, остальное живое
2. iptables-restore не может корректно загрузить правила (причем без таргета BRUTE пишет ошибку в строке, но грузит)
соответственно остаются только 3 таргета INPUT, FORWARD, OUTPUT c политикой ACCEPT и все пустые
3. если включен flashfs, выполняется post-firewall. у многих, у меня в том числе меняется политика iptables -P INPUT DROP
вуаля, доступа к роутеру нет.
4. сброс nvram приводит к нормалной отработке iptables-restore

думаю, нужно глядеть в http://code.google.com/p/wl500g/source/browse/trunk/rc/rc-recent.patch?spec=svn131&r=131 и, возможно, чуть дальше

ларчик просто открывался.
если брутфорс защита не включена, то модуль ipt_recent не загружается, пр этом правила filter_rules для цепочки BRUTE создаются с использованием модуля.
в итоге iptables-restore вообще не может загрузить и воссоздать правила

al37919, патч нужно дорабатывать, есть логические и идеологические противоречия, гляди коммент
http://code.google.com/p/wl500g/source/detail?r=131

al37919
04-03-2009, 20:16
точно, thanx, щас поправим. Обидно то, что исходно и было iptables -N, а потом попытался скопировать "идеологию".

al37919
04-03-2009, 23:20
в r156 проблема поправлена (я надеюсь).

now we can argue a little :)

1. done

2. web interface isn't the place for notices about conf files inside the flashfs by-design. so the suggestion is to remove white&blacklists notice

соглашусь --- в смысле того, что в данный момент лучше это перенести в разряд "недокументированных фич" --- убрано

3. bruteforce protection is truely advanced firewalling (in firmware terms), so options should be moved from firewall Basic Config page.

brute находится здесь по аналогии с dos

4. patch black&white lists support code should be dropped from rc/firewall_ex.c ...
in the first case we always can add white/black lists via iptables -I BRUTE 1 -s ... -j ACCEPT/DROP

не согласен. Весь файрвол может быть создан с помощью post-firewall вручную, однако, почему то против автогенерации некоторых правил в общем и целом возражений нет. Вынесение отдельных фич в rc --- есть способ упростить жизнь пользователям. Отлуп bruteforce повышает защищенность системы, с другой стороны я наблюдаю, что у многих пользователей есть проблемы с ее настройкой, вплоть до отрицания работоспособности метода. А темы насчет того, что кто-то ломится по ssh или ftp поднимаются постоянно. Обратной стороной медали у этого способа защиты является как раз то, что считаются все коннекты, а не только зловредные. Поэтому наличие этих списков позволяет несколько упростить жизнь себе любимому путем прописывания некоторых адресов или подсетей, которые избегают контроля. И, наконец, есть достаточное количество прецедентов использования подобных файлов, хранящихся в flashfs: /usr/local/etc/[hosts|ethers|dnsmasq.conf|dyndns.conf|...]

in case of additional page, it should be introduced with normal human asus-like ui with bruteforce protection options, smth like
* targets: ftp, ssh, custom (port list)
* white list of src (a-like WAN to LAN Filter table)
* black list of src (a-like WAN to LAN Filter table)

В общем да, это выглядело бы неплохо, ежели, конечно это сделать, но...
1) меня подобная перспектива вгоняет в тоску (особенно после того, как я уже что то поковырял в этом интерфейсе), ибо мой метод не шибко креативный --- обезьянье копирование где-то уже встреченных подобных полей. Может ребята, которые грезят улучшениями веб морды помогут?
2) в этих файлах можно прописать что угодно из того, что может съесть iptables:
12.34.56.78
12.34.56.0/24
asdf.qwer.com
вероятно, возможен и диапазон адресов.
Реализовывать эти все варианты в веб морде --- выглядит слишком морочным занятием. Этим мог бы заняться, скажем, асус :)
3) будь моя воля, я бы вообще ограничился добавлением переменных в nvram и их документированием.

Dao_Dezi
05-03-2009, 03:52
2 lly

Чего имеем:
Модуль option из r153
D-link DIR-320
модем ZTE MF622

insmod usbserial maxSize=4096
insmod option debug=1

PS: Тот option, на который ты мне давал ссылку входит в r153? Если нет, то можно ли его копировать куда-нить в /tmp и оттуда загружать?

lly
05-03-2009, 07:26
PS: Тот option, на который ты мне давал ссылку входит в r153? Если нет, то можно ли его копировать куда-нить в /tmp и оттуда загружать?
Еще нет. Безусловно можно, соответственно insmod надо давать с полным путём.
Спасибо за инфу, буду анализировать.

Dao_Dezi
05-03-2009, 08:13
Вот dmesg с тем модулем, котрый ты выкладывал.

Dao_Dezi
05-03-2009, 10:29
Следующая порция debug. dmesg не весь - обрезалось с начала

lly
05-03-2009, 10:37
Следующая порция debug. dmesg не весь - обрезалось с начала
Не вижу самого главного - ошибок ;) А в syslog'e тоже нет?

Dao_Dezi
05-03-2009, 10:46
Уже лучше
Без дебага в сислоге так:


Mar 5 16:39:04 pppd[314]: pppd 2.4.5 started by root, uid 0
Mar 5 16:39:05 kernel: usb/tts/0: 1 input overrun(s)
Mar 5 16:39:06 kernel: usb/tts/0: 27 input overrun(s)
Mar 5 16:39:06 pppd[314]: Serial connection established.
Mar 5 16:39:06 pppd[314]: Using interface ppp0
Mar 5 16:39:06 pppd[314]: Connect: ppp0 <--> /dev/usb/tts/0
Mar 5 16:39:27 pppd[314]: Hangup (SIGHUP)
Mar 5 16:39:27 pppd[314]: Modem hangup
Mar 5 16:39:27 pppd[314]: Connection terminated.


Потом прибил pppd
Как увеличить "размер" dmesg? Инфы много вываливается - оно обрезается. В прошлом архиве был полный вывод dmesg

lly
05-03-2009, 11:15
Уже лучше
Как увеличить "размер" dmesg? Инфы много вываливается - оно обрезается. В прошлом архиве был полный вывод dmesg
Увы, не совсем - "input overrun" остался :( И это ключевая ошибка...
если не помогает ключик "-s" (размер буфера dmesg), можно увеличить уровень логгирования в syslog:
nvram set log_level_x=8
nvram commit

sapsan
05-03-2009, 11:47
Доброго времени суток.

Для экспертов, которые умеют сами собирать прошивку и изменять её: вот тут (http://www.dd-wrt.com/phpBB2/viewtopic.php?p=269813#269813) утверждают, что есть возможность (http://accel-pptp.sourceforge.net/) увеличить производительность pptp-клиента и разгрузить систему. Вы с этим еще не сталкивались ?

Всего доброго.

Dao_Dezi
05-03-2009, 12:01
Новая порция. С dmesg, похоже, не получилось. Но в syslog вывалилось побольше

lly
05-03-2009, 12:04
вот тут (http://www.dd-wrt.com/phpBB2/viewtopic.php?p=269813#269813) утверждают, что есть возможность (http://accel-pptp.sourceforge.net/) увеличить производительность pptp-клиента и разгрузить систему. Вы с этим еще не сталкивались ?
Утверждать мало, нужны доказательства! Я мало сомневаюсь, что теоретически можно написать лучше, чем pptp-client, но где результаты тестов?
Также, есть как минимум несколько ньюансов:
1) нет порта под ядро 2.4
2) этот вариант никем не обкатан с учетом существующих доработок под роутер.
3) в доке написано, что он конфликтует с ip_gre

lly
05-03-2009, 15:15
в r156 проблема поправлена (я надеюсь).

now we can argue a little :)

А ты кому именно возражаешь? Оригинальное письмо в личке?


in case of additional page, it should be introduced with normal human asus-like ui with bruteforce protection options, smth like
* targets: ftp, ssh, custom (port list)
* white list of src (a-like WAN to LAN Filter table)
* black list of src (a-like WAN to LAN Filter table)

В общем да, это выглядело бы неплохо, ежели, конечно это сделать, но...
1) меня подобная перспектива вгоняет в тоску (особенно после того, как я уже что то поковырял в этом интерфейсе), ибо мой метод не шибко креативный --- обезьянье копирование где-то уже встреченных подобных полей. Может ребята, которые грезят улучшениями веб морды помогут?
Увы, насколько я видел в этом форуме, дальше перевода и правки асусовских страниц никто не ушел :(

3) будь моя воля, я бы вообще ограничился добавлением переменных в nvram и их документированием.
Смотря что называть документированием. Некоторые вещи, в виде help'а, я бы с удовольствием вынес в GUI. Скажем, напоминалку насчет /usr/local/etc/dnsmasq.conf и т.п.
Реализовывать полноценный wizard не стоит, его придётся постоянно поддерживать и отвечать на совсем дурацкие вопросы...

theMIROn
05-03-2009, 15:20
А ты кому именно возражаешь? Оригинальное письмо в личке?думаю мне, раз в комментах мои словофразы )

multiplug
06-03-2009, 00:01
>r154 Tuned up booting from usb with USB 2.0 disabled
Спасибо, работает на DIR-320
>r160 Fixes "USB device not accepting new address=2 (error=-71)" problem on BCM5354.
ЧУДО! 2.0 хабчик определяется и без отключения 2.0, но при вытаскивании usb2serial хоть на FTDI хоть на PL-2303 идёт в ребут ничего не успев записать в лог.
Флэшки из хаба и хаб из порта вынимаются без проблем.
Вытаскивании usb2serial хоть на FTDI хоть на PL-2303 не из хаба а из порта проходит без проблем.

Dao_Dezi
06-03-2009, 03:45
2 lly

Поздравляю с успехом - линк на MF622 поднялся.
На всякий случай прикладываю лог.

PS: Для тех, у кого есть ZTE MF622 и ZTE MF626 (в основном наборы "Билайн Интернет Дома") - пробуйте. Загрузка модулей при старте:


insmod usbserial maxSize=4096
insmod option


Но это только после того, как рабочий драйвер попадёт в основную ветку на гуглькоде.

AlexeyS
06-03-2009, 07:30
uTorrent как минимум

А вот нужный мне DC кроме UPNP ничего не держит :( Зато, uTorrent тоже и его умеет... Получается, что большого смысла пока и нет.

lly
06-03-2009, 07:34
Поздравляю с успехом - линк на MF622 поднялся.
И тебе спасибо за активное участие в тестировании :)


при вытаскивании usb2serial хоть на FTDI хоть на PL-2303 идёт в ребут ничего не успев записать в лог.
Эта проблема похожа на Issue 2 (http://code.google.com/p/wl500g/issues/detail?id=2), баг где-то в ehci драйвере. Для исследования нужен Oops ядра с консоли.

Dao_Dezi
06-03-2009, 07:44
И тебе спасибо за активное участие в тестировании :)

Вот ещё как-нить MF626 запытаю... Если в руки попадёт.

ЗЫ: А чво там надо было с DIR-320 и ЮСБ-хабами ковырять? Если модему не помешает - могу посодействовать. Жалко USB-порт только один.

lly
06-03-2009, 07:51
ЗЫ: А чво там надо было с DIR-320 и ЮСБ-хабами ковырять? Если модему не помешает - могу посодействовать. Жалко USB-порт только один.
Очевидно, ядро выпадает в Kernel Panic при вынимании USB 1.1 устройства из хаба 2.0. При этом на консоль выдается посмертный дамп, содержащий стек вызова. Для нахождения места падения и анализа причины нужен именно он.
В сухом остатке - нужно сперва распаять консоль на роутере.

Dao_Dezi
06-03-2009, 08:22
С этим точно не помогу - роутер не мой и на гарантии.

theMIROn
06-03-2009, 09:32
Очевидно, ядро выпадает в Kernel Panic при вынимании USB 1.1 устройства из хаба 2.0. При этом на консоль выдается посмертный дамп, содержащий стек вызова. Для нахождения места падения и анализа причины нужен именно он.
В сухом остатке - нужно сперва распаять консоль на роутере.
есть usb 2.0 хаб, single TT. есть шнурок на pl2303, в принципе могу затестить.
только вот шнурок используется для консоли...

lly
06-03-2009, 09:57
есть usb 2.0 хаб, single TT. есть шнурок на pl2303, в принципе могу затестить.
только вот шнурок используется для консоли...
У тебя же вроде не DIR-320? Или у меня уже глюки?
Проблема, похоже наблюдается только на чипах BCM5354. Если бы я сумел повторить ошибку у себя на 500gP V1, я бы не просил других.

theMIROn
06-03-2009, 10:03
У тебя же вроде не DIR-320? Или у меня уже глюки?
Проблема, похоже наблюдается только на чипах BCM5354.
не, у меня 500gpv1. значит мимо кассы

multiplug
06-03-2009, 10:38
----------------------------------Вот лог с консоли
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
usb-ohci.c: USB OHCI at membase 0xb8003000, IRQ 6
usb-ohci.c: usb-00:03.0, PCI device 14e4:471a
usb.c: new USB bus registered, assigned bus number 1
hub.c: USB hub found
hub.c: 2 ports detected
-----------------------------------Видать скрипач не нужен
insmod: cannot insert 'usb-uhci.o': Operation not permitted
ehci_hcd 00:03.1: PCI device 14e4:471a
ehci_hcd 00:03.1: irq 6, pci mem b8003800
usb.c: new USB bus registered, assigned bus number 2
ehci_hcd 00:03.1: illegal capability!
ehci_hcd 00:03.1: USB 0.0 enabled, EHCI 1.00, driver 2003-Dec-29/2.4
hub.c: USB hub found
hub.c: 2 ports detected
hub.c: new USB device 00:03.1-1, assigned address 2
hub.c: USB hub found
hub.c: 4 ports detected
SCSI subsystem driver Revision: 1.00
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
--------------------------------------- Вынул флэшку до включения для чистоты эксперимента
mount: mounting /dev/scsi/host0/bus0/target0/lun0/part1 on /mnt failed: No such
file or directory
mount: mounting /dev/scsi/host0/bus0/target0/lun0/part1 on /mnt failed: No such
device
umount: can't umount /mnt: Invalid argument
mount: mounting none on dev failed: Device or resource busy
rmmod: cannot unload 'usb_storage': unknown symbol in module, or unknown paramet
er
rmmod: cannot unload 'ehci_hcd': unknown symbol in module, or unknown parameter
rmmod: cannot unload 'usb_uhci': unknown symbol in module, or unknown parameter
rmmod: cannot unload 'usb_ohci': unknown symbol in module, or unknown parameter
rmmod: cannot unload 'usbcore': Device or resource busy
rmmod: cannot unload 'ide_disk': unknown symbol in module, or unknown parameter
-----------------Вставил конвертер на FTDI
hub.c: new USB device 00:03.1-1.4, assigned address 3
usb.c: USB device 3 (vend/prod 0x67b/0x2303) is not claimed by any active driver
.
usb.c: USB disconnect on device 00:03.1-1.4 address 3
hub.c: new USB device 00:03.1-1.4, assigned address 4
hub.c: USB hub found
hub.c: 4 ports detected
hub.c: new USB device 00:03.1-1.4.1, assigned address 5
usb.c: USB device 5 (vend/prod 0x403/0x6001) is not claimed by any active driver
.
hub.c: new USB device 00:03.1-1.4.2, assigned address 6
usb.c: USB device 6 (vend/prod 0x403/0x6001) is not claimed by any active driver
.
-------------------------------------Вынул конвертер
Unable to handle kernel paging request at virtual address 00000048, epc == c0047
ae8, ra == c0048018
Oops in fault.c::do_page_fault, line 206:
$0 : 00000000 10009c00 00000000 b8003810 00000000 a1ff7200 8025a600 00010011
$8 : 01ff5300 8017acf0 00000001 00000020 00000000 a1ff5240 00000001 004259a0
$16: 8191c240 a1ff5300 a1ff7200 a1ff5300 00000001 8025a600 00000001 00000001
$24: 0000037f c0047a78 801b4000 801b5dd0 00000000 c0048018
Hi : 00000000
Lo : 00000008
epc : c0047ae8 Tainted: P
Status: 10009c03
Cause : 00000008
PrId : 00029029
Process swapper (pid: 0, stackpage=801b4000)
Stack: c00493a0 c0049360 80230cd8 00000000 a1ff51e0 a1ff724c 00000000
a1ff7200 8025a600 00001bf8 00000000 00000000 00001bfa 00002000 00004000
c0049360 80230cd8 00017700 801b5ed0 801b5ed0 801b5ed0 0000037f 81ff3dfc
a1ff4dfc 00000000 801b5e58 8025a664 00000001 00000006 801b5ed0 80210000
00000000 000000ff 0000000c 00004000 c003aafc 00000006 801b5ed0 80210000
00000000 ...
Call Trace: [<c00493a0>] [<c0049360>] [<c0049360>] [<c003aafc>] [<800025d8>]
[<800025d8>] [<80018620>] [<80018174>] [<80184e78>] [<80184888>] [<80184888>]
[<80003458>] [<80003420>]

Code: 00000000 8c840000 acc50004 <8c820048> 10450003 00000000 08011eba 8c84
0048 8ca20048
Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing
<0>Rebooting in 3 seconds..Please stand by while rebooting the system...

lly
06-03-2009, 11:22
-----------------Вставил конвертер на FTDI
hub.c: new USB device 00:03.1-1.4.2, assigned address 6
usb.c: USB device 6 (vend/prod 0x403/0x6001) is not claimed by any active driver

Ты хочешь сказать, что для проявления ошибки даже не надо грузить модули pl2303.o и ftdi_sio.o ?
Скинь еще содержимое /proc/ksyms прямо перед выниманием конвертора. Прошивка, надеюсь r160?

P.S. dropbear'ом файлики напрямую из /proc не копируются - надо сделать
cat /proc/ksyms >/tmp/ksyms

multiplug
06-03-2009, 11:31
https://dev.openwrt.org/cgi-bin/trac.fcgi/ticket/3803

lly
06-03-2009, 11:41
https://dev.openwrt.org/cgi-bin/trac.fcgi/ticket/3803
Это они содрали у Олега :cool: соответственно у нас ужо есть.
И всё таки, стоило прочитать тикет внимательней - там без патчей не заводился USB 2.0 целиком, а у нас проблема с хабом.

Oleg
06-03-2009, 11:46
Это они содрали у Олега :cool: соответственно у нас ужо есть.
Не у Олега, а у Броадкома. :)

multiplug
06-03-2009, 12:45
Ты хочешь сказать, что для проявления ошибки даже не надо грузить модули pl2303.o и ftdi_sio.o ?
Скинь еще содержимое /proc/ksyms прямо перед выниманием конвертора. Прошивка, надеюсь r160?

P.S. dropbear'ом файлики напрямую из /proc не копируются - надо сделать
cat /proc/ksyms >/tmp/ksyms

смотри прицеп

multiplug
06-03-2009, 12:58
[admin@dir320 root]$ cat /proc/bus/usb/devices

lly
06-03-2009, 17:16
sapsan
Автор accel-pptp не уделяет должного внимания документации :( , но вот добрый гуру, в лице Олега, подсказал правильное место, где таки делают тесты, и водится сам автор :) accel pptpd, accel pptpd (http://forum.nag.ru/forum/index.php?showtopic=45266&st=60)

С учетом написанного там, и того, что автор таки спортировал драйвер на 2.4 (о чем ни слова в документации :( ), этот вопрос можно рассмотреть повнимательнее. А энтузиасты у нас еще найдутся или опять только на всё готовенькое? :rolleyes:

P.S. Не обманитесь как я - свежая версия с поддержкой 2.4 в /branch/0.8 а не в /trunk