LINUX.ORG.RU

Bluetooch или я не тормоз - я медленный газ


0

0

установил bluez-3.7. Запускаю /etc/rc.d/rc.bluetooch - начинает моргать лампочка на блютусе. hcitool scan телефон находит.
А вот чего дальше делать? В том смысле как отправить и забрать с него файло. пробую так

obexftp --bluetooth 00:16:B8:EC:7A:8B -p /mnt/mp3/test.mp3

в ответ получаю

Browsing 00:16:B8:EC:7A:8B ...
Channel: 7
No custom transport
Connecting...bt: -94
failed: connect
Still trying to connect
Connecting...bt: -94
failed: connect
Still trying to connect
Connecting...bt: -94
failed: connect
Still trying to connect

встает вопрос как отправить файл на телефон? ну и как при необходимости забрать с него что-нибудь? 


И еще: на автомате udev не создается /dev/rfcomm. Как его заставить это делать? Ну или на крайний случай если не udev'ом его создавать, то  mknod чего /dev/rfcomm0 ?

Slackware 11.0, 2.6.17.13, телефон SonyEricsson w300i
★★★

hcitool cc 00:16:B8:EC:7A:8B

rfcomm_scan 00:16:B8:EC:7A:8B #скажет открытые rfcomm каланы

obexftp --bluetooth 00:16:B8:EC:7A:8B --channel $OPEN_RFCOMM_CHANNEL

as33 ★☆☆
()
Ответ на: комментарий от as33

делаю по этой доке все. Ток под свой телефон.
http://www.linux.ru/articles/bluetooth2/
# hciconfig -a
hci0:   Type: USB
        BD Address: 00:11:67:5C:3D:10 ACL MTU: 678:8 SCO MTU: 48:10
        UP RUNNING PSCAN
        RX bytes:5971 acl:59 sco:0 events:161 errors:0
        TX bytes:1366 acl:51 sco:0 commands:59 errors:0
        Features: 0xbf 0xfe 0x8d 0x78 0x08 0x18 0x00 0x00
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy:
        Link mode: SLAVE ACCEPT
        Name: 'ISSCBTA'
        Class: 0x000000
        Service Classes: Unspecified
        Device Class: Miscellaneous,
        HCI Ver: 1.2 (0x2) HCI Rev: 0x1fe LMP Ver: 1.2 (0x2) LMP Subver: 0x1fe
        Manufacturer: Integrated System Solution Corp. (57)


# hcitool scan
Scanning ...
        00:16:B8:EC:7A:8B       W300i


# sdptool browse 00:16:B8:EC:7A:8B
Browsing 00:16:B8:EC:7A:8B ...
Service Description: Sony Ericsson W300
Service RecHandle: 0x10000
Service Class ID List:
  "PnP Information" (0x1200)

Service Name: OBEX SyncML Client
Service RecHandle: 0x10001
Service Class ID List:
  UUID 128: 00000002-0000-1000-8000-0002ee000002
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 1
  "OBEX" (0x0008)
дальше не стал копировать - много сильно - 8 каналов

rfcomm bind 0 00:16:B8:EC:7A:8B 1
rfcomm bind 1 00:16:B8:EC:7A:8B 2
rfcomm bind 2 00:16:B8:EC:7A:8B 3
rfcomm bind 3 00:16:B8:EC:7A:8B 4
rfcomm bind 4 00:16:B8:EC:7A:8B 5
rfcomm bind 5 00:16:B8:EC:7A:8B 6
rfcomm bind 6 00:16:B8:EC:7A:8B 7
rfcomm bind 7 00:16:B8:EC:7A:8B 8

далее пытаюсь подцепиться на с minicom /dev/rfcom2 - у меня на этом порту находится сериал порт. телефон спрашивает "неизвестное устройство запрашивает соединение", а сам миником заявляет: не могу открыть /dev/rfcomm2: No such file or directory. /dev/rfcomm2 - присутствует и права на него 666. 
rfcomm_scan у меня отсутствует. 
# rfcomm
rfcomm0: 00:16:B8:EC:7A:8B channel 1 clean
rfcomm1: 00:16:B8:EC:7A:8B channel 2 clean
rfcomm2: 00:16:B8:EC:7A:8B channel 3 closed
rfcomm3: 00:16:B8:EC:7A:8B channel 4 clean
rfcomm4: 00:16:B8:EC:7A:8B channel 5 clean
rfcomm5: 00:16:B8:EC:7A:8B channel 6 clean
rfcomm6: 00:16:B8:EC:7A:8B channel 7 clean
rfcomm7: 00:16:B8:EC:7A:8B channel 8 clean

причем на третьем канале closed появилось только после попытки зайти minicom'ом.

делаю 
rfcomm connect /dev/rfcomm2 00:16:B8:EC:7A:8B
телефон спрашивает добавить или нет, соглашаюсь, пишу пароль, и в ответ получаю на телефоне что код не верен, а на консоли

Can't connect RFCOMM socket: Connection refused

в /etc/bluetooth/hcid.conf не изменял ничего, кроме passkey "BlueZ"; на passkey "0000";
создал /etc/bluetooth/pin
в него пробовал и просто 0000 писать и PIN:0000 - ничего не помогло
/etc/bluetooth/rfcomm.conf
---------------------------
rfcomm0 {
        bind yes;
        device 00:16:B8:EC:7A:8B;
        channel 1;
        comment "w300i OBEX SyncML Client";
}

rfcomm1 {
        bind yes;
        device 00:16:B8:EC:7A:8B;
        channel 2;
        comment "w300i Dial-up Networking";
}

rfcomm2 {
        bind yes;
        device 00:16:B8:EC:7A:8B;
        channel 3;
        comment "w300i Serial Port";
}

rfcomm3 {
        bind yes;
        device 00:16:B8:EC:7A:8B;
        channel 4;
        comment "w300i HF Voice Gateway";
}

rfcomm4 {
        bind yes;
        device 00:16:B8:EC:7A:8B;
        channel 5;
        comment "w300i HS Voice Gateway";
}

rfcomm5 {
        bind yes;
        device 00:16:B8:EC:7A:8B;
        channel 6;
        comment "w300i OBEX Object Push";
}

rfcomm6 {
        bind yes;
        device 00:16:B8:EC:7A:8B;
        channel 7;
        comment "w300i OBEX File Transfer";


rfcomm7 {
        bind yes;
        device 00:16:B8:EC:7A:8B;
        channel 8;
        comment "w300i OBEX IrMC Sync Server";
}

deys ★★★
() автор топика
Ответ на: комментарий от deys

У меня такая проблема решилась с помощью файлов add-paskey.c и register-passkeys. К сожалению не помню где брал:( вроде с дебиана.

anonymous
()
Ответ на: комментарий от anonymous

частично проблема решилась сборкой из исходников 
bluez-libs-3.9
bluez-firmware-1.2 
bluez-hcidump-1.33 
bluez-utils-3.9
до этого ставил пакет с linuxpackages.net. Сделал поиск с самого телефона - нашелся комп. Сказал "добавить" тел спросил код и добавил.
Теперь получаю следующее

# obexftp -b -t /dev/rfcomm6 -p /mnt/hdb1/3.jpg
Scanning ...
Using   00:16:B8:EC:7A:8B       W300i
Failed to connect to SDP server: Operation already in progress

rfcomm пробовал все - картина одна. Что еще подкрутить для отправки файлов?

из настроек rfcomm.conf ничего не менял. Оставил как в одном из предыдущих постов. В настройках hcid.conf заменил security на auto и passkey на "0000"
Запускаю сервис так:

# cat rc.bluetooth
#!/bin/sh
# Start/stop/restart the bluetooth services:
ISDBUS_RUNNING=`ps -A | grep dbus-daemon | cut -d '-' -f 2`
if [ "$ISDBUS_RUNNING" = "daemon" ]; then
if [ "$1" = "stop" ]; then
  echo "Stopping bluetooth services..."
  killall hcid > /dev/null
  killall sdpd > /dev/null
elif [ "$1" = "restart" ]; then
  echo "Restarting bluetooth services..."
  killall hcid > /dev/null
  killall sdpd > /dev/null
  sleep 1
  /usr/local/sbin/hcid
else # assume $1 = start:
  echo "Starting bluetooth, configuration from /etc/bluetooth/hcid.conf"
  /usr/local/sbin/hcid

sdptool add --channel=1 SYNCML
sdptool add --channel=2 DUN
sdptool add --channel=3 SP
sdptool add --channel=4 HF
sdptool add --channel=5 HS
sdptool add --channel=6 OPUSH
sdptool add --channel=7 FTP
#sdptool add --channel=8 ISYNC
# OBEX IrMC Sync Server ? ^^^ ?

rfcomm bind 0 00:16:B8:EC:7A:8B 1
rfcomm bind 1 00:16:B8:EC:7A:8B 2
rfcomm bind 2 00:16:B8:EC:7A:8B 3
rfcomm bind 3 00:16:B8:EC:7A:8B 4
rfcomm bind 4 00:16:B8:EC:7A:8B 5
rfcomm bind 5 00:16:B8:EC:7A:8B 6
rfcomm bind 6 00:16:B8:EC:7A:8B 7
rfcomm bind 7 00:16:B8:EC:7A:8B 8

/usr/local/sbin/sdpd


fi
else
  echo "Trying to initialize DBUS"
  if [ -x /etc/rc.d/rc.messagebus -a -x /var/run/dbus/pid ]; then
        rm -f /var/run/dbus/pid
        /etc/rc.d/rc.messagebus restart
  elif [ -x /usr/bin/dbus-daemon ]; then
        /usr/bin/dbus-daemon --system
        echo "Initialized dbus, restarting bluetooth services"
        /etc/rc.d/rc.bluetooth
  fi
fi

deys ★★★
() автор топика
Ответ на: комментарий от deys

в КДЕ заработало все после установки kdebluetooth. А с консолью больше не стал копаться.

deys ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.