ALT Linux hardware support
 help / color / mirror / Atom feed
* [Hardware] Linux bluetooth audio gateway
@ 2011-06-21 13:48 Михаил Плужников
  2011-06-22  4:57 ` Anton Farygin
  0 siblings, 1 reply; 3+ messages in thread
From: Михаил Плужников @ 2011-06-21 13:48 UTC (permalink / raw)
  To: hardware

[-- Attachment #1: Type: Text/Plain, Size: 753 bytes --]

Приветствую.
Имеется задачка, сделать из стационарного компьютера bluetooth-наушники, что бы можно было 
транслировать на него аудио поток с плеера по blutooth.

Пока, после экспериментов, не удалось продвинуться дальше эмуляции HSP на PC, т.е. плеер 
видит компьютер как обычный комп, а не handset устройство с пофилем a2dp.

Может у кого то была такая задача и её решил?
Помогие, советом или куда копать.

В аттаче конфиги из /etc/bluetooth

[-- Attachment #2: audio.conf --]
[-- Type: text/plain, Size: 1489 bytes --]

# Configuration file for the audio service

# This section contains options which are not specific to any
# particular interface
[General]

Enable=true

# Switch to master role for incoming connections (defaults to true)
Master=true

# If we want to disable support for specific services
# Defaults to supporting all implemented services
#Disable=Control,Source

# SCO routing. Either PCM or HCI (in which case audio is routed to/from ALSA)
# Defaults to HCI
SCORouting=PCM

# Automatically connect both A2DP and HFP/HSP profiles for incoming
# connections. Some headsets that support both profiles will only connect the
# other one automatically so the default setting of true is usually a good
# idea.
AutoConnect=true

# Headset interface specific options (i.e. options which affect how the audio
# service interacts with remote headset devices)
[Headset]

# Set to true to support HFP, false means only HSP is supported
# Defaults to true
HFP=true

# Maximum number of connected HSP/HFP devices per adapter. Defaults to 1
MaxConnected=1

# Set to true to enable use of fast connectable mode (faster page scanning)
# for HFP when incomming call starts. Default settings are restored after
# call is answered or rejected. Page scan interval is much shorter and page
# scan type changed to interlaced. Such allows faster connection initiated
# by a headset.
FastConnectable=false

# Just an example of potential config options for the other interfaces
[A2DP]
SBCSources=1
MPEG12Sources=0

[-- Attachment #3: main.conf --]
[-- Type: text/plain, Size: 2422 bytes --]

[General]

# List of plugins that should not be loaded on bluetoothd startup
#DisablePlugins = network,input

# Default adaper name
# %h - substituted for hostname
# %d - substituted for adapter id
Name = %h-%d

# Default device class. Only the major and minor device class bits are
# considered.
Class = 0xff0408

# How long to stay in discoverable mode before going back to non-discoverable
# The value is in seconds. Default is 180, i.e. 3 minutes.
# 0 = disable timer, i.e. stay discoverable forever
DiscoverableTimeout = 0

# How long to stay in pairable mode before going back to non-discoverable
# The value is in seconds. Default is 0.
# 0 = disable timer, i.e. stay pairable forever
PairableTimeout = 0

# Use some other page timeout than the controller default one
# which is 16384 (10 seconds).
PageTimeout = 8192

# Discover scheduler interval used in Adapter.DiscoverDevices
# The value is in seconds. Defaults is 30.
DiscoverSchedulerInterval = 30

# What value should be assumed for the adapter Powered property when
# SetProperty(Powered, ...) hasn't been called yet. Defaults to true
InitiallyPowered = true

# Remember the previously stored Powered state when initializing adapters
RememberPowered = true

# Use vendor, product and version information for DID profile support.
# The values are separated by ":" and VID, PID and version.
#DeviceID = 1234:5678:abcd

# Do reverse service discovery for previously unknown devices that connect to
# us. This option is really only needed for qualification since the BITE tester
# doesn't like us doing reverse SDP for some test cases (though there could in
# theory be other useful purposes for this too). Defaults to true.
ReverseServiceDiscovery = true

# Enable name resolving after inquiry. Set it to 'false' if you don't need
# remote devices name and want shorter discovery cycle. Defaults to 'true'.
NameResolving = true

# Enable runtime persistency of debug link keys. Default is false which
# makes debug link keys valid only for the duration of the connection
# that they were created for.
DebugKeys = false

# Enable Low Energy support if the dongle supports. Default is false.
# Enable/Disable interleave discovery and attribute server over LE.
EnableLE = false

# Enable the GATT Attribute Server. Default is false, because it is only
# useful for testing. Attribute server is not enabled over LE if EnableLE
# is false.
AttributeServer = false

[-- Attachment #4: rfcomm.conf --]
[-- Type: text/plain, Size: 277 bytes --]

#
# RFCOMM configuration file.
#

rfcomm0 {
	# Automatically bind the device at startup
	bind yes;
#
#	# Bluetooth address of the device
	device 00:23:76:E5:F6:4E;
#
#	# RFCOMM channel for the connection
	channel	1;
#
#	# Description of the connection
	comment "HTC Desire";
}

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Hardware] Linux bluetooth audio gateway
  2011-06-21 13:48 [Hardware] Linux bluetooth audio gateway Михаил Плужников
@ 2011-06-22  4:57 ` Anton Farygin
  2011-06-23 15:14   ` Михаил Плужников
  0 siblings, 1 reply; 3+ messages in thread
From: Anton Farygin @ 2011-06-22  4:57 UTC (permalink / raw)
  To: hardware

Миша, есть такая ссылка, где собраны разные методы:
http://ubuntuforums.org/showthread.php?t=1464189

Если вдруг получится, опиши пожалуйста как сделал - тоже интересно.


21.06.2011 17:48, Михаил Плужников пишет:
> Приветствую.
> Имеется задачка, сделать из стационарного компьютера bluetooth-наушники, что бы можно было
> транслировать на него аудио поток с плеера по blutooth.
>
> Пока, после экспериментов, не удалось продвинуться дальше эмуляции HSP на PC, т.е. плеер
> видит компьютер как обычный комп, а не handset устройство с пофилем a2dp.
>
> Может у кого то была такая задача и её решил?
> Помогие, советом или куда копать.
>
> В аттаче конфиги из /etc/bluetooth
>
>
>
> _______________________________________________
> Hardware mailing list
> Hardware@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/hardware




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Hardware] Linux bluetooth audio gateway
  2011-06-22  4:57 ` Anton Farygin
@ 2011-06-23 15:14   ` Михаил Плужников
  0 siblings, 0 replies; 3+ messages in thread
From: Михаил Плужников @ 2011-06-23 15:14 UTC (permalink / raw)
  To: hardware

В сообщении от 22 июня 2011 08:57:16 автор Anton Farygin написал:
> Миша, есть такая ссылка, где собраны разные методы:
> http://ubuntuforums.org/showthread.php?t=1464189
> 
> Если вдруг получится, опиши пожалуйста как сделал - тоже интересно.
> 
> 21.06.2011 17:48, Михаил Плужников пишет:
> > Приветствую.
> > Имеется задачка, сделать из стационарного компьютера bluetooth-наушники,
> > что бы можно было транслировать на него аудио поток с плеера по
> > blutooth.
> > 
> > Пока, после экспериментов, не удалось продвинуться дальше эмуляции HSP на
> > PC, т.е. плеер видит компьютер как обычный комп, а не handset устройство
> > с пофилем a2dp.
> > 
> > Может у кого то была такая задача и её решил?
> > Помогие, советом или куда копать.
> > 
> > В аттаче конфиги из /etc/bluetooth
> > 
Сделал.
Твоя ссылка помогла, но для себя так и не прояснил, как это всё хозяйство работает.

Оказалось, что наше ядро/bluez "не понимает" некоторые bluetooth-usb донглы т.е. проброс 
audio на них не работает, а в 39-м ядре такие устройства вообще не работают.  
Следовательно, для начала надо найти "правильный" рабочий bluetooth донгл.

Сначала, я полагал, что необходимо эмулировать компьютер для других устройств как 
гарнитуру или мультимедиа устройство, игрался с DeviceID и DeviceClass,  прочитав как их 
необходимо генерировать. Использовал sdptool для регистрации профилей на устройстве. 
В результате компьютер начал видеться как наушники, но не работало всё равно.

После прочтения ссылки, решил попробовать их рецепт.
Вообще у нас много чего уже сделано, достаточно поставить pulseaudio, pulseaudio-bluez, 
bluez-alsa, прописать в /etc/bluetooth/audio.conf Enable=Source (с Enable=Sink не 
получилось) и перезапустить сервис bluetoothd. 

Теперь плеер должен видеть компьютер как мультимедиа устройство, с AudioGateway сервисом, 
можно спайрить устройства и подключить плеер. Однако, есть проблема, pilseaudio не 
пробрасывает новый audio source на стандартный audio sink (alsa-вывод на звуковую карту), 
что необходимо сделать руками:
1. Ищем наш bluetooth source: pacmd list source | grep bluez_source, затем находим и 
копируем строчку вида "bluez_source.XX_XX_XX_XX_XX_XX"
2. Тоже самое, только sink: pacmd list sink | grep sink, находим и скопируем строчку вида 
"alsa_output.pci-0000_00_05.0.analog-stereo", т.е. наш используемый для вывода audio sink.
3. Соединяем потоки: pacmd load module-loop source=bluez_source.XX_XX_XX_XX_XX_XX 
sink=alsa_output.pci-0000_00_05.0.analog-stereo
4. Можно слушать музыку

Если кто знает как заставить pulseaudio автоматом роутить новый source на выход - 
объясните.
Можно не использовать pulseaudio, только тогда придётся самому прописывать линки в 
asoundrc.




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-06-23 15:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-21 13:48 [Hardware] Linux bluetooth audio gateway Михаил Плужников
2011-06-22  4:57 ` Anton Farygin
2011-06-23 15:14   ` Михаил Плужников

ALT Linux hardware support

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/hardware/0 hardware/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 hardware hardware/ http://lore.altlinux.org/hardware \
		hardware@altlinux.ru hardware@lists.altlinux.org hardware@lists.altlinux.ru hardware@lists.altlinux.com hardware@altlinux.org
	public-inbox-index hardware

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.hardware


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git