View previous topic :: View next topic |
Author |
Message |
dmvianna l33t
Joined: 22 Mar 2004 Posts: 742 Location: Down Underland
|
Posted: Mon Jan 14, 2008 8:59 pm Post subject: |
|
|
ReDirEct__ wrote: | hi all... i noticed that information in the first post are very old... i wolud to know if i need bloetooth-alsa for using the bluetooth headset mic with bluez 3.24... if not... how can get my mic headset working with bluez3.24??? Speaker work very well with mplayer (not with amarok). |
Since the bluetooth driver was removed from the kernel, using a bluetooth headset has become even more experimental. Bluez is using the new alsa API, but few applications are prepared to share information through that. I had a very limited success with mplayer some time ago, and documented it here. I haven't tried since, maybe it's better now. Please share your experience with us if you have any success. The Bluez trac is also an invaluable resource. Good luck! _________________ Proprietary is theft. Pierre-Joseph Proudhon, if he had a chance
Powered by a MacBook Pro |
|
Back to top |
|
|
ReDirEct__ Guru
Joined: 16 Mar 2006 Posts: 300 Location: Nola (NA) - Italy
|
Posted: Tue Jan 15, 2008 12:22 am Post subject: |
|
|
i thought about sharing my experience... but also i would to have a completely working headset with mic ... i finally got working speaker following the gentoo wiki... and usig the kdeblutooth progam set... not so hard... my bluetooth headset it's a g2comm (not very expensive headset )... i think i will put this information on the wiki...
no one know if need to use the alsa-bluetooth libs for the mic? |
|
Back to top |
|
|
nutznboltz Apprentice
Joined: 23 Apr 2004 Posts: 239
|
|
Back to top |
|
|
Dusdan n00b
Joined: 10 Mar 2008 Posts: 37
|
|
Back to top |
|
|
erikderzweite Tux's lil' helper
Joined: 25 Feb 2006 Posts: 143
|
Posted: Tue Jan 13, 2009 2:32 pm Post subject: It is still possible to use a btsco even with recent kernel! |
|
|
I have recently turned back to btsco for it is IMO much more reliable than new methods. Besides, I'm on amd64 — skype and ekiga don't work with newer methods (ekiga requires patched pwlib/ptlib and skype — binary alsa-bluetooth libs to be compiled e.g. from 32-bit chroot).
Thirdly, I haven't found a way to intercept headset key press without btsco and I use it to answer/drop calls in both skype and ekiga. If you want to use those scripts, see here: https://forums.gentoo.org/viewtopic-p-5385014.html#5385014
Here is a brief howto:
1. patch your kernel
you'll need following patch for 2.6.28:
btsco-2.6.28.patch
Code: | --- include/sound/core.h.orig 2008-12-16 23:31:29.000000000 +0100
+++ include/sound/core.h 2008-12-17 00:04:50.000000000 +0100
@@ -29,6 +29,7 @@
#include <linux/pm.h> /* pm_message_t */
#include <linux/device.h>
#include <linux/stringify.h>
+#include "typedefs.h"
/* number of supported soundcards */
#ifdef CONFIG_SND_DYNAMIC_MINORS
@@ -380,12 +381,30 @@
printk(fmt ,##args)
#endif
+/**
+ * snd_assert - run-time assertion macro
+ * @expr: expression
+ *
+ * This macro checks the expression in run-time and invokes the commands
+ * given in the rest arguments if the assertion is failed.
+ * When CONFIG_SND_DEBUG is not set, the expression is executed but
+ * not checked.
+ */
+#define snd_assert(expr, args...) do { \
+ if (unlikely(!(expr))) { \
+ snd_printk(KERN_ERR "BUG? (%s)\n", __ASTRING__(expr)); \
+ dump_stack(); \
+ args; \
+ } \
+} while (0)
+
#define snd_BUG() WARN(1, "BUG?\n")
#define snd_BUG_ON(cond) WARN((cond), "BUG? (%s)\n", __stringify(cond))
#else /* !CONFIG_SND_DEBUG */
#define snd_printd(fmt, args...) do { } while (0)
+#define snd_assert(expr, args...) (void)(expr)
#define snd_BUG() do { } while (0)
static inline int __snd_bug_on(void)
{
--- include/sound/typedefs.h.orig 2008-12-17 00:15:10.000000000 +0100
+++ include/sound/typedefs.h 2008-12-16 23:46:03.000000000 +0100
@@ -0,0 +1,173 @@
+/*
+ * Typedef's for backward compatibility (for out-of-kernel drivers)
+ *
+ * This file will be removed soon in future
+ */
+
+/* core stuff */
+typedef struct snd_card snd_card_t;
+typedef struct snd_device snd_device_t;
+typedef struct snd_device_ops snd_device_ops_t;
+typedef enum snd_card_type snd_card_type_t;
+typedef struct snd_minor snd_minor_t;
+
+/* info */
+typedef struct snd_info_entry snd_info_entry_t;
+typedef struct snd_info_buffer snd_info_buffer_t;
+
+/* control */
+typedef struct snd_ctl_file snd_ctl_file_t;
+typedef struct snd_kcontrol snd_kcontrol_t;
+typedef struct snd_kcontrol_new snd_kcontrol_new_t;
+typedef struct snd_kcontrol_volatile snd_kcontrol_volatile_t;
+typedef struct snd_kctl_event snd_kctl_event_t;
+typedef struct snd_aes_iec958 snd_aes_iec958_t;
+typedef struct snd_ctl_card_info snd_ctl_card_info_t;
+typedef struct snd_ctl_elem_id snd_ctl_elem_id_t;
+typedef struct snd_ctl_elem_list snd_ctl_elem_list_t;
+typedef struct snd_ctl_elem_info snd_ctl_elem_info_t;
+typedef struct snd_ctl_elem_value snd_ctl_elem_value_t;
+typedef struct snd_ctl_event snd_ctl_event_t;
+#if defined(CONFIG_SND_MIXER_OSS) || defined(CONFIG_SND_MIXER_OSS_MODULE)
+typedef struct snd_mixer_oss snd_mixer_oss_t;
+#endif
+
+/* timer */
+typedef struct snd_timer snd_timer_t;
+typedef struct snd_timer_instance snd_timer_instance_t;
+typedef struct snd_timer_id snd_timer_id_t;
+typedef struct snd_timer_ginfo snd_timer_ginfo_t;
+typedef struct snd_timer_gparams snd_timer_gparams_t;
+typedef struct snd_timer_gstatus snd_timer_gstatus_t;
+typedef struct snd_timer_select snd_timer_select_t;
+typedef struct snd_timer_info snd_timer_info_t;
+typedef struct snd_timer_params snd_timer_params_t;
+typedef struct snd_timer_status snd_timer_status_t;
+typedef struct snd_timer_read snd_timer_read_t;
+typedef struct snd_timer_tread snd_timer_tread_t;
+
+/* PCM */
+typedef struct snd_pcm snd_pcm_t;
+typedef struct snd_pcm_str snd_pcm_str_t;
+typedef struct snd_pcm_substream snd_pcm_substream_t;
+typedef struct snd_pcm_info snd_pcm_info_t;
+typedef struct snd_pcm_hw_params snd_pcm_hw_params_t;
+typedef struct snd_pcm_sw_params snd_pcm_sw_params_t;
+typedef struct snd_pcm_channel_info snd_pcm_channel_info_t;
+typedef struct snd_pcm_status snd_pcm_status_t;
+typedef struct snd_pcm_mmap_status snd_pcm_mmap_status_t;
+typedef struct snd_pcm_mmap_control snd_pcm_mmap_control_t;
+typedef struct snd_mask snd_mask_t;
+typedef struct snd_sg_buf snd_pcm_sgbuf_t;
+
+typedef struct snd_interval snd_interval_t;
+typedef struct snd_xferi snd_xferi_t;
+typedef struct snd_xfern snd_xfern_t;
+typedef struct snd_xferv snd_xferv_t;
+
+typedef struct snd_pcm_file snd_pcm_file_t;
+typedef struct snd_pcm_runtime snd_pcm_runtime_t;
+typedef struct snd_pcm_hardware snd_pcm_hardware_t;
+typedef struct snd_pcm_ops snd_pcm_ops_t;
+typedef struct snd_pcm_hw_rule snd_pcm_hw_rule_t;
+typedef struct snd_pcm_hw_constraints snd_pcm_hw_constraints_t;
+typedef struct snd_ratnum ratnum_t;
+typedef struct snd_ratden ratden_t;
+typedef struct snd_pcm_hw_constraint_ratnums snd_pcm_hw_constraint_ratnums_t;
+typedef struct snd_pcm_hw_constraint_ratdens snd_pcm_hw_constraint_ratdens_t;
+typedef struct snd_pcm_hw_constraint_list snd_pcm_hw_constraint_list_t;
+typedef struct snd_pcm_group snd_pcm_group_t;
+typedef struct snd_pcm_notify snd_pcm_notify_t;
+
+/* rawmidi */
+typedef struct snd_rawmidi snd_rawmidi_t;
+typedef struct snd_rawmidi_info snd_rawmidi_info_t;
+typedef struct snd_rawmidi_params snd_rawmidi_params_t;
+typedef struct snd_rawmidi_status snd_rawmidi_status_t;
+typedef struct snd_rawmidi_runtime snd_rawmidi_runtime_t;
+typedef struct snd_rawmidi_substream snd_rawmidi_substream_t;
+typedef struct snd_rawmidi_str snd_rawmidi_str_t;
+typedef struct snd_rawmidi_ops snd_rawmidi_ops_t;
+typedef struct snd_rawmidi_global_ops snd_rawmidi_global_ops_t;
+typedef struct snd_rawmidi_file snd_rawmidi_file_t;
+
+/* hwdep */
+typedef struct snd_hwdep snd_hwdep_t;
+typedef struct snd_hwdep_info snd_hwdep_info_t;
+typedef struct snd_hwdep_dsp_status snd_hwdep_dsp_status_t;
+typedef struct snd_hwdep_dsp_image snd_hwdep_dsp_image_t;
+typedef struct snd_hwdep_ops snd_hwdep_ops_t;
+
+/* sequencer */
+typedef struct snd_seq_port_info snd_seq_port_info_t;
+typedef struct snd_seq_port_subscribe snd_seq_port_subscribe_t;
+typedef struct snd_seq_event snd_seq_event_t;
+typedef struct snd_seq_addr snd_seq_addr_t;
+typedef struct snd_seq_ev_volume snd_seq_ev_volume_t;
+typedef struct snd_seq_ev_loop snd_seq_ev_loop_t;
+typedef struct snd_seq_remove_events snd_seq_remove_events_t;
+typedef struct snd_seq_query_subs snd_seq_query_subs_t;
+typedef struct snd_seq_system_info snd_seq_system_info_t;
+typedef struct snd_seq_client_info snd_seq_client_info_t;
+typedef struct snd_seq_queue_info snd_seq_queue_info_t;
+typedef struct snd_seq_queue_status snd_seq_queue_status_t;
+typedef struct snd_seq_queue_tempo snd_seq_queue_tempo_t;
+typedef struct snd_seq_queue_owner snd_seq_queue_owner_t;
+typedef struct snd_seq_queue_timer snd_seq_queue_timer_t;
+typedef struct snd_seq_queue_client snd_seq_queue_client_t;
+typedef struct snd_seq_client_pool snd_seq_client_pool_t;
+typedef struct snd_seq_instr snd_seq_instr_t;
+typedef struct snd_seq_instr_data snd_seq_instr_data_t;
+typedef struct snd_seq_instr_header snd_seq_instr_header_t;
+
+typedef struct snd_seq_user_client user_client_t;
+typedef struct snd_seq_kernel_client kernel_client_t;
+typedef struct snd_seq_client client_t;
+typedef struct snd_seq_queue queue_t;
+
+/* seq_device */
+typedef struct snd_seq_device snd_seq_device_t;
+typedef struct snd_seq_dev_ops snd_seq_dev_ops_t;
+
+/* seq_midi */
+typedef struct snd_midi_event snd_midi_event_t;
+
+/* seq_midi_emul */
+typedef struct snd_midi_channel snd_midi_channel_t;
+typedef struct snd_midi_channel_set snd_midi_channel_set_t;
+typedef struct snd_midi_op snd_midi_op_t;
+
+/* seq_oss */
+typedef struct snd_seq_oss_arg snd_seq_oss_arg_t;
+typedef struct snd_seq_oss_callback snd_seq_oss_callback_t;
+typedef struct snd_seq_oss_reg snd_seq_oss_reg_t;
+
+/* virmidi */
+typedef struct snd_virmidi_dev snd_virmidi_dev_t;
+typedef struct snd_virmidi snd_virmidi_t;
+
+/* seq_instr */
+typedef struct snd_seq_kcluster snd_seq_kcluster_t;
+typedef struct snd_seq_kinstr_ops snd_seq_kinstr_ops_t;
+typedef struct snd_seq_kinstr snd_seq_kinstr_t;
+typedef struct snd_seq_kinstr_list snd_seq_kinstr_list_t;
+
+/* ac97 */
+typedef struct snd_ac97_bus ac97_bus_t;
+typedef struct snd_ac97_bus_ops ac97_bus_ops_t;
+typedef struct snd_ac97_template ac97_template_t;
+typedef struct snd_ac97 ac97_t;
+
+/* opl3/4 */
+typedef struct snd_opl3 opl3_t;
+typedef struct snd_opl4 opl4_t;
+
+/* mpu401 */
+typedef struct snd_mpu401 mpu401_t;
+
+/* i2c */
+typedef struct snd_i2c_device snd_i2c_device_t;
+typedef struct snd_i2c_bus snd_i2c_bus_t;
+
+typedef struct snd_ak4531 ak4531_t;
+
--- include/linux/pid.h.orig 2008-12-17 01:33:29.000000000 +0100
+++ include/linux/pid.h 2008-12-17 01:40:10.000000000 +0100
@@ -111,6 +111,7 @@
*/
extern struct pid *find_pid_ns(int nr, struct pid_namespace *ns);
extern struct pid *find_vpid(int nr);
+extern struct pid *find_pid(int nr);
/*
* Lookup a PID in the hash table, and return with it's count elevated.
--- kernel/pid.c.orig 2008-12-17 01:33:52.000000000 +0100
+++ kernel/pid.c 2008-12-17 01:36:41.000000000 +0100
@@ -309,6 +309,12 @@
}
EXPORT_SYMBOL_GPL(find_vpid);
+struct pid *find_pid(int nr)
+{
+ return find_pid_ns(nr, &init_pid_ns);
+}
+EXPORT_SYMBOL_GPL(find_pid);
+
/*
* attach_pid() must be called with the tasklist_lock write-held.
*/
--- include/linux/sched.h.orig 2008-12-17 00:10:02.000000000 +0100
+++ include/linux/sched.h 2008-12-17 00:10:57.000000000 +0100
@@ -1829,6 +1829,7 @@
extern void force_sig_specific(int, struct task_struct *);
extern int send_sig(int, struct task_struct *, int);
extern void zap_other_threads(struct task_struct *p);
+extern int kill_proc(pid_t, int, int);
extern struct sigqueue *sigqueue_alloc(void);
extern void sigqueue_free(struct sigqueue *);
extern int send_sigqueue(struct sigqueue *, struct task_struct *, int group);
--- kernel/signal.c.orig 2008-12-17 01:43:48.000000000 +0100
+++ kernel/signal.c 2008-12-17 01:29:40.000000000 +0100
@@ -1237,6 +1237,17 @@
}
EXPORT_SYMBOL(kill_pid);
+int
+kill_proc(pid_t pid, int sig, int priv)
+{
+ int ret;
+
+ rcu_read_lock();
+ ret = kill_pid_info(sig, __si_special(priv), find_pid(pid));
+ rcu_read_unlock();
+ return ret;
+}
+
/*
* These functions support sending signals using preallocated sigqueue
* structures. This is needed "because realtime applications cannot
@@ -1929,6 +1940,7 @@
EXPORT_SYMBOL_GPL(dequeue_signal);
EXPORT_SYMBOL(flush_signals);
EXPORT_SYMBOL(force_sig);
+EXPORT_SYMBOL(kill_proc);
EXPORT_SYMBOL(send_sig);
EXPORT_SYMBOL(send_sig_info);
EXPORT_SYMBOL(sigprocmask); |
2. Configure your kernel to use old version of HCI USB driver. My config looks as follows:
Code: | cat .config | grep CONFIG_BT
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m
CONFIG_BT_HCIUSB=m
CONFIG_BT_HCIUSB_SCO=y
# CONFIG_BT_HCIBTUSB is not set
CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=m
# CONFIG_BT_HCIUART_H4 is not set
# CONFIG_BT_HCIUART_BCSP is not set
# CONFIG_BT_HCIUART_LL is not set
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
CONFIG_BT_HCIVHCI=m |
compile your kernel as usual.
3. Add ebuilds to local overlay, emerge them and start the whole running as shown here: http://www.gentoo-wiki.info/Bluetooth_headset#Obsolete_method_2
Last edited by erikderzweite on Tue Jan 13, 2009 7:42 pm; edited 3 times in total |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
Posted: Tue Jan 13, 2009 3:30 pm Post subject: |
|
|
Hi erikderzweite!
your post makes me very happy in this moment, because I was just giving up my bluetooth headset after many unprofitable attempts to connect it to my amd64.
I'm trying to patch my kernel but I heve some little problem doing that.
These are the steps I've done:
I copied your patch into a file (such as /usr/src/snd_headset.patch);
Code: | cd /usr/src/linux
cat ../snd_headset.patch | patch -p1 --dry-run |
and this is the result:
Code: | can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- include/sound/core.h.orig 2008-12-16 23:31:29.000000000 +0100
|+++ include/sound/core.h 2008-12-17 00:04:50.000000000 +0100
--------------------------
File to patch: |
What's going on? I always patch kernel sources in that way, but now it seems to not find such a file that is present!
Thank you. _________________ [HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered |
|
Back to top |
|
|
erikderzweite Tux's lil' helper
Joined: 25 Feb 2006 Posts: 143
|
Posted: Tue Jan 13, 2009 4:51 pm Post subject: |
|
|
fbcyborg, try -p 0 instead of -p 1:
Code: | cd /usr/src/linux
cat ../snd_headset.patch | patch -p0 --dry-run |
|
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
Posted: Tue Jan 13, 2009 4:54 pm Post subject: |
|
|
Thank you very much,
it seems to work now!
Code: | # cat ../snd_headset.patch | patch -p0 --dry-run
patching file include/sound/core.h
Hunk #1 succeeded at 29 with fuzz 1.
Hunk #2 FAILED at 381.
1 out of 2 hunks FAILED -- saving rejects to file include/sound/core.h.rej
patching file include/sound/typedefs.h
patching file include/linux/pid.h
patching file kernel/pid.c
patching file include/linux/sched.h
Hunk #1 succeeded at 1833 (offset 4 lines).
patching file kernel/signal.c
Hunk #2 succeeded at 1940 with fuzz 1.
|
Only one question: I can read "Hunk #2 FAILED at 381.". Is it a problem??? I guess something didn't go in the right way. _________________ [HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered |
|
Back to top |
|
|
erikderzweite Tux's lil' helper
Joined: 25 Feb 2006 Posts: 143
|
Posted: Tue Jan 13, 2009 5:11 pm Post subject: |
|
|
What kernel do you use? The patch is for 2.6.28-gentoo (vanilla should work too though) 2.6.27 is a bit different:
btsco-2.6.27.patch
Code: | --- include/sound/typedefs.h.orig 2008-12-17 00:15:10.000000000 +0100
+++ include/sound/typedefs.h 2008-12-16 23:46:03.000000000 +0100
@@ -0,0 +1,173 @@
+/*
+ * Typedef's for backward compatibility (for out-of-kernel drivers)
+ *
+ * This file will be removed soon in future
+ */
+
+/* core stuff */
+typedef struct snd_card snd_card_t;
+typedef struct snd_device snd_device_t;
+typedef struct snd_device_ops snd_device_ops_t;
+typedef enum snd_card_type snd_card_type_t;
+typedef struct snd_minor snd_minor_t;
+
+/* info */
+typedef struct snd_info_entry snd_info_entry_t;
+typedef struct snd_info_buffer snd_info_buffer_t;
+
+/* control */
+typedef struct snd_ctl_file snd_ctl_file_t;
+typedef struct snd_kcontrol snd_kcontrol_t;
+typedef struct snd_kcontrol_new snd_kcontrol_new_t;
+typedef struct snd_kcontrol_volatile snd_kcontrol_volatile_t;
+typedef struct snd_kctl_event snd_kctl_event_t;
+typedef struct snd_aes_iec958 snd_aes_iec958_t;
+typedef struct snd_ctl_card_info snd_ctl_card_info_t;
+typedef struct snd_ctl_elem_id snd_ctl_elem_id_t;
+typedef struct snd_ctl_elem_list snd_ctl_elem_list_t;
+typedef struct snd_ctl_elem_info snd_ctl_elem_info_t;
+typedef struct snd_ctl_elem_value snd_ctl_elem_value_t;
+typedef struct snd_ctl_event snd_ctl_event_t;
+#if defined(CONFIG_SND_MIXER_OSS) || defined(CONFIG_SND_MIXER_OSS_MODULE)
+typedef struct snd_mixer_oss snd_mixer_oss_t;
+#endif
+
+/* timer */
+typedef struct snd_timer snd_timer_t;
+typedef struct snd_timer_instance snd_timer_instance_t;
+typedef struct snd_timer_id snd_timer_id_t;
+typedef struct snd_timer_ginfo snd_timer_ginfo_t;
+typedef struct snd_timer_gparams snd_timer_gparams_t;
+typedef struct snd_timer_gstatus snd_timer_gstatus_t;
+typedef struct snd_timer_select snd_timer_select_t;
+typedef struct snd_timer_info snd_timer_info_t;
+typedef struct snd_timer_params snd_timer_params_t;
+typedef struct snd_timer_status snd_timer_status_t;
+typedef struct snd_timer_read snd_timer_read_t;
+typedef struct snd_timer_tread snd_timer_tread_t;
+
+/* PCM */
+typedef struct snd_pcm snd_pcm_t;
+typedef struct snd_pcm_str snd_pcm_str_t;
+typedef struct snd_pcm_substream snd_pcm_substream_t;
+typedef struct snd_pcm_info snd_pcm_info_t;
+typedef struct snd_pcm_hw_params snd_pcm_hw_params_t;
+typedef struct snd_pcm_sw_params snd_pcm_sw_params_t;
+typedef struct snd_pcm_channel_info snd_pcm_channel_info_t;
+typedef struct snd_pcm_status snd_pcm_status_t;
+typedef struct snd_pcm_mmap_status snd_pcm_mmap_status_t;
+typedef struct snd_pcm_mmap_control snd_pcm_mmap_control_t;
+typedef struct snd_mask snd_mask_t;
+typedef struct snd_sg_buf snd_pcm_sgbuf_t;
+
+typedef struct snd_interval snd_interval_t;
+typedef struct snd_xferi snd_xferi_t;
+typedef struct snd_xfern snd_xfern_t;
+typedef struct snd_xferv snd_xferv_t;
+
+typedef struct snd_pcm_file snd_pcm_file_t;
+typedef struct snd_pcm_runtime snd_pcm_runtime_t;
+typedef struct snd_pcm_hardware snd_pcm_hardware_t;
+typedef struct snd_pcm_ops snd_pcm_ops_t;
+typedef struct snd_pcm_hw_rule snd_pcm_hw_rule_t;
+typedef struct snd_pcm_hw_constraints snd_pcm_hw_constraints_t;
+typedef struct snd_ratnum ratnum_t;
+typedef struct snd_ratden ratden_t;
+typedef struct snd_pcm_hw_constraint_ratnums snd_pcm_hw_constraint_ratnums_t;
+typedef struct snd_pcm_hw_constraint_ratdens snd_pcm_hw_constraint_ratdens_t;
+typedef struct snd_pcm_hw_constraint_list snd_pcm_hw_constraint_list_t;
+typedef struct snd_pcm_group snd_pcm_group_t;
+typedef struct snd_pcm_notify snd_pcm_notify_t;
+
+/* rawmidi */
+typedef struct snd_rawmidi snd_rawmidi_t;
+typedef struct snd_rawmidi_info snd_rawmidi_info_t;
+typedef struct snd_rawmidi_params snd_rawmidi_params_t;
+typedef struct snd_rawmidi_status snd_rawmidi_status_t;
+typedef struct snd_rawmidi_runtime snd_rawmidi_runtime_t;
+typedef struct snd_rawmidi_substream snd_rawmidi_substream_t;
+typedef struct snd_rawmidi_str snd_rawmidi_str_t;
+typedef struct snd_rawmidi_ops snd_rawmidi_ops_t;
+typedef struct snd_rawmidi_global_ops snd_rawmidi_global_ops_t;
+typedef struct snd_rawmidi_file snd_rawmidi_file_t;
+
+/* hwdep */
+typedef struct snd_hwdep snd_hwdep_t;
+typedef struct snd_hwdep_info snd_hwdep_info_t;
+typedef struct snd_hwdep_dsp_status snd_hwdep_dsp_status_t;
+typedef struct snd_hwdep_dsp_image snd_hwdep_dsp_image_t;
+typedef struct snd_hwdep_ops snd_hwdep_ops_t;
+
+/* sequencer */
+typedef struct snd_seq_port_info snd_seq_port_info_t;
+typedef struct snd_seq_port_subscribe snd_seq_port_subscribe_t;
+typedef struct snd_seq_event snd_seq_event_t;
+typedef struct snd_seq_addr snd_seq_addr_t;
+typedef struct snd_seq_ev_volume snd_seq_ev_volume_t;
+typedef struct snd_seq_ev_loop snd_seq_ev_loop_t;
+typedef struct snd_seq_remove_events snd_seq_remove_events_t;
+typedef struct snd_seq_query_subs snd_seq_query_subs_t;
+typedef struct snd_seq_system_info snd_seq_system_info_t;
+typedef struct snd_seq_client_info snd_seq_client_info_t;
+typedef struct snd_seq_queue_info snd_seq_queue_info_t;
+typedef struct snd_seq_queue_status snd_seq_queue_status_t;
+typedef struct snd_seq_queue_tempo snd_seq_queue_tempo_t;
+typedef struct snd_seq_queue_owner snd_seq_queue_owner_t;
+typedef struct snd_seq_queue_timer snd_seq_queue_timer_t;
+typedef struct snd_seq_queue_client snd_seq_queue_client_t;
+typedef struct snd_seq_client_pool snd_seq_client_pool_t;
+typedef struct snd_seq_instr snd_seq_instr_t;
+typedef struct snd_seq_instr_data snd_seq_instr_data_t;
+typedef struct snd_seq_instr_header snd_seq_instr_header_t;
+
+typedef struct snd_seq_user_client user_client_t;
+typedef struct snd_seq_kernel_client kernel_client_t;
+typedef struct snd_seq_client client_t;
+typedef struct snd_seq_queue queue_t;
+
+/* seq_device */
+typedef struct snd_seq_device snd_seq_device_t;
+typedef struct snd_seq_dev_ops snd_seq_dev_ops_t;
+
+/* seq_midi */
+typedef struct snd_midi_event snd_midi_event_t;
+
+/* seq_midi_emul */
+typedef struct snd_midi_channel snd_midi_channel_t;
+typedef struct snd_midi_channel_set snd_midi_channel_set_t;
+typedef struct snd_midi_op snd_midi_op_t;
+
+/* seq_oss */
+typedef struct snd_seq_oss_arg snd_seq_oss_arg_t;
+typedef struct snd_seq_oss_callback snd_seq_oss_callback_t;
+typedef struct snd_seq_oss_reg snd_seq_oss_reg_t;
+
+/* virmidi */
+typedef struct snd_virmidi_dev snd_virmidi_dev_t;
+typedef struct snd_virmidi snd_virmidi_t;
+
+/* seq_instr */
+typedef struct snd_seq_kcluster snd_seq_kcluster_t;
+typedef struct snd_seq_kinstr_ops snd_seq_kinstr_ops_t;
+typedef struct snd_seq_kinstr snd_seq_kinstr_t;
+typedef struct snd_seq_kinstr_list snd_seq_kinstr_list_t;
+
+/* ac97 */
+typedef struct snd_ac97_bus ac97_bus_t;
+typedef struct snd_ac97_bus_ops ac97_bus_ops_t;
+typedef struct snd_ac97_template ac97_template_t;
+typedef struct snd_ac97 ac97_t;
+
+/* opl3/4 */
+typedef struct snd_opl3 opl3_t;
+typedef struct snd_opl4 opl4_t;
+
+/* mpu401 */
+typedef struct snd_mpu401 mpu401_t;
+
+/* i2c */
+typedef struct snd_i2c_device snd_i2c_device_t;
+typedef struct snd_i2c_bus snd_i2c_bus_t;
+
+typedef struct snd_ak4531 ak4531_t;
+
--- include/linux/pid.h.orig 2008-12-17 01:33:29.000000000 +0100
+++ include/linux/pid.h 2008-12-17 01:40:10.000000000 +0100
@@ -111,6 +111,7 @@
*/
extern struct pid *find_pid_ns(int nr, struct pid_namespace *ns);
extern struct pid *find_vpid(int nr);
+extern struct pid *find_pid(int nr);
/*
* Lookup a PID in the hash table, and return with it's count elevated.
--- kernel/pid.c.orig 2008-12-17 01:33:52.000000000 +0100
+++ kernel/pid.c 2008-12-17 01:36:41.000000000 +0100
@@ -309,6 +309,12 @@
}
EXPORT_SYMBOL_GPL(find_vpid);
+struct pid *find_pid(int nr)
+{
+ return find_pid_ns(nr, &init_pid_ns);
+}
+EXPORT_SYMBOL_GPL(find_pid);
+
/*
* attach_pid() must be called with the tasklist_lock write-held.
*/
--- include/linux/sched.h.orig 2008-12-17 00:10:02.000000000 +0100
+++ include/linux/sched.h 2008-12-17 00:10:57.000000000 +0100
@@ -1829,6 +1829,7 @@
extern void force_sig_specific(int, struct task_struct *);
extern int send_sig(int, struct task_struct *, int);
extern void zap_other_threads(struct task_struct *p);
+extern int kill_proc(pid_t, int, int);
extern struct sigqueue *sigqueue_alloc(void);
extern void sigqueue_free(struct sigqueue *);
extern int send_sigqueue(struct sigqueue *, struct task_struct *, int group);
--- kernel/signal.c.orig 2008-12-17 01:43:48.000000000 +0100
+++ kernel/signal.c 2008-12-17 01:29:40.000000000 +0100
@@ -1237,6 +1237,17 @@
}
EXPORT_SYMBOL(kill_pid);
+int
+kill_proc(pid_t pid, int sig, int priv)
+{
+ int ret;
+
+ rcu_read_lock();
+ ret = kill_pid_info(sig, __si_special(priv), find_pid(pid));
+ rcu_read_unlock();
+ return ret;
+}
+
/*
* These functions support sending signals using preallocated sigqueue
* structures. This is needed "because realtime applications cannot
@@ -1929,6 +1940,7 @@
EXPORT_SYMBOL_GPL(dequeue_signal);
EXPORT_SYMBOL(flush_signals);
EXPORT_SYMBOL(force_sig);
+EXPORT_SYMBOL(kill_proc);
EXPORT_SYMBOL(send_sig);
EXPORT_SYMBOL(send_sig_info);
EXPORT_SYMBOL(sigprocmask);
--- include/sound/core.h.orig 2008-12-17 02:14:18.000000000 +0100
+++ include/sound/core.h 2008-12-17 02:17:25.000000000 +0100
@@ -28,6 +28,7 @@
#include <linux/rwsem.h> /* struct rw_semaphore */
#include <linux/pm.h> /* pm_message_t */
#include <linux/device.h>
+#include "typedefs.h"
/* number of supported soundcards */
#ifdef CONFIG_SND_DYNAMIC_MINORS
|
I have just tested the first patch on newly installed 2.6.28-tuxonice kernel
Code: |
cd /usr/src/linux/
cat ../btsco-2.6.28.patch | patch -p0 --dry-run
patching file include/sound/core.h
patching file include/sound/typedefs.h
patching file include/linux/pid.h
patching file kernel/pid.c
patching file include/linux/sched.h
Hunk #1 succeeded at 1833 (offset 4 lines).
patching file kernel/signal.c |
Offset is not a problem
IIRC, the patch provided at http://www.gentoo-wiki.info/Bluetooth_headset#Obsolete_method_2 forks for kernels up to 2.6.26
P.S. should perhabs add a wiki entry some day...
P.P.S is there a way to put longer code in a compact codebox with scrollbars? |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
|
Back to top |
|
|
erikderzweite Tux's lil' helper
Joined: 25 Feb 2006 Posts: 143
|
Posted: Tue Jan 13, 2009 7:25 pm Post subject: |
|
|
there must be some formatting error then: I have made a clean install of gentoo-sources-2.6.28 and my patch works fine. If I copypaste the code from my topic, I get all kind of errors. Will try to figure that out.
EDIT: just apply -l or --ignore-whitespace to the patch command
Code: | # cat ../snd_headset.patch | patch -p0 --dry-run --ignore-whitespace
patching file include/sound/core.h
patching file include/sound/typedefs.h
patching file include/linux/pid.h
patching file kernel/pid.c
patching file include/linux/sched.h
Hunk #1 succeeded at 1833 (offset 4 lines).
patching file kernel/signal.c |
I that doesn't work, try remerging the kernel. |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
|
Back to top |
|
|
erikderzweite Tux's lil' helper
Joined: 25 Feb 2006 Posts: 143
|
Posted: Wed Jan 14, 2009 1:17 am Post subject: |
|
|
I use custom script which runs btsco -v BD:AD:DR:ES:SS and turns my bluetooth dongle off after I turn the headset off (I hate that blinking ).
Code: | #!/bin/bash
sudo hciconfig hci0 up
btsco -v XX:XX:XX:XX:XX:XX
#It might be not necessary to disconnect explicitly but it won't do any harm
sudo hcitool dc XX:XX:XX:XX:XX:XX
sudo hciconfig hci0 down |
I launch the script in command watch plasmoid on kde4 (good to have some verbosity). Headset script didn't work for me too, but I don't really need it as I don't mind making two clicks to connect to my headset.
I have bluez-libs and bluez-utils 3.36. You have to use passkey-agent with these version though to manage your pins. Alternatively you can use some GUI to authenticate to your headset. Bluez-gnome 0.28 did the job for me once. kdebluetooth-1.0_beta8 should work too. |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
Posted: Wed Jan 14, 2009 9:25 am Post subject: |
|
|
Thanks a lot erikderzweite. I appreciate your support very much.
I don't understand why, I'm not able to hear anything from my BT Headset even though it connects to my USB Bluetooth dongle without any complication.
KDEBluetooth allowed me to always authenticate the headset, as you told me in your last post.
Once it is connected, I can hear a low noise coming from the built in speaker when I go into the Skype Options->Sound Devices, but I'm not able to hear some sound using skype for calling.
I also tried to do as follows: Code: | mplayer -ao alsa:device=hw=1.0 /usr/share/sounds/k3b_success1.wav |
but nothing happens.
_________________ [HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered |
|
Back to top |
|
|
erikderzweite Tux's lil' helper
Joined: 25 Feb 2006 Posts: 143
|
Posted: Wed Jan 14, 2009 10:38 am Post subject: |
|
|
- Check if you have snd-bt-sco module loaded.
- Secondly, check your /etc/bluetooth/hcid.conf. You'll need followings there (not a complete file, only relevant options):
Code: | autoinit yes;
security auto;
pairing multi;
passkey "0000";
# Default link mode
lm accept;
|
passkey is optional, I don't know if it is actually working but it does no harm (0000 is default pin for my headset)
Restart bluetooth if you needed to make some changes
start "btsco -v XX:XX:XX:XX:XX:XX" from console and tell me the output. In my case it looks like this:
Code: | $ btsco -v XX:XX:XX:XX:XX:XX
btsco v0.41
Device is 1:0
Voice setting: 0x0060
RFCOMM channel 2 connected |
Change XX:XX:XX:XX:XX:XX to your headset's mac address, of course.
If you try to play sound then, you should see
Code: | i/o needed: connecting sco...
connected SCO channel
Done setting sco fd
|
Your mplayer code works for me. Check if Bluetooth SCO is registered as card №1 though:
Code: | $ cat /proc/asound/cards
0 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0xfc400000 irq 22
1 [Headset ]: Bluetooth SCO - BT Headset
BT Headset 1 |
|
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
Posted: Wed Jan 14, 2009 11:04 am Post subject: |
|
|
Many thanks erikderzweite,
here's my /etc/bluetooth/hcid.conf:
Code: | options {
autoinit yes;
security auto;
pairing multi;
pin_helper /usr/lib/kdebluetooth/kbluepin
}
device {
name "BlueZ at %h";
class 0x100100;
iscan disable; pscan disable;
lm accept;
lp rswitch,hold,sniff,park;
auth enable;
encrypt enable;
} |
I didn't set passkey because I use the pin_helper which requires me the pin (it happened only once, because I clicked on Always authorize).
Anyway, it associates without any problem.
Now, I switch on my headset.
I can hear a beep (it always happen when it associates to my cell phone) and the kbluemon icon becomes blue. So the headset has been associated, actually I can read the tool tip text saying Connected to Nokia BH-900.
I start btsco.
Code: | btsco -v XX:XX:XX:XX:XX:XX
btsco v0.41
Device is 1:0
Voice setting: 0x0060
<--- blank spaces for few seconds...
Can't connect RFCOMM channel: Operation now in progress
|
Now, once again:
Code: | btsco -v XX:XX:XX:XX:XX:XX
btsco v0.41
Device is 1:0
Voice setting: 0x0060
RFCOMM channel 2 connected
|
I wonder why, it doesn't work at the first time.
If i press some button on the headset...
Code: | recieved AT+CKPD=200
recieved AT+CKPD=200
recieved AT+CKPD=200 |
It seems all OK now.
Let's now play a sound. Opening another shell, this is what it happens:
Code: | mplayer -ao alsa:device=hw=1.0 /usr/share/sounds/k3b_success1.wav
MPlayer dev-SVN-r28058-4.1.2 (C) 2000-2008 MPlayer Team
CPU: AMD Athlon(tm) 64 Processor 3000+ (Family: 15, Model: 4, Stepping: 8)
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1
Compiled for x86 CPU x86 with extensions: MMX MMX2 3DNow 3DNowEx SSE SSE2
Playing /usr/share/sounds/k3b_success1.wav.
Detected Audio file only!
==========================================================================
Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 8000 Hz, 1 ch, u8, 64.0 kbit/100.00% (ratio: 8000->8000)
Audio codec: [pcm] afm: pcm (Uncompressed PCM)
==========================================================================
[AO_ALSA] The u8 format isn't supported by hardware, trying the default one.
AO: [alsa] 8000Hz 1ch s16le (2 bytes per sample)
Video: no video!!!
Starting reproducing...
A: -0.0 (unknown) of 5.0 (05.0) 0.0%
MPlayer interrupted by signal 2 in module: play_audio
MPlayer interrupted by signal 2 in module: play_audio
|
Maybe the problem is here:
[AO_ALSA] The u8 format isn't supported by hardware
So, this is what happens in the previous shell (the one I used to start btsco):
Code: | speaker volume: 0 mic volume: 0
i/o needed: connecting sco...
Can't connect SCO audio channel
: Connection timed out
speaker volume: 0 mic volume: 0 |
And this is what the /proc/asound/cards shows:
Code: | # cat /proc/asound/cards
0 [Live ]: EMU10K1 - SBLive 5.1 [SB0060]
SBLive 5.1 [SB0060] (rev.7, serial:0x80611102) at 0xb800, irq 17
1 [Headset ]: Bluetooth SCO - BT Headset
BT Headset 1
|
_________________ [HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered |
|
Back to top |
|
|
erikderzweite Tux's lil' helper
Joined: 25 Feb 2006 Posts: 143
|
Posted: Wed Jan 14, 2009 11:17 am Post subject: |
|
|
What versions of bluez-libs, bluez-utils and kdebluetooth do you use?
Just a wild guess in case you are using bluez 2: — disable kbluetooth and try making clean pairing — put your headset in pairing mode and issue followings:
Code: | rm /var/lib/bluetooth/ -r
/etc/init.d/bluetooth restart
hcitool cc XX:XX:XX:XX:XX && hcitool auth XX:XX:XX:XX:XX |
Your headset should pair.
Then try btsco again (don't start kbluetooth).
I use 3.36 version of bluez, both libs and utils. Version 2.25 worked for me too, IIRC. |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
|
Back to top |
|
|
erikderzweite Tux's lil' helper
Joined: 25 Feb 2006 Posts: 143
|
Posted: Wed Jan 14, 2009 2:56 pm Post subject: |
|
|
Quote: | Maybe the problem is here:
[AO_ALSA] The u8 format isn't supported by hardware |
No, it's not the problem, I see the same when I play the wav.
Quote: | I wonder why, it doesn't work at the first time. |
Not an actual problem either, don't know why, but when it connects, it does it properly.
Code: | i/o needed: connecting sco...
Can't connect SCO audio channel
: Connection timed out |
That is the problem. I fail to see why it is happening though. Had similar behavior in the past when the dongle didn't get proper authorization...
Let us try followings (you'll need 3 terminals) and my /etc/bluetooth/hcid.conf
Code: | options {
autoinit yes;
security auto;
pairing multi;
passkey "0000";
}
device {
name "BlueZ (%d)";
class 0x000100;
iscan enable; pscan enable;
lm accept;
lp rswitch,hold,sniff,park;
} |
- Be sure to exit kbluetooth, kbluemon and similar.
- Unplug your dongle
- terminal 1: #rm /var/lib/bluetooth/ -r
- put your headset in pairing mode
- plug the dongle back
- terminal 1: #passkey-agent --default 0000
- terminal 2: $btsco -v 00:0B:2E:70:51:BE
(expected output: terminal1: "Passkey request for device 00:0B:2E:70:51:BE", dongle pairs successfully, terminal2 show normal connection log)
- terminal 3: $mplayer -ao alsa:device=hw=1.0 /usr/share/sounds/k3b_success1.wav
(expected result: you should hear it now)
If that doesn't help, provide the output of hciconfig -a, maybe the dongle doesn't support audio in the first place |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
Posted: Wed Jan 14, 2009 3:26 pm Post subject: |
|
|
All went as you wrote. Furthermore, at this time, I could connect at the first attempt using btsco.
All seems ok up to the last but one step.
When I try to listen for a wav or mp3 file, I can't hear anything. Only a low noise can be listened.
This is the output of the hciconfig -a:
Code: | hci0: Type: USB
BD Address: XX:XX:XX:XX:XX:XX ACL MTU: 120:20 SCO MTU: 0:0
UP RUNNING PSCAN
RX bytes:1433416 acl:28 sco:28061 events:84 errors:0
TX bytes:745 acl:28 sco:0 commands:34 errors:0
Features: 0xff 0xff 0x05 0x38 0x18 0x18 0x00 0x00
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy:
Link mode: SLAVE ACCEPT
Name: ''
Class: 0x000000
Service Classes: Unspecified
Device Class: Miscellaneous,
HCI Ver: 1.2 (0x2) HCI Rev: 0x0 LMP Ver: 1.2 (0x2) LMP Subver: 0x757
Manufacturer: Silicon Wave (11) |
_________________ [HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered |
|
Back to top |
|
|
erikderzweite Tux's lil' helper
Joined: 25 Feb 2006 Posts: 143
|
Posted: Wed Jan 14, 2009 3:42 pm Post subject: |
|
|
fbcyborg wrote: | All went as you wrote. Furthermore, at this time, I could connect at the first attempt using btsco.
All seems ok up to the last but one step. |
You still can't connect to SCO audio channel?
Code: | hci0: Type: USB
BD Address: XX:XX:XX:XX:XX:XX ACL MTU: 120:20 SCO MTU: 0:0 |
Not good: SCO MTU should be more like 64:8... Try setting hciconfig hci0 scomtu 64:8 ACL MTU is 310:10 in my case, can be set with aclmtu option, but unlikely to matter.
The name is empty? Shouldn't be a problem though as you can pair the dongle
Code: | Manufacturer: Silicon Wave (11) |
Cambridge Silicon Radio (10) is known to work particulary well. I haven't seen a Silicon Wave dongle before...
If setting scomtu doesn't solve the problem, you maybe should consider buying a new dongle, sorry I use Hama Nano Bluetooth USB Adapter. |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
Posted: Wed Jan 14, 2009 4:21 pm Post subject: |
|
|
erikderzweite wrote: |
You still can't connect to SCO audio channel? | It seems to be not possible. After few seconds I get: Code: | i/o needed: connecting sco...
Can't connect SCO audio channel
: Connection timed out |
But once I got the following messages:
Code: | speaker volume: 0 mic volume: 0
i/o needed: connecting sco...
connected SCO channel
Done setting sco fd
|
Nothing happened. I couldn't be able to listen any audio file.
erikderzweite wrote: |
Code: | hci0: Type: USB
BD Address: XX:XX:XX:XX:XX:XX ACL MTU: 120:20 SCO MTU: 0:0 |
Not good: SCO MTU should be more like 64:8... Try setting hciconfig hci0 scomtu 64:8 ACL MTU is 310:10 in my case, can be set with aclmtu option, but unlikely to matter.
The name is empty? Shouldn't be a problem though as you can pair the dongle
| I tried to set up all necessary and here is the output of hciconfig -a hci0:
Code: | hci0: Type: USB
BD Address: 00:11:F6:05:3A:88 ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING PSCAN
RX bytes:1199 acl:0 sco:0 events:23 errors:0
TX bytes:331 acl:0 sco:0 commands:23 errors:0
Features: 0xff 0xff 0x05 0x38 0x18 0x18 0x00 0x00
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy:
Link mode: SLAVE ACCEPT
Name: 'USB-BT'
Class: 0x000000
Service Classes: Unspecified
Device Class: Miscellaneous,
HCI Ver: 1.2 (0x2) HCI Rev: 0x0 LMP Ver: 1.2 (0x2) LMP Subver: 0x757
Manufacturer: Silicon Wave (11) |
I don't know how to set that values persistent. I don't want to manually set up values as it follows:
Code: | hciconfig hci0 aclmtu 310:10
hciconfig hci0 scomtu 64:8
hciconfig hci0 name USB-BT |
erikderzweite wrote: |
Code: | Manufacturer: Silicon Wave (11) |
Cambridge Silicon Radio (10) is known to work particulary well. I haven't seen a Silicon Wave dongle before...
| Me too! That dongle is a gift. erikderzweite wrote: |
If setting scomtu doesn't solve the problem, you maybe should consider buying a new dongle, sorry I use Hama Nano Bluetooth USB Adapter. |
No problem!
Maybe I will buy one as soon as possible!
Thanks a lot. _________________ [HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered |
|
Back to top |
|
|
erikderzweite Tux's lil' helper
Joined: 25 Feb 2006 Posts: 143
|
Posted: Fri Jan 23, 2009 12:19 pm Post subject: Patch for btsco to use with recent kernels |
|
|
In addition to proposed solution to use btsco as described here: https://forums.gentoo.org/viewtopic-p-5384984.html#5384984
It is possible to use btsco with newer kernels and new HCI USB driver. You just have to edit ebuild accordingly:
Code: | --- btsco-kernel-0.41.ebuild 2008-07-18 02:23:43.000000000 +0200
+++ btsco-kernel-0.41-r1.ebuild 2009-01-23 12:36:35.463663192 +0100
@@ -29,13 +29,13 @@
fi
# The wording below is checked for linux-2.6.14.4
- CONFIG_CHECK="BT_SCO BT_HCIUSB_SCO SND_HWDEP"
+ CONFIG_CHECK="BT_SCO BT_HCIBTUSB SND_HWDEP"
ERROR_BT_SCO="BT_SCO is not set! \n\
Please select 'L2CAP protocol support' and 'SCO links support' under \n\
Networking|Bluetooth subsystem support|SCO links support"
- ERROR_BT_HCIUSB_SCO="BT_HCIUSB_SCO is not set! \n\
+ ERROR_BT_HCIBTUSB="BT_HCIBTUSB is not set! \n\
Please select 'HCI USB driver' under \n\
- Networking|Bluetooth subsystem support|Bluetooth device drivers|SCO (voice) support"
+ Networking|Bluetooth subsystem support|Bluetooth device drivers"
ERROR_SND_HWDEP="SND_HWDEP is not set! \n\
Please select a config like SND_USB_AUDIO or SND_EMU10K1; \n\
look under Device drivers|Sound|ALSA|PCI" |
That way you will be able to use btsco with new HCI USB in-kernel driver. Just tested it on linux-2.6.28-tunonice-r1, works fine. |
|
Back to top |
|
|
Havin_it Veteran
Joined: 17 Jul 2005 Posts: 1247 Location: Edinburgh, UK
|
Posted: Sun May 03, 2009 2:37 am Post subject: Re: Patch for btsco to use with recent kernels |
|
|
erikderzweite wrote: | In addition to proposed solution to use btsco as described here: https://forums.gentoo.org/viewtopic-p-5384984.html#5384984
It is possible to use btsco with newer kernels and new HCI USB driver. You just have to edit ebuild accordingly:
Code: | --- btsco-kernel-0.41.ebuild 2008-07-18 02:23:43.000000000 +0200
+++ btsco-kernel-0.41-r1.ebuild 2009-01-23 12:36:35.463663192 +0100
@@ -29,13 +29,13 @@
fi
# The wording below is checked for linux-2.6.14.4
- CONFIG_CHECK="BT_SCO BT_HCIUSB_SCO SND_HWDEP"
+ CONFIG_CHECK="BT_SCO BT_HCIBTUSB SND_HWDEP"
ERROR_BT_SCO="BT_SCO is not set! \n\
Please select 'L2CAP protocol support' and 'SCO links support' under \n\
Networking|Bluetooth subsystem support|SCO links support"
- ERROR_BT_HCIUSB_SCO="BT_HCIUSB_SCO is not set! \n\
+ ERROR_BT_HCIBTUSB="BT_HCIBTUSB is not set! \n\
Please select 'HCI USB driver' under \n\
- Networking|Bluetooth subsystem support|Bluetooth device drivers|SCO (voice) support"
+ Networking|Bluetooth subsystem support|Bluetooth device drivers"
ERROR_SND_HWDEP="SND_HWDEP is not set! \n\
Please select a config like SND_USB_AUDIO or SND_EMU10K1; \n\
look under Device drivers|Sound|ALSA|PCI" |
That way you will be able to use btsco with new HCI USB in-kernel driver. Just tested it on linux-2.6.28-tunonice-r1, works fine. |
Is it still necessary to use the kernel patch in this case? |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|