roboforum.ru

Технический форум по робототехнике.


Mini2440 подключаем 3G-Модем

Mini2440 подключаем 3G-Модем

Сообщение Palachzzz » 13 авг 2010, 10:41

3G модемы бывают разные.......
У меня это 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 http://www.draisberghof.de/usb_modeswit ... .3.tar.bz2 -O /home/ftp/usb_modeswitch.tar.bz2
#wget http://www.draisberghof.de/usb_modeswit ... 07.tar.bz2 -O /home/ftp/usb-modeswitch-data.tar.bz2
Распаковываем..
#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 ftp://ftp.samba.org/pub/ppp/ppp-2.4.5.tar.gz
#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
Palachzzz
 
Сообщения: 73
Зарегистрирован: 13 июн 2010, 13:34
Skype: Z_Z_Z-77
прог. языки: С++, Delphi
ФИО: Павел Новиков

Re: Mini2440 подключаем 3G-Модем

Сообщение zlad » 25 ноя 2010, 03:20

Приветствую.

Пробую повторить инструкцию - вроде как все ок и usb switch работает, но вот почему то не появляется ttyUSB. Можете пожалуйста подсказать в чем может быть проблема.

Ядро вроде пересобрал с правильными опциями.... вообщем что-то не так. Есть подозрения, что usbserial не работает, но ума не приложу как проверить.

Заранее спасибо.
zlad
 
Сообщения: 2
Зарегистрирован: 19 окт 2010, 01:27

Re: Mini2440 подключаем 3G-Модем

Сообщение Palachzzz » 17 дек 2010, 13:19

Здравствуйте, давно меня тут не было, но да лан, ща попробую вспомнить.
Чтобы появился ttyUSB должен работать udev.
Так же у меня автоматически не появлялся ttyUSB, для этого необходимо было запустить usb_modeswitch со строкой..
если у вас E1550
выполните
usb_modeswitch -v 12d1 -p 1446 -M 55534243123456780000000000000011060000000000000000000000000000
Palachzzz
 
Сообщения: 73
Зарегистрирован: 13 июн 2010, 13:34
Skype: Z_Z_Z-77
прог. языки: С++, Delphi
ФИО: Павел Новиков

Re: Mini2440 подключаем 3G-Модем

Сообщение zlad » 17 янв 2011, 01:12

почему то не получается(((
А могли бы вы пожалуйста выложить куда-нить образ системы с ядром (могу дать доступ на фтп какой-нить) - чтобы я мог скачать и раскать себе.. а то как то вообще тупик.... Вроде и usbswitch работает, но ttyUSB не появляется (

Заранее спасибо.
zlad
 
Сообщения: 2
Зарегистрирован: 19 окт 2010, 01:27

Re: Mini2440 подключаем 3G-Модем

Сообщение stepper88 » 27 дек 2011, 14:30

Здравствуйте!
Прошу прощения, что поднимаю старую тему, но столкнулся с этим только сейчас. Подключаю 3G модем к HawkBoard. Добился того, что модем виден, как три виртуальных последовательных порта ttyUSB0..ttyUSB2, поддержка протокола ррр полагаю, что включена (есть файл /dev/ppp). Скомпилировал pppd и chat, скопировал их в каталог /usr/sbin, также поманял тексты скриптов, как было указано у топикстартера только вместо строчки
Код: Выделить всёРазвернуть
 'OK'            'AT+CGDCONT=1,"IP","internet"' \

в скрипте ppp-on-dialer я прописал
Код: Выделить всёРазвернуть
'OK'            'AT+CGDCONT=1,"IP","internet.mts.ru"' \

(у меня МТС)
После комманды
#/etc/ppp/ppp-on
Linux ненадолго задумывается и после снова выдает приглашение ввода комманды. При этом устройства ppp0 не появляется.
В чем может быть причина? В модеме воткнута сим-карта МТС, сам модем Huawei E1550.
Заранее благодарен за помощь.
stepper88
 
Сообщения: 1
Зарегистрирован: 27 дек 2011, 14:16

Re: Mini2440 подключаем 3G-Модем

Сообщение boez » 29 дек 2011, 11:29

Ищи куда pppd пишет логи (часто это /var/log/messages или /var/log/daemon, или еще что-то в /var/log - просто после запуска прогляди там хвосты всех файлов) и читай их, сообщения pppd достаточно информативны.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++


Вернуться в mini2440

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6