Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
bluetooth headset [05.05 updated !!!]
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2, 3 ... , 9, 10, 11  Next  
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks
View previous topic :: View next topic  
Author Message
dmvianna
l33t
l33t


Joined: 22 Mar 2004
Posts: 742
Location: Down Underland

PostPosted: Mon Jan 14, 2008 8:59 pm    Post subject: Reply with quote

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! :wink:
_________________
Proprietary is theft. Pierre-Joseph Proudhon, if he had a chance
Powered by a MacBook Pro
Back to top
View user's profile Send private message
ReDirEct__
Guru
Guru


Joined: 16 Mar 2006
Posts: 300
Location: Nola (NA) - Italy

PostPosted: Tue Jan 15, 2008 12:22 am    Post subject: Reply with quote

i thought about sharing my experience... but also i would to have a completely working headset with mic :D... 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
View user's profile Send private message
nutznboltz
Apprentice
Apprentice


Joined: 23 Apr 2004
Posts: 239

PostPosted: Fri Jul 04, 2008 1:08 pm    Post subject: Reply with quote

dmvianna wrote:
Please share your experience with us if you have any success.


Finding this statement really helped me:
Note: you will not need bluetooth-alsa, plugz, btsco or the like for audio to work. They are obsolete.
Back to top
View user's profile Send private message
Dusdan
n00b
n00b


Joined: 10 Mar 2008
Posts: 37

PostPosted: Tue Aug 19, 2008 12:36 pm    Post subject: Reply with quote

Hi everybody, I realized this is the right place for my post:

https://forums.gentoo.org/viewtopic-t-704681.html

Do you have any ideas?
Back to top
View user's profile Send private message
erikderzweite
Tux's lil' helper
Tux's lil' helper


Joined: 25 Feb 2006
Posts: 143

PostPosted: Tue Jan 13, 2009 2:32 pm    Post subject: It is still possible to use a btsco even with recent kernel! Reply with quote

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
View user's profile Send private message
fbcyborg
Advocate
Advocate


Joined: 16 Oct 2005
Posts: 3056
Location: ROMA

PostPosted: Tue Jan 13, 2009 3:30 pm    Post subject: Reply with quote

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
View user's profile Send private message
erikderzweite
Tux's lil' helper
Tux's lil' helper


Joined: 25 Feb 2006
Posts: 143

PostPosted: Tue Jan 13, 2009 4:51 pm    Post subject: Reply with quote

fbcyborg, try -p 0 instead of -p 1:
Code:
cd /usr/src/linux
 cat ../snd_headset.patch | patch -p0 --dry-run
Back to top
View user's profile Send private message
fbcyborg
Advocate
Advocate


Joined: 16 Oct 2005
Posts: 3056
Location: ROMA

PostPosted: Tue Jan 13, 2009 4:54 pm    Post subject: Reply with quote

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
View user's profile Send private message
erikderzweite
Tux's lil' helper
Tux's lil' helper


Joined: 25 Feb 2006
Posts: 143

PostPosted: Tue Jan 13, 2009 5:11 pm    Post subject: Reply with quote

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
View user's profile Send private message
fbcyborg
Advocate
Advocate


Joined: 16 Oct 2005
Posts: 3056
Location: ROMA

PostPosted: Tue Jan 13, 2009 6:11 pm    Post subject: Reply with quote

Reply to P.P.S.: I don't think so.

Thank you. I use gentoo-sources-2.6.28.
_________________
[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
View user's profile Send private message
erikderzweite
Tux's lil' helper
Tux's lil' helper


Joined: 25 Feb 2006
Posts: 143

PostPosted: Tue Jan 13, 2009 7:25 pm    Post subject: Reply with quote

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
View user's profile Send private message
fbcyborg
Advocate
Advocate


Joined: 16 Oct 2005
Posts: 3056
Location: ROMA

PostPosted: Tue Jan 13, 2009 8:20 pm    Post subject: Reply with quote

It perfectly works now! 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
View user's profile Send private message
fbcyborg
Advocate
Advocate


Joined: 16 Oct 2005
Posts: 3056
Location: ROMA

PostPosted: Tue Jan 13, 2009 11:12 pm    Post subject: Reply with quote

One more question.
I emerged btsco and btsco-kernel successfully.
What method do you use/prefer, to connect your bluetooth headset? I tried to use /etc/init.d/headset init script but it seems to not work.
I also tried to manually pair my headset using btsco, and it's OK even though I didn't a mplayer test to hear some sound.

Thank you for your support.
_________________
[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
View user's profile Send private message
erikderzweite
Tux's lil' helper
Tux's lil' helper


Joined: 25 Feb 2006
Posts: 143

PostPosted: Wed Jan 14, 2009 1:17 am    Post subject: Reply with quote

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
View user's profile Send private message
fbcyborg
Advocate
Advocate


Joined: 16 Oct 2005
Posts: 3056
Location: ROMA

PostPosted: Wed Jan 14, 2009 9:25 am    Post subject: Reply with quote

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
View user's profile Send private message
erikderzweite
Tux's lil' helper
Tux's lil' helper


Joined: 25 Feb 2006
Posts: 143

PostPosted: Wed Jan 14, 2009 10:38 am    Post subject: Reply with quote

- 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
View user's profile Send private message
fbcyborg
Advocate
Advocate


Joined: 16 Oct 2005
Posts: 3056
Location: ROMA

PostPosted: Wed Jan 14, 2009 11:04 am    Post subject: Reply with quote

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
View user's profile Send private message
erikderzweite
Tux's lil' helper
Tux's lil' helper


Joined: 25 Feb 2006
Posts: 143

PostPosted: Wed Jan 14, 2009 11:17 am    Post subject: Reply with quote

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
View user's profile Send private message
fbcyborg
Advocate
Advocate


Joined: 16 Oct 2005
Posts: 3056
Location: ROMA

PostPosted: Wed Jan 14, 2009 12:23 pm    Post subject: Reply with quote

I use bluez and bluez-lib 3.36, and kdebluetooth-1.0_beta8.

I tried to do the same steps described before, closing kbluemon but nothing new.
_________________
[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
View user's profile Send private message
erikderzweite
Tux's lil' helper
Tux's lil' helper


Joined: 25 Feb 2006
Posts: 143

PostPosted: Wed Jan 14, 2009 2:56 pm    Post subject: Reply with quote

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
View user's profile Send private message
fbcyborg
Advocate
Advocate


Joined: 16 Oct 2005
Posts: 3056
Location: ROMA

PostPosted: Wed Jan 14, 2009 3:26 pm    Post subject: Reply with quote

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
View user's profile Send private message
erikderzweite
Tux's lil' helper
Tux's lil' helper


Joined: 25 Feb 2006
Posts: 143

PostPosted: Wed Jan 14, 2009 3:42 pm    Post subject: Reply with quote

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.

Code:
Name: ''

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
View user's profile Send private message
fbcyborg
Advocate
Advocate


Joined: 16 Oct 2005
Posts: 3056
Location: ROMA

PostPosted: Wed Jan 14, 2009 4:21 pm    Post subject: Reply with quote

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.

Code:
Name: ''

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
View user's profile Send private message
erikderzweite
Tux's lil' helper
Tux's lil' helper


Joined: 25 Feb 2006
Posts: 143

PostPosted: Fri Jan 23, 2009 12:19 pm    Post subject: Patch for btsco to use with recent kernels Reply with quote

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
View user's profile Send private message
Havin_it
Veteran
Veteran


Joined: 17 Jul 2005
Posts: 1247
Location: Edinburgh, UK

PostPosted: Sun May 03, 2009 2:37 am    Post subject: Re: Patch for btsco to use with recent kernels Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks All times are GMT
Goto page Previous  1, 2, 3 ... , 9, 10, 11  Next
Page 10 of 11

 
Jump to:  
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