Друзья, тема конечно древняя, но все-же ее находят другие люди через поисковики, я поделюсь своим решением проблемы, так как искал его очень долго.
Мне нужно было подружить разные модемы с asus wl500gp2
Я давно пользуюсь прошивкой OpenWRT и мне она очень нравится.
С помощью usb_modeswich и usbserial я подключил свои модемы.
Но возникли 2 проблемы:
1. Проблема реконнекта - модем не закрывал порт и слал туда всякую фигню - помогает только рестарт или перевтык модема)
2. Скорость.
Первая проблема наконец решилась!
Итак, я написал скриптик, который следит за тем, чтобы был интернет.
в pppp конфиге я убрал любые повторы, реконнекты, типа maxfail 0, persist и т.п., поставил nodetach (обязательно)
Идея в том, чтобы выгружать usb-драйвер и заргружать его заново. Он сбрасывает модем и теперь у меня стабильный линк.
Скрипт примерно такой:
#/bin/sh
while(true); do
echo "Connecting"
pppd call operator
echo "Crap! Failed!"
rmmod usb-ohci
sleep 2
insmod usb-ohci
sleep 2
done
Все проще чем кажется. Если вы используете драйвера на usb2.0, то надо выгружать ehci-hcd.
А проблема скорости решается добавлением параметра maxSize в usbserial
insmod usbserial vendor=0x1111 product=0x2222 maxSize=2048
Надеюсь это кому-то пригодится.