[Comm] PCMCI_NIC_Xircom
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Сб Мар 8 11:58:16 MSK 2008
On Sat, Mar 08, 2008 at 01:35:54AM +0200, andriy wrote:
> но сеть работает только в момент
> проигрывания звука (или с помощью mpg123 или
> amarok'ом значения не имеет).
Похоже, этим устройствам по каким-то причинам было назначено одно и то
же прерывание, но при этом прерывания от сетевой карты не приходят;
при проигрывании звука по прерываниям от звуковой карты вызываются оба
обработчика, и сеть тоже начинает как-то работать.
> Yenta: CardBus bridge found at 0000:00:03.0 [1028:00bb]
> Yenta: Using CSCINT to route CSC interrupts to PCI
> Yenta: Routing CardBus interrupts to PCI
> Yenta TI: socket 0000:00:03.0, mfunc 0x01261222, devctl 0x66
> Yenta: ISA IRQ mask 0x04b8, PCI irq 11
> Socket status: 30000010
> Yenta: CardBus bridge found at 0000:00:03.1 [1028:00bb]
> Yenta: Using CSCINT to route CSC interrupts to PCI
> Yenta: Routing CardBus interrupts to PCI
> Yenta TI: socket 0000:00:03.1, mfunc 0x01261222, devctl 0x66
> Linux agpgart interface v0.102 (c) Dave Jones
> input: PC Speaker as /class/input/input1
> Yenta: ISA IRQ mask 0x04b8, PCI irq 11
> Socket status: 30000006
По ISA IRQ mask для ISA-подобных устройств (старых PCMCIA, как эта
карта Xircom) доступны прерывания 3, 4, 5, 7, 10 (хотя при этом IRQ 3
и 4 уже заняты встроенными последовательными портами, а 7 -
параллельным).
> ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 5
> PCI: setting IRQ 5 as level-triggered
> ACPI: PCI Interrupt 0000:00:08.0[A] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5
Для звуковой карты было назначено IRQ 5 (причём потребовалось
переключить его режим на PCI-совместимый).
> eth0: Xircom: port 0x300, irq 5, hwaddr 00:10:A4:A1:E2:45
Потом это же прерывание было выбрано для сетевой карты..
> 0.1: ttyS3 at I/O 0x2e8 (irq = 5) is a 16550A
...и оно же для ещё одного последовательного порта (это что, модем на
той же карте Xircom?).
Стоит проверить, нет ли для этой машины обновлений BIOS - возможно, в
новых версиях исправлено что-то в IRQ routing (впрочем, иногда
оказывается, что новые версии как раз сломаны). Также можно
попробовать следующие варианты:
1. Загрузить систему с параметром:
acpi_irq_isa=5
В этом случае ACPI не будет назначать IRQ 5 для PCI-устройств -
возможно, после этого прерывания от PCMCIA будут приходить
нормально. Возможно, стоит сделать даже acpi_irq_isa=5,10 (на
случай, если какому-то другому устройству понадобится IRQ 10).
2. Если первый способ не помогает, можно ещё попробовать какие-то
опции из стандартного набора для борьбы с кривыми BIOS:
pci=noacpi
acpi=noirq
3. Можно пойти другим путём - запретить PCMCIA использовать IRQ 5; для
этого нужно найти в sysfs файлы
/sys/class/pcmcia_socket/*/card_irq_mask
и записать туда 0x0498 вместо 0x04b8. Восстановить первоначальное
значение записью в этот файл не удастся (биты можно только
сбрасывать); для восстановления настроек придётся перезагрузить
модуль yenta_socket. Менять настройки нужно перед вставкой карты
(сама по себе запись в этот файл не приводит к переназначению
ресурсов, а только влияет на выделение IRQ при подключении нового
устройства).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: Digital signature
Url : <http://lists.altlinux.org/pipermail/community/attachments/20080308/cdfa578d/attachment-0002.bin>
Подробная информация о списке рассылки community