EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Решение проблем связванных с работой железа. Проблемы программно-аппаратной совместимости.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Шаманъ
рядовой
Сообщения: 33
Зарегистрирован: 2008-08-13 8:54:33

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Шаманъ » 2008-12-23 20:03:38

Приветствую всех!
Case писал(а):...на высокой скорости ядро паникует. Я гуглил, такая проблема наблюдается еще у кого-то за бугром, да много где... И давно.
Нет ли какого-нибудь решения, а?
Модем AnyData ADU-500A - работает, но есть проблема. При высокой загрузке системы, попытка скачать че-нить больше 100Кб гарантированно приводит к "панике". Если система не загружена, паника случается редко, но бывает... Не находил ли кто решения?

Кстати если у кого проблема, что ADU-500A под виндой выдает скорость >100Кб/с, а под FreeBSD только 20-40Кб/с могу рассказать в чем проблема и как ее решить, если интересно...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Dorlas
сержант
Сообщения: 257
Зарегистрирован: 2008-07-18 22:17:49

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Dorlas » 2008-12-23 20:13:27

Рассказывай, интересно :)

Шаманъ
рядовой
Сообщения: 33
Зарегистрирован: 2008-08-13 8:54:33

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Шаманъ » 2008-12-23 23:39:20

Итак, главная проблема пониженной скорости - малый размер буферов. На просторах инета нашел патч, но он напрямую не пошел (видать к другой версии был), хотя адаптировать его труда не составило :smile: , после этих изменений скорость скачивания достигала 200кБ/с (одним словом как в винде)...

Проблема касается ubsa.c

Код: Выделить всё

--- ubsa.c.orig	2007-06-22 08:56:05.000000000 +0300
+++ ubsa.c	2008-12-23 20:48:22.000000000 +0200
@@ -89,9 +89,11 @@
 
 #include <dev/usb/ucomvar.h>
 
+SYSCTL_NODE(_hw_usb, OID_AUTO, ubsa, CTLFLAG_RW, 0, "USB ubsa");
+
 #ifdef USB_DEBUG
 static int	ubsadebug = 0;
-SYSCTL_NODE(_hw_usb, OID_AUTO, ubsa, CTLFLAG_RW, 0, "USB ubsa");
+//SYSCTL_NODE(_hw_usb, OID_AUTO, ubsa, CTLFLAG_RW, 0, "USB ubsa");
 SYSCTL_INT(_hw_usb_ubsa, OID_AUTO, debug, CTLFLAG_RW,
 	   &ubsadebug, 0, "ubsa debug level");
 
@@ -102,6 +104,17 @@
 #else
 #define	DPRINTFN(n, x)
 #endif
+
+int ubsaibufsize = 4096;
+int ubsaobufsize = 256;
+TUNABLE_INT("hw.usb.ubsa.ibufsize", &ubsaibufsize);
+TUNABLE_INT("hw.usb.ubsa.obufsize", &ubsaobufsize);
+SYSCTL_INT(_hw_usb_ubsa, OID_AUTO, ibufsize, CTLFLAG_RD,
+   &ubsaibufsize, 0, "ubsa input packet length");
+SYSCTL_INT(_hw_usb_ubsa, OID_AUTO, obufsize, CTLFLAG_RD,
+   &ubsaobufsize, 0, "ubsa output packet length");
+#define UBSAIBUFSIZE (ubsaibufsize)
+#define UBSAOBUFSIZE (ubsaobufsize)
 #define	DPRINTF(x) DPRINTFN(0, x)
 
 #define	UBSA_MODVER		1	/* module version */
@@ -212,6 +225,8 @@
 } ubsa_products [] = {
 	/* AnyData ADU-E100A/H */
 	{ USB_VENDOR_ANYDATA, USB_PRODUCT_ANYDATA_ADU_E100X },
+        /* AnyData ADU-500A */ 
+        { USB_VENDOR_ANYDATA, USB_PRODUCT_ANYDATA_ADU_500A }, 
 	/* BELKIN F5U103 */
 	{ USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U103 },
 	/* BELKIN F5U120 */
@@ -362,10 +377,19 @@
 		} else if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_IN &&
 		    UE_GET_XFERTYPE(ed->bmAttributes) == UE_BULK) {
 			ucom->sc_bulkin_no = ed->bEndpointAddress;
+
+if (uaa->product == USB_PRODUCT_ANYDATA_ADU_500A)
+ucom->sc_ibufsize = UBSAIBUFSIZE; //UGETW(ed->wMaxPacketSize);
+else
+
 			ucom->sc_ibufsize = UGETW(ed->wMaxPacketSize);
 		} else if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_OUT &&
 		    UE_GET_XFERTYPE(ed->bmAttributes) == UE_BULK) {
 			ucom->sc_bulkout_no = ed->bEndpointAddress;
+
+if (uaa->product == USB_PRODUCT_ANYDATA_ADU_500A)
+ucom->sc_obufsize = UBSAOBUFSIZE; //UGETW(ed->wMaxPacketSize);
+else
 			ucom->sc_obufsize = UGETW(ed->wMaxPacketSize);
 		}
 	}
@@ -730,6 +754,8 @@
 	struct ubsa_softc *sc;
 
 	sc = arg;
+	if(sc->sc_ucom.sc_dying)
+	     return;
 	ucom_status_change(&sc->sc_ucom);
 }

Да,

Код: Выделить всё

Acheron# uname -v
FreeBSD 7.0-RELEASE #11: Mon Dec 22 22:19:14 EET 2008     oleg@Acheron.local:/usr/obj/usr/src/sys/ACHERON
P.S. Вот еще бы решить проблему с "паникой" :st:


Шаманъ
рядовой
Сообщения: 33
Зарегистрирован: 2008-08-13 8:54:33

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Шаманъ » 2008-12-24 16:28:04

mxmedia писал(а):http://forum.sysfaq.ru/lofiversion/index.php/t4314.html
вот решение проблемки с cd и cuaU
Насколько мне известно это работает только на FreeBSD 6.x... Впрочем, запустить ADU-500A под 7.0 не проблема - проблема добиться стабильной работы :(

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение paradox » 2008-12-24 16:30:09

P.S. Вот еще бы решить проблему с "паникой"
откотиться до нормальной версии без патча по увеличению буффера

Шаманъ
рядовой
Сообщения: 33
Зарегистрирован: 2008-08-13 8:54:33

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Шаманъ » 2008-12-24 16:48:03

Проблема в том, что от этого патча паника не зависит (т.е. есть он или нет меняется только скорость). Кстати я не одинок в этой проблеме...

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение paradox » 2008-12-24 16:51:33

собирайте все ядро в дебагом
и без патча
делайте панику
пусть создаеться корка
и уже kgdb и в нем смотреть где оно упало

Аватара пользователя
Dorlas
сержант
Сообщения: 257
Зарегистрирован: 2008-07-18 22:17:49

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Dorlas » 2008-12-24 16:53:41

У меня в 7.1-Beta2 ни разу не падало в kernel panic...

Шаманъ
рядовой
Сообщения: 33
Зарегистрирован: 2008-08-13 8:54:33

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Шаманъ » 2008-12-24 17:49:46

Dorlas писал(а):У меня в 7.1-Beta2 ни разу не падало в kernel panic...
Возможно 7.1-Beta2 ключевая фраза - (у меня 7.0-RELEASE) :oops:
А какую версию USB инфраструктуры используете (стаую или новую, ту, что usb2_...), если не секрет?

Аватара пользователя
Dorlas
сержант
Сообщения: 257
Зарегистрирован: 2008-07-18 22:17:49

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Dorlas » 2008-12-25 8:25:29

Старую - даже не уверен, что в RELENG_7 есть патчи с USB2 :)

Шаманъ
рядовой
Сообщения: 33
Зарегистрирован: 2008-08-13 8:54:33

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Шаманъ » 2009-01-07 17:03:55

Обновил все до 7.1-STABLE (RELENG_7) и нифига - ничего не изменилось...

Panic: ohci_abort_xfer: not in process context

Попробовал с драйвером u3g (вместо ubsa) - тут ситуация совсем другая - инет подключается, но через 10-20сек пользования вылетает ошибка что-то типа ucom0: IOERROR... после чего инет заканчивается, правда ядро не паникует :-D

Эх нет гармонии :( ...

Кстати еще одна странность - в описании на используемую материнку Intel D201GLY2 написано, что там UHCI и EHCI контроллеры USB1.1/USB2.0. А FreeBSD почему-то юзает OHCI драйвер...

P.S. Всех с праздниками наступившими и наступающими!!!

Шаманъ
рядовой
Сообщения: 33
Зарегистрирован: 2008-08-13 8:54:33

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Шаманъ » 2009-01-26 12:53:29

Приветствую всех!

Отвечаю сам себе:

Панику пбедить удалось :)

Метод жестокий :crazy: (не уверен, что хороший и им надо пользоваться, но меня результат устраивает).

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

Файс ohci.c cnhjrb 2221,2222

Код: Выделить всё

if (xfer->device->bus->intr_context || !curproc)
    panic("ohci_abort_xfer: not in process context");
Теперь при большой нагрузке на систему иногда вылезает ucom0: IOERROR, но это не создает проблем...

Удачи!
Олег

Аватара пользователя
Dorlas
сержант
Сообщения: 257
Зарегистрирован: 2008-07-18 22:17:49

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Dorlas » 2009-05-10 17:00:54

Вчера воткнул на ноут FreeBSD 7.2-RELEASE - моя AnyData уже работает без патчей :) Карашо :)

Да и вообще порадовался работе MAV-а - звук сразу есть, SSD-reader - тоже.

Больше времени ушло на KDE4 - ни разу не видел, не привычно.

Шаманъ
рядовой
Сообщения: 33
Зарегистрирован: 2008-08-13 8:54:33

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Шаманъ » 2009-05-10 18:51:53

Dorlas писал(а):Вчера воткнул на ноут FreeBSD 7.2-RELEASE - моя AnyData уже работает без патчей :) Карашо :)
А как со стабильностью в EV-DO режиме, при хорошей нагрузке на процессор(ы) и скачке чего-либо с приличной скоростью (>100Кбайт/сек) - раньше такое отправляло ядро в панику на раз :roll: ?

Аватара пользователя
Dorlas
сержант
Сообщения: 257
Зарегистрирован: 2008-07-18 22:17:49

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Dorlas » 2009-05-11 19:22:16

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

mellon
проходил мимо

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение mellon » 2009-05-14 12:08:39

Доброго времени суток!
Помогите пожалуйста завести AnyDATA ADU-500A под FreeBSD, у меня 7.2-RELEASE.
Можно сказать это мой первый опыт работы под FreeBSD... :st:

Внес в файлы /usr/src/sys/dev/usb/ubsa.c и /usr/src/sys/dev/usb/usbdevs то, что отмечено +
Файла /usr/src/share/man/man4/ubsa.4 не нашел :unknown:
Всё как описано у Dorlas и http://daemon.jp.freebsd.org/cgi/query- ... usb/118479 , но так и не запустилось. Система увидела cd0 и всё.

Пробовал, как описано http://forum.sysfaq.ru/lofiversion/index.php/t4314.html , но тоже безрезультатно, даже ядро не скомпилировалось, ошибки в dev/usb/ugencom.c

Не могу никак понять, что сделать-то надо. :cz2:

Шаманъ
рядовой
Сообщения: 33
Зарегистрирован: 2008-08-13 8:54:33

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Шаманъ » 2009-05-14 12:39:23

mellon писал(а):Внес в файлы /usr/src/sys/dev/usb/ubsa.c и /usr/src/sys/dev/usb/usbdevs ...
Выше вроде писали, что в 7.2 работает без патчей (у меня 7.0)...

Если патчи в 7.2 таки нужны, то надеюсь ядро пересобрали и установили новое после правки файлов?

Модуль ubsa подгрузили (или в ядро добавили)?

Аватара пользователя
Dorlas
сержант
Сообщения: 257
Зарегистрирован: 2008-07-18 22:17:49

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Dorlas » 2009-05-14 12:48:21

Система увидела cd0 и всё.
А надо то просто подумать головой и понять, что модем в режим модема еще не переключен (сори за тафтологию).
Мне для этого пока приходится в Linux или Windows перегружаться.

mellon
проходил мимо

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение mellon » 2009-05-14 14:42:41

> Шаманъ > Ядро разумеется пересобрал и установил новое.
Что касается ubsa, делал всё как написал Gibraltar ( http://forum.sysfaq.ru/lofiversion/index.php/t4314.html )
Решение по шагам:

1. Скачать http://www.cs.cmu.edu/~dga/dot/fbsd_pc5220/ugencom.c
2. Поменять в строке

Код: Выделить всё

{ USB_VENDOR_AIRPRIME, USB_PRODUCT_AIRPRIME_PC5220, -1 },
константы USB_VENDOR_AIRPRIME и USB_PRODUCT_AIRPRIME_PC5220
на те, которые указал на 2 поста выше myc

3. В /usr/src/sys/conf/files добавить строку

Код: Выделить всё

dev/usb/ugencom.c               optional ugencom ucom
4. Сложить сделанный ugencom.c в /usr/src/sys/dev/usb
5. В ядро добавить

Код: Выделить всё

device ucom
device ugencom
Пересобрать.
6. В результат получим искомый девайс cuaU0
> Dorlas > Я что-то не пойму как модем остается переключенным после перезагрузки уже Винды (или Линукса), ведь в момент перезагрузки питание на модеме тоже отключается... :unknown:

Шаманъ
рядовой
Сообщения: 33
Зарегистрирован: 2008-08-13 8:54:33

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Шаманъ » 2009-05-14 17:07:23

Что-то не то Вы делали. Не знаю как в 7.2, но в 7.0 все работает через ubsa и ugencom нафик не нужен...

Все что нужно было сделать это прописать модем в usbdevs и ubsa.c, далее загрузить модуль ubsa или прописать в конфиге ядра "device ubsa". После этого модем заводится с полпинка без всяких переключений (пароль только на модеме в винде отключить надо).

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

Аватара пользователя
Dorlas
сержант
Сообщения: 257
Зарегистрирован: 2008-07-18 22:17:49

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Dorlas » 2009-05-15 7:21:16

После этого модем заводится с полпинка без всяких переключений (пароль только на модеме в винде отключить надо).
У Вас AnyData какой модели?

У меня AnyData 520 - его нужно переключать в режим модема (что в Windows, что в Linux, что в FreeBSD).

В Linux можно сделать так: http://sotel-ccb.ru/forum/viewtopic.php?t=7902

Как это делать в FreeBSD я до сих пор не нашел.

Без переключения модем при втыкании в USB дает только одно устройство: cd0. После переключения: ucom0

Шаманъ
рядовой
Сообщения: 33
Зарегистрирован: 2008-08-13 8:54:33

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Шаманъ » 2009-05-15 8:15:46

Dorlas писал(а):У Вас AnyData какой модели?
У меня ADU-500A - как я понял у mellon такой же... В этих модемах ничего переключать (кроме отключения ПИН-кода) не надо. Где-то читал, что народ имел успех с драйвером u3g для модемов, которым требовалось переключение (сам не проверял)...

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

mellon
проходил мимо

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение mellon » 2009-05-15 8:52:42

Переустановил Фрю, покапался еще... и выяснил что в 7.2-RELEASE в файлах /usr/src/sys/dev/usb/usbdevs и /usr/src/sys/dev/usb/ubsa.c AnyDATA ADU-500A уже везде прописан, даже в ядре "device ubsa" прописывать не надо... А модем определяется как cd0
В отличии от Dorlas у меня на этом компе только Фря.. и ниего кроме не планируется. Так что, очень интересно как Шаманъ удалось его зависти
с полпинка без всяких переключений
:unknown:

Шаманъ
рядовой
Сообщения: 33
Зарегистрирован: 2008-08-13 8:54:33

Re: EV-DO модемы AnyData-500A/510A/520A в FreeBSD

Непрочитанное сообщение Шаманъ » 2009-05-15 9:29:05

mellon писал(а):Так что, очень интересно как Шаманъ удалось его зависти
с полпинка без всяких переключений
:unknown:
1. Ну давайте по порядку - ПИН-код на модеме выключен?
2. Помнится мне, что ядро GENERIC (которое "из коробки") модульное и все модули там были отдельно (может я и не прав), но наверное стоит попробовать "kldload ubsa.ko", вынуть и вставить модем и вывод с консоли сюда...