Welches Modul/Treiber für welche Hardware, Kernel compilieren...
-
minimike
- Beiträge: 5616
- Registriert: 26.03.2003 02:21:19
- Lizenz eigener Beiträge: neue BSD Lizenz
- Wohnort: Köln
-
Kontaktdaten:
Beitrag
von minimike » 11.08.2007 22:59:52
Habe noch nie einen Kernelbug verfast, wo sollte ich diesen am besten melden? Sobald ich mit "modprobe ndiswrapper" dieses Modul lade wird es mit folgender unten anstehender Dauermeldung unlustig. Kernel ist 2.6.21.6 mit dem Realtime Patch rt21.
Code: Alles auswählen
BUG: sleeping function called from invalid context softirq-timer/0(5) at kernel/rtmutex.c:613
in_atomic():1 [00000001], irqs_disabled():1
Call Trace:
[<ffffffff8025f8ba>] __rt_spin_lock+0x27/0x48
[<ffffffff884742e7>] :ndiswrapper:queue_kdpc+0x4b/0x177
[<ffffffff88475565>] :ndiswrapper:timer_proc+0x1b/0x4a
[<ffffffff8028c45d>] process_timeout+0x0/0x5
[<ffffffff8847554a>] :ndiswrapper:timer_proc+0x0/0x4a
[<ffffffff8028c0e5>] run_timer_softirq+0x67f/0x73b
[<ffffffff80288a69>] ksoftirqd+0x14d/0x240
[<ffffffff8028891c>] ksoftirqd+0x0/0x240
[<ffffffff802309a6>] kthread+0xd1/0x101
[<ffffffff80259f68>] child_rip+0xa/0x12
[<ffffffff802308d5>] kthread+0x0/0x101
[<ffffffff80259f5e>] child_rip+0x0/0x12
Error (END)
Ich möchte mich etwas mehr mit Musik und Jackd beschäftigen drumm der Realtimepatch. Helfen kann mir keiner aber vieleicht kann mann das für später fixen
Kernel.org wäre meiner Meinung nicht angebracht aber der Realtimepatch hat so viel ich weis keine eigene Liste. Oder sollte ich lieber bei denen vom NDISWRAPPER Projekt vorstellig werden?
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft
-
Six
- Beiträge: 8071
- Registriert: 21.12.2001 13:39:28
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Siegburg
Beitrag
von Six » 12.08.2007 12:09:30
Wenn das Problem nur in Kombination auftritt, dann würde ich es beiden Seiten (RT, NDIS) melden. Irgendwo in den Quellen (meistens am Anfang) findest du mit Sicherheit eine E-Mail, die du kontaktieren kannst.
Be seeing you!
-
minimike
- Beiträge: 5616
- Registriert: 26.03.2003 02:21:19
- Lizenz eigener Beiträge: neue BSD Lizenz
- Wohnort: Köln
-
Kontaktdaten:
Beitrag
von minimike » 12.08.2007 22:50:30
Oh das ist schön zu Lesen
!
Nur wie hole ich mir den Patch aus der Mail raus?
habe mit vim einr Datei namens fix.patch angelegt mit folgenden Zeilen.
Code: Alles auswählen
Index: linux-rt-rebase.q/drivers/net/atl1/atl1_main.c
===================================================================
--- linux-rt-rebase.q.orig/drivers/net/atl1/atl1_main.c
+++ linux-rt-rebase.q/drivers/net/atl1/atl1_main.c
@@ -1704,10 +1704,8 @@ static int atl1_xmit_frame(struct sk_buf
}
}
- local_irq_save(flags);
- if (!spin_trylock(&adapter->lock)) {
+ if (!spin_trylock_irqsave(&adapter->lock, flags)) {
/* Can't get lock - tell upper layer to requeue */
- local_irq_restore(flags);
dev_printk(KERN_DEBUG, &adapter->pdev->dev, "tx locked\n");
return NETDEV_TX_LOCKED;
}
-
Irgendwas mach ich wohl verkehrt
Code: Alles auswählen
bitch:/usr/src/linux-headers-2.6.21.6-rt21-amd64/drivers/net/atl1# patch atl1_main.c /usr/src/fix.patch
missing header for unified diff at line 1 of patch
patching file atl1_main.c
Hunk #1 FAILED at 1704.
1 out of 1 hunk FAILED -- saving rejects to file atl1_main.c.rej
bitch:/usr/src/linux-headers-2.6.21.6-rt21-amd64/drivers/net/atl1#
Wie mache ich das richtig?
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft
-
Spasswolf
- Beiträge: 3472
- Registriert: 30.11.2005 10:32:22
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Wald
Beitrag
von Spasswolf » 12.08.2007 22:58:12
Funktioniert es wenn du die ersten beiden Zeilen weglässt?
-
minimike
- Beiträge: 5616
- Registriert: 26.03.2003 02:21:19
- Lizenz eigener Beiträge: neue BSD Lizenz
- Wohnort: Köln
-
Kontaktdaten:
Beitrag
von minimike » 12.08.2007 23:08:09
Code: Alles auswählen
--- linux-rt-rebase.q.orig/drivers/net/atl1/atl1_main.c
+++ linux-rt-rebase.q/drivers/net/atl1/atl1_main.c
@@ -1704,10 +1704,8 @@ static int atl1_xmit_frame(struct sk_buf
}
}
- local_irq_save(flags);
- if (!spin_trylock(&adapter->lock)) {
+ if (!spin_trylock_irqsave(&adapter->lock, flags)) {
/* Can't get lock - tell upper layer to requeue */
- local_irq_restore(flags);
dev_printk(KERN_DEBUG, &adapter->pdev->dev, "tx locked\n");
return NETDEV_TX_LOCKED;
}
-
habe ich gemacht, klappt aber nicht
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft
-
Spasswolf
- Beiträge: 3472
- Registriert: 30.11.2005 10:32:22
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Wald
Beitrag
von Spasswolf » 12.08.2007 23:25:43
Dann würde ich die Änderungen per Hand eintragen, danach kannst du ja einen funktionierenden Patch erstellen.
-
minimike
- Beiträge: 5616
- Registriert: 26.03.2003 02:21:19
- Lizenz eigener Beiträge: neue BSD Lizenz
- Wohnort: Köln
-
Kontaktdaten:
Beitrag
von minimike » 13.08.2007 00:44:46
also jede Zeile mit einem - soll weg und + wird hinzgefügt? Habe keine Ahnung davon und weis nicht wirklich was ich da gerade mache.
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft
-
minimike
- Beiträge: 5616
- Registriert: 26.03.2003 02:21:19
- Lizenz eigener Beiträge: neue BSD Lizenz
- Wohnort: Köln
-
Kontaktdaten:
Beitrag
von minimike » 13.08.2007 01:00:26
Vorher
Code: Alles auswählen
local_irq_save(flags);
if (!spin_trylock(&adapter->lock)) {
/* Can't get lock - tell upper layer to requeue */
local_irq_restore(flags);
printk(KERN_DEBUG "%s: TX locked\n", atl1_driver_name);
return NETDEV_TX_LOCKED;
}
Nachher
Code: Alles auswählen
local_irq_save(flags);
if (!spin_trylock_irqsave(&adapter->lock, flags)) {
/* Can't get lock - tell upper layer to requeue */
}
Ist das richtig? Denn ich verstehe nicht was das heist. Mir fehlt hierfür die Bildung
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft
-
Spasswolf
- Beiträge: 3472
- Registriert: 30.11.2005 10:32:22
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Wald
Beitrag
von Spasswolf » 13.08.2007 01:47:05
Nur die Zeilen vor denen ein Minus steht müssen weg:
Vorher:
Code: Alles auswählen
local_irq_save(flags);
if (!spin_trylock(&adapter->lock)) {
/* Can't get lock - tell upper layer to requeue */
local_irq_restore(flags);
printk(KERN_DEBUG "%s: TX locked\n", atl1_driver_name);
return NETDEV_TX_LOCKED;
}
Nachher:
Code: Alles auswählen
if (!spin_trylock_irqsave(&adapter->lock, flags)) {
/* Can't get lock - tell upper layer to requeue */
printk(KERN_DEBUG "%s: TX locked\n", atl1_driver_name);
return NETDEV_TX_LOCKED;
}
-
brummer
- Beiträge: 182
- Registriert: 19.02.2007 19:21:23
Beitrag
von brummer » 13.08.2007 07:00:54
missing header for unified diff at line 1 of patch
ich würde sagen du nimst einfach die headerzeile dazu.
Code: Alles auswählen
drivers/net/atl1/atl1_main.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
Index: linux-rt-rebase.q/drivers/net/atl1/atl1_main.c
===================================================================
der patch ist der abschnitt ab dem --- zeichen bis zum -
gruß brummer
-
minimike
- Beiträge: 5616
- Registriert: 26.03.2003 02:21:19
- Lizenz eigener Beiträge: neue BSD Lizenz
- Wohnort: Köln
-
Kontaktdaten:
Beitrag
von minimike » 16.08.2007 05:59:31
Ich gebe die Sache auf, das artet in sinnloser Bastelei aus ohne aber jedoch ein positives Ergebnis zu erzielen. Ich habe ca 20 Stunden meiner Freizeit ohne Erfolg darin verbraten.und 16 mal den Kernel neu übersetzt
Anderer Kernel läuft anstatt diesem
Kernel 2.6.21.7
Con Kolivas CK1 Patch
Reiser4 Patch
Bootsplash Patch
Realtime LSM Modul
ALSA 1.0.14 Module
NDISWRAPPER Modules
Bei einer Latenz von einer Milisekunde habe ich zumindest mit Jackd eine CPU last von ca 20%. CPU und Arbeitsspeicher siehe Signatur
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft
-
gms
- Beiträge: 7798
- Registriert: 26.11.2004 20:08:38
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von gms » 19.08.2007 21:38:00
OT:
du könntest auch die Realtime Rechte über PAM verwalten und auf realtime-lsm gänzlich verzichten
Gruß
gms