(ɥ) 2008-09-29 Seiichirou Babasaki 
 bluez-gnome trust()ˤĤơ
#------------------------------------------------------------------

bluez-gnome-0.15ʹߤɬפˤʤtrust()ȤȤ˴ϢƳƵ
³դƤξ򵭤Ƥޤ

 root ¤ǺȤޤ
 HIDˤĤƤ /etc/bluetooh/hcid.conf ⤴Ϥ
   ʤϤǤ

#------------------------------------------------------------------
(¦ۥȥץ¦)BluetoothǥХưޤɬפǤ
 ǧ
   # hciconfig 
 ġĤǤܤ --help 
 ưưˤ hciconfig (hci0 up)Ȥޤ

 ʤǤϡǡκƵư
  #  /etc/init.d/bluetooth restart
 ġĤǡ¦Bluetoothץưޤ

BluetoothǥХ(ۥȥץ)ǧ줿֤ǡʲ
 ֵȯ->֥ͥȡ ->ǧڤ修ѡ->֥ץꥱ󤫤ѡ
   ΰϢκȤؤȿʤǤ

#------------------------------------------------------------------
 ξҲ 
#------------------------------------------------------------------
 HIDǥХ(ޥ䥭ܡɤξ)

ޥξϡ³ǧ뤿ˤ xorg.conf USBޥ
  Ʊ /dev/input/mice ǥХΥޥɬפǤɲäǤɤǤ
  κݤ˥ǥХȤƤ /dev/input/mice ˤƤгǧ䤹
  ƳޤС/dev/input/mouse#ʥС# ǽǤ
    ŸǤʤɤ input#ֹ# ѤäƤޤ礬¿Τǡ
    /dev/input/mice ǤʤȤޤʤ
    udevǧ /dev/input/btmouse0 Τ褦˥󥯤
    ɤΤǤޤ̤ãǤ

  Τᡢ˽вäƤ USB³WACOM֥åȤ
      BluetoothޥξΩ(VineLinuxǤ)񤷤
     USB³WACOM֥å  /dev/input/mice Ѥ
       ꤬ xorg.conf ¸ߤȸư(VineLinux4.2)

Ǥ offˤʤäƤhidͭˤޤ
  (input.service ΤΤ autostart=trueˤʤäƤޤ)
  /etc/sysconfig/bluetooth  #HID2HCI_ENABLE=true #ä
  Ȥ򳰤ͭ(true)ˤƤ
  root  /etc/init.d/bluetooth restart 뤫ƥ
  ΤΤ reboot ͭޤ

ǥХΥܥ(Ƽ pairingresetconnectȤ̾ǸƤФޤ)
  ѤƥǥХȯǽˤޥɤ¹Ԥޤ
  (ʲǤ root ǹԤäƤޤϥ桼Ǥǽˤʤä
   褦ǤΤǡ桼ǻƤߤƤˤäơ
    root ǤʤФʤʤΤäꤷޤΤǷ̤ǻȤʬ
   )

  # hcitool scan

  ġ ȯȡɥ쥹(00:00:00:AA:AA:AAν)֤̾ޤ
  (κȤ¾μεǤ֤ⷫޤΤǽפǤ)

  HIDϤΥɥ쥹ȤäƥͥȤޤ(ɥ쥹֤ͤ)

  # hidd --connect 00:00:00:AA:AA:AA

  Ԥȥå֤ޤȥץץȤ֤Ǥ
  ǡ
  # hidd
  ġĤȡϤȸ³ΥǥХФޤΤǳǧǤޤ

  ǧڤפʥǥХϼʤ˿ʤǤ

  ǧڤɬפʥǥХPINɤϤɬפǤ
    餫 bluez-gnome ˴ޤޤ bluetooth-applet 
    ưƤȤ褤Ǥ礦ɥޥ͡㡼
    Gnomeʤ顢ǽ餫鵯ưƤϤǤ

  ǧڤϤ뤿ˤϡΥޥɤȤޤ

    # hcitool auth 00:00:00:AA:AA:AA

    ġĤϤȡưŪ˥ݥåץåסޤϥץå
  ǤΤǵޤåϲ̤Ф
  PINɤϤǤޤ

  PINɤˤ
    A.סġPINϤפʵǧڤΤΤ
              ʤƤ褤
    B.ġĥޥ˥奢ʤɤ˵ܤ줿PINɤϡ
              ޤPINɤ¢Ƥ뤬̵
              ǤȤ³Ȥפ⤢롣
    C.ѡġĻѼԤꤹPINɤ򵡴PC¦ǻȤΡ
              ʲʸϤ򻲾ȡ

  и§ξġġ㤨Хޥ˥奢
  ǧڤPINɤѤΤǡɽPINɤ
    ϤƤ
  Ȥפ BTܡɤξ硢PINɤ
  ܡ¦ꤵƤ櫓Ǥ̵餷Ǥ
  (Windows)³ץबƤ褦ʤΤǤ
  (ä˥ܡ)

  LinuxǤϡ㤨мΤ褦˺Ȥʤޤ
   (1)ǧڤ򳫻  bluetooth-applet 
   (2)ǤդPINɤϡ 
   (3)֤BTܡ¦ƱPINɤϤEnter
   (4)bluetooth-appletǾ֤ǧ
    ġĤȤˡǧڤޤ(2ǧ)
    ˡϡ
      ֥ɤη(֤4)פ
      ʸ(֤)
      ġĤǤ
    Ĵǽʤ顢Ĵ٤Ƥޤ礦

#------------------------------------------------------------------
(trust)ͭˤ

  ơ³ϽƤƥޥʤѤǤޤΤޤޤǤ
  ³ڤƤޤޤޤ³³ˤʤäƤޤ

  (trust)ȤȤɬפˤʤޤ
  κȤbluez-gnomeΥС0.15ʹ*ʤСץåȤ
  ƤӽФ̤ǡåҤȤĤǽȤǤ

  ̩ˤbluez-gnome 0.9 ǽ褿ȤߤΤ褦Ǥ

  bluetooth-appretưåơפƤӽФ
  ΰоݤǡֿ(trusts)פ¹Ԥ
  ()դƿѺѤߤˤʤޤ
  οѤϡΡǧڡס³סֿѡפλΥѥ᡼
  ĤȤ¸ޤ
  (Ūˤ /var/lib/ʲ D-bus  HAL طޤ)
  ³׾֤Ѳޤֿѡפȡǧڡפꤷޤޤ
  ʤޤ
  
#------------------------------------------------------------------
ޥ͡㡼 blueman (python)
  ³ D-bus åԻȤɬפäꤷ
  ʤݤǤ
  python ư blueman ϤʤԤǤޥ͡㡼Ǥ
  bluez  Τ䤳ơʤʤñ˥ӥɤǤޤ
  졢ߤǤ

#------------------------------------------------------------------
audioץե A2DP,AVRCP,HSP,HFP

  ƥȤǤΤ A2DP Ǥ
  Bluez trac ˤޤ
  http://wiki.bluez.org/wiki/HOWTO/AudioDevices
  ɡƤƤޤǽޤΤǡ̤񤤤
  ȻפޤޤTrac ˤ Python ץȤ
  ʤΤǡ褯狼ޤ󡣻פڤäƤΤޤư顢
  BluetoothΥޥüƤޤä򤫤ޤ

  HIDץե bluez-gnome 󶡤 bluetooth-applet 
  bluez-utils 󶡤 hidd (--connect) ǳդƤޤ
  Ǥ audioץե ξϸǤϥޥɤ D-bus
   áʤ³Ǥޤ
  ¿ΥץեбƤޥ͡㡼 kdebluetooth Ǥ
  ޤ­ưʳˤޤ

  Ķ¸ʤΤ⤷ޤ󤬡ǥץ졼䡼桼٥
    ư뤿ʤΤ³ root ǤϤʤ桼ǹԤɬפޤ
    (1ǳǧ)

  ǥȤˤϥӥưƤɬפޤ
  root /etc/bluetooth/audio.service  Autostart ͤ
  Autostart=true ѹƤޤθ ǡƵư
  ɬפޤ
  Ū˻Ȥʤ顢bluetooth-applet 饵ӥ˥å
  running ˤޤ

  (1)ץΥɥ쥹
     ϥޥʤɤƱǤ

   $  hcitool scan

     Ȥ򥹥ࡼ˿ʤ뤿ˤϰʲΥޥɤѰդƤ
     ɤǤ礦

  (2)~/.asoundrc 

    pcm.bluetooth {
        type bluetooth
        device "XX:XX:XX:XX:XX:XX"
          #optional, connects to specific device instead the default one
        profile "auto"
          #optional, supported profiles are: auto, hifi and voice 
       }
     ǡɥ쥹ʬ (1) Ĵ٤ Bluetoothɥ쥹ޤ
     (ǥХʣξϡɤΤäʬޤ)

  (3)桼 D-Bus åȤޤ
     ǽ bus-id ɽ

     $ dbus-send --system --print-reply --dest=org.bluez /org/bluez org.bluez.Manager.ActivateService string:audio

     bus-id ͤȤɽޤ
     ()
      method return sender=:1.64 -> dest=:1.77
        string ":1.66" <-- ͤǤ

  (4)bus-id  ǥХ (CreateDevice)
     ԤϤƤɤǤͤͿΤ2ꡣ
     $ dbus-send --system --type=method_call --print-reply \
      --dest=":X.Y" \  <-- (3)ɽid(Ǥ 1.66 )
      /org/bluez/audio org.bluez.audio.Manager.CreateDevice string:00:11:22:33:44:55
      <--  (2) Ʊ (1) ΥǥХɥ쥹ޤ

    ǥХѥͤȤɽޤ      
    ()
    method return sender=:1.66 -> dest=:1.78
       string "/org/bluez/audio/device0" <-- ͤǤ

  (5)ǥХѥ³ޤ (Connect)
     ƱԤϤƤɤǤͤƱ2ꡣ
     $ dbus-send --system --type=method_call --print-reply \
      --dest=":X.Y" \   <-- (3)ɽid(Ǥ 1.66 )
      "device_object_path" org.bluez.audio.Sink.Connect
       (4) ͤΥѥǤ(Ǥ "/org/bluez/audio/device0" )

     ǧ(auth)ɬפʵ bluetooth-applet ǤPINɤ
     Ϥޤ

     (3)(5)ήȤʤΤǥ륹ץȤǤ⤤뤫⤷ޤ
       Bluez  Trac Ǥ python ΥץȤҲ𤵤Ƥޤɬ׾郎
       ʤΤǤΤޤޤǤưʤ褦Ǥ


#------------------------------------------------------------------
ƥǥץ쥤䡼

ƥȤ˻Ȥäƥå Bluetooth-1.2(10m)ʤεǤϡإåɥե
  ѻˤƱ Bluetooth ޥȤȲڤޤ2.0 
  2.1 ʤǤϤɤǤ礦ƥȤФϤäꤹȻפޤ

Ǥ VineLinux Ǹݤץ졼䡼Ҳ𤷤ޤ

audacious
  ꥦɥФơǥ꥿֤Ρ֥ǥƥפALSA
  ץ饰򤷤֤ǡOutput Plugin Preferences(ϥץ饰)
  åǥХ꥿֤ǡǥǥХˡbluetoothפ
  Ϥ ok ¸Ƥ
  options -> preferences -> Audio -> Current Output Plugin -> ALSA
  Output Plugin Preferences -> Device Settings -> audio device: "bluetooth"

xmms
  options->preferences->Output Plugin->Configure: "bluetooth"

beep-media-player
  preferences -> Plugins -> Output -> Select ALSA -> Preferences
  -> Audio device: "bluetooth" -> Advanced -> disable mmap mode

mplayer
  ¹ԻΥǥϥץ (-ao) bluetooth ꤹǤ
   BluetoothإåɥեȤʤ顢桼ե
  ڤǤ礦( ~/.mplayer/config ʤ)

  mplayer -ao alsa:device=bluetooth  *³ƺե̾¾Υץ*


 banshee  rhythmbox  totem ʤ
  (ʸ)
  to route the sound to bluetooth:
    gconftool -t string -s /system/gstreamer/0.10/default/musicaudiosink "alsasink device=bluetooth"

  to route the sound to normal speakers:
    gconftool -t string -s /system/gstreamer/0.10/default/musicaudiosink "autoaudiosink"

 pulse audio ĩ魯ˤ (PluseAudioSeedޤ)
  ưΤƤޤ󤬡ư褦Ǥ
  pulse audio ʣβޤȤưΤưƤʤɤǤ

  (1) ~/.asoundrc :ѹޤ
  pcm.headset {
       type bluetooth
       device "XX:XX:XX:XX:XX:XX"
       profile "voice" <--  voiceˡ
     }

  (2)ưư
  pactl load-module module-alsa-sink device=headset
  pactl load-module module-alsa-source device=headset


