Hallo,
ich hab ein Tascam US-144 USB Audio Interface - und würde es gern mit meinem Ubuntu benutzen können. (9.10 Alpha (mit vorigen Versionen ging es auch nicht) - Kernel 2.6.30).
Kann mit jemand helfen. Danke.
Anmeldungsdatum: Beiträge: 1 |
Hallo, ich hab ein Tascam US-144 USB Audio Interface - und würde es gern mit meinem Ubuntu benutzen können. (9.10 Alpha (mit vorigen Versionen ging es auch nicht) - Kernel 2.6.30). Kann mit jemand helfen. Danke. |
Anmeldungsdatum: Beiträge: 1814 |
Moin, für das US-144 braucht man diesen Patch: http://mailman.alsa-project.org/pipermail/alsa-devel/2009-September/021363.html Außerdem muss das Kernelmodul ehci-hcd deaktiviert werden: sudo rmmod ehci-hcd Zumindest unter Ubuntu Karmic ist ehci-hcd aber kein Modul, sondern fest im Kernel, also muss man den Kernel erstmal neu kompilieren: Kernel Gruß, BigMc |
Anmeldungsdatum: Beiträge: 33 |
Oh, das ist ja wunderbar. Ist vielleicht etwas blöd, aber bastle ich den Code jetzt irgendwie in den Kernel (und wenn ja wie?) oder führ ich's einfach aus? Ich bin ein wenig ahnungslos. |
Anmeldungsdatum: Beiträge: 1814 |
Oh je das hab ich befürchtet. 😉 Erstmal gibt es schon ein kleines Update für den Patch: http://mailman.alsa-project.org/pipermail/alsa-devel/2009-September/021379.html Also nachdem du überprüft hast, ob das deaktivieren von ehci-hcd (siehe oben) geklappt hat und du evtl. den Kernel neu kompiliert hast (Ubuntu-Methode ohne eine eigene Variante zu erstellen, beim Ändern der Kernel-Konfiguration unter device driver → USB → EHCI_HCD Support "M" wählen) gehts so weiter: Erstmal installierst du die Pakete linux-source und linux-headers-generic. Jetzt hast du im Ordner /usr/src ein Paket mit den Kernel-Sourcen. Das entpackst du irgendwo in dein Homeverzeichnis. Den Patch kopierst du in eine Datei in dem neue Verzeichnis mit den Sourcen (z.B. linux-2.6.x, das wo die Ordner include, debian und so drin sind), die du z.B. us144.patch nennst. Dann gehst du im Terminal in das Verzeichnis und machst patch -p 1 -i us144.patch cd sound/usb/usx2y make -C /usr/src/linux-headers-`uname -r` M=`pwd` modules sudo mv /lib/modules/`uname -r`/kernel/sound/usb/usx2y/snd-usb-us122l.ko /lib/modules/`uname -r`/kernel/sound/usb/usx2y/snd-usb-us122l.ko.bak sudo mv snd-usb-us122l.ko /lib/modules/`uname -r`/kernel/sound/usb/usx2y/snd-usb-us122l.ko sudo rmmod snd-usb-us122l Jetzt musst du noch wie hier ab Schritt 3 beschrieben ALSA und Jack einrichten: Wenn du die ~/.asoundrc hast, den Stecker reinsteckst und dann cat /proc/asound/cards eingibst, müsste das Ding als US-122L angezeigt werden. Nun auch Schritt 4 befolgen. Der Gruppe audio tritt man dabei mit sudo usermod -a -G audio USERNAME bei. Nun kannst du Jack wie hier beschrieben mit qjackctl und den Einstellungen wie auf dem Screenshot einrichten, allerdings mit Frames/Period = 256 und Sample Rate = 44100 (anderes kann man dann immernoch ausprobieren). So, viel Spaß. 😬 Gruß, BigMc |
Anmeldungsdatum: Beiträge: 116 Wohnort: Emden |
Bei mir hat das so leider nicht funktioniert, als erstes schlägt schon das Patchen fehl: linux-source-2.6.28$ patch -p 1 -i us144.patch patching file sound/usb/usx2y/us122l.c Hunk #4 succeeded at 480 (offset 4 lines). Hunk #5 succeeded at 499 (offset 4 lines). Hunk #6 succeeded at 570 with fuzz 2 (offset -15 lines). Hunk #7 FAILED at 579. Hunk #8 FAILED at 627. Hunk #9 succeeded at 677 (offset -17 lines). Hunk #10 succeeded at 717 (offset -17 lines). 2 out of 10 hunks FAILED -- saving rejects to file sound/usb/usx2y/us122l.c.rej In sound/usb/usx2y/us122l.c.rej steht *************** static int us122l_usb_probe(struct usb_i *** 535,542 **** static int snd_us122l_probe(struct usb_interface *intf, const struct usb_device_id *id) { struct snd_card *card; int err; snd_printdd(KERN_DEBUG"%p:%i\n", intf, intf->cur_altsetting->desc.bInterfaceNumber); --- 579,593 ---- static int snd_us122l_probe(struct usb_interface *intf, const struct usb_device_id *id) { + struct usb_device *device = interface_to_usbdev(intf); struct snd_card *card; int err; + + if (device->descriptor.idProduct == USB_ID_US144 + && device->speed == USB_SPEED_HIGH) { + snd_printk(KERN_ERR "disable ehci-hcd to run US-144 \n"); + return -ENOENT; + } snd_printdd(KERN_DEBUG"%p:%i\n", intf, intf->cur_altsetting->desc.bInterfaceNumber); *************** static void snd_us122l_disconnect(struct *** 576,582 **** snd_usbmidi_disconnect(p); } - usb_put_intf(intf); usb_put_dev(us122l->chip.dev); while (atomic_read(&us122l->mmap_count)) --- 627,634 ---- snd_usbmidi_disconnect(p); } + usb_put_intf(usb_ifnum_to_if(us122l->chip.dev, 0)); + usb_put_intf(usb_ifnum_to_if(us122l->chip.dev, 1)); usb_put_dev(us122l->chip.dev); while (atomic_read(&us122l->mmap_count)) lässt sich aber trotzdem kompilieren. Als nächstes hat sudo rmmod snd-usb-us122l ERROR: Module snd_usb_us122l does not exist in /proc/modules nichts bewirken können. Ich finde die Karte nicht unter /proc/asound/cards oder /proc/asound/modules. Jack möchte auch nicht starten $ jackd -RP50 -dalsa -dusb_stream:1 -r44100 -p64 -n2 no message buffer overruns jackd 0.116.1 ... cannot use real-time scheduling (FIFO at priority 10) [for thread -690936080, from thread -690936080] (1: Operation not permitted) cannot create engine Da ist irgendwo der Wurm drin, nur was nun dagegen tun? Danke, mesrumma. |
Anmeldungsdatum: Beiträge: 1814 |
Moin, mesrumma schrieb:
Ach so, dann ist in deinem Kernel nicht die neuste Version enthalten. Ersetze bitte vor dem patchen die Dateien us122l.c, us122l.h, usb_stream.c und usb_stream.h durch die aktuellen Versionen (gibts hier). Ist nicht 100%ig sicher dass das Kompilieren dann noch klappt, aber hoffen wirs mal.
Macht nix, das war auch nur dabei für den Fall, dass das Interface vorher schnmal reingesteckt wurde und das Modul noch geladen ist. Also einfach weglassen und das Interface nicht reinstecken, bevor das Module ersetzt ist.
Ein dmesg nach dem Reinstecken liefert auch immer nützliche Informationen. Gruß, BigMc EDIT: Ach ja, das sudo mv /lib/modules/`uname -r`/kernel/sound/usb/usx2y/snd-usb-us122l.ko /lib/modules/`uname -r`/kernel/sound/usb/usx2y/snd-usb-us122l.ko.bak brauchst du auch nur ein Mal zu machen. Damit wird eine Sicherheitskopie des ursprünglichen Moduls gemacht und wenn du es jedes Mal machst, überscheibst du natürlich beim 2. Mal das Original. Aber da du vermutlich sowieso kein US-122L hast, ist das auch nicht so wichtig. |
Anmeldungsdatum: Beiträge: 33 |
Mit einem Freund hab ich's versucht. Wir haben ehci-hcd deaktiviert und den Kernel dazu neu kompiliert. Dazu hat er ein Script geschrieben, das ich angehängt habe. Den Patch haben wir nach einem Neustart installiert. Leider wird das Interface trotzdem nicht unter den Karten angezeigt, wenn ich es anschließe. Vielleicht liegt es daran, dass standartmäßig schon zwei Soundkarten angezeigt werden, (HDA Intel und HDA ATI HDMI), ich hab in .asoundrc default auf "2" geändert, aber es hilft nichts. Hast du noch eine Idee? |
Anmeldungsdatum: Beiträge: 1814 |
Moin, was sagt dmesg nach dem Reinstecken? Hast du daran gedacht, ehci_hcd auch zu deaktivieren? Das muss nach jedem Neustart gemacht werden. Gruß, BigMc EDIT: Hintergrund ist der: ehci_hcd ist die USB2-Unterstützung von Linux. Wenn man es also deaktiviert, hat man nur noch USB 1.1, was ja bekanntlich ...langsam ist. Bei externen Festplatten und so. Darum will man ehci_hcd nur deaktivieren, wenn man das US-144 nutzen will. Warum geht nun das US-144 nur mit USB 1? - Weil USB 1 zu langsam für die 4 Ein- und Ausgangskanäle des US-144 ist, verhält es sich an USB 1 so wie ein US-122L. Das ist der Grund, warum der Treiber überhaupt mit den geringen Änderungen mit dem US-144 funktioniert. (Ach ja, die digitalen Kanäle funktionieren natürlich nicht. 😉) EDIT2: Der Patch ist übrigens schon im aktuellen ALSA-Snapshot ⮷ enthalten. Das ist auch eine Möglichkeit, wenn der Patch nicht angewendet werden kann (wie bei dir mesrumma). Allerdings kann ich dafür keine Installationsanleitung liefern; die sollte sich aber irgendwo finden lassen. |
Anmeldungsdatum: Beiträge: 33 |
Selbst mit Deaktivieren wird's mir nicht angezeigt. Ich schick dmesg mit, darin wird es zwar als erkannt angezeigt (hatte nichts weiter an den USB-Ports zu dem Zeitpunkt), aber unter cat /proc/asound/modules wird es trotzdem nicht angezeigt. |
Anmeldungsdatum: Beiträge: 116 Wohnort: Emden |
Einen Schritt bin ich weitergekommen, Patchen hat jetzt geklappt, Kompilieren leider nicht: linux-source-2.6.28/sound/usb/usx2y/us122l.o /media/truecrypt1/kernelbuild/linux-source-2.6.28/sound/usb/usx2y/us122l.c:91: Fehler: Redefinition von »us144_create_usbmidi« /media/truecrypt1/kernelbuild/linux-source-2.6.28/sound/usb/usx2y/us122l.c:70: Fehler: Vorherige Definition von »us144_create_usbmidi« war hier /media/truecrypt1/kernelbuild/linux-source-2.6.28/sound/usb/usx2y/us122l.c: In Funktion »usb_stream_hwdep_ioctl«: /media/truecrypt1/kernelbuild/linux-source-2.6.28/sound/usb/usx2y/us122l.c:407: Fehler: Implizite Deklaration der Funktion »memdup_user« /media/truecrypt1/kernelbuild/linux-source-2.6.28/sound/usb/usx2y/us122l.c:407: Warnung: Zuweisung erzeugt Zeiger von Ganzzahl ohne Typkonvertierung /media/truecrypt1/kernelbuild/linux-source-2.6.28/sound/usb/usx2y/us122l.c: In Funktion »usx2y_create_card«: /media/truecrypt1/kernelbuild/linux-source-2.6.28/sound/usb/usx2y/us122l.c:561: Fehler: Implizite Deklaration der Funktion »snd_card_create« Habe daraufhin alle anderen usx2y Dateien heruntergeladen, hat aber nichts geändert. Der Alsa Snapshot ließ sich kompilieren, hat dann aber auch nicht funktioniert und mir leider die Onboardkarte gleich mit abgeschaltet (habe ich beide mit --with-cards angegeben). Zeigt die Onboard auch noch an, kommt nur nichts mehr raus... Ich habe allerdings auch gar kein ehci_hcd Modul, weshalb ich mir erst einmal einen Kernel kompiliert habe. Als ich gerade fertig damit war, habe ich mich dann gefragt, ob es vielleicht schlauer gewesen wäre, vorher zu patchen. Jetzt, da es nicht kompiliert, bin ich ganz froh darüber, dass ichs nicht versucht habe, sollte aber doch theoretisch möglich sein? Dann ist mir zum Thema ehci, darüber hatte ich mir nämlich auch schon Sorgen gemacht, hier noch etwas aufgefallen:
Ich werde jetzt noch einen Versuch mit dem Alsa Snapshot und abgeschaltetem ehci_hcd machen, auf die Gefahr hin, dass mit meinem neuen Kernel auch keine Karte mehr läuft. Ansonsten kann ja eventuell jemand, bei dem alles funktioniert, einmal seine us122l.c veröffentlichen und einmal nachschaun, in welcher Datei memdup_user und usx2y_create_card deklariert sind. Danke, Gruß mesrumma |
Anmeldungsdatum: Beiträge: 116 Wohnort: Emden |
Meine Onboardkarte hat sich spontan selbst geheilt, das US-144 will auch mit Alsa-driver Snapshot und ohne ehci_hcd nicht, wird nicht angezeigt. dmesg gibt auch nichts aussagekräftiges zurück [ 101.648144] usb 3-1: new full speed USB device using uhci_hcd and address 5 [ 101.803621] usb 3-1: configuration #1 chosen from 1 choice Muss vielleicht zusätzlich zum Alsa-driver noch Alsa-utils, -tools, -lib o.ä. als Snapshot genommen werden? Danke, Gruß mesrumma |
Anmeldungsdatum: Beiträge: 1814 |
Die dmesg-Ausgabe sah bei mir bisher bloß in zwei Fällen so aus: Wenn alles geklappt hat oder wenn noch das ungepatchte snd-usb-us122l-Modul verwendet wird. Das hätte ich eigentlich dazusagen müssen: Wenn man sich daran macht, meine ganzen Befehle zum Patchen und Installieren des Moduls auszuführen, muss der Kernel geladen sein, mit dem man das Modul später verwenden will!
Weiß ich nicht, glaube nicht. Die ~/.asoundrc hast du auch angelegt und evtl. angepasst? Gruß, BigMc |
Anmeldungsdatum: Beiträge: 116 Wohnort: Emden |
Ich habe die ~/.asoundrc angelegt und angepasst. Ich habe auch mit dem richtigen Kernel gepatcht und versucht zu kompilieren. Den Alsa Snapshot habe ich auch unter dem richtigen Kernel installiert. Vielleicht sollte ichs mal mit einem neueren Kernel ausprobieren, welche Version nutzt du, BigMc? |
Anmeldungsdatum: Beiträge: 1814 |
Den von Karmic: 2.6.31. Falls du den Vanilla-Kernel (kernel.org) probieren willst: linux-next enthält schon den Patch. Allerdings sollte ich vielleicht nicht empfehlen, linux-next zu verwenden. 2.6.31 selbst zu patchen wäre wohl die beste Wahl, ob Karmic oder Vanilla. Gruß, BigMc |
Anmeldungsdatum: Beiträge: 1814 |
Moin, ich habe jetzt auf meiner Benutzerseite eine Anleitung hinterlegt, hoffentlich ist das etwas übersichtlicher. Und es basiert jetzt auf dem ALSA-Snapshot, also kein patchen mehr. Getestet nach wie vor nur mit Karmic: Gruß, BigMc |