Interrupt-Problem

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
hennes@debian
Beiträge: 465
Registriert: 18.01.2005 02:11:40
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Schweiz - Kanton St. Gallen
Kontaktdaten:

Interrupt-Problem

Beitrag von hennes@debian » 08.04.2005 11:38:56

Hallo!

Ich Installierte gestern Bootsplash. Da ich schon dabei war, dachte ich, ich nehme gleich einen Kernel von kernel.org (V2.6.11) Nun das Problem:
Wenn ich Sound abspiele (ein echo "e" > /dev/dsp genügt) dreht mir interrupt 10 durch und danach interrupt 18 worauf ich den PC nur noch mit ctrl-alt-del neustarten kann. Sonst reagiert nichts mehr... USB und Netzwerk ist tot, da ihre interrups deaktiviert wurden. Die Tastatur funktioniert noch, aber wenn ich mit ctrl-alt-f1 auf die Konsole umschalten will, reagiert die Tastatur auch nicht mer, und es bleibt nur noch der Reset-Knopf...

Danach versuchte ich noch den neusten Kernel 2.6.11.6 wobei zuerst kein Problem auftrat. Heute Morgen aber war der PC wider unansprechbar. Hier der Auszug aus dem syslog:

Code: Alles auswählen

Apr  8 02:01:07 localhost kernel: PCI: Using ACPI for IRQ routing
Apr  8 02:01:07 localhost kernel: ** PCI interrupts are no longer routed automatically.  If this
Apr  8 02:01:07 localhost kernel: ** causes a device to stop working, it is probably because the
Apr  8 02:01:07 localhost kernel: ** driver failed to call pci_enable_device().  As a temporary
Apr  8 02:01:07 localhost kernel: ** workaround, the "pci=routeirq" argument restores the old
Apr  8 02:01:07 localhost kernel: ** behavior.  If this argument makes the device work again,
Apr  8 02:01:07 localhost kernel: ** please email the output of "lspci" to bjorn.helgaas@hp.com
Apr  8 02:01:07 localhost kernel: ** so I can fix the driver.
...
Apr  8 02:01:07 localhost kernel: eepro100.c:v1.09j-t 9/29/99 Donald Becker http://www.scyld.com/network/eepro100.html
Apr  8 02:01:07 localhost kernel: eepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin <saw@saw.sw.com.sg> and others
Apr  8 02:01:07 localhost kernel: ACPI: PCI interrupt 0000:00:0f.0[A] -> GSI 18 (level, low) -> IRQ 18
Apr  8 02:01:07 localhost kernel: eth0: 0000:00:0f.0, 00:08:9B:09:A9:4B, IRQ 18.
Apr  8 02:01:07 localhost kernel:   Board assembly 729757-006, Physical connectors present: RJ45
Apr  8 02:01:07 localhost kernel:   Primary interface chip i82555 PHY #1.
Apr  8 02:01:07 localhost kernel:   General self-test: passed.
Apr  8 02:01:07 localhost kernel:   Serial sub-system self-test: passed.
Apr  8 02:01:07 localhost kernel:   Internal registers self-test: passed.
Apr  8 02:01:07 localhost kernel:   ROM checksum self-test: passed (0x04f4518b).
Apr  8 02:01:07 localhost kernel: ACPI: PCI interrupt 0000:00:10.0[A] -> GSI 17 (level, low) -> IRQ 17
Apr  8 02:01:07 localhost kernel: eth1: 0000:00:10.0, 00:08:9B:09:A9:4C, IRQ 17.
Apr  8 02:01:07 localhost kernel:   Board assembly 729757-006, Physical connectors present: RJ45
Apr  8 02:01:07 localhost kernel:   Primary interface chip i82555 PHY #1.
Apr  8 02:01:07 localhost kernel:   General self-test: passed.
Apr  8 02:01:07 localhost kernel:   Serial sub-system self-test: passed.
Apr  8 02:01:07 localhost kernel:   Internal registers self-test: passed.
Apr  8 02:01:07 localhost kernel:   ROM checksum self-test: passed (0x04f4518b).
...
Apr  8 02:01:07 localhost kernel: ALSA device list:
Apr  8 02:01:07 localhost kernel:   #0: VIA 82C686A/B rev50 with ALC200/200P at 0xb800, irq 10
...
Apr  8 04:47:48 localhost kernel: irq 10: nobody cared!
Apr  8 04:47:48 localhost kernel:  [<c013783a>] __report_bad_irq+0x2a/0xa0
Apr  8 04:47:48 localhost kernel:  [<c01371a0>] handle_IRQ_event+0x30/0x70
Apr  8 04:47:48 localhost kernel:  [<c0137940>] note_interrupt+0x70/0xb0
Apr  8 04:47:48 localhost kernel:  [<c0137313>] __do_IRQ+0x133/0x140
Apr  8 04:47:48 localhost kernel:  [<c0104cf9>] do_IRQ+0x19/0x30
Apr  8 04:47:48 localhost kernel:  [<c010322e>] common_interrupt+0x1a/0x20
Apr  8 04:47:48 localhost kernel:  [<c01006d3>] default_idle+0x23/0x30
Apr  8 04:47:48 localhost kernel:  [<c010077f>] cpu_idle+0x5f/0x70
Apr  8 04:47:48 localhost kernel:  [<c04ee99d>] start_kernel+0x17d/0x1c0
Apr  8 04:47:48 localhost kernel:  [<c04ee390>] unknown_bootoption+0x0/0x1e0
Apr  8 04:47:48 localhost kernel: handlers:
Apr  8 04:47:48 localhost kernel: [<c0347170>] (snd_via82xx_interrupt+0x0/0xd0)
Apr  8 04:47:48 localhost kernel: Disabling IRQ #10
...
Apr  8 06:08:09 localhost kernel: irq 18: nobody cared!
Apr  8 06:08:09 localhost kernel:  [<c013783a>] __report_bad_irq+0x2a/0xa0
Apr  8 06:08:09 localhost kernel:  [<c01371a0>] handle_IRQ_event+0x30/0x70
Apr  8 06:08:09 localhost kernel:  [<c0137940>] note_interrupt+0x70/0xb0
Apr  8 06:08:09 localhost kernel:  [<c0137313>] __do_IRQ+0x133/0x140
Apr  8 06:08:09 localhost kernel:  [<c0104cf9>] do_IRQ+0x19/0x30
Apr  8 06:08:09 localhost kernel:  [<c010322e>] common_interrupt+0x1a/0x20
Apr  8 06:08:09 localhost kernel: handlers:
Apr  8 06:08:09 localhost kernel: [<c02e44d0>] (usb_hcd_irq+0x0/0x70)
Apr  8 06:08:09 localhost kernel: [<c02b6e70>] (speedo_interrupt+0x0/0x230)
Apr  8 06:08:09 localhost kernel: Disabling IRQ #18
...
Apr  8 06:08:40 localhost kernel: NETDEV WATCHDOG: eth0: transmit timed out
Die Interrupts:

Code: Alles auswählen

           CPU0       CPU1       
  0:     120184     129949    IO-APIC-edge  timer
  1:        113         54    IO-APIC-edge  i8042
  7:          0          0    IO-APIC-edge  parport0
  9:          0          0   IO-APIC-level  acpi
 10:       7038       3544   IO-APIC-level  VIA686A
 11:        858          0   IO-APIC-level  uhci_hcd, uhci_hcd
 14:       4404       3709    IO-APIC-edge  ide0
 15:       1015       1062    IO-APIC-edge  ide1
 18:       6497         17   IO-APIC-level  ohci_hcd, eth0
 19:        478         72   IO-APIC-level  radeon@PCI:2:7:0
NMI:          0          0 
LOC:     249903     250532 
ERR:          0
MIS:          0
Hat jemand eine Idee was das sein könnte? Ist das einen Bugreport wert?
Ich probier mal die option pci=routeirq... Ev. gehts ja dann...

Gruss Hannes

hennes@debian
Beiträge: 465
Registriert: 18.01.2005 02:11:40
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Schweiz - Kanton St. Gallen
Kontaktdaten:

Beitrag von hennes@debian » 09.04.2005 15:36:31

Nachtrag: pci=routeirq hat nichts gebracht...

Nach ein bisschen Beobachtung mit Kernel 2.6.11.6 hat sich folgendes Rausgestellt:
Wenn ich Musik höre (d.h. Soundkarte beschäfitgt) funktioniert alles. Wenn ich die Musik abschalte kommt nach ca. 2h45min im syslog die Meldung: irq 10: nobody cared! Wenn ich dann später wider Musik hören will kommt die Meldung: irq 18: nobody cared! womitt Interupt 18 deaktiviert wird und somit Netzwerk und USB deaktiviert werden. Danach ist die Einzige lösung ein reboot (Meine Maus hängt am USB)... Momentan Arbeite ich wider mit Kernel 2.6.8 aus den Debian-Soucen erstellt, da gibts keine Probleme...

Hatte schon mal jemand Probleme dieser Art?

hennes@debian
Beiträge: 465
Registriert: 18.01.2005 02:11:40
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Schweiz - Kanton St. Gallen
Kontaktdaten:

Beitrag von hennes@debian » 14.04.2005 23:37:28

So, ich hab mal einen Bug-Report geschrieben...

Nach dem nun die neuste Version der Debian Kernel-Sourcen 2.6.8 ein Problem mit dem Radeon-Treiber hat, habe ich kenen Kernel mehr der einwandfei funktioniert :(

Ist dies auch ein wert?

Beim Kompillieren (Auszug als ich versuchte das Modul direkt einzukompillieren was überhaupt nicht geht, als Modul gehts, aber es erscheint der selbe Fehler):
CC drivers/char/drm/radeon_irq.o
drivers/char/drm/radeon_state.c: In Funktion »radeon_cp_cmdbuf«:
drivers/char/drm/radeon_state.c:2316: Warnung: implicit declaration of function `drm_alloc'
drivers/char/drm/radeon_state.c:2316: Warnung: Zuweisung erzeugt Zeiger von Ganzzahl ohne Typkonvertierung
drivers/char/drm/radeon_state.c:2416: Warnung: implicit declaration of function `drm_free'

Das Problem:
linux-server:/home/hannes# modprobe radeon
FATAL: Error inserting radeon (/lib/modules/2.6.8/kernel/drivers/char/drm/radeon.ko): Unknown symbol in module, or unknown parameter (see dmesg)

dmesg:
radeon: Unknown symbol drm_free
radeon: Unknown symbol drm_alloc

hennes@debian
Beiträge: 465
Registriert: 18.01.2005 02:11:40
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Schweiz - Kanton St. Gallen
Kontaktdaten:

Beitrag von hennes@debian » 15.04.2005 00:52:08

Hehe, Open-Source ist cool :)
Ich hab ein wenig an den Kernel-Sourcen rumprogrammiert, jetzt gehts!

Differenzen:
diff radeon_state.c radeon_state-original.c
2316c2316
< kbuf = DRM(alloc)(cmdbuf.bufsz, DRM_MEM_DRIVER);
---
> kbuf = drm_alloc(cmdbuf.bufsz, DRM_MEM_DRIVER);
2416c2416
< DRM(free)(kbuf, orig_bufsz, DRM_MEM_DRIVER);
---
> drm_free(kbuf, orig_bufsz, DRM_MEM_DRIVER);
2424c2424
< DRM(free)(kbuf, orig_bufsz, DRM_MEM_DRIVER);
---
> drm_free(kbuf, orig_bufsz, DRM_MEM_DRIVER);

Ich werd wider mal einen Bug-Report schreiben...

Antworten