# Модем "вешает" всю систему

## Tosic

Сижу намодемном инете, для подключения использовал KPPP, связь с callback'ом, но когда модем звонит провайдеру и должен ложить трубку для ожидания обратного звонка, он просто вешает всю систему и никакой реакции

Модем на чипе Lucent, поставил дрова ltmodem, при компиляции ppp, все нужные модули ядра включил.

[upd]

на материнка есть встроенная сетевуха, при  компиляции ядра указал поддержку сетевухи, но ее не настраивал. тоесть как я почитал в /etc/conf.d/net  при пустом этом файлике ( а так оно и есть) нужно чтобы был установлен DHCP-клиент, но мне это не нужно.

Что делать?

----------

## 046

т.е. только reset помогает?

Другие версии драйвера не пробовал?

----------

## Tosic

помогает только РЕСЕТ, на все другое нет реакции.

Раньше на этих драйверах все работало нормально, просто пришлось поменять материнку с чипсета VIA на nForce2, но после этого апгрейда систему вот переустановил полностью и .... вот имею

[upd]

Версия дров только одна-единственная, других в портеже нету

----------

## Laitr Keiows

У меня под столом лежит абсолютно никому не нужный Courier V.Everything... Но ты явно не в Москве...

----------

## Tosic

Спасибо большое.

Я из Киева  :Very Happy: 

Так устал с этим модемом, что я сделал не правильно уже даже нелогические методы не помогают.

Модем отвечает на команды, но вот по окончанию выполнения дозвона "вешает" систему, например, когда я делаю ATDP5945050, он набирает все как нужно, а по окончанию связи ... все Жми любимый ресет.

----------

## Tosic

[upd]

В винде прерывание 17, а под Линуксом 18 или 20

узнаю через setserial -g /dev/modem

----------

## f0rk

Покажи lsmod

----------

## Tosic

lsmod:

```
Module                  Size  Used by

snd_via82xx            24148  0 

snd_mpu401_uart         6848  1 snd_via82xx

snd_rawmidi            21984  1 snd_mpu401_uart

ltserial                9840  0 

ltmodem               556176  1 ltserial

fglrx                 378348  8 

snd_intel8x0           29532  4 

snd_ac97_codec         82272  2 snd_via82xx,snd_intel8x0

snd_ac97_bus            2176  1 snd_ac97_codec

snd_rtctimer            3148  0 

snd_seq                42576  0 

snd_seq_device          7564  2 snd_rawmidi,snd_seq

snd_pcm_oss            35808  0 

snd_pcm                70792  5 snd_via82xx,snd_intel8x0,snd_ac97_codec,snd_pcm_oss

snd_timer              19652  4 snd_rtctimer,snd_seq,snd_pcm

snd_page_alloc          9352  3 snd_via82xx,snd_intel8x0,snd_pcm

snd_mixer_oss          15616  1 snd_pcm_oss

snd                    45796  17 snd_via82xx,snd_mpu401_uart,snd_rawmidi,snd_intel8x0,snd_ac97_codec,snd_seq,snd_seq_device,snd_pcm_oss,snd_pcm,snd_timer,snd_mixer_oss

pppoe                  12160  0 

pppox                   3464  1 pppoe

ppp_synctty             8320  0 

arc4                    1856  0 

ppp_mppe                6404  0 

ppp_deflate             5696  0 

ppp_async               9920  0 

bsd_comp                5440  0 
```

lspci:

```
00:00.0 Host bridge: nVidia Corporation nForce2 AGP (different version?) (rev c1)

00:00.1 RAM memory: nVidia Corporation nForce2 Memory Controller 1 (rev c1)

00:00.2 RAM memory: nVidia Corporation nForce2 Memory Controller 4 (rev c1)

00:00.3 RAM memory: nVidia Corporation nForce2 Memory Controller 3 (rev c1)

00:00.4 RAM memory: nVidia Corporation nForce2 Memory Controller 2 (rev c1)

00:00.5 RAM memory: nVidia Corporation nForce2 Memory Controller 5 (rev c1)

00:01.0 ISA bridge: nVidia Corporation nForce2 ISA Bridge (rev a4)

00:01.1 SMBus: nVidia Corporation nForce2 SMBus (MCP) (rev a2)

00:02.0 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4)

00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4)

00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4)

00:04.0 Ethernet controller: nVidia Corporation nForce2 Ethernet Controller (rev a1)

00:06.0 Multimedia audio controller: nVidia Corporation nForce2 AC97 Audio Controler (MCP) (rev a1)

00:08.0 PCI bridge: nVidia Corporation nForce2 External PCI Bridge (rev a3)

00:09.0 IDE interface: nVidia Corporation nForce2 IDE (rev a2)

00:1e.0 PCI bridge: nVidia Corporation nForce2 AGP (rev c1)

01:09.0 Communication controller: Agere Systems LT WinModem (rev 02)

02:00.0 VGA compatible controller: ATI Technologies Inc RV350 AR [Radeon 9600]

02:00.1 Display controller: ATI Technologies Inc RV350 AR [Radeon 9600] (Secondary)
```

А еще одно (что выдает setserial --help:

CAUTION: Using an invalid port can lock up your machine

setserial -g /dev/modem

```
/dev/modem, UART: 16550A, Port: 0x9400, IRQ: 20
```

Какой раньше использовался порт, когда работал модем, я не знаю, а вот IRQ в Винде стоит 17 (вообще это существенно или нет???)

----------

## f0rk

У меня setserial (тоже ltmodem):

/dev/modem, UART: 16550A, Port: 0x4080, IRQ: 11

Так что думаю прерывания тут не причем...

А модуль ltserial у тебя в /etc/modules.autoload.d/kernel-2.6 первым стоит?

В /etc/sysctl.conf kernel.panic = 3 стоит?

Просто чтобы узнать kernel panic это или нет...

И еще, какое ядро?

Может имеет смысл попробовать с разными ядрами поиграться?

----------

## Tosic

 *Quote:*   

> А модуль ltserial у тебя в /etc/modules.autoload.d/kernel-2.6 первым стоит?

 

нет, последним я его дописал. А чт оэто имеет значение, все равно же он грузится

----------

## f0rk

Ну это просто к вопросу о прерываниях...

В таком случае модуль модема вроде должен получить более низкое прерывание.

----------

## Tosic

Ядро стояло версии 2.6.17-gentoo-r5, потом поставил 2.6.16, перекомпилил ltmodem,но все равно проблема осталась, такое впечатление, что это все из-за нового компилятора. Когда я ставил 2005.1 все четко поставилось, а тут такая беда уже такой облом дергать систему, но без интернета - это же полный идиотизм держать Генту

----------

## f0rk

А если попробовать gcc 3.x собрать ядро?

----------

## Tosic

вот и я думаю, что нужно 3-им собрать, еще одно, теперь, когда система виснет из-за модема через несколько секунд идет перезагрузка.

Это из-за  *Quote:*   

> В /etc/sysctl.conf kernel.panic = 3 стоит? 

 

Я раскоментировал эту строчку

Да, еще одно, спасибо, что помогаешь, а то у самого мысли даже закончились   :Very Happy:   :Rolling Eyes: 

----------

## f0rk

Да не за что!  :Wink: 

Значит это точно kernel panic. Следовательно нужно копать с сторону ядра.

Попробуй 3-им gcc откомпилить, ну и может еще 18-ое ядро глянь, может там что исправили...

----------

## Tosic

Ядро перекомпил, потом перекомпилил gcc3-им ltmodem и ppp, но результата пока не дало, мне кажется, что это проблема в конфиге ядра, но что может вляить там на такую работу.

Что можешь посоветовать?

Оставить "голое" ядро, тоесть только то что установлено по умолчанию + необходимые драйвера?

----------

## f0rk

А какое ядро было в 2005.1 ?

Конфиг от него остался?

И вообще да, собери только необходимое...

gcc собирал без экстримальных флагов типа -ffast-math?

----------

## Tosic

gcc собрал только с -fomit-frame=pointer -pipe (ничего экстремального)

ядро там было 2.6.15, но модем работал ранее и на 2.6.16, и на 2.6.17

А конфиг я удалил, стормозил, так как не думал, что будут такие траблы

----------

## f0rk

А в ядре Enable kernel irq balancing стоит?

Попробуй еще пускать ядро с параметром: pci=routeirq

Помню, у меня на одной машине были траблы с этим модемом в ядре 2.6 до тех пор пока я не поставил этот параметр.

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

----------

## Tosic

 *Quote:*   

> А в ядре Enable kernel irq balancing стоит?

 

Где его искать в какой секции (сам вроде не видел)?

 *Quote:*   

> Попробуй еще пускать ядро с параметром: pci=routeirq 

 

Как это сделать, я не знаю

----------

## f0rk

1.

Processor type and features -> Enable kernel irq balancing 

(правда у меня ядро 2.6.18-no2)

2.

ну если у тебя lilo, то подправь /etc/lilo.conf:

image=...

append="pci=routeirq"

...

----------

## Tosic

 *Quote:*   

> правда у меня ядро 2.6.18-no2

 

у меня помладше 2.6.17-r5

E меня Grub.

Проблема вырисовывается

Вот что я получил на Ctrl+Alt+F1, при наборе номера :

<0>kernel panic - not syncin: Fatal exeption in  interrupt

Как мне просмотреть таблицу прерывания и установить принудительно прерывание на модем или выходом будет перейти на 2.6.18?

----------

## f0rk

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

Единственное, знаю, что чем раньше подгрузится модуль, тем больше шанс, что он займет свое родное прерывание!  :Smile: 

У самого была похожая ситуация только с драйвером инфракрасного порта...

Кстати, вот попробуй еще кое что.

Если ты собираешь ядро menuconfig'ом, то поищи в .config строчки, похожие на:

CONFIG_SERIAL_8250=m

CONFIG_SERIAL_8250_ACPI=y

CONFIG_SERIAL_8250_NR_UARTS=4

CONFIG_SERIAL_8250_EXTENDED=y

CONFIG_SERIAL_8250_SHARE_IRQ=y

CONFIG_SERIAL_8250_MULTIPORT=y

CONFIG_SERIAL_CORE=m

Поставь все как здесь.

У меня была след. проблема.

Модуль инфракрасника тоже хотел более низкое прерывание, а система ему выделяла другое.

Собрав ядро с таким конфигом + вкомпилив модуль инфракрасника в ядро, я добился его работы.

Правда в твоем случае модуль модема в ядро не вкомпилишь, но вдруг это сработает...

И в kernel-2.6 поставь ltserial ПЕРВЫМ.

После этих "махинаций" прерывание модема должно поменяться.   :Idea: 

----------

## Jekpol

Переставь в другой слот модем. У меня такое было с тв-тюнером. Чего я только не делал, все решилось правильной установкой всех pci-карт по слотам (чтобы у каждого было свое IRQ)

----------

## Tosic

модем переставлял, но результата не последовало...

Вот что у меня показывает cat /proc/interrupts:

```
          CPU0       

  0:      15666    IO-APIC-edge  timer

  1:        132    IO-APIC-edge  i8042

  8:          2    IO-APIC-edge  rtc

  9:          0   IO-APIC-level  acpi

 12:       3904    IO-APIC-edge  i8042

 14:       5212    IO-APIC-edge  ide0

 15:         38    IO-APIC-edge  ide1

 16:      10140   IO-APIC-level  fglrx

 17:      13019   IO-APIC-level  eth0

 18:          0   IO-APIC-level  ehci_hcd:usb1

 19:          0   IO-APIC-level  ltserial

 20:        352   IO-APIC-level  NVidia nForce2

NMI:          0 

LOC:      15601 

ERR:          0

MIS:          0
```

Сетевуха встроенная, картина меняется, когда я отключаю ее в биосе (я удалил дрова на модем для наглядности) 

```
          CPU0       

  0:       9374    IO-APIC-edge  timer

  1:        105    IO-APIC-edge  i8042

  8:          2    IO-APIC-edge  rtc

  9:          0   IO-APIC-level  acpi

 12:        767    IO-APIC-edge  i8042

 14:       3911    IO-APIC-edge  ide0

 15:         37    IO-APIC-edge  ide1

 16:       5202   IO-APIC-level  fglrx

 17:          0   IO-APIC-level  ehci_hcd:usb1

 18:          0   IO-APIC-level  NVidia nForce2

NMI:          0 

LOC:       9282 

ERR:          0

MIS:          0

```

----------

## f0rk

Хм, у меня подругому:

1. (без ltserial)

```

           CPU0

  0:    4112344    XT-PIC-XT        timer

  1:       5784    XT-PIC-XT        i8042

  2:          0    XT-PIC-XT        cascade

  9:         26    XT-PIC-XT        acpi

 11:     965567    XT-PIC-XT        eth0, ESS Maestro, mach64@pci:0000:01:00.0

 12:     241064    XT-PIC-XT        i8042

 14:      91319    XT-PIC-XT        ide0

NMI:          0

LOC:          0

ERR:          0

MIS:          0

```

2. после modprobe ltserial:

```

           CPU0

  0:    4126610    XT-PIC-XT        timer

  1:       5834    XT-PIC-XT        i8042

  2:          0    XT-PIC-XT        cascade

  9:         26    XT-PIC-XT        acpi

 11:     969294    XT-PIC-XT        eth0, ESS Maestro, mach64@pci:0000:01:00.0, ltserial

 12:     241308    XT-PIC-XT        i8042

 14:      91592    XT-PIC-XT        ide0

NMI:          0

LOC:          0

ERR:          0

MIS:          0

```

UPDATE:

Может все-таки стоит попробовать 2.6.18-no2 + собрать ядро так, как я тебе сказал?  :Smile: 

----------

## Tosic

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

У меня на каждое прерывание свое устройство, у тебя же так как и должно быть на одно прерывание несколько устройств

----------

## Tosic

Проблема решена!!!!!!!!!!!!

Насколько я понимаю она была неправильном скомпиленном коде ядра, тоесть после того как я поубирал все дополнительные флаги оптимизайии и перекомпил свое ядро (2.6.16-r :Cool: , у меня все стало на свои места, прерывание на модем стало 17, как и под Виндой.

Другого ничего не могу придумать, это все что я сделал. Логика отсутствует   :Very Happy: 

Большое спасибо f0rk'у Благодаря ему я много для себя узнал нового. Спасибо еще раз   :Wink: 

----------

## f0rk

Тоже за рад за тебя!  :Wink: 

Всегда рад помочь.

----------

## tradakad

Привет всем!

сколько я не ковырялся с подобной проблемой

вот

http://gentoo.ru/node/6700

и вот

https://forums.gentoo.org/viewtopic-p-4032095-highlight-.html

ничего кроме http://linmodems.technion.ac.il/packages/ltmodem/kernel-2.6/martian/ не помогло  :Sad: 

----------

