wimax

Решение проблем связванных с работой железа. Проблемы программно-аппаратной совместимости.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Dorlas
сержант
Сообщения: 257
Зарегистрирован: 2008-07-18 22:17:49

Re: wimax

Непрочитанное сообщение Dorlas » 2009-06-04 5:38:39

Читаю содержимое сайта по MadWiMax - прикольную штуку нашел:
http://www.pcausa.com/Utilities/UsbSnoop/default.htm

paradox - ты такой пользовался?

Хостинговая компания 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/

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

Re: wimax

Непрочитанное сообщение paradox » 2009-06-04 11:55:36

та ну
зачем она мне

если ты заметил то я железки в руках не дережу
я в их код сразу смотрю
дампы их общения это не для меня

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

Re: wimax

Непрочитанное сообщение Dorlas » 2009-06-10 13:47:35

Получил такой модем на Beta-test (в перспективе насовсем).

Скоро отпуск - подумываю всерьез заняться переписыванием MadWiMax ....но желание есть, а знаний нет :(

paradox - посоветуй, с каких книжек начать подбираться к вопросу (про USB и т.д.) ?

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

Re: wimax

Непрочитанное сообщение paradox » 2009-06-10 13:51:37

а зачем книжечки
бери линуховый драйвер + какой то бсдшный драйвер usb
и играйся =)

книжек увы низнаю((
наверное любая где расписано как работает usb

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

Re: wimax

Непрочитанное сообщение Dorlas » 2009-06-11 6:48:00

Вчера написал пару вопросов разработчику драйвера u3g - вот его ответ:
You might to start off with:

a) creating a skeleton driver (based on u3g) that loads attaches to the
device you have and doesn't do any actual work in attach (just returns 0
from the attach routine).

b) dumping the USB descriptors in the device (after attaching to it using
ugen instead of your driver if you use FBSD7) using usb utils from ports.

Once you have done that you need to figure out ... wait madwimax is a
userland driver using libusb. You only need to make it compile on FreeBSD
and it should basically work.

When it works send-pr a patch for a port.
Похоже все разработчики мыслят одинаково :) :) :)

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

Re: wimax

Непрочитанное сообщение Dorlas » 2009-06-11 7:12:25

В общем итог поисков:

http://wiki.freebsd.org/SOC2009SylvestreGallon

Немного подождать - и libusb1.x будет в FreeBSD :)

Ну а там будем компилить MadWiMax :) (наверное) :) :) :)

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

Re: wimax

Непрочитанное сообщение Dorlas » 2009-06-11 14:19:29

Вот ответ француза:
For the moment it is only on p4 :

http://perforce.freebsd.org/depotTreeBr ... HIDEDEL=NO

The transfer do not work yet but It could work before the end of the week.
thompsa@ is waiting the transfer implementation to putting it in head.

Stay tuned and take a look to svn commit ;)

Cheers,
Доживем до понедельника? :good:

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

Re: wimax

Непрочитанное сообщение paradox » 2009-06-11 14:47:37

ну я бы сильно не обольщался
libusb1x
это токо половина проблемы
если ты заглянешьв сорусы линухового madwimax
то увидишь чтотам есть и другие грабли

к томуже
libusb1x не совместим с линуховым

RexaleX
рядовой
Сообщения: 26
Зарегистрирован: 2009-02-23 15:28:39
Контактная информация:

Re: wimax

Непрочитанное сообщение RexaleX » 2009-06-15 17:39:46

Есть свет в конце туннеля? Очень уж хочется как бэкап Yota попользовать :) Готов финансово помочь автору работоспособного решения (100 WMZ).

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

Re: wimax

Непрочитанное сообщение lvf » 2009-06-16 22:01:34

В качестве эксперимента мне удалось заставить работать драйвер под FreeBSD (сейчас через него подключен:), но под новый libusb2 (пришлось ради этого перейти на current). Если кто-то обновил USB stack+libusb или собирается это делать, я готов поделиться результатом. Только сразу хочу предупредить - придётся поработать напильником при сборке и настройке - не хватило времени сделать всё по человечески да и навыки программирования уже подрастерял. Может быть через недельку-другую доведу до ума но бета-тестеры не помешают :).

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35332
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: wimax

Непрочитанное сообщение Alex Keda » 2009-06-16 23:16:04

выкатывай - посмотрим =)
Убей их всех! Бог потом рассортирует...

RexaleX
рядовой
Сообщения: 26
Зарегистрирован: 2009-02-23 15:28:39
Контактная информация:

Re: wimax

Непрочитанное сообщение RexaleX » 2009-06-17 8:24:10

lvf писал(а):В качестве эксперимента мне удалось заставить работать драйвер под FreeBSD (сейчас через него подключен:), но под новый libusb2 (пришлось ради этого перейти на current). Если кто-то обновил USB stack+libusb или собирается это делать, я готов поделиться результатом. Только сразу хочу предупредить - придётся поработать напильником при сборке и настройке - не хватило времени сделать всё по человечески да и навыки программирования уже подрастерял. Может быть через недельку-другую доведу до ума но бета-тестеры не помешают :).
ждем-с ))

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

Re: wimax

Непрочитанное сообщение lvf » 2009-06-17 23:29:44

СБОРКА И НАСТРОЙКА ДРАЙВЕРА WIMAX под FreeBSD

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

1. Копируем файлы в любой каталог

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

2. Компилируем драйвер gcc lvwimax.c protocol.c tap_dev.c -lusb -lpthread -o lvwimax

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

3. добавляем в начало файла /etc/syslog.conf строки:
local6.err              /var/log/lvwimax_err.log
local6.info             /var/log/lvwimax_info.log
local6.debug            /var/log/lvwimax_debug.log

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

4. Прописываем в скрипт start_lvwimax.sh MAC (строка ifconfig tap0 ether ...) адрес модема (его можно посмотреть на самом устройстве или в 
   логе /var/log/lvwimax.log после первого запуска скрипта)

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

5. Запускаем скрипт start_lvwimax.sh

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

6. Драйвер работает в режиме демона и выводит сообщения в логи, настроенные в п.1. Выводятся сообщения вида:
Jun 18 00:02:22 msiwin lvwimax: lvwimax daemon started
Jun 18 00:02:22 msiwin lvwimax: TODO: register exitprocedures and signal handlers
Jun 18 00:02:22 msiwin lvwimax: founded device ugen4.2: <Samsung USB mWiMAX Modem SAMSUNG ELECTRONICS Co.Ltd.> at usbus4
Jun 18 00:02:22 msiwin lvwimax: Chip info: cmc730_v2.1
Jun 18 00:02:22 msiwin lvwimax: Firmware info: u200_rev1-2.3.0-BL22
Jun 18 00:02:22 msiwin lvwimax: MAC: xx:xx:xx:xx:xx:xx
Jun 18 00:02:22 msiwin lvwimax: init completed
Jun 18 00:02:23 msiwin lvwimax: Network found.
Jun 18 00:02:23 msiwin lvwimax: RSSI: -88   CINR: -4.000000   TX Pow: 14   Freq: 2505000
Jun 18 00:02:23 msiwin lvwimax: BSID: xx:xx:xx:xx:xx:xx
Jun 18 00:02:23 msiwin lvwimax: State: NEGO Response: 1
Jun 18 00:02:31 msiwin lvwimax: RSSI: -88   CINR: 6.250000   TX Pow: 13   Freq: 2505000
Jun 18 00:02:31 msiwin lvwimax: BSID: 00:00:15:02:03:b0
Jun 18 00:02:31 msiwin lvwimax: State: NORMAL Response: 2

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

7. После появления в логе сообщения State: NORMAL Response: 2 запускаем DHCP клиент: dhclient tap0.
При успешном получении настроек на консоль выводятся сообщения вида:
DHCPREQUEST on tap0 to 255.255.255.255 port 67
DHCPACK from 10.128.64.1
unknown dhcp option value 0xfc
bound to 10.128.88.42 -- renewal in 5400 seconds

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

8. Для завершения работы необходимо выполнить команду killall lvwimax

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

9. В случае временного обрыва соединения необходимо повторить шаг 7
Вложения
lvwimax.tar.gz
WiMax freebsd driver
(23.61 КБ) 375 скачиваний

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

Re: wimax

Непрочитанное сообщение lvf » 2009-06-17 23:47:59

lvf писал(а):СБОРКА И НАСТРОЙКА ДРАЙВЕРА WIMAX под FreeBSD
1. Копируем файлы в любой каталог
....
Небольшое уточнение: имя каталога в который помещён собранный файл lvwimax необходимо прописать в скрипте sart_lvwimax.sh вместо /home/msi/lvwimax/

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

Re: wimax

Непрочитанное сообщение paradox » 2009-06-18 1:25:54

tun можно убрать
всеравно его нельзя будет использовать
оставил бы tap

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

Re: wimax

Непрочитанное сообщение paradox » 2009-06-18 4:01:32

попробуй фикс к твоему драйверу дописать

protocol.c

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

int fill_connection_params2_req(unsigned char *buf, int len)
{
-	unsigned char param[0x2] = {0x00, 0x00};
+	unsigned char param[0x2] = {0x00, 0x14};
	return fill_normal_C_req(buf, 0x1, 0x9, sizeof(param), param);
}
lvwimax.c

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

static int scan_loop(void)
{
	unsigned char req_data[MAX_PACKET_LEN];
	int len;

	while (1)
	{
		if (wd_status.link_status == 0) {
			len = fill_find_network_req(req_data, MAX_PACKET_LEN, 1);
			writeUsbDev(req_data, len);
			process_events_by_mask(5000, WDS_LINK_STATUS);

			if (wd_status.link_status == 0) {
				syslog(LOG_INFO, "Network not found.");
			} else {
				syslog(LOG_INFO, "Network found.");
			}
		} else {
-			//len = fill_connection_params1_req(req_data, MAX_PACKET_LEN);
-			//r = writeUsbDev(req_data, len);
-			//if (r < 0) {
-			//	return r;
-			//}
+			len = fill_connection_params1_req(req_data, MAX_PACKET_LEN);
+			r = writeUsbDev(req_data, len);
+			if (r < 0) {
+				return r;
+			}

+                    usleep(10000);

			len = fill_connection_params2_req(req_data, MAX_PACKET_LEN);
			writeUsbDev(req_data, len);
непомню уже usleep есть или нет
но он там нужен
нужно выждать время пока пройдет дисконнект от точки доступа
и токо потом делать реквест коннекшен

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

Re: wimax

Непрочитанное сообщение paradox » 2009-06-18 5:55:41

и еще попробуй убрать эти ненужные запросы

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

	prepareToWrite();
	pthread_t nt;
	if(pthread_create(&nt, NULL, usbReaderProc, NULL) != 0)
		fatalError("failed to create reader thread");
+#if 0	
	len = fill_protocol_info_req(req_data, MAX_PACKET_LEN,
			USB_HOST_SUPPORT_SELECTIVE_SUSPEND | USB_HOST_SUPPORT_DL_SIX_BYTES_HEADER |
			USB_HOST_SUPPORT_UL_SIX_BYTES_HEADER | USB_HOST_SUPPORT_DL_MULTI_PACKETS);
	writeUsbDev(req_data, len);

	process_events_by_mask(501, WDS_PROTO_FLAGS);

	writeUsbDev(data2, sizeof(data2));

	process_events_by_mask(502, WDS_OTHER);

	writeUsbDev(data3, sizeof(data3));
+#endif
	len = fill_string_info_req(req_data, MAX_PACKET_LEN);
	writeUsbDev(req_data, len);

	process_events_by_mask(503, WDS_CHIP | WDS_FIRMWARE);
	syslog(LOG_INFO, "Chip info: %s", wd_status.chip);
	syslog(LOG_INFO, "Firmware info: %s", wd_status.f
первый запрос это получения feautures request
втрой запрос это чтение мак адресса
токо по другому - "вообщем он все равно не реализован"
третий запрос это проверка в каком режиме находиться модем
там есть еще режим заливки фирмвари
вообщем всеравно в этом madwimax не реализовано....

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

Re: wimax

Непрочитанное сообщение paradox » 2009-06-18 6:20:25

и mtu там 1400 нужно ставить

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

Re: wimax

Непрочитанное сообщение lvf » 2009-06-18 12:19:06

to paradox
Спасибо за инфо.
Подскажи, пожалуйста:
1) Чем tun хуже tap?
2) unsigned char param[0x2] = {0x00, 0x14}; - что это исправляет?
3) Зачем нужен запрос fill_connection_params1_req(req_data, MAX_PACKET_LEN) который в madwimax'е закомментарен.

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

Re: wimax

Непрочитанное сообщение paradox » 2009-06-18 13:07:19

1)
в bsd tun наскоко я понимаю работать небудет поскоку
tun это тунель с двумя айпи
а
tap
это езернет устройство с мак адрессом

2)
это запрос
незнаю откуда там {0x00, 0x00} - такого запроса нет
в драйвере под макос это htons(0x14)
ну впереводе под madwimax это {0x00, 0x14} если я правильно понимаю

3)
ну в драйвере под макос
это процедура типа остановки сетки
WM_SendLinkInfoStop
хз
в драйвере
они работают в паре
под управлением процедуры

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

WM_SendLinkInfoReq()
{
        *_params_1_
        usleep(10000);
        _*params_2_
}
на самом деле _params_1_ и _params_2 это одна функция под названием W_LinkInfoReq
токо с двумя параметрами
0xffff и 0x14
дальше эти значение преобразуються через rol ?, 8
и превращаються в {0x00, 0x14} и {0xff, 0xff}

хз
я ж так понимаю madwimax писали снифя и дампя пакеты usb
а я в драйвер смотрю как и что....
---

я просто посмотрел драйвер и madwimax и уточнил моменты

вот этот вот запрос можно дофиксить

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

  writeUsbDev(data2, sizeof(data2));   
  process_events_by_mask(502, WDS_OTHER);
это получение мак адресса


если ты хорошо разобрался с madwmax
то могу рассказать что там за usb запросы
0x57 это заголовочный байт
дальше комманда

0x43 Read/Write Command
0x44 Read/Write Packet
0x45 Read/Write Features
0x50 пока еще не понятно

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

Re: wimax

Непрочитанное сообщение lvf » 2009-06-18 13:28:58

paradox писал(а):1)
в bsd tun наскоко я понимаю работать небудет поскоку
tun это тунель с двумя айпи
а
tap
это езернет устройство с мак адрессом
Тем не менее tun вполне работает :smile: . Я уже месяц в интернет через этот драйвер хожу, задаю только MAC-адрес а IP получаю через DHCP. Да и в ifconfig он выглядит как сетевая карта.

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

Re: wimax

Непрочитанное сообщение paradox » 2009-06-18 13:32:27

хм
tun в бсд?
странно

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

Re: wimax

Непрочитанное сообщение lvf » 2009-06-19 22:30:43

paradox писал(а):хм
tun в бсд?
странно
Только что обратил внимание, что я вообще-то tap использую (см. start_lvwimax.sh) так что вопрос о работоспособности tun'a остаётся открытым ;-)

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

Re: wimax

Непрочитанное сообщение paradox » 2009-06-19 23:00:42

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

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

//
static int
process_E_response(struct wimax_dev_status *dev, const unsigned char *buf, int len)
{
	if (buf[0x5] == 0x3) {
		dev->proto_flags = buf[0x7];
		dev->info_updated |= WDS_PROTO_FLAGS;
		return 0;
	}

//kir++        сдесь нужно делать дамп пакеты и смотреть тамможет быть +-1 байт смещения 0x5+1 или 0x5-1  остальные + 0xC 0xD 0xE остаються
	if (buf[0x5+0xC] == 0x15 && buf[0x5+0xD] == 0xA)
	{
		memcpy(dev->mac, buf + 0x5+0xE, 0x6);
		dev->info_updated |= WDS_MAC;
		return 0;

	}                          

	dev->info_updated |= WDS_OTHER;

	return 0;
}

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

//GetMacAddress
	writeUsbDev(data2, sizeof(data2));
//	process_events_by_mask(502, WDS_OTHER);
//kir++
	process_events_by_mask(504, WDS_MAC);
	syslog(LOG_INFO, "MAC: %02x:%02x:%02x:%02x:%02x:%02x", wd_status.mac[0], wd_status.mac[1], wd_status.mac[2], wd_status.mac[3], wd_status.mac[4], wd_status.mac[5]);
ну и в итоге он должен распечататься
вот интересно он такой же бужет как потом определяеться или другой

RexaleX
рядовой
Сообщения: 26
Зарегистрирован: 2009-02-23 15:28:39
Контактная информация:

Re: wimax

Непрочитанное сообщение RexaleX » 2009-06-20 14:00:12

Поставил обновлять систему до current'a. Как обновлюсь, сразу же готов присоединиться к экспериментам)