LinuxForum.Fans
Тема

3G модем

Автор: amid88 80 сообщений 13566 просмотров
#287859

Пытаюсь подключить 3G модем через NM, но NM не установился, позже буду смотреть лог установки и попробую выложить здесь.
Наверное что то в ядре не так, при установке успел заметить, что то много сообщений, связаных с ядром, и на этом установка прервалась.

А может не собирается gnome-extra/nm-applet из за того,что в make.conf USE="-gnome", может локально прописать этот флаг для этого пакета?

#287926

Я для этого просто использую wvdial+скрипт запускаемый через udev
т.е. как только вставляешь модем в ноут, интернет запускается сам.
Ну а если тут дело в ядре, то тут бы хотелось узнать модель модема, ну и обычно тут нужен модуль, ehci_hcd и usb_serial и драйверы связанные с ним.
Устройство /dev/ttyUSB0 появилось?

#287928
"ormorph" написал:
Я для этого просто использую wvdial+скрипт запускаемый через udev
т.е. как только вставляешь модем в ноут, интернет запускается сам.
Ну а если тут дело в ядре, то тут бы хотелось узнать модель модема, ну и обычно тут нужен модуль, ehci_hcd и usb_serial и драйверы связанные с ним.
Устройство /dev/ttyUSB0 появилось?

Благодарю за подсказку,хотелось бы более подробно, так как я начинающий, GENTOO устанавливаю впервые.
На других системах всегда использовал NM, там все автоматом.
У меня два модема HUAWEI E 173 и NOVATEL U720, в SystemRescueCD через NM работают оба.
Я так понял, у вас нет NM?

#287929

Нет, у меня networkmanager не установлен, просто добавил автоматический запуск скрипта в udev который как только устройство модема подключается к компу, просто запускает скрипт, который запускает wvdial:
пример файл:
/etc/udev/rules.d/30-usb-modem.rules

text
# Put this file in /etc/udev/rules.d

SUBSYSTEM!="usb_device", ACTION!="add"

SYSFS{idVendor}=="xxxx", SYSFS{idProduct}=="yyyy", MODE="0777", RUN+="/lib/udev/usb-modem.sh"

где xxxx:yyyy адрес устройства модема(идентификатор), который виден командой lsusb

файл:
/lib/udev/usb-modem.sh

text
#!/bin/bash

sleep 20 && wvdial &

т.е. через 20 секунд как устройство модема подключено, запускается wvdial, задержка необходима чтобы модем успел найти сеть оператора.

#287930

Ну и мне как то NM не очень то по нраву, похоже он еще AT команды посылает на модем, у меня от этого падал принудительный 3G и переходило на EDJE, приходилось в ручную посылать AT команды на свой модем, для включения принудительного режима.

#287933

Можно показать вывод?
Сначала выполнить команду:

text
# tail -f /var/log/messages

затем подключить модем к компу, и показать какой получился вывод.

#287934
"ormorph" написал:
Устройство /dev/ttyUSB0 появилось?

сделал lsusb, как один так и второй модемы видны, модель модемов и стандарт связи.

куда смотреть дальше?


сейчас попробую, написал не прочитав ваше сообщения

#287940
"ormorph" написал:
# tail -f /var/log/messages

сделал, показать не могу, так как интернета нет, а пишу я с UBUNTU, в GENTOO в меня настроен сетевой DHCP интернет, которого дома нет.
Без модема пишет строчки, как я понял, проверяет сетевое подключения и выдает ошибку.
С модемом пише модель модема, какие то строчки с тестом и конфигурацией с драйверами, при отключении пишет дисконект и т. д., много строчек, я не знаю как без интернета их показать, переписывать рукой?

#287944
text
tail -f /var/log/messages > out.txt

вывод в файл, который можно перенести с компа на комп)

В выводе команды должна быть примерно такая строка
cdc_acm 2-3:1.1: ttyACM0: USB ACM device

ttyACM0 - это и есть модем,

потом ищем его в /dev

text
# ls /dev

или даже

text
# ls /dev | grep ttyACM
#287946
"amid88" написал:
как без интернета их показать, переписывать рукой?

а если мышкой скопировать в текстовый файл а потом скопировать на флэшку?
Как я понял запускается wvdial, ну а устройство ttyUSB0 в каталоге /dev/ создается?
Если нет, то если все драйвера на месте, не хватает пакета:

text
# emerge usb_modeswitch

там если в файле /lib/udev/rules.d/40-usb_modeswitch.rules ваше устройство присутствует, то этот пакет был необходим для появления ttyUSB в /dev

Для wvdial необходим еще файл /etc/wvdial.conf например для MTS такой:

Показать
[Dialer Defaults]

Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","internet.mts.ru"
Modem = /dev/ttyUSB2
Stupid Mode = 1
Force Address =
Idle Seconds = 0
Ask Password = 0
Modem Type = Analog Modem

Phone = "*99***1#"
ISDN = false
Auto Reconnect = true

Username = mts
Password = mts

Если используется для каждого модема свой оператор, то можно использовать для каждого модема свой конфиг:

text
wvdial --config=configfile
#287949

Без модема:

Nov 30 21:14:02 hpmini kernel: [ 692.229245] uhci_hcd 0000:00:1d.3: release dev 5 ep81-INT, period 8, phase 4, 93 us
Nov 30 21:14:02 hpmini kernel: [ 692.250112] hub 5-0:1.0: state 7 ports 2 chg 0000 evt 0004
Nov 30 21:14:02 hpmini kernel: [ 692.250136] uhci_hcd 0000:00:1d.3: port 2 portsc 008a,00
Nov 30 21:14:02 hpmini kernel: [ 692.250163] hub 5-0:1.0: port 2, status 0100, change 0003, 12 Mb/s
Nov 30 21:14:02 hpmini kernel: [ 692.250174] usb 5-2: USB disconnect, device number 5
Nov 30 21:14:02 hpmini kernel: [ 692.250182] usb 5-2: unregistering device
Nov 30 21:14:02 hpmini kernel: [ 692.250190] usb 5-2: unregistering interface 5-2:1.0
Nov 30 21:14:02 hpmini kernel: [ 692.258524] usb 5-2: usb_disable_device nuking all URBs
Nov 30 21:14:02 hpmini kernel: [ 692.362082] hub 5-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x100
Nov 30 21:14:03 hpmini kernel: [ 693.500096] usb usb5: suspend_rh (auto-stop)


С модемом:

Nov 30 21:09:14 hpmini kernel: [ 404.116461] usb 5-2: Product: Novatel Wireless CDMA
Nov 30 21:09:14 hpmini kernel: [ 404.116469] usb 5-2: Manufacturer: Novatel Wireless Inc.
Nov 30 21:09:14 hpmini kernel: [ 404.116720] usb 5-2: usb_probe_device
Nov 30 21:09:14 hpmini kernel: [ 404.116732] usb 5-2: configuration #1 chosen from 1 choice
Nov 30 21:09:14 hpmini kernel: [ 404.118484] usb 5-2: adding 5-2:1.0 (config #1, interface 0)
Nov 30 21:09:14 hpmini kernel: [ 404.121698] usb 5-2: adding 5-2:1.1 (config #1, interface 1)
Nov 30 21:09:14 hpmini kernel: [ 404.123650] drivers/usb/core/inode.c: creating file '004'
Nov 30 21:09:14 hpmini kernel: [ 404.123752] hub 1-0:1.0: state 7 ports 8 chg 0000 evt 0100
Nov 30 21:09:14 hpmini kernel: [ 404.123777] hub 5-0:1.0: state 7 ports 2 chg 0000 evt 0004
Nov 30 21:10:01 hpmini cron[2409]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons)

#287951

Судя по выводу нет драйвера в ядре:
например через make menuconfig, попробуйте привести к такому виду:

text
Device Drivers  ---> 
  [*] USB support  --->
        <M>   OHCI HCD support
        [*]     Generic OHCI driver for a platform device  
        [*]   Generic EHCI driver for a platform device
        <M>   UHCI HCD (most Intel and VIA) support 
        <M>   USB Modem (CDC ACM) support
        <*>   USB Mass Storage support
        <M>   USB Serial Converter support  --->
              [*]   USB Generic Serial Driver
               отмечаем все драйверы модулями <M>
#287952
"ormorph" написал:
а устройство ttyUSB0 в каталоге /dev/ создается?

нет, не создается

#287955
"amid88" написал:
нет, не создается

Это я уже и так понял по строчке:

text
Nov 30 21:09:14 hpmini kernel: [  404.123650] drivers/usb/core/inode.c: creating file '004'

По этому показал что нужно добавить в ядро и пересобрать:
Например, все драйверы в USB Serial Converter support ---> отметить модулями.

#287959

Понял, большое спасибо, буду пересобирать ядро, хотя я начинающий, но при сборке NM,мне показалось что проблема в ядре. К стати, сборка NM сорвалась на вот этом:

hpmini ut4nj # emerge -av net-dialup/ppp

* IMPORTANT: 6 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.


These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild N ] net-dialup/ppp-2.4.5-r1 USE="gtk ipv6 pam -activefilter -atm -dhcp -eap-tls -radius" 0 kB

Total: 1 package (1 new), Size of downloads: 0 kB

Would you like to merge these packages? [Yes/No] yes

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) net-dialup/ppp-2.4.5-r1
* ppp-2.4.5.tar.gz SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ]
* ppp-2.4.5-gentoo-20101127.tar.gz SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ]
* Determining the location of the kernel source code
* Found kernel source directory:
* /usr/src/linux
* Found kernel object directory:
* /lib/modules/3.0.17-gentoo-r2/build
* Found sources for kernel version:
* 3.0.17-gentoo-r2
>>> Unpacking source...
>>> Unpacking ppp-2.4.5.tar.gz to /var/tmp/portage/net-dialup/ppp-2.4.5-r1/work
>>> Unpacking ppp-2.4.5-gentoo-20101127.tar.gz to /var/tmp/portage/net-dialup/ppp-2.4.5-r1/work
>>> Source unpacked in /var/tmp/portage/net-dialup/ppp-2.4.5-r1/work
>>> Preparing source in /var/tmp/portage/net-dialup/ppp-2.4.5-r1/work/ppp-2.4.5 ...
* Applying make-vars.patch ... [ ok ]
* Applying mpls.patch ... [ ok ]
* Applying killaddr-smarter.patch ... [ ok ]
* Applying wait-children.patch ... [ ok ]
* Applying defaultgateway.patch ... [ ok ]
* Applying linkpidfile.patch ... [ ok ]
* Applying qa-fixes.patch ... [ ok ]
* Applying auth-fail.patch ... [ ok ]
* Applying defaultmetric.patch ... [ ok ]
* Applying dev-ppp.patch ... [ ok ]
* Applying gtk2.patch ... [ ok ]
* Applying passwordfd-read-early.patch ... [ ok ]
* Applying pppd-usepeerwins.patch ... [ ok ]
* Applying connect-errors.patch ... [ ok ]
* Applying Makefile.patch ... [ ok ]
* Applying pppol2tpv3-2.6.35.patch ... [ ok ]
* Applying pado-timeout.patch ... [ ok ]
* Applying lcp-echo-adaptive.patch ... [ ok ]
* Disabling active filter
* Enabling PAM
* Enabling IPv6
* Enabling CBCP
* Disabling radius
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/net-dialup/ppp-2.4.5-r1/work/ppp-2.4.5 ...
./configure --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib
Configuring for Linux
Creating Makefiles.
Makefile <= linux/Makefile.top
pppd/Makefile <= pppd/Makefile.linux
pppstats/Makefile <= pppstats/Makefile.linux
chat/Makefile <= chat/Makefile.linux
pppdump/Makefile <= pppdump/Makefile.linux
pppd/plugins/Makefile <= pppd/plugins/Makefile.linux
pppd/plugins/rp-pppoe/Makefile <= pppd/plugins/rp-pppoe/Makefile.linux
pppd/plugins/radius/Makefile <= pppd/plugins/radius/Makefile.linux
pppd/plugins/pppoatm/Makefile <= pppd/plugins/pppoatm/Makefile.linux
pppd/plugins/pppol2tp/Makefile <= pppd/plugins/pppol2tp/Makefile.linux
>>> Source configured.
>>> Compiling source in /var/tmp/portage/net-dialup/ppp-2.4.5-r1/work/ppp-2.4.5 ...
make -j2 'COPTS=-O2 -march=i686 -pipe -D_GNU_SOURCE'
cd chat; make - --jobserver-fds=3,4 -j all
make[1]: Вход в каталог `/var/tmp/portage/net-dialup/ppp-2.4.5-r1/work/ppp-2.4.5/chat'
i686-pc-linux-gnu-gcc -c -O2 -march=i686 -pipe -D_GNU_SOURCE -DTERMIOS -DSIGTYPE=void -UNO_SLEEP -DFNDELAY=O_NDELAY -o chat.o chat.c
chat.c: В функции ‘echo_stderr’:
chat.c:1367:7: предупреждение: ignoring return value of ‘write’, declared with attribute warn_unused_result
chat.c:1372:7: предупреждение: ignoring return value of ‘write’, declared with attribute warn_unused_result
chat.c: В функции ‘chat_send’:
chat.c:1045:7: предупреждение: ignoring return value of ‘write’, declared with attribute warn_unused_result
i686-pc-linux-gnu-gcc -Wl,-O1 -Wl,--as-needed -O2 -march=i686 -pipe -D_GNU_SOURCE -DTERMIOS -DSIGTYPE=void -UNO_SLEEP -DFNDELAY=O_NDELAY -o chat chat.o
make[1]: Выход из каталога `/var/tmp/portage/net-dialup/ppp-2.4.5-r1/work/ppp-2.4.5/chat'
cd pppd/plugins; make - --jobserver-fds=3,4 -j all
make[1]: Вход в каталог `/var/tmp/portage/net-dialup/ppp-2.4.5-r1/work/ppp-2.4.5/pppd/plugins'
i686-pc-linux-gnu-gcc -Wl,-O1 -Wl,--as-needed -shared -Wl,--allow-shlib-undefined -O2 -march=i686 -pipe -D_GNU_SOURCE -I.. -I../../include -fPIC -o minconn.so minconn.c
i686-pc-linux-gnu-gcc -Wl,-O1 -Wl,--as-needed -shared -Wl,--allow-shlib-undefined -O2 -march=i686 -pipe -D_GNU_SOURCE -I.. -I../../include -fPIC -o passprompt.so passprompt.c
i686-pc-linux-gnu-gcc -Wl,-O1 -Wl,--as-needed -shared -Wl,--allow-shlib-undefined -O2 -march=i686 -pipe -D_GNU_SOURCE -I.. -I../../include -fPIC -o passwordfd.so passwordfd.c
i686-pc-linux-gnu-gcc -Wl,-O1 -Wl,--as-needed -shared -Wl,--allow-shlib-undefined -O2 -march=i686 -pipe -D_GNU_SOURCE -I.. -I../../include -fPIC -o winbind.so winbind.c
for d in rp-pppoe pppoatm pppol2tp; do make -w --jobserver-fds=3,4 - --jobserver-fds=3,4 -j -C $d all || exit minconn.so passprompt.so passwordfd.so winbind.so; done
make[2]: Вход в каталог `/var/tmp/portage/net-dialup/ppp-2.4.5-r1/work/ppp-2.4.5/pppd/plugins/rp-pppoe'
i686-pc-linux-gnu-gcc -O2 -march=i686 -pipe -D_GNU_SOURCE -I../../../include '-DRP_VERSION="3.8p"' -I../../.. -c -o plugin.o -fPIC plugin.c
i686-pc-linux-gnu-gcc -O2 -march=i686 -pipe -D_GNU_SOURCE -I../../../include '-DRP_VERSION="3.8p"' -I../../.. -c -o discovery.o -fPIC discovery.c
In file included from plugin.c:53:0:
/usr/include/linux/if_pppox.h:84:26: ошибка: field ‘pppol2tp’ has incomplete type
/usr/include/linux/if_pppox.h:99:28: ошибка: field ‘pppol2tp’ has incomplete type
make[2]: *** [plugin.o] Ошибка 1
make[2]: *** Ожидание завершения заданий...
make[2]: Выход из каталога `/var/tmp/portage/net-dialup/ppp-2.4.5-r1/work/ppp-2.4.5/pppd/plugins/rp-pppoe'
/bin/sh: line 0: exit: minconn.so: требуется числовой аргумент
make[1]: *** [all] Ошибка 255
make[1]: Выход из каталога `/var/tmp/portage/net-dialup/ppp-2.4.5-r1/work/ppp-2.4.5/pppd/plugins'
make: *** [all] Ошибка 2
emake failed
* ERROR: net-dialup/ppp-2.4.5-r1 failed (compile phase):
* compile failed
*
* Call stack:
* ebuild.sh, line 93: Called src_compile
* environment, line 3199: Called die
* The specific snippet of code:
* emake COPTS="${CFLAGS} -D_GNU_SOURCE" || die "compile failed";
*
* If you need support, post the output of `emerge --info '=net-dialup/ppp-2.4.5-r1'`,
* the complete build log and the output of `emerge -pqv '=net-dialup/ppp-2.4.5-r1'`.
* The complete build log is located at '/var/tmp/portage/net-dialup/ppp-2.4.5-r1/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/net-dialup/ppp-2.4.5-r1/temp/environment'.
* Working directory: '/var/tmp/portage/net-dialup/ppp-2.4.5-r1/work/ppp-2.4.5'
* S: '/var/tmp/portage/net-dialup/ppp-2.4.5-r1/work/ppp-2.4.5'

>>> Failed to emerge net-dialup/ppp-2.4.5-r1, Log file:

>>> '/var/tmp/portage/net-dialup/ppp-2.4.5-r1/temp/build.log'

* Messages for package net-dialup/ppp-2.4.5-r1:

* ERROR: net-dialup/ppp-2.4.5-r1 failed (compile phase):
* compile failed
*
* Call stack:
* ebuild.sh, line 93: Called src_compile
* environment, line 3199: Called die
* The specific snippet of code:
* emake COPTS="${CFLAGS} -D_GNU_SOURCE" || die "compile failed";
*
* If you need support, post the output of `emerge --info '=net-dialup/ppp-2.4.5-r1'`,
* the complete build log and the output of `emerge -pqv '=net-dialup/ppp-2.4.5-r1'`.
* The complete build log is located at '/var/tmp/portage/net-dialup/ppp-2.4.5-r1/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/net-dialup/ppp-2.4.5-r1/temp/environment'.
* Working directory: '/var/tmp/portage/net-dialup/ppp-2.4.5-r1/work/ppp-2.4.5'
* S: '/var/tmp/portage/net-dialup/ppp-2.4.5-r1/work/ppp-2.4.5'
hpmini ut4nj #

#287962
text
# emerge --autounmask-write =net-dialup/ppp-2.4.5-r2
# dispatch-conf

жмем u
и пересобираем.

#287963

Благодарю, если можно, что это значит и почему так получилось?

#287966
"amid88" написал:
что это значит и почему так получилось?

Это значит что я сам уже успел так же попасть :[

#288027
"ormorph" написал:
# emerge --autounmask-write =net-dialup/ppp-2.4.5-r2 # dispatch-conf

так все таки, что это за команды, и почему их надо выполнить?

#288030
"amid88" написал:
так все таки, что это за команды, и почему их надо выполнить?

Эти команды позволяют размаскировать пакет net-dialup/ppp-2.4.5-r2, чтобы он стал доступным для сборки.
команда:

text
# emerge --autounmask-write

Создает файлик изменений которые нужно добавить.
команда:

text
# dispatch-conf

открывает в режиме просмотра этот файлик, и нажимая клавишу u, эти изменения добавляются в файл /etc/portage/package.keywords/, либо в какой либо из файлов находящихся в каталоге с аналогичным названием. Если же нажимаешь клавишу z, то этим вы отказываетесь от данных изменений.
Это примерное объяснение, реальное немного сложнее. Понять можно если вы изучали утилиту diff а так для общего понимания, хватит и такого объяснения.

Войдите или зарегистрируйтесь, чтобы ответить.