Sundtek Support Forum

Deutsch => {Single, Dual, Quad} Sundtek SkyTV Ultimate => Thema gestartet von: MarkusEh am März 07, 2013, 09:54:02 Nachmittag

Titel: unable to submit urb
Beitrag von: MarkusEh am März 07, 2013, 09:54:02 Nachmittag
Hallo,

Ich erhalte folgenden Fehler:
Mar  5 21:26:11 debian kernel: unable to submit urb
Mar  5 21:26:12 debian kernel: unable to submit urb
Mar  5 21:26:12 debian kernel: unable to submit urb
Mar  5 21:26:13 debian kernel: unable to submit urb
Mar  5 21:26:13 debian kernel: unable to submit urb
Mar  5 21:26:14 debian kernel: unable to submit urb
Mar  5 21:26:15 debian kernel: unable to submit urb
Mar  5 21:26:15 debian kernel: unable to submit urb
Mar  5 21:26:16 debian kernel: unable to submit urb
Mar  5 21:26:17 debian kernel: unable to submit urb
Mar  5 21:26:48 debian vdr: [2122] ERROR: video data stream broken
Mar  5 21:26:48 debian vdr: [2122] initiating emergency exit

Der Fehler "unable to submit urb" kommt von usbkhelper:
Mar  5 21:03:36 debian kernel: usb 1-1.1: new high-speed USB device number 9 using orion-ehci
Mar  5 21:03:36 debian kernel: usbkhelper: dreambox acceleration not detected
Mar  5 21:03:36 debian kernel: usbkhelper: device is attached to a USB 2.0 bus
Mar  5 21:03:36 debian kernel: usbkhelper: using isoc transfer
Mar  5 21:03:36 debian kernel: usbkhelper: registered /dev/ngdvr0
Mar  5 21:03:36 debian kernel: usbkhelper: mknod /dev/ngdvr0 c 249 0
Mar  5 21:03:38 debian kernel: usb 1-1.2: new high-speed USB device number 10 using orion-ehci
Mar  5 21:03:38 debian kernel: usbkhelper: dreambox acceleration not detected
Mar  5 21:03:38 debian kernel: usbkhelper: device is attached to a USB 2.0 bus
Mar  5 21:03:38 debian kernel: usbkhelper: using isoc transfer
Mar  5 21:03:38 debian kernel: usbkhelper: registered /dev/ngdvr1
Mar  5 21:03:38 debian kernel: usbkhelper: mknod /dev/ngdvr1 c 249 1

Nach dem VDR Restart wurde die Aufnahme fortgesetzt.
Ich habe 2 Sundtek DVB-S2 Sticks an dem sheeva-plug.
Was ist die Ursache für diesen Fehler?

- Markus
Titel: Re:unable to submit urb
Beitrag von: Sundtek am März 09, 2013, 01:12:01 Nachmittag
Also irgendwas läuft da schief woher hast du denn das "usbkhelper" Modul?

Habe es gerade getestet und bei uns kommt eine andere Ausgabe.
Titel: Re:unable to submit urb
Beitrag von: MarkusEh am März 10, 2013, 12:08:18 Vormittag
Hallo,

das Kernel Modul ist von:

http://sundtek.de/support/khelper.tar.gz

. dmesg gibt folgendes aus:

ERROR: 2M atomic DMA coherent pool is too small!
Please increase it with coherent_pool= kernel parameter!

Wie groß sollte der coherent pool bei 2 Sticks denn sein?

- Markus
Titel: Re:unable to submit urb
Beitrag von: Sundtek am März 10, 2013, 12:17:29 Vormittag
Hast du die Sticks auf Isochronous umgestellt?
Titel: Re:unable to submit urb
Beitrag von: MarkusEh am März 10, 2013, 12:41:16 Nachmittag
Hallo,

ja, die Sticks sind auf Isochronous eingestellt. Mit Bulk gab es andere Probleme.

- Markus
Titel: Re:unable to submit urb
Beitrag von: Sundtek am März 10, 2013, 02:56:08 Nachmittag
Ich denke nicht das du damit weit kommen wirst, welche Probleme gibt es denn mit Bulk?
Titel: Re:unable to submit urb
Beitrag von: MarkusEh am April 09, 2013, 10:31:01 Nachmittag
Hallo,

Soweit ich mich erinnern kann, hatte ich mit bulk Artefakte und unvollständige Aufnahmen.

Daher habe ich mit coherent_pool=4M getestet. Das hat zwar zunächst funktioniert, aber irgendwann war der auch voll und der Fehler trat wieder auf. Das scheint ein Fehler im Kernel zu sein, der mit 3.8.6 behoben ist. Details siehe lkm.

Der Patch, der den Fehler korrigiert, ist von Soeren Moch (danke, Soeren !!!):
"ehci.diff" (text/x-patch)]

--- linux-3.9.0-rc3-guru/drivers/usb/host/ehci-sched.c.orig     2013-03-21 17:36:21.000000000 +0100
+++ linux-3.9.0-rc3-guru/drivers/usb/host/ehci-sched.c  2013-03-21 17:38:56.000000000 +0100
@@ -1214,6 +1214,7 @@ itd_urb_transaction (

                memset (itd, 0, sizeof *itd);
                itd->itd_dma = itd_dma;
+               itd->frame = -1;
                list_add (&itd->itd_list, &sched->td_list);
        }
        spin_unlock_irqrestore (&ehci->lock, flags);
@@ -1915,6 +1916,7 @@ sitd_urb_transaction (

                memset (sitd, 0, sizeof *sitd);
                sitd->sitd_dma = sitd_dma;
+               sitd->frame = -1;
                list_add (&sitd->sitd_list, &iso_sched->td_list);
        }


Im Kernel wurde der Patch leicht modifiziert (itd->frame = 9999;).

Ich habe diesen Kernel installiert teste jetzt mal damit.

- Markus