wimax
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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: wimax
Получил такой модем на Beta-test (в перспективе насовсем).
Скоро отпуск - подумываю всерьез заняться переписыванием MadWiMax ....но желание есть, а знаний нет
paradox - посоветуй, с каких книжек начать подбираться к вопросу (про USB и т.д.) ?
Скоро отпуск - подумываю всерьез заняться переписыванием MadWiMax ....но желание есть, а знаний нет
paradox - посоветуй, с каких книжек начать подбираться к вопросу (про USB и т.д.) ?
- Dorlas
- сержант
- Сообщения: 257
- Зарегистрирован: 2008-07-18 22:17:49
Re: wimax
Вчера написал пару вопросов разработчику драйвера 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
В общем итог поисков:
http://wiki.freebsd.org/SOC2009SylvestreGallon
Немного подождать - и libusb1.x будет в FreeBSD
Ну а там будем компилить MadWiMax (наверное)
http://wiki.freebsd.org/SOC2009SylvestreGallon
Немного подождать - и libusb1.x будет в FreeBSD
Ну а там будем компилить MadWiMax (наверное)
- Dorlas
- сержант
- Сообщения: 257
- Зарегистрирован: 2008-07-18 22:17:49
Re: wimax
Вот ответ француза:
Доживем до понедельника?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,
-
- проходил мимо
Re: wimax
В качестве эксперимента мне удалось заставить работать драйвер под FreeBSD (сейчас через него подключен:), но под новый libusb2 (пришлось ради этого перейти на current). Если кто-то обновил USB stack+libusb или собирается это делать, я готов поделиться результатом. Только сразу хочу предупредить - придётся поработать напильником при сборке и настройке - не хватило времени сделать всё по человечески да и навыки программирования уже подрастерял. Может быть через недельку-другую доведу до ума но бета-тестеры не помешают .
- Alex Keda
- стреляли...
- Сообщения: 35465
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
-
- рядовой
- Сообщения: 26
- Зарегистрирован: 2009-02-23 15:28:39
- Контактная информация:
Re: wimax
ждем-с ))lvf писал(а):В качестве эксперимента мне удалось заставить работать драйвер под FreeBSD (сейчас через него подключен:), но под новый libusb2 (пришлось ради этого перейти на current). Если кто-то обновил USB stack+libusb или собирается это делать, я готов поделиться результатом. Только сразу хочу предупредить - придётся поработать напильником при сборке и настройке - не хватило времени сделать всё по человечески да и навыки программирования уже подрастерял. Может быть через недельку-другую доведу до ума но бета-тестеры не помешают .
-
- проходил мимо
Re: wimax
СБОРКА И НАСТРОЙКА ДРАЙВЕРА 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 КБ) 376 скачиваний
-
- проходил мимо
Re: wimax
Небольшое уточнение: имя каталога в который помещён собранный файл lvwimax необходимо прописать в скрипте sart_lvwimax.sh вместо /home/msi/lvwimax/lvf писал(а):СБОРКА И НАСТРОЙКА ДРАЙВЕРА WIMAX под FreeBSD
1. Копируем файлы в любой каталог
....
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: wimax
попробуй фикс к твоему драйверу дописать
protocol.c
lvwimax.c
непомню уже usleep есть или нет
но он там нужен
нужно выждать время пока пройдет дисконнект от точки доступа
и токо потом делать реквест коннекшен
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);
}
Код: Выделить всё
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);
но он там нужен
нужно выждать время пока пройдет дисконнект от точки доступа
и токо потом делать реквест коннекшен
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: wimax
и еще попробуй убрать эти ненужные запросы
первый запрос это получения feautures request
втрой запрос это чтение мак адресса
токо по другому - "вообщем он все равно не реализован"
третий запрос это проверка в каком режиме находиться модем
там есть еще режим заливки фирмвари
вообщем всеравно в этом madwimax не реализовано....
Код: Выделить всё
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
втрой запрос это чтение мак адресса
токо по другому - "вообщем он все равно не реализован"
третий запрос это проверка в каком режиме находиться модем
там есть еще режим заливки фирмвари
вообщем всеравно в этом madwimax не реализовано....
-
- проходил мимо
Re: wimax
to paradox
Спасибо за инфо.
Подскажи, пожалуйста:
1) Чем tun хуже tap?
2) unsigned char param[0x2] = {0x00, 0x14}; - что это исправляет?
3) Зачем нужен запрос fill_connection_params1_req(req_data, MAX_PACKET_LEN) который в madwimax'е закомментарен.
Спасибо за инфо.
Подскажи, пожалуйста:
1) Чем tun хуже tap?
2) unsigned char param[0x2] = {0x00, 0x14}; - что это исправляет?
3) Зачем нужен запрос fill_connection_params1_req(req_data, MAX_PACKET_LEN) который в madwimax'е закомментарен.
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: wimax
1)
в bsd tun наскоко я понимаю работать небудет поскоку
tun это тунель с двумя айпи
а
tap
это езернет устройство с мак адрессом
2)
это запрос
незнаю откуда там {0x00, 0x00} - такого запроса нет
в драйвере под макос это htons(0x14)
ну впереводе под madwimax это {0x00, 0x14} если я правильно понимаю
3)
ну в драйвере под макос
это процедура типа остановки сетки
WM_SendLinkInfoStop
хз
в драйвере
они работают в паре
под управлением процедуры
на самом деле _params_1_ и _params_2 это одна функция под названием W_LinkInfoReq
токо с двумя параметрами
0xffff и 0x14
дальше эти значение преобразуються через rol ?, 8
и превращаються в {0x00, 0x14} и {0xff, 0xff}
хз
я ж так понимаю madwimax писали снифя и дампя пакеты usb
а я в драйвер смотрю как и что....
---
я просто посмотрел драйвер и madwimax и уточнил моменты
вот этот вот запрос можно дофиксить
это получение мак адресса
если ты хорошо разобрался с madwmax
то могу рассказать что там за usb запросы
0x57 это заголовочный байт
дальше комманда
0x43 Read/Write Command
0x44 Read/Write Packet
0x45 Read/Write Features
0x50 пока еще не понятно
в bsd tun наскоко я понимаю работать небудет поскоку
tun это тунель с двумя айпи
а
tap
это езернет устройство с мак адрессом
2)
это запрос
незнаю откуда там {0x00, 0x00} - такого запроса нет
в драйвере под макос это htons(0x14)
ну впереводе под madwimax это {0x00, 0x14} если я правильно понимаю
3)
ну в драйвере под макос
это процедура типа остановки сетки
WM_SendLinkInfoStop
хз
в драйвере
они работают в паре
под управлением процедуры
Код: Выделить всё
WM_SendLinkInfoReq()
{
*_params_1_
usleep(10000);
_*params_2_
}
токо с двумя параметрами
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 пока еще не понятно
-
- проходил мимо
Re: wimax
Тем не менее tun вполне работает . Я уже месяц в интернет через этот драйвер хожу, задаю только MAC-адрес а IP получаю через DHCP. Да и в ifconfig он выглядит как сетевая карта.paradox писал(а):1)
в bsd tun наскоко я понимаю работать небудет поскоку
tun это тунель с двумя айпи
а
tap
это езернет устройство с мак адрессом
-
- проходил мимо
Re: wimax
Только что обратил внимание, что я вообще-то tap использую (см. start_lvwimax.sh) так что вопрос о работоспособности tun'a остаётся открытымparadox писал(а):хм
tun в бсд?
странно
-
- проходил мимо
- Сообщения: 11620
- Зарегистрирован: 2008-02-21 18:15:41
Re: wimax
лучше попробуй еще дофиксить второй запрос по усб
который я просил закомментировать
ну и в итоге он должен распечататься
вот интересно он такой же бужет как потом определяеться или другой
который я просил закомментировать
Код: Выделить всё
//
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]);
вот интересно он такой же бужет как потом определяеться или другой