У меня это Huawei e1550 от мегафона.
Первым делом необходимо отключить запрос ПИН-кода, и желательно разлочить модем (если планируется использовать не только с симками родного оператора)
В ядре необходимо включить:
Device drivers -> Network device support -> PPP (все пункты с PPP включить) или в конфиге:
CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_ASYNC=y
CONFIG_PPP_SYNC_TTY=y
CONFIG_PPP_DEFLATE=y
CONFIG_PPPOL2TP=y
Все это делалось в Debian'e, но думаю знающие люди могут это сделать в и других версиях линукс.
Вставляем модем в Mini и смотрим
#dmesg
Должно быть что то подобное:
usb 1-1: new full speed USB device using s3c2410-ohci and address 2
usb 1-1: New USB device found, idVendor=12d1, idProduct=1446
usb 1-1: New USB device strings: Mfr=2, Product=1, SerialNumber=0
usb 1-1: Product: HUAWEI Mobile
usb 1-1: Manufacturer: HUAWEI Technology
usb 1-1: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 2
usb-storage: waiting for device to settle before scanning
scsi1 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 2
usb-storage: waiting for device to settle before scanning
scsi 0:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
scsi 0:0:0:0: Attached scsi generic sg0 type 5
usb-storage: device scan complete
scsi 1:0:0:0: Direct-Access HUAWEI MMC Storage 2.31 PQ: 0 ANSI: 2
sd 1:0:0:0: Attached scsi generic sg1 type 0
sd 1:0:0:0: [sda] Attached SCSI removable disk
usb-storage: device scan complete
Если у Вас так - то Вам (как и мне) не очень повезло, модем определился как CD-ROM, MMC, но не как нужный нам USB-serial.
Если у Вас Huawei e160, e220, то Usb-serial будет сразу, и следущую часть статьи можно пропустить.
Включаем USB-serial..
необходимо чтобы в системе стояли пакеты (apt-get install):
bzip2, libusb-dev, make, file, udev (может еще что, позже поправлю)
Идем туда http://www.draisberghof.de/usb_modeswitch/ и качаем исходники программы usb_modeswitch http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-1.1.3.tar.bz2 так же качаем данные для программы http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20100707.tar.bz2
Скидываем это все на mini,
Или скачиваем прямо в мини, например в папку /home/ftp/:
#wget
#wget
#tar xvpf usb_modeswitch.tar.bz2
#tar xvpf usb-modeswitch-data.tar.bz2
#cd usb-modeswitch-1.1.3
#nano Makefile
Редактируем
CFLAGS += -Wall -l usb -I /usr/include/dev/usb
Сохраняем и выходим.
Компилируем
#make
Должен появится файл usb_modeswitch
#file usb_modeswitch
usb_modeswitch: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, not stripped
Далее устанавливаем:
#make install
Переходим, устанавливаем данные для программы
#cd ../usb-modeswitch-data-20100707
#make install
Теперь вытаскиваем 3G модем и вставляем его снова.
#dmesg
Должно быть так:
usb 1-1: new full speed USB device using s3c2410-ohci and address 3
usb 1-1: New USB device found, idVendor=12d1, idProduct=1003
usb 1-1: New USB device strings: Mfr=2, Product=1, SerialNumber=0
usb 1-1: Product: HUAWEI Mobile
usb 1-1: Manufacturer: HUAWEI Technology
usb 1-1: configuration #1 chosen from 1 choice
option 1-1:1.0: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
option 1-1:1.1: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
scsi4 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 3
usb-storage: waiting for device to settle before scanning
scsi5 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 3
usb-storage: waiting for device to settle before scanning
scsi 4:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
scsi 4:0:0:0: Attached scsi generic sg0 type 5
scsi 5:0:0:0: Direct-Access HUAWEI MMC Storage 2.31 PQ: 0 ANSI: 2
sd 5:0:0:0: Attached scsi generic sg1 type 0
usb-storage: device scan complete
sd 5:0:0:0: [sda] Attached SCSI removable disk
usb-storage: device scan complete
Кроме CD-ROM и MMC, появились устройства ttyUSB0 и ttyUSB1 (кстати почему их два, я понятия не имею)
Не знаю почему, но у меня автоматически не срабатывает переключение, поидее согласно установленных данных, udev должен сам запустить usb_modeswitch с необходимыми параметрами, у меня так не происходит, приходится ручками
#usb_modeswitch -v 12d1 -p 1446 -M 55534243123456780000000000000011060000000000000000000000000000
Параметры:
-v vendor устройства
-p product устройства
-M параметр посылки данных для переключения
первые два параметра я взял из строки dmesg:
usb 1-1: New USB device found, idVendor=12d1, idProduct=1446
а вот чтобы узнать последний:
- Код: Выделить всё
#cd /home/ftp/usb-modeswitch-data-20100707/usb_modeswitch.d
#ls
0421:060c 0af0:7011 0af0:d013 1266:1000 19d2:0053
0421:0610 0af0:7031 0af0:d031 12d1:1001 19d2:0083
0471:1210 0af0:7051 0af0:d033 12d1:1003 19d2:0101
0471:1237 0af0:7071 0af0:d035 12d1:101e 19d2:0103
0482:024d 0af0:7111 0af0:d055 12d1:1031 19d2:0115
04e8:f000 0af0:7211 0af0:d057 12d1:1414 19d2:1001
057c:84ff 0af0:7251 0af0:d058 12d1:1446 19d2:1007
05c6:1000:sVe=Option 0af0:7271 0af0:d155 12d1:14c1 19d2:1009
05c6:1000:uMa=AnyDATA 0af0:7301 0af0:d157 12d1:1520 19d2:2000
05c6:1000:uMa=SAMSUNG 0af0:7311 0af0:d255 12d1:1521 19d2:fff5
05c6:1000:uMa=Vertex 0af0:7361 0af0:d257 12d1:1523 19d2:fff6
05c6:2001 0af0:7381 0af0:d357 12d1:1557 1a8d:1000
05c6:f000 0af0:7401 0b3c:c700 1410:5010 1a8d:1000:uPr=5G
072f:100d 0af0:7501 0cf3:20ff 1410:5020 1ab7:5700
0930:0d46 0af0:7601 0fce:d0cf 1410:5030 1b7d:0700
0ace:2011 0af0:7701 0fce:d0e1 1410:5031 1bbb:f000
0ace:20ff 0af0:7801 0fce:d103 1410:5041 1c9e:1001
0af0:6711 0af0:7901 1004:1000 148f:2578 1c9e:9200
0af0:6731 0af0:8200 1004:607f 16d8:6803 1c9e:f000
0af0:6751 0af0:8201 1004:613a 16d8:6803:? 1dd6:1000
0af0:6771 0af0:8300 1004:613f 16d8:700a 1e0e:f000
0af0:6791 0af0:8302 1033:0035 16d8:f000 1ee8:0013
0af0:6811 0af0:8304 106c:3b03 198f:bccd 1f28:0021
0af0:6911 0af0:8400 106c:3b06 19d2:0003 1fac:0130
0af0:6951 0af0:c031 1076:7f40 19d2:0026
0af0:6971 0af0:c100 1199:0fff 19d2:0040
Выбираем ваш Vendor:Product
- Код: Выделить всё
#cat 12d1:1446
########################################################
# Huawei, newer modems
DefaultVendor= 0x12d1
DefaultProduct=0x1446
TargetVendor= 0x12d1
TargetProductList="1001,1406,140c,141b,14ac"
CheckSuccess=20
MessageContent="55534243123456780000000000000011060000000000000000000000000000"
Последняя строка - и есть что нам нужно.
Настройка PPP соединения (обладателям e160, e220 сюда)
#cd /home/ftp
#wget
#tar xf ppp-2.4.5.tar.gz
#cd ppp-2.4.5
#./configure
#make
#file pppd/pppd
pppd/pppd: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14
#cp pppd/pppd /usr/sbin/
#cp chat/chat /usr/sbin/
#mkdir /etc/ppp/
#cp scripts/ppp-on /etc/ppp/
#cp scripts/ppp-off /etc/ppp/
#cp scripts/ppp-on-dialer /etc/ppp/
Далее необходимо отредактировать скрипты под себя:
- Код: Выделить всё
#cd /etc/ppp/
#cat ppp-on
#!/bin/sh
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
#
route del default 2>/dev/null
exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyUSB0 9600 \
asyncmap 20A0000 escape FF kdebug 0 0.0.0.0:0.0.0.0 \
noauth noipdefault netmask 255.255.255.0 defaultroute connect $DIALER_S$
- Код: Выделить всё
# cat ppp-off
#!/bin/sh
######################################################################
#
# Determine the device to be terminated.
#
if [ "$1" = "" ]; then
DEVICE=ppp0
else
DEVICE=$1
fi
######################################################################
#
# If the ppp0 pid file is present then the program is running. Stop it.
if [ -r /var/run/$DEVICE.pid ]; then
kill -INT `cat /var/run/$DEVICE.pid`
#
# If the kill did not work then there is no process running for this
# pid. It may also mean that the lock file will be left. You may wish
# to delete the lock file at the same time.
if [ ! "$?" = "0" ]; then
rm -f /var/run/$DEVICE.pid
echo "ERROR: Removed stale pid file"
exit 1
fi
#
# Success. Let pppd clean up its own junk.
echo "PPP link to $DEVICE terminated."
exit 0
fi
#
# The ppp process is not running for ppp0
echo "ERROR: PPP link is not active on $DEVICE"
exit 1
- Код: Выделить всё
# cat ppp-on-dialer
#!/bin/sh
#
# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
#
exec chat -v \
TIMEOUT 5 \
ABORT 'BUSY' \
ABORT 'NO ANSWER' \
'' 'ATZ' \
'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0' \
'OK' 'AT+CGDCONT=1,"IP","internet"' \
'OK' 'ATDT*99#' \
CONNECT ''
В последнем скрипте необходимо прописать ваш ISP вместо "internet" а также ваш номер набора вместо *99# (*99***1# -может быть еще)
Запускаем..
#/etc/ppp/ppp-on
#ifconfig
Должен появится ppp0.
Все! у нас есть теперь 3G-интернет на mini
Для отключения
#/etc/ppp/ppp-off