Автор Гілка: допоможіть налаштувати софт-модем  (Прочитано 12609 раз)

Відсутній Yevgen

  • Графоман
  • ****
  • дописів: 278
  • Карма: +0/-0
Є в мене проблемка - не можу змусити працювати свій софт-модем у ноутбуці. Під віндою модем себе показує як "Conexant HSF AC97 with SmartCP", проте дрова від конексанта під лінуксом не працюють зовсім. Зате працюють драйвери іншого виробника модемів - smartlink. Система знаходить модем на віртуальному порті /dev/slamr0 (як я зрозумів, порт створюється окремою прогою, яка входить у склад драйвера і висить у пам`яті підтримуючи той порт). Модем опитується і навіть дзвонить, але не з`єднується - кожен раз видає помилку "no answer". В інструкції до модема сказано, що причиною такої лажі можуть бути неправильні налаштування порту та IRQ. У вінді воно знаходиться на порті COM3, IRQ 20; під лінуксом після встановлення драйвера - порт slamr0 (як вже писалось), IRQ 11.

Я не дуже в тих IRQ тямлю, тож підкажіть чим це можна виправити. На разі в мене лише ідея виправити оте IRQ під лінуксом, хоча наскільки віртуальний порт відповідає СОМ3 під віндою я не певен..

І ще знайшов у логах вінди таку штуку - модем кожного разу ініціалізується такими командами

AT&FE0V1S0=0&C1&D2+MR=2;+DR=1;+ER=1;W2
ATS7=60S30=0L1M1+ES=3,0,2;+DS=3;+IFC=2,2;X4

Спробував використати те саме під лінуксом, не сприймає, пише error. Можливо, якщо правильно задати ці команди ініціалізації, то все буде працювати..?

Буду вдячний за допомогу.

п.с. і ще таке питання стосовно модемів - оскільки я із цим своїм внутрішнім модемом вже трохи замахався, я б вже купив собі щось зовнішнє аби лише не мучитись. Проблема в тому, що в компа крім юсб нема інших портів. Чи бувають якісь юсб-модеми які нормально працюють з лінуксом?
« Змінено: 2006-01-09 22:28:31 від yevgen »

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Re: допоможіть налаштувати софт-модем
« Відповідей #1 : 2006-01-10 07:58:24 »
Ви не пробували зробити символічне посилання  ln -s /dev/ttySL0 /dev/modem для Kppp? А потім вказати Kppp на /dev/modem просто.
 
Схоже цей драйвер від smartlink емулює звичайний термінал PTY через slmodemd, тому ініціалізація модема повинна вібуватися нормально, тобто через ATDT. Kppp має, здається, опцію "queue modem" (тобто пробує, які ініціалізаційні команди модем розуміє) . Пограйтеся з різноманітними параметрами Kppp (тоновий / імпульсний набор, "hardware handshake" RTS/CTS (on) або DTR/DSR (off)).

Якщо Kppp не вдається налагодити, спробуйте wvdial (мені вона, власне більше подобалась). Вона також тестує ініціалізаційні ланцюжки, які модем розуміє. В інструкції від smartlink сказано, що потрібно також вказати 'Carrier Check = no' в /etc/wvdial.conf . Ви можете завантажити сирці або RPM (чи який у вас дистрибутив) на Віндовс, а потім підмонтувати розділ на Лінуксі, перенести і компілювати/інсталювати wvdial.


Для решти. Про що саме йдеться:

http://www.smlink.com/content.aspx?id=132

http://www.michaelminn.com/linux/notebooks/toshiba1905.html#section6

http://www.linuxant.com/drivers/modemident.php#listmodem  (цікавий скрипт для тестування модемів "Conexant List Modem Tool", але сам драйвер не підходить, здається)

P.S.
Небажаний у Лінуксі "Carrier Check", схоже вказується як ланцюжок &C1
( http://www.usastores.com/gibson/infozine%5Cbgg0596.htm )
Google: modem init strings
« Змінено: 2006-01-10 08:16:53 від tech »

Відсутній Yevgen

  • Графоман
  • ****
  • дописів: 278
  • Карма: +0/-0
Re: допоможіть налаштувати софт-модем
« Відповідей #2 : 2006-01-11 00:16:46 »
дуже дякую за допомогу! потроху почало прояснюватись, хоча до інтернету з лінукса поки що не дійшов..

отож, поділюсь результатами своїх дослідів

1. Символічне посилання на /dev/modem робив, різниці (принаймні у kppp) жодної. тобто - модем ініціалізується і робить вигляд що телефонує, але не з`єднується - із результатом no answer кожного разу. Різні налаштування у kppp теж нічого не дали.

2. Спробував wvdial. Отримав таке:

[root@localhost yevgen]# wvdialconf /etc/wvdial.conf
Scanning your serial ports for a modem.

Port Scan<*1>: S0
ttyS1<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS1<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyS1<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Port Scan<*1>: S2   S3   S4   S5   S6   S7
ttySL0<*1>: ATQ0 V1 E1 -- OK
ttySL0<*1>: ATQ0 V1 E1 Z -- OK
ttySL0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttySL0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttySL0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttySL0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttySL0<*1>: Modem Identifier: ATI -- SmartLink Soft Modem
ttySL0<*1>: Speed 4800: AT -- OK
ttySL0<*1>: Speed 9600: AT -- OK
ttySL0<*1>: Speed 19200: AT -- OK
ttySL0<*1>: Speed 38400: AT -- OK
ttySL0<*1>: Speed 57600: AT -- OK
ttySL0<*1>: Speed 115200: AT -- OK
ttySL0<*1>: Speed 230400: AT -- OK
ttySL0<*1>: Speed 460800: AT -- OK
ttySL0<*1>: Max speed is 460800; that should be safe.
ttySL0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK

Found a modem on /dev/ttySL0.
Modem configuration written to /etc/wvdial.conf.
ttySL0<Info>: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"

І ось такий конфіґ зробив сам wvdial:

Dialer Defaults]
Modem = /dev/ttySL0
Baud = 460800
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = Analog Modem
Phone = ATDP4900490
Username = xxx
Password = xxx

Якщо дзвонити так як є, пише no carrier. Коли додав Carrier Check = no та прибрав з рядка ініціалізації &C1, пише 'no dialtone'.

Після цих експериментів я все більше думаю, що неправильні саме установки заліза. В інструкції що додається до ноутбука сказано, що якщо модем нібито дзвонить, але потім не може з`єднатись, а до того не відторює звук (саме так в мене поводиться kppp) - проблема з неправильними налаштуваннями IRQ та портів. Знову ж таки, я не дуже знавець залізяччя, але порівняв налаштування у лінуксі та вінді:

ЛІнукс (#lspci -vv)

00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 04) (prog-if 00 [Generic])
        Subsystem: Acer Incorporated [ALI]: Unknown device 0066
        Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 0
        Interrupt: pin B routed to IRQ 11
        Region 0: I/O ports at 2400
        Region 1: I/O ports at 2000
        Capabilities: [50] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

вінда
діапазони вводу-виводу 2400-24FF; 2000-207F
IRQ 20

у тому прикладі про лінукс на тошибі (http://www.michaelminn.com/linux/notebooks/toshiba1905.html#section6 ) шо ви пишете, і IRQ і порти вводу-виводу повністю збігаються під віндою і лінуксом. У мене ж порти схоже співпадають, а IRQ - ні. Яким чином можна це полагодити, одночасно впевнившись що не поламається щось інше?

дякую заздалегідь за допомогу, особливо якщо хтось дочитав аж до кінця :)

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Re: допоможіть налаштувати софт-модем
« Відповідей #3 : 2006-01-11 01:53:43 »
Спробуйте залишити &C1, тобто нехай обидва будуть присутні, Carrier Check = no  і  &C1.
Встановіть Baud = 115200 у wvdial.conf (це стандартна швидкість).
Впевніться, що модуль slamr завантажено (lsmod) , так само, напевне, ppp_generic.
Запустіть /usr/sbin/slmodemd /dev/slamr0   (там в інструкції також сказано, що можна компілювати під різні країни. Не знаю, як це впливає на роботу модема.)

Перед запуском wvdial, у іншому вікні, як root виконайте

tail -f /var/log/messages

щоб побачити, що відбувається насправді.

Якщо навіть не пікне, спробуєм міняти IRQ  (команда setserial). Я колись міняв, система зависала сейозно :)
« Змінено: 2006-01-11 03:45:41 від tech »

Відсутній Yevgen

  • Графоман
  • ****
  • дописів: 278
  • Карма: +0/-0
Re: допоможіть налаштувати софт-модем
« Відповідей #4 : 2006-01-11 20:38:56 »
спробував, поки не запрацювало.

по порядку:

lsmod показує, що модуль slamr присутній. pppd_generic немає, modprobe pppd_generic (або просто pppd) каже що такого модуля не існує. я до речі думав, що pppd запускається за запитом, а про модуль pppd ніколи не чув.. - проте можливо граблі десь тут..

стосовно адаптації до країни - slmodemd можна запустити з опцією країни, перезбирати не треба. України в списку там звісно немає. З наявних пробував Литву, Польщу, Росію - результат однаковий.

Спробував поправити конфіґ wvdial так як ви кажете, тобто залишив і &C1 i Carrier Check = no. В результаті пише no dialtone, як і раніше. tail -f /var/log/messages  під час роботи wvdіal жодної активності не показує. На всяк випадок ось весь результат його роботи:

[root@localhost yevgen]# tail -f /var/log/messages
Jan 11 20:11:23 localhost dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 9
Jan 11 20:11:32 localhost dhclient: No DHCPOFFERS received.
Jan 11 20:11:32 localhost ifplugd(eth0)[2220]: client: Determining IP information for eth0... failed.
Jan 11 20:11:32 localhost ifplugd(eth0)[2220]: Program execution failed, return value is 1.
Jan 11 20:11:32 localhost ifplugd(eth0)[2220]: Exiting.
Jan 11 20:11:33 localhost dhclient: No DHCPOFFERS received.
Jan 11 20:11:33 localhost ifplugd(eth1)[2288]: client: Determining IP information for eth1... failed.
Jan 11 20:11:33 localhost ifplugd(eth1)[2288]: Program execution failed, return value is 1.
Jan 11 20:11:33 localhost ifplugd(eth1)[2288]: Exiting.
Jan 11 20:13:38 localhost su(pam_unix)[3909]: session opened for user root by yevgen(uid=500)

отакоє от..

буду вдячний якщо запропонуєте ще якийсь розв`язок проблеми.
« Змінено: 2006-01-11 21:05:17 від yevgen »

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Re: допоможіть налаштувати софт-модем
« Відповідей #5 : 2006-01-12 13:40:11 »
ppp а не pppd . ppp* модулі повинні знаходитись у ls /lib/modules/версія_ядра/kernel/drivers/net

ls ls /lib/modules/2.*.*/kernel/drivers/net | grep ppp

(pppd - це демон, програма)

Відсутній Yevgen

  • Графоман
  • ****
  • дописів: 278
  • Карма: +0/-0
Re: допоможіть налаштувати софт-модем
« Відповідей #6 : 2006-01-12 23:16:41 »
перепрошую, це я щось гальмую. знайшов модуль ppp_generic там де ви пишете, він нормально завантажується (проте незрозуміло чому не вантажиться за замовчанням). Потім перевіряв tail -f, модуль присутній. Проте результату на жаль ніякого. wvdial так само дає помилку no dialtone, і у /var/log/messages під час його роботи нічого не з`являється..

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Re: допоможіть налаштувати софт-модем
« Відповідей #7 : 2006-01-13 04:53:15 »
Подивіться, чи немає у вас файлу /etc/pcmcia/config.opts.  Впевніться, що там _не_ прописано "exclude irq 20", а якщо так, то закоментуйте (# спереду). Спробуйте там додати рядок

exclude irq 11

це повинно після завантаження поміняти IRQ картки на наступний вільний переривач. Перевірте який.
Можете спробувати долучитись до Інтернету. Якщо та сама історія, добавте як "exclude" номер поточного IRQ.  
І так до посиніння, доки не доберетесь до останнього  (їх 24 у Інтелів).

Так, здається.

(setserial не працює з PCMCIA пристроями. Ходив гуглив спеціально)

Відсутній Yevgen

  • Графоман
  • ****
  • дописів: 278
  • Карма: +0/-0
Re: допоможіть налаштувати софт-модем
« Відповідей #8 : 2006-01-13 13:29:10 »
ще раз дуже дякую за допомогу. спробую зробити так як ви пишете. єдине уточнення - модем той не PCMCIA, це внутрішній PCI (якщо я правильно розумію).

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Re: допоможіть налаштувати софт-модем
« Відповідей #9 : 2006-01-13 21:49:04 »
Я вас лише заплутаю. :) Лаптопи справді відрізняються від PC. Схоже ваша правда, крім PCMCIA і CardBus шин, є ще miniPCI.
На днях купив собі стренького Dell, копаюсь в ньому (модем теж не працює і немає надії, що буде колись).

Можете ще глянути сюди:
http://www.tldp.org/LDP/Mobile-Guide/html/index.html
(але не знайшов там, як поміняти IRQ модема, покищо)
« Змінено: 2006-01-13 21:50:43 від tech »

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Re: допоможіть налаштувати софт-модем
« Відповідей #10 : 2006-01-15 00:26:40 »
А setserial виглядає наступним чином:

/sbin/setserial /dev/slamr0
/sbin/setserial /dev/slamr0 auto_irq skip_test autoconfig
/sbin/setserial /dev/slamr0  irq 20 uart 16550A  skip_test

Ви можете знайти це тут:
http://www.tldp.org/HOWTO/Modem-HOWTO-10.html

Відсутній Yevgen

  • Графоман
  • ****
  • дописів: 278
  • Карма: +0/-0
Re: допоможіть налаштувати софт-модем
« Відповідей #11 : 2006-01-16 16:06:54 »
setserial чомусь не працює - відповідає device or resource is busy..
в чому може бути причина?

Відсутній Yevgen

  • Графоман
  • ****
  • дописів: 278
  • Карма: +0/-0
Re: допоможіть налаштувати софт-модем
« Відповідей #12 : 2006-01-19 22:22:20 »
можливо тупе запитання, проте може хтось підкаже -

я маю зовнішній модем, який цілком нормально працює. проте він під`єднується до компа через RS232. В лаптопі в мене є лише юсб. Чи є можливість (через якийсь адаптер можливо) під`єднати модем до юсб?

Відсутній tech

  • Письменник
  • *****
  • дописів: 586
  • Карма: +1/-0
  • Гигик
Re: допоможіть налаштувати софт-модем
« Відповідей #13 : 2006-01-25 04:18:41 »
Вам теба пошукати serial-to-usb або usb-to-serial на Google. Є такі адаптери.

Відсутній Yevgen

  • Графоман
  • ****
  • дописів: 278
  • Карма: +0/-0
Re: допоможіть налаштувати софт-модем
« Відповідей #14 : 2006-02-02 12:41:35 »
може ще комусь буде цікаво - таки змусив свій модем працювати. Підійшли дрова з linuxant.com, хоча напружує те, що для роботи модема на повну швидкість ті лінуксанти хочуть двадцять баксів. ось тут обговорюється варіант вирішення проблеми:

http://forum.oszone.net/showthread.php?t=36510&page=12&pp=10

хоча й неприємно всіляки кейгени в лінуксі використовувати