Данное описание составлено на основе инструкций asusforum.ru и справедливо для прошивок 1.9.2.7-9 и выше, но воспользоваться им вы можете только на свой страх и риск. Все нижеуказанные действия проводились на моделях WL500g Premium v.1, WL500g Premium v.2, WL500W с подключенным USB диском и флеш накопителем в различных комбинациях, но так же справедливы для остальных моделей, которые поддерживают работу с внешним диском или флешкой и настройку из командной строки. Так же запаситесь временем, чтобы никуда не спешить и случайно в запарке не испортить всю работу. Если есть непосредственное соединение с Интернетом, то настройка пройдет без проблем в виде скачивания необходимых пакетов альтернативными способами и переливки их в роутер. Если не имеете начальных знаний о Линуксе, то опять-же необходим либо Интернет для гугления, либо литература в печатном виде по Линуксовым командам.
Допущения:
Свежепрошитый роутер с прошивкой Олега, либо последователей.
Модем с оригинальной прошивкой, без удаления флагов.
1. Создаем нужные каталоги:
mkdir /tmp/ppp/peers
mkdir /tmp/local/sbin
2. Создаем нужные файлы:
vi /etc/usb_modeswitch.setup
CheckSuccess=2
# ZTE MF628+ (tested version from Telia / Sweden)
# ZTE MF626
#
# Contributor: Joakim Wennergren
DefaultVendor= 0x19d2
DefaultProduct= 0x2000
TargetVendor= 0x19d2
TargetProduct= 0x0031
MessageEndpoint=0x01
MessageContent="55534243123456782000000080000c85010101180101010101000000000000"
# if that command doesn't work, try the other ("eject")
MessageContent="5553424312345678000000000000061b000000030000000000000000000000"
vi /tmp/local/sbin/post-boot
#!/bin/sh
chmod 777 /tmp
usb_modeswitch
sleep 5
rmmod usbserial
sleep 5
s=0
DEVICE=2
insmod usbserial vendor=0x19d2 product=0x31 maxSize=4096
#insmod option
#while true; do /opt/sbin/madwimax -qof ; sleep 10; done )&
sleep 10
while true; do
if [ -e /dev/usb/tts/${DEVICE} ]; then
echo 'modem on'
/tmp/local/sbin/post-pppd start &
sleep 20
s=0
else
echo 'modem off'
fi
while [ -e /dev/usb/tts/${DEVICE} ]; do
if [ -n "`pidof pppd`" ]
then
sleep 30
else
break #end while
echo "pppd down"
fi
done
echo ':('
if [ $s = 0 ]; then
killall pppd
killall -SIGHUP pppd
killall /dev/usb/tts/*
killall chat
killall cat
s=1
else
sleep 30
fi
done
vi /tmp/local/sbin/post-pppd
#!/bin/sh
sleep 10
pppd call dialup
sleep 60
cat /dev/usb/tts/1 &
vi /tmp/ppp/peers/dialup
debug
/dev/usb/tts/2
921600
mtu 1472
mru 1400
crtscts
noipdefault
ipcp-accept-local
ipcp-accept-remote
lcp-echo-interval 180
lcp-echo-failure 3
mppc
maxfail 1
usepeerdns
defaultroute
noauth
persist
holdoff 10
user 'beeline'
password 'beeline'
connect "/usr/sbin/chat -s -S -V -t 60 -f /tmp/ppp/dialup.chat 2>/tmp/chat.log"
vi /tmp/ppp/dialup.chat
'' ''
'' 'ATZ'
'' 'AT+CFUN=1'
'' 'ATQ0 V1 E1 S0=0 &C1 &D0 +FCLASS=0'
'' 'AT+ZSNT=0,0,2'
'' 'AT+ZOPRT=5'
'' 'AT+ZSTART'
'' 'AT+CPBS="SM"'
'' 'AT+CPMS="SM","SM",""'
'' 'AT+CGDCONT=1,"IP","home.beeline.ru"'
'OK' 'ATD *99#'
'CONNECT' ''
Здесь:
Приоритет 3G:
AT+ZSNT=0,0,2
Приоритет GPRS/EDGE:
AT+ZSNT=0,0,1
3G only:
AT+ZSNT=2,0,0
GPRS/EDGE only:
AT+ZSNT=1,0,0
3. Сохраняем сделанное:
echo /tmp/ppp/peers/dialup > /tmp/local/.files
echo /tmp/ppp/dialup.chat >> /tmp/local/.files
echo /etc/usb_modeswitch.setup >> /tmp/local/.files
chmod +x /tmp/local/sbin/post-boot
chmod +x /tmp/local/sbin/post-pppd
flashfs save && flashfs commit && flashfs enable && reboot
UPD: С недавних пор файл конфигурации /etc/usb_modeswitch.conf переименовали в /etc/usb_modeswitch.setup, исправил в инструкции.