Esben Stien wrote:
Salvatore Di Pietro <salvuz_78(a)virgilio.it>
writes:
I am experiencing problems during the build (and
consequently
modprobe) process of Kor Nielsen hacked version of kfusd module for
OSS2JACK, fusd-kor-1.10-9.
I used this patch:
http://bugs.gentoo.org/show_bug.cgi?id=96449
Well, actually it didn't apply, so I patched it manually (just a few
lines).
Also see this link:
http://forums.gentoo.org/viewtopic-t-354750-postdays-0-postorder-asc-start-…
Thank you! I had to patch it manually, too, and in attachment here's the
patch I made: apply with
patch -p1 </path/to/fusd-kor-1.10-9_kernel_2.6.13_patch
I run 2.6.13-rt4 with oss2jack. I have never used this
solution before
and I experience different troubles like crackles in the sound and I'm
also not able to feed a jack stream into it. It connects but it's not
putting the stream into the oss app.
It really depends on the application. Good results are with (according
to info on website):
* mplayer
* artsd (and thus all the kde applications)
* xmms
* Macromedia Flash
* xine
* Totem
* esd
* SoundTracker
* Frozen Bubble
* GStreamer (osssink)
* Quake 3
* Audacity
* Skype
I dind't manage to make it work with Audacity, though...
With Skype I had no problem:
http://alsa.opensrc.org/index.php?page=JACK
I'll do some more testing before I ask anything
specific, but please
report back if you get it to work with inputs and no crackles in the
sound.
--- fusd-kor-1.10-9/kfusd/kfusd.c 2005-06-18 08:53:52.000000000 +0200
+++ fusd-kor-1.10-9.bak/kfusd/kfusd.c 2005-09-16 00:38:51.000000000 +0200
@@ -125,12 +125,12 @@
STATIC dev_t control_id;
STATIC dev_t status_id;
-static struct class_simple *fusd_class;
+static struct class *fusd_class;
static struct class_device *fusd_control_class_device;
static struct class_device *fusd_status_class_device;
-extern struct class_simple *sound_class;
+extern struct class *sound_class;
/* version number incremented for each registered device */
STATIC int last_version = 1;
@@ -1965,7 +1965,7 @@
}
else
{
- fusd_dev->clazz = class_simple_create(THIS_MODULE, fusd_dev->class_name);
+ fusd_dev->clazz = class_create(THIS_MODULE, fusd_dev->class_name);
if(IS_ERR(fusd_dev->clazz))
{
error = PTR_ERR(fusd_dev->clazz);
@@ -1974,11 +1974,11 @@
fusd_dev->owns_class = 1;
}
- fusd_dev->class_device = class_simple_device_add(fusd_dev->clazz,
fusd_dev->dev_id, NULL, fusd_dev->dev_name);
+ fusd_dev->class_device = class_device_create(fusd_dev->clazz, fusd_dev->dev_id,
NULL, fusd_dev->dev_name);
if(fusd_dev->class_device == NULL)
{
error = PTR_ERR(fusd_dev->class_device);
- printk("class_simple_device_add failed status: %d\n", error);
+ printk("class_device_create failed status: %d\n", error);
goto register_failed5;
}
@@ -2001,7 +2001,7 @@
return 0;
register_failed5:
- class_simple_destroy(fusd_dev->clazz);
+ class_destroy(fusd_dev->clazz);
register_failed4:
cdev_del(fusd_dev->handle);
register_failed3:
@@ -2093,10 +2093,10 @@
if(fusd_dev->handle)
{
- class_simple_device_remove(fusd_dev->dev_id);
+ class_device_destroy(fusd_class,fusd_dev->dev_id);
if(fusd_dev->owns_class)
{
- class_simple_destroy(fusd_dev->clazz);
+ class_destroy(fusd_dev->clazz);
}
cdev_del(fusd_dev->handle);
#ifdef CONFIG_DEVFS_FS
@@ -2799,11 +2799,11 @@
fusd_control_device = NULL;
fusd_status_device = NULL;
- fusd_class = class_simple_create(THIS_MODULE, "fusd");
+ fusd_class = class_create(THIS_MODULE, "fusd");
if(IS_ERR(fusd_class))
{
retval = PTR_ERR(fusd_class);
- printk("class_simple_create failed status: %d\n", retval);
+ printk("class_create failed status: %d\n", retval);
goto fail0;
}
@@ -2841,11 +2841,11 @@
goto fail4;
}
- fusd_control_class_device = class_simple_device_add(fusd_class, control_id, NULL,
"control");
+ fusd_control_class_device = class_device_create(fusd_class, control_id, NULL,
"control");
if(fusd_control_class_device == NULL)
{
retval = PTR_ERR(fusd_control_class_device);
- printk("class_simple_device_add failed status: %d\n", retval);
+ printk("class_device_create failed status: %d\n", retval);
goto fail5;
}
@@ -2882,10 +2882,10 @@
goto fail9;
}
- fusd_status_class_device = class_simple_device_add(fusd_class, status_id, NULL,
"status");
+ fusd_status_class_device = class_device_create(fusd_class, status_id, NULL,
"status");
if(fusd_status_class_device == NULL)
{
- printk("class_simple_device_add failed status: %d\n", retval);
+ printk("class_device_add failed status: %d\n", retval);
retval = PTR_ERR(fusd_status_class_device);
goto fail10;
}
@@ -2904,7 +2904,7 @@
fail7:
unregister_chrdev_region(status_id, 1);
fail6:
- class_simple_device_remove(control_id);
+ class_device_destroy(fusd_class,control_id);
fail5:
cdev_del(fusd_control_device);
fail4:
@@ -2916,7 +2916,7 @@
fail2:
unregister_chrdev_region(control_id, 1);
fail1:
- class_simple_destroy(fusd_class);
+ class_destroy(fusd_class);
fail0:
return retval;
}
@@ -2925,8 +2925,8 @@
{
RDEBUG(1, "cleaning up");
- class_simple_device_remove(status_id);
- class_simple_device_remove(control_id);
+ class_device_destroy(fusd_class,status_id);
+ class_device_destroy(fusd_class,control_id);
cdev_del(fusd_control_device);
cdev_del(fusd_status_device);
@@ -2935,7 +2935,7 @@
devfs_remove(FUSD_STATUS_FILENAME);
- class_simple_destroy(fusd_class);
+ class_destroy(fusd_class);
#ifdef CONFIG_FUSD_MEMDEBUG
fusd_mem_cleanup();