[ Скачать с сервера ]MadWimax
— попытка создать Linux драйвер для Samsung SWC-U200, USB адаптера для
доступа к сетям Mobile Wimax. Проект так называется благодаря очень
успешному проекту с похожими целями MadWifi. Надеемся, что и мы добьемся своего. 🙂

Для
удобства разработки драйвер пишется полностью в user-space. Это должно
существенно сократить время необходимое для создание полноценного
драйвера. Если производительность окажется неудовлетворительной, позже
можно будет его переписать для включения в ядро.

Для обмена данными с устройством используется библиотека libusb-1.0.
Она сильно упрощает процесс написания USB драйвера в user-space. Кроме
того, она поддерживает асинхронные передачи, которые необходимы для
обмена данными с SWC-U200. К сожалению, библиотека поддерживает только
Linux.

Для создания сетевого интерфейса в user-space планируется использовать TUN/TAP или PPP.

Самой
серьезной задачей в данный момент является расшифровка протокола обмена
данными с устройством. Для этого предлагается использовать 2 подхода:

  • анализ логов взаимодействия официального Windows драйвера с SWC-U200, получаемых с помощью USB сниффера. Лучше всего логи потом выкладывать в общий доступ, чтобы каждый участник проекта мог потом воспользоваться этой информацией.
  • дизассемблирование Windows драйвера. Hint: нужный файл — C7xUSBX3.sys.
  • анализ прошивок

Update 1.
Краткая инструкция:
1. в первом терминале запустить драйвер:
sudo path/to/wimax
Драйвер
будет писать сообщения. Как только увидите State: NORMAL — это значит,
что модем подключился к сети. После этого можно делать шаг 3.
2. во втором терминале выполнить команды:
sudo ifconfig tap0 up
3.
sudo dhclient tap0
4. можно пользоваться инетом  🙂

В будущем все будет, конечно, гораздо проще 🙂

Update 2.
Сегодня
при тестировании обнаружил, что если после подключения некоторое время
нет траффика, соединение обрывается и почему-то не восстанавливается.
Помогает только перезапуск драйвера. Это, очевидно, баг, с ним будем
бороться. Пока же можно просто что-нибудь все время пинговать, чтобы
был траффик и соединение не обрывалось.

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34