PCMCIA megosztott IRQ (etch)

Fórumok

Hello!

Van egy Merlin U530 PCMCIA kártyám, a serial_cs driver hajtja, a lenny-s laptopomon egyből működött. Ezt szeretném beletenni egy asztali gépbe, PCI-PCMCIA átalakítóval.

lspci:

01:0a.0 CardBus bridge: Ricoh Co Ltd RL5c475 (rev 81)

a kártya tehát jó, elméletileg az átalakító is jó, meglátja a kártyát, és azt is, hogy a serial_cs kell neki:

# pccardctl ls
Socket 0 Bridge:        [yenta_cardbus]         (bus ID: 0000:01:0a.0)
Socket 0 Device 0:      [serial_cs]             (bus ID: 0.0)
Socket 0 Device 1:      [-- no driver --]       (bus ID: 0.1)

visztont, dmesg:

pccard: PCMCIA card inserted into slot 0
pcmcia: registering new device pcmcia0.0
pcmcia: registering new device pcmcia0.1
pcmcia: request for exclusive IRQ could not be fulfilled.
pcmcia: the driver needs updating to supported shared IRQ lines.

És ennek megfelelően nem is jön létre a /dev/ttySx device...

Hogyan tudok dedikált IRQ-t adni neki? Vagy hogyan tudom rávenni shared IRQ használatra?

(lenny-re frissítés nem jön szóba, ez egy szerver...)

Előre is köszönöm a válaszokat!

szerk: kimaradt, hátha segít valamit:

# cat /proc/interrupts
           CPU0
  0:     809917    IO-APIC-edge  timer
  1:        567    IO-APIC-edge  i8042
  7:          2    IO-APIC-edge  parport0
  8:          1    IO-APIC-edge  rtc
  9:          0   IO-APIC-level  acpi
 12:        113    IO-APIC-edge  i8042
 14:         78    IO-APIC-edge  ide0
 50:      11765   IO-APIC-level  uhci_hcd:usb4
 58:          0   IO-APIC-level  uhci_hcd:usb5
 66:      37834   IO-APIC-level  libata
 74:     370067         PCI-MSI  eth0
177:          4   IO-APIC-level  ehci_hcd:usb3, yenta
217:      18611   IO-APIC-level  ohci_hcd:usb1, libata
225:          2   IO-APIC-level  ehci_hcd:usb2
NMI:          0
LOC:     809811
ERR:          1
MIS:          0

Petya

Hozzászólások

Üdv!

# modinfo yenta_socket
filename:       /lib/modules/2.6.18-4-486/kernel/drivers/pcmcia/yenta_socket.ko
license:        GPL
vermagic:       2.6.18-4-486 mod_unload 486 REGPARM gcc-4.1
depends:        pcmcia_core,rsrc_nonstatic
alias:          pci:v0000104Cd0000AC13sv*sd*bc06sc07i00*
[stb...]
alias:          pci:v00001217d*sv*sd*bc06sc07i00*
alias:          pci:v*d*sv*sd*bc06sc07i00*
parm:           override_bios:yenta ignore bios resource allocation (uint)
parm:           pwr_irqs_off:Force IRQs off during power-on of slot. Use only when seeing IRQ storms! (bool)
parm:           isa_probe:If set ISA interrupts are probed (default). Set to N to disable probing (bool)
parm:           disable_clkrun:If PC card doesn't function properly, please try this option (bool)

USB 2.0 nem kell, ennek a letiltását is kipróbálom. A másik slotban is valamelyik USB-vel volt, nem emlékszem pontosan melyikkel.

Petya

Hello!

Kipróbáltam amit írtatok:

- integrált USB-t letiltottam, de ettől nem javult meg (ugyanúgy osztozik a yenta az USB-vel, tehát a PCI USB a bűnös)
- a kártyák felcserlésével sem változott semmi
- próbaképp kiszedtem az PCI USB-kártyát (így nem maradhat, mert nem megy az UPS monitorozás), csak a yenta volt a 177: sorában, de ugyanúgy semmi változás, ugyanaz a hibajelenség.
- BIOS-ból nem lehet állítani semmiféle IRQ-t.

Más ötlet?

szerk: megnéztem a laptopon is az IRQ-kat:

193:          1   IO-APIC-level  uhci_hcd:usb3, yenta

És itt mégis ment. Lehet, hogy a lenny-ben lévő modul már tudja shared IRQ-t?

Petya

Valakinek van újabb ötlete?

Petya

Én megnézném másik gépben mondjuk más oprendszerrel is, esetleg uezen a gépen a lenny-s kernellel.
Csak, h egyáltalán elindul-e a picimaci.

(Esetleg ezt a két modul paramétert is:

parm: override_bios:yenta ignore bios resource allocation (uint)
parm: pwr_irqs_off:Force IRQs off during power-on of slot. Use only when seeing IRQ storms! (bool))

Na és mit vár az override_bios-hoz? Az az uint típusú érték az IRQ? mert én a 3-as IRQ-ra szeretném tenni (azt használta az alaplapi soros port, amit letiltottam), de a sima

insmod /lib/modules/2.6.18-4-486/kernel/drivers/pcmcia/yenta_socket.ko override_bios=3

ugyanazt a hibát dobja, mint eddig.

Petya

Ismét felhoznám a témát.

szerk: áttúrtam, diff-eltem a gépen futó, és a legújabb (2.6.23.8) kernel modulok forrását(yenta_socket, serial_cs, rsrc_mgr, rsrc_nonstatic), de nem látok benne erre vonatkozó fejlesztést, így valószínűleg nem azért nem megy, mert régi a kernelem.

Petya

Hello!

Egy másik, használaton kívüli gépen is kipróbáltam:

- telepítettem friss etch-et, kártya berak, nem megy, a fenti hibaüzenettel
- backports-ból tettem 2.6.22.3-as kernelt, azzal sem
- dist-upgrade lenny-re, hibaüzenet marad, de rögtön utána a dmesg-ben látszik, hogy létrejön a /dev/ttySx device, és működik is rendesen

Ebben az esetben van a lenny-re frissítésen kívül bármilyen alternatívám?

Remélem, hogy van, mert pl: itt http://www.klabs.be/~fpiat/linux/debian/Novatel_Merlin_U530/ azt írják, "Works out of the box under Debian/Etch"

Petya

Kis kiegészítés, hátha segít:

# lshal
udi = '/org/freedesktop/Hal/devices/pcmcia__1__1_0'
  info.udi = '/org/freedesktop/Hal/devices/pcmcia__1__1_0'  (string)
  linux.subsystem = 'pcmcia'  (string)
  linux.hotplug_type = 1  (0x1)  (int)
  info.product = 'Merlin UMTS Modem'  (string)
  info.vendor = 'Novatel Wireless'  (string)
  pcmcia.func_id = 2  (0x2)  (int)
  pcmcia.card_id = 6831  (0x1aaf)  (int)
  pcmcia.manf_id = 164  (0xa4)  (int)
  pcmcia.prod_id3 = 'NRM6831'  (string)
  pcmcia.prod_id2 = 'Merlin UMTS Modem'  (string)
  pcmcia.prod_id1 = 'Novatel Wireless'  (string)
  pcmcia.socket_number = 0  (0x0)  (int)
  info.parent = '/org/freedesktop/Hal/devices/pci_1180_475'  (string)
  info.bus = 'pcmcia'  (string)
  linux.sysfs_path_device = '/sys/devices/pci0000:00/0000:00:04.0/0000:01:0a.0/0.1'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:04.0/0000:01:0a.0/0.1'  (string)

udi = '/org/freedesktop/Hal/devices/pcmcia__1__1'
  info.udi = '/org/freedesktop/Hal/devices/pcmcia__1__1'  (string)
  linux.subsystem = 'pcmcia'  (string)
  linux.hotplug_type = 1  (0x1)  (int)
  info.product = 'Merlin UMTS Modem'  (string)
  info.vendor = 'Novatel Wireless'  (string)
  pcmcia.func_id = 2  (0x2)  (int)
  pcmcia.card_id = 6831  (0x1aaf)  (int)
  pcmcia.manf_id = 164  (0xa4)  (int)
  pcmcia.prod_id3 = 'NRM6831'  (string)
  pcmcia.prod_id2 = 'Merlin UMTS Modem'  (string)
  pcmcia.prod_id1 = 'Novatel Wireless'  (string)
  pcmcia.socket_number = 0  (0x0)  (int)
  info.linux.driver = 'serial_cs'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_1180_475'  (string)
  info.bus = 'pcmcia'  (string)
  linux.sysfs_path_device = '/sys/devices/pci0000:00/0000:00:04.0/0000:01:0a.0/0.0'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:04.0/0000:01:0a.0/0.0'  (string)

Petya

A következőre jutottam:

Van olyan hogy /sys/bus/pcmcia/devices/0.0/tty:ttyS1 ami egy symlink a /sys/class/ttyS1-re, ott meg van egy device nevű symlink a /sys/devices/pci0000:00/0000:00:04.0/0000:01:0a.0/0.0-ra, ott pedig minden helyesnek látszik. Itt is szerepel a ttyS1.

A probléma már csak az, hogy minicommal nem érem el a /dev/ttyS1-et.

Petya