Bluetooth СЧМСЕФУС ВЕУРТПЧПДОПК ФЕИОПМПЗЙЕК ДМС УПЪДБОЙС РЕТУПОБМШОЩИ УЕФЕК ОБ ТБУУФПСОЙЙ ОЕ ВПМЕЕ 10 НЕФТПЧ, ТБВПФБАЭЕК ОБ ЮБУФПФЕ 2.4 ззГ, ЛПФПТБС ОЕ РПДМЕЦЙФ МЙГЕОЪЙТПЧБОЙА. пВЩЮОП ФБЛЙЕ УЕФЙ ЖПТНЙТХАФУС ЙЪ РПТФБФЙЧОЩИ ХУФТПКУФЧ, ФБЛЙИ, ЛБЛ УПФПЧЩЕ ФЕМЕЖПОЩ, лрл Й МЬРФПРЩ. ч ПФМЙЮЙЕ ПФ Wi-Fi, ДТХЗПК РПРХМСТОПК ВЕУРТПЧПДОПК ФЕИОПМПЗЙЙ, Bluetooth РТЕДПУФБЧМСЕФ ВПМЕЕ ЧЩУПЛЙК ХТПЧЕОШ УЕТЧЙУБ, ОБРТЙНЕТ, ЖБКМПЧЩЕ УЕТЧЕТЩ ФЙРБ FTP, РЕТЕДБЮХ ЖБКМПЧ, ЗПМПУБ, ЬНХМСГЙА РПУМЕДПЧБФЕМШОПЗП РПТФБ Й ДТХЗЙЕ.
уФЕЛ РТПФПЛПМПЧ Bluetooth ЧП FreeBSD ТЕБМЙЪПЧБО ОБ ПУОПЧЕ ФЕИОПМПЗЙЙ Netgraph (ПВТБФЙФЕУШ Л netgraph(4)). ыЙТПЛЙК УРЕЛФТ USB-ХУФТПКУФЧ Bluetooth РПДДЕТЦЙЧБЕФУС ДТБКЧЕТПН ng_ubt(4). хУФТПКУФЧБ Bluetooth ОБ ПУОПЧЕ ОБВПТБ НЙЛТПУИЕН Broadcom BCM2033 РПДДЕТЦЙЧБЕФУС ДТБКЧЕТПН ng_bt3c(4). хУФТПКУФЧБ Bluetooth, ТБВПФБАЭЙЕ ЮЕТЕЪ РПУМЕДПЧБФЕМШОЩЕ Й UART-РПТФЩ, РПДДЕТЦЙЧБАФУС ДТБКЧЕТБНЙ sio(4), ng_h4(4) Й hcseriald(8). ч ЬФПН ТБЪДЕМЕ ПРЙУЩЧБЕФУС ЙУРПМШЪПЧБОЙЕ Bluetooth-ХУФТПКУФЧ, РПДЛМАЮБЕНЩИ ЮЕТЕЪ USB.
рП ХНПМЮБОЙА ДТБКЧЕТЩ ХУФТПКУФЧ Bluetooth РПУФБЧМСАФУС Ч ЧЙДЕ НПДХМЕК СДТБ. рЕТЕД РПДЛМАЮЕОЙЕН ХУФТПКУФЧБ ЧБН ОЕПВИПДЙНП РПДЗТХЪЙФШ ДТБКЧЕТ Ч СДТП:
# kldload ng_ubt
еУМЙ Bluetooth-ХУФТПКУФЧП Ч НПНЕОФ ЪБРХУЛБ УЙУФЕНЩ РПДЛМАЮЕОП, ФП ЪБЗТХЦБКФЕ НПДХМШ ЙЪ ЖБКМБ /boot/loader.conf:
ng_ubt_load="YES"
рПДЛМАЮЙФЕ ЧБЫЕ USB-ХУФТПКУФЧП. оБ ЛПОУПМЙ (ЙМЙ Ч ЦХТОБМЕ syslog) РПСЧЙФУС РТЙНЕТОП ФБЛПЕ УППВЭЕОЙЕ:
ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2 ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2 ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3, wMaxPacketSize=49, nframes=6, buffer size=294
ъБНЕЮБОЙЕ: уФЕЛ РТПФПЛПМПЧ Bluetooth ЪБРХУЛБЕФУС ЧТХЮОХА ЧП FreeBSD 6.0, Й ЧП FreeBSD 5.X, РЕТЕД 5.5. ьФП ДЕМБЕФУС БЧФПНБФЙЮЕУЛЙ ЮЕТЕЪ devd(8) ЧП FreeBSD 5.5, 6.1 Й Ч ВПМЕЕ ОПЧЩИ ЧЕТУЙСИ.
уЛПРЙТХКФЕ ЖБКМ /usr/share/examples/netgraph/bluetooth/rc.bluetooth Ч ЛБЛПЕ-ОЙВХДШ РПДИПДСЭЕЕ НЕУФП, ОБРТЙНЕТ, Ч ЖБКМ /etc/rc.bluetooth. ьФПФ УЛТЙРФ ЙУРПМШЪХЕФУС ДМС ЪБРХУЛБ Й ПУФБОПЧЛЙ ТБВПФЩ Bluetooth-УФЕЛБ. рЕТЕД ПФЛМАЮЕОЙЕН ХУФТПКУФЧБ ТЕЛПНЕОДХЕФУС ПУФБОПЧЙФШ ЕЗП ТБВПФЩ, ИПФС (ПВЩЮОП) ЬФП ОЕ ЖБФБМШОП. рТЙ ЪБРХУЛЕ УФЕЛБ ЧЩ РПМХЮЙФЕ УППВЭЕОЙС, РПДПВОЩЕ УМЕДХАЭЙН:
# /etc/rc.bluetooth start ubt0 BD_ADDR: 00:02:72:00:d4:1a Features: 0xff 0xff 0xf 00 00 00 00 00 <3-Slot> <5-Slot> <Encryption> <Slot offset> <Timing accuracy> <Switch> <Hold mode> <Sniff mode> <Park mode> <RSSI> <Channel quality> <SCO link> <HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD> <Paging scheme> <Power control> <Transparent SCO data> Max. ACL packet size: 192 bytes Number of ACL packets: 8 Max. SCO packet size: 64 bytes Number of SCO packets: 8
Host Controller Interface (HCI) РТЕДПУФБЧМСЕФ ЙОФЕТЖЕКУ ДМС ХРТБЧМЕОЙС ЛПОФТПММЕТПН РЕТЕДБФЮЙЛБ Й НЕОЕДЦЕТПН УПЕДЙОЕОЙК, Б ФБЛЦЕ ДПУФХР Л ДБООЩН П УПУФПСОЙЙ ПВПТХДПЧБОЙС Й ЕЗП ХРТБЧМСАЭЙН ТЕЗЙУФТБН. ьФПФ ЙОФЕТЖЕКУ РТЕДПУФБЧМСЕФ ХОЙЖЙГЙТПЧБООЩК НЕФПД ДПУФХРБ Л РЕТЕДБАЭЙН ЧПЪНПЦОПУФСН Bluetooth. хТПЧЕОШ HCI ОБ ХРТБЧМСАЭЕК НБЫЙОЕ ПВНЕОЙЧБЕФУС ДБООЩНЙ Й ЛПНБОДБНЙ У НЙЛТПЛПДПН HCI Ч ПВПТХДПЧБОЙЙ Bluetooth. дТБКЧЕТ ДМС Host Controller Transport Layer (ФП ЕУФШ ЖЙЪЙЮЕУЛПК ЫЙОЩ) РТЕДПУФБЧМСЕФ ПВПЙН УМПСН HCI ЧПЪНПЦОПУФШ ПВНЕОЙЧБФШУС ДБООЩНЙ ДТХЗ У ДТХЗПН.
дМС ПДОПЗП Bluetooth-ХУФТПКУФЧБ УПЪДБЈФУС ПДЙО ХЪЕМ Netgraph ФЙРБ hci. HCI-ХЪЕМ ПВЩЮОП РПДЛМАЮБЕФУС Л ХЪМХ ДТБКЧЕТБ ХУФТПКУФЧБ Bluetooth (ЧИПДСЭЙК РПФПЛ) Й Л ХЪМХ L2CAP (ЙУИПДСЭЙК РПФПЛ). чУЕ ПРЕТБГЙЙ У HCI ДПМЦОЩ ЧЩРПМОСФШУС ОБ ХЪМЕ HCI, ОП ОЕ ОБ ХЪМЕ ДТБКЧЕТБ ХУФТПКУФЧБ. ч ЛБЮЕУФЧЕ ЙНЕОЙ РП ХНПМЮБОЙА ДМС ХЪМБ HCI ЙУРПМШЪХЕФУС ''devicehci''. дПРПМОЙФЕМШОЩЕ РПДТПВОПУФЙ НПЦОП ОБКФЙ ОБ УРТБЧПЮОПК УФТБОЙГЕ ng_hci(4).
пДОПК ЙЪ УБНПК ЮБУФП ЧЩРПМОСЕНПК ЪБДБЮ СЧМСЕФУС ПВОБТХЦЕОЙЕ Bluetooth-ХУФТПКУФЧ Ч ТБДЙХУЕ RF-ДПУФХРОПУФЙ. ьФБ ПРЕТБГЙС ОБЪЩЧБЕФУС ПРТПУПН (inquiry). пРТПУ Й ДТХЗЙЕ ПРЕТБГЙЙ, УЧСЪБООЩЕ У HCI, ЧЩРПМОСАФУС РТЙ РПНПЭЙ ХФЙМЙФЩ hccontrol(8). рТЙНЕТ ОЙЦЕ РПЛБЪЩЧБЕФ, ЛБЛ ОБКФЙ ДПУФХРОЩЕ ХУФТПКУФЧБ Bluetooth. уРЙУПЛ ФБЛЙИ ХУФТПКУФЧ ДПМЦЕО ВЩФШ РПМХЮЕО Ч ФЕЮЕОЙЕ ОЕУЛПМШЛЙИ УЕЛХОД. ъБНЕФШФЕ, ЮФП ХДБМЈООЩЕ ХУФТПКУФЧБ ВХДХФ ПФЧЕЮБФШ ОБ ПРТПУ, ЕУМЙ ФПМШЛП ПОЙ ОБИПДСФУС Ч ТЕЦЙНЕ ПВОБТХЦЙЧБЕНПУФЙ (discoverable).
% hccontrol -n ubt0hci inquiry Inquiry result, num_responses=1 Inquiry result #0 BD_ADDR: 00:80:37:29:19:a4 Page Scan Rep. Mode: 0x1 Page Scan Period Mode: 00 Page Scan Mode: 00 Class: 52:02:04 Clock offset: 0x78ef Inquiry complete. Status: No error [00]
BD_ADDR СЧМСЕФУС ХОЙЛБМШОЩН БДТЕУПН ХУФТПКУФЧБ Bluetooth, ЧТПДЕ MAC-БДТЕУПЧ УЕФЕЧЩИ БДБРФЕТПЧ. ьФПФ БДТЕУ ОЕПВИПДЙН ДМС ДБМШОЕКЫЕК ТБВПФЩ У ХУФТПКУФЧПН. бДТЕУХ BD_ADDR НПЦОП РТЙУЧПЙФШ ХДПВОПЕ ДМС ЮФЕОЙС ЙНС. жБКМ /etc/bluetooth/hosts УПДЕТЦЙФ ЙОЖПТНБГЙА ПВ ЙЪЧЕУФОЩИ ИПУФБИ Bluetooth. ч УМЕДХАЭЕН РТЙНЕТЕ РПЛБЪБОП, ЛБЛ РПМХЮЙФШ ЙНС, ОБЪОБЮЕООПЕ ХДБМЈООПНХ ХУФТПКУФЧХ:
% hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4 BD_ADDR: 00:80:37:29:19:a4 Name: Pav's T39
еУМЙ ЧЩ ЧЩРПМОЙФЕ ПРТПУ ОБ ДТХЗПН Bluetooth-ХУФТПКУФЧЕ, ОП ЧБЫ ЛПНРШАФЕТ ВХДЕФ ПРПЪОБО ЛБЛ ''your.host.name (ubt0)''. йНС, ОБЪОБЮБЕНПЕ МПЛБМШОПНХ ХУФТПКУФЧХ, НПЦЕФ ВЩФШ Ч МАВПК НПНЕОФ ЙЪНЕОЕОП.
уЙУФЕНБ Bluetooth РТЕДПУФБЧМСЕФ ХУМХЗЙ РП УПЕДЙОЕОЙСН ФЙРБ ФПЮЛБ-ФПЮЛБ (РТЙ ЬФПН ЪБДЕКУФЧПЧБОЩ ФПМШЛП ДЧБ ХУФТПКУФЧБ Bluetooth) ЙМЙ ФПЮЛБ-ЛП-НОПЗЙН-ФПЮЛБН. ч РПУМЕДОЕН УМХЮБЕ УПЕДЙОЕОЙЕ ЙУРПМШЪХЕФУС УПЧНЕУФОП ОЕУЛПМШЛЙНЙ ХУФТПКУФЧБН Bluetooth. ч УМЕДХАЭЕН РТЙНЕТЕ РПЛБЪЩЧБЕФУС, ЛБЛ РПМХЮЙФШ УРЙУПЛ БЛФЙЧОЩИ ДМС МПЛБМШОПЗП ХУФТПКУФЧБ УПЕДЙОЕОЙК:
% hccontrol -n ubt0hci read_connection_list Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State 00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPEN
йДЕОФЙЖЙЛБФПТ УПЕДЙОЕОЙС (connection handle) РПМЕЪЕО, ЛПЗДБ ОЕПВИПДЙНП РТЕЛТБФЙФШ УПЕДЙОЕОЙЕ. ъБНЕФШФЕ, ЮФП ПВЩЮОП ОЕФ ОХЦДЩ ДЕМБФШ ЬФП ЧТХЮОХА. уФЕЛ ВХДЕФ БЧФПНБФЙЮЕУЛЙ ТБЪТЩЧБФШ ОЕБЛФЙЧОЩЕ УПЕДЙОЕОЙС.
# hccontrol -n ubt0hci disconnect 41 Connection handle: 41 Reason: Connection terminated by local host [0x16]
пВТБФЙФЕУШ Л РПНПЭЙ РПУТЕДУФЧПН hccontrol help ДМС РПМХЮЕОЙС РПМОПЗП УРЙУЛБ ДПУФХРОЩИ HCI-ЛПНБОД. вПМШЫЙОУФЧП ЛПНБОД HCI ДМС ЧЩРПМОЕОЙС ОЕ ФТЕВХАФ РТБЧ БДНЙОЙУФТБФПТБ УЙУФЕНЩ.
рТПФПЛПМ L2CAP (Logical Link Control and Adaptation Protocol) РТЕДПУФБЧМСЕФ ХУМХЗЙ РП ТБВПФЕ У ДБООЩНЙ, ЛБЛ ПТЙЕОФЙТПЧБООЩЕ ОБ УПЕДЙОЕОЙС, ФБЛ Й ВЕЪ ПТЙЕОФБГЙЙ ОБ ОЙИ, РТПФПЛПМБН ВПМЕЕ ЧЩУПЛПЗП ХТПЧОС У ЧПЪНПЦОПУФСНЙ НХМШФЙРМЕЛУЙТПЧБОЙС Й ПВЕУРЕЮЕОЙЕН ПРЕТБГЙК РП УЕЗНЕОФБГЙЙ Й ПВТБФОПК УВПТЛЕ. L2CAP РПЪЧПМСЕФ РТПФПЛПМБН ВПМЕЕ ЧЩУПЛПЗП ХТПЧОС Й РТЙМПЦЕОЙСН РЕТЕДБЧБФШ Й РПМХЮБФШ РБЛЕФЩ ДБООЩИ L2CAP ДМЙОПК ДП 64 лВБКФ.
L2CAP ПУОПЧБО ОБ ЛПОГЕРГЙЙ ЛБОБМПЧ. лБОБМПН СЧМСЕФУС МПЗЙЮЕУЛПЕ УПЕДЙОЕОЙЕ РПЧЕТИ УПЕДЙОЕОЙС РП ТБДЙПЛБОБМХ. лБЦДЩК ЛБОБМ РТЙЧСЪБО Л ОЕЛПФПТПНХ РТПФПЛПМХ РП РТЙОГЙРХ НОПЗЙЕ-Л-ПДОПНХ. оЕУЛПМШЛП ЛБОБМПЧ НПЗХФ ВЩФШ РТЙЧСЪБОЩ Л ПДОПНХ Й ФПНХ ЦЕ РТПФПЛПМХ, ОП ЛБОБМ ОЕ НПЦЕФ ВЩФШ РТЙЧСЪБО Л ОЕУЛПМШЛЙН РТПФПЛПМБН. лБЦДЩК РБЛЕФ L2CAP, РПМХЮБЕНЩК ЛБОБМПН, РЕТЕОБРТБЧМСЕФУС Л УППФЧЕФУФЧХАЭЕНХ РТПФПЛПМХ ВПМЕЕ ЧЩУПЛПЗП ХТПЧОС. оЕУЛПМШЛП ЛБОБМПЧ НПЗХФ УПЧНЕУФОП ЙУРПМШЪПЧБФШ ПДОП Й ФП ЦЕ ТБДЙПУПЕДЙОЕОЙЕ.
дМС ПДОПЗП Bluetooth-ХУФТПКУФЧБ УПЪДБЕФУС ПДЙО ХЪЕМ Netgraph ФЙРБ l2cap. хЪЕМ L2CAP ПВЩЮОП РПДЛМАЮБЕФУС Л ХЪМХ Bluetooth HCI (ОЙЦЕУФПСЭЙК) Й ХЪМБН Bluetooth-УПЛЕФПЧ (ЧЩЫЕУФПСЭЙЕ). рП ХНПМЮБОЙА ДМС ХЪМБ L2CAP ЙУРПМШЪХЕФУС ЙНС ''devicel2cap''. дМС РПМХЮЕОЙС ДПРПМОЙФЕМШОПК ЙОЖПТНБГЙЙ ПВТБФЙФЕУШ Л УРТБЧПЮОПК УФТБОЙГЕ РП ng_l2cap(4).
рПМЕЪОПК СЧМСЕФУС РТПЗТБННБ l2ping(8), ЛПФПТБС НПЦЕФ ЙУРПМШЪПЧБФШУС ДМС РТПЧЕТЛЙ УЧСЪЙ У ДТХЗЙНЙ ХУФТПКУФЧБНЙ. оЕЛПФПТЩЕ ТЕБМЙЪБГЙЙ Bluetooth НПЗХФ ОЕ ЧПЪЧТБЭБФШ ЧУЕ ДБООЩЕ, РПУЩМБЕНЩЕ ЙН, ФБЛ ЮФП 0 bytes Ч УМЕДХАЭЕН РТЙНЕТЕ - ЬФП ОПТНБМШОП.
# l2ping -a 00:80:37:29:19:a4 0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0 0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0 0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0 0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0
хФЙМЙФБ l2control(8) ЙУРПМШЪХЕФУС ДМС ЧЩРПМОЕОЙС ТБЪМЙЮОЩИ ПРЕТБГЙК У ХЪМБНЙ L2CAP. ч ЬФПН РТЙНЕТЕ РПЛБЪБОП, ЛБЛ РПМХЮЙФШ УРЙУПЛ МПЗЙЮЕУЛЙИ УПЕДЙОЕОЙК (ЛБОБМПЧ) Й РЕТЕЮЕОШ ТБДЙПУПЕДЙОЕОЙК МПЛБМШОПЗП ХУФТПКУФЧБ:
% l2control -a 00:02:72:00:d4:1a read_channel_list L2CAP channels: Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State 00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN % l2control -a 00:02:72:00:d4:1a read_connection_list L2CAP connections: Remote BD_ADDR Handle Flags Pending State 00:07:e0:00:0b:ca 41 O 0 OPEN
еЭЈ ПДОЙН ДЙБЗОПУФЙЮЕУЛЙН ЙОУФТХНЕОФПН СЧМСЕФУС btsockstat(1). пОБ ЧЩРПМОСЕФ ДЕКУФЧЙС, РПДПВОЩЕ ФЕН, ЮФП ПВЩЮОП ЧЩРПМОСЕФ netstat(1), ОП УП УФТХЛФХТБНЙ ДБООЩИ, УЧСЪБООЩИ У ТБВПФПК Ч УЕФЙ Bluetooth. ч РТЙНЕТЕ ОЙЦЕ ПРЙУЩЧБЕФУС ФП ЦЕ УБНПЕ МПЗЙЮЕУЛПЕ УПЕДЙОЕОЙЕ, ЮФП Й У l2control(8) ЧЩЫЕ.
% btsockstat Active L2CAP sockets PCB Recv-Q Send-Q Local address/PSM Foreign address CID State c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN Active RFCOMM sessions L2PCB PCB Flag MTU Out-Q DLCs State c2afe900 c2b53380 1 127 0 Yes OPEN Active RFCOMM sockets PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN
рТПФПЛПМ RFCOMM ЬНХМЙТХЕФ РПУМЕДПЧБФЕМШОЩЕ РПТФЩ РПЧЕТИ РТПФПЛПМБ L2CAP. пО ПУОПЧБО ОБ ETSI-УФБОДБТФЕ TS 07.10. RFCOMM РТЕДУФБЧМСЕФ УПВПК РТПУФПК ФТБОУРПТФОЩК РТПФПЛПМ, У ДПРПМОЙФЕМШОЩНЙ ЧПЪНПЦОПУФСНЙ РП ЬНХМСГЙЙ 9 ГЕРЕК РПУМЕДПЧБФЕМШОЩИ РПТФПЧ RS-232 (EIATIA-232-E). рТПФПЛПМ RFCOMM РПДДЕТЦЙЧБЕФ ПДОПЧТЕНЕООП ДП 60 УПЕДЙОЕОЙК (ЛБОБМПЧ RFCOMM) НЕЦДХ ДЧХНС ХУФТПКУФЧБНЙ Bluetooth.
ч ТБНЛБИ RFCOMM РПМОЩК ЛПННХОЙЛБГЙПООЩК НБТЫТХФ ЧЛМАЮБЕФ ДЧБ РТЙМПЦЕОЙС, ТБВПФБАЭЙЕ ОБ ТБЪОЩИ ХУФТПКУФЧБИ (ЛПОЕЮОЩЕ ЛПННХОЙЛБГЙПООЩЕ ФПЮЛЙ) У ЛПННХОЙЛБГЙПООЩН УЕЗНЕОФПН НЕЦДХ ОЙНЙ. RFCOMM РТЕДОБЪОБЮЕО ДМС УПЛТЩФЙС РТЙМПЦЕОЙК, ЙУРПМШЪХАЭЙИ РПУМЕДПЧБФЕМШОЩЕ РПТФЩ ХУФТПКУФЧ, Ч ЛПФПТЩИ ПОЙ ТБУРПМПЦЕОЩ. лПННХОЙЛБГЙПООЩК УЕЗНЕОФ РП УХФЙ СЧМСЕФУС Bluetooth-УЧСЪША ПФ ПДОПЗП ХУФТПКУФЧБ Л ДТХЗПНХ (РТСНПЕ УПЕДЙОЕОЙЕ).
RFCOMM ЙНЕЕФ ДЕМП У УПЕДЙОЕОЙЕН НЕЦДХ ХУФТПКУФЧБНЙ Ч УМХЮБЕ РТСНПЗП УПЕДЙОЕОЙС, ЙМЙ НЕЦДХ ХУФТПКУФЧПН Й НПДЕНПН Ч УЕФЕЧПН УМХЮБЕ. RFCOMM НПЦЕФ РПДДЕТЦЙЧБФШ Й ДТХЗЙЕ ЛПОЖЙЗХТБГЙЙ, ФБЛЙЕ, ЛБЛ НПДХМЙ, ТБВПФБАЭЙЕ ЮЕТЕЪ ВЕУРТПЧПДОХА ФЕИОПМПЗЙА Bluetooth У ПДОПК УФПТПОЩ Й РТЕДПУФБЧМСАЭЙЕ РТПЧПДОПЕ УПЕДЙОЕОЙЕ У ДТХЗПК УФПТПОЩ.
чП FreeBSD РТПФПЛПМ RFCOMM ТЕБМЙЪПЧБО ОБ ХТПЧОЕ УПЛЕФПЧ Bluetooth.
рП ХНПМЮБОЙА УЧСЪШ Bluetooth ОЕ БХФЕОФЙЖЙГЙТХЕФУС, РПЬФПНХ МАВПЕ ХУФТПКУФЧП НПЦЕФ ПВЭБФШУС У МАВЩН ДТХЗЙН. хУФТПКУФЧП Bluetooth (ОБРТЙНЕТ, УПФПЧЩК ФЕМЕЖПО) НПЦЕФ ЪБДБФШ ПВСЪБФЕМШОПУФШ БХФЕОФЙЖЙЛБГЙЙ ДМС РТЕДПУФБЧМЕОЙС ПРТЕДЕМЈООПЗП УЕТЧЙУБ (Ч ЮБУФОПУФЙ, ХУМХЗХ ДПУФХРБ РП ЛПННХФЙТХЕНПК МЙОЙЙ). Bluetooth-БХФЕОФЙЖЙЛБГЙС ПВЩЮОП ЧЩРПМОСЕФУС ЮЕТЕЪ PIN-ЛПДЩ. PIN-ЛПД РТЕДУФБЧМСЕФ ЙЪ УЕВС ASCII-УФТПЛХ ДМЙОПК ДП 16 УЙНЧПМПЧ. рПМШЪПЧБФЕМШ ПВСЪБО ЧЧЕУФЙ ПДЙО Й ФПФ ЦЕ PIN-ЛПД ОБ ПВПЙИ ХУФТПКУФЧБИ. лБЛ ФПМШЛП ПО ЧЧЕДЈФ PIN-ЛПД, ПВБ ХУФТПКУФЧБ УЗЕОЕТЙТХАФ ЛМАЮ УЧСЪЙ. рПУМЕ ЬФПЗП ЛМАЮ НПЦЕФ ВЩФШ УПИТБОЈО МЙВП Ч УБНПН ХУФТПКУФЧЕ, МЙВП ОБ РПУФПСООПН ОПУЙФЕМЕ. ч УМЕДХАЭЙК ТБЪ ПВБ ХУФТПКУФЧБ ВХДХФ ЙУРПМШЪПЧБФШ ТБОЕЕ УЗЕОЕТЙТПЧБООЩК ЛМАЮ УПЕДЙОЕОЙС. рТПГЕДХТБ, ПРЙУБООБС ЧЩЫЕ, ОПУЙФ ОБЪЧБОЙЕ РПДЗПОЛЙ РБТЩ (pairing). ъБНЕФШФЕ, ЮФП ЕУМЙ ЛМАЮ УЧСЪЙ РПФЕТСО МАВПК ЙЪ УФПТПО, ФП РПДВПТ РБТЩ ДПМЦЕО ВЩФШ РПЧФПТЕО.
ъБ ПВТБВПФЛХ ЧУЕИ ЪБРТПУПЧ ОБ Bluetooth-БХФЕОФЙЖЙЛБГЙА ПФЧЕЮБЕФ ДБЕНПО hcsecd(8). рП ХНПМЮБОЙА ЖБКМ ЛПОЖЙЗХТБГЙЙ ОБЪЩЧБЕФУС /etc/bluetooth/hcsecd.conf. рТЙНЕТ ТБЪДЕМБ, УПДЕТЦБЭЕЗП ЙОЖПТНБГЙА П УПФПЧПН ФЕМЕЖПОЕ У СЧОП ЪБДБООЩН PIN-ЛПДПН ''1234'' РТЙЧЕДЕО ОЙЦЕ:
device { bdaddr 00:80:37:29:19:a4; name "Pav's T39"; key nokey; pin "1234"; }
лТПНЕ ДМЙОЩ, ОБ PIN-ЛПДЩ ОЕ ОБЛМБДЩЧБЕФУС ОЙЛБЛЙИ ПЗТБОЙЮЕОЙК. оЕЛПФПТЩЕ ХУФТПКУФЧБ
(ОБРТЙНЕТ, Bluetooth-ЗБТОЙФХТЩ) НПЗХФ ЙНЕФШ ЖЙЛУЙТПЧБООЩК ЧУФТПЕООЩК PIN-ЛПД. рБТБНЕФТ
-d
РПЪЧПМСЕФ ЪБРХУФЙФШ hcsecd(8) ЛБЛ
ОЕЖПОПЧЩК РТПГЕУУ, ЮФП ПВМЕЗЮБЕФ РТПУНПФТ РТПЙУИПДСЭЙИ УПВЩФЙК. ъБДБКФЕ РПМХЮЕОЙЕ РБТОПЗП
ЛМАЮБ ОБ ХДБМЈООПН ХУФТПКУФЧЕ Й ЙОЙГЙЙТХКФЕ Bluetooth-УПЕДЙОЕОЙЕ У ЬФЙН ХУФТПКУФЧПН.
хДБМЈООПЕ ХУФТПКУФЧП ДПМЦОП РПДФЧЕТДЙФШ РПМХЮЕОЙЕ РБТЩ Й ЪБРТПУЙФШ PIN-ЛПД. чЧЕДЙФЕ ФПФ
ЦЕ УБНЩК ЛПД, ЮФП ОБИПДЙФУС Ч hcsecd.conf. фЕРЕТШ ЧБЫ рл Й
ХДБМЈООПЕ ХУФТПКУФЧП УРБТЕОЩ. бМШФЕТОБФЙЧОЩН УРПУПВПН СЧМСЕФУС ЙОЙГЙБГЙС РТПГЕУУБ
УПЪДБОЙС РБТЩ ОБ ХДБМЈООПН ХУФТПКУФЧЕ.
чП FreeBSD 5.5, 6.1 Й Ч ВПМЕЕ ОПЧЩИ, УМЕДХАЭБС УФТПЛБ НПЦЕФ ВЩФШ ДПВБЧМЕОБ Л /etc/rc.conf, ЮФПВЩ hcsecd ЪБРХУЛБМУС БЧФПНБФЙЮЕУЛЙ ЧП ЧТЕНС УФБТФБ УЙУФЕНЩ:
hcsecd_enable="YES"
оЙЦЕ ДБЈФУС РТЙНЕТ ЧЩДБЮЙ РТПФПЛПМБ ЛПНБОДЩ hcsecd:
hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4 hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
рТПФПЛПМ ПВОБТХЦЕОЙС УЕТЧЙУПЧ SDP ДБЈФ ЧПЪНПЦОПУФШ ЛМЙЕОФУЛЙН РТЙМПЦЕОЙСН ПУХЭЕУФЧМСФШ РПЙУЛ ХУМХЗ, РТЕДПУФБЧМСЕНЩИ УЕТЧЕТОЩНЙ РТЙМПЦЕОЙСНЙ, Б ФБЛЦЕ ИБТБЛФЕТЙУФЙЛ ЬФЙИ ХУМХЗ. ч РЕТЕЮЕОШ БФТЙВХФПЧ УЕТЧЙУБ ЧЛМАЮБЕФУС ФЙР ЛМБУУБ РТЕДМБЗБЕНПЗП УЕТЧЙУБ Й ЙОЖПТНБГЙС П НЕИБОЙЪНЕ ЙМЙ РТПФПЛПМЕ, ФТЕВХЕНПН ДМС ЙУРПМШЪПЧБОЙС УЕТЧЙУБ.
SDP РПДТБЪХНЕЧБЕФ ЛПННХОЙЛБГЙЙ НЕЦДХ SDP-УЕТЧЕТПН Й SDP-ЛМЙЕОФПН. уЕТЧЕТ РПДДЕТЦЙЧБЕФ УРЙУПЛ УЕТЧЙУПЧ, Ч ЛПФПТПН ПРЙУЩЧБАФУС РБТБНЕФТЩ УЕТЧЙУПЧ, УЧСЪБООЩИ У УЕТЧЕТПН. лБЦДБС ЪБРЙУШ ПВ ХУМХЗЕ УПДЕТЦЙФ ЙОЖПТНБГЙА ПВ ПДОПН УЕТЧЙУЕ. лМЙЕОФ НПЦЕФ ЪБРТПУЙФШ ЙОЖПТНБГЙА ПВ ПРТЕДЕМЈООПН УЕТЧЙУЕ, ПВУМХЦЙЧБЕНПН SDP-УЕТЧЕТПН, ЧЩДБЧБС SDP-ЪБРТПУ. еУМЙ ЛМЙЕОФ ЙМЙ РТЙМПЦЕОЙЕ, УЧСЪБООПЕ У ЛМЙЕОФПН, ТЕЫБФ ЧПУРПМШЪПЧБФШУС УЕТЧЙУПН, ФП ДМС ЕЗП ЙУРПМШЪПЧБОЙС ОЕПВИПДЙНП ПФЛТЩФШ ПФДЕМШОПЕ УПЕДЙОЕОЙЕ Л ХУФТПКУФЧХ, РТЕДПУФБЧМСАЭЕНХ УЕТЧЙУ. SDP РТЕДПУФБЧМСЕФ НЕИБОЙЪН ПВОБТХЦЕОЙС ХУМХЗ Й ЙИ РБТБНЕФТПЧ, ОП ОЕ ДБЈФ НЕИБОЙЪНБ ЙУРПМШЪПЧБОЙС ЬФЙИ УЕТЧЙУПЧ.
пВЩЮОП SDP-ЛМЙЕОФ ЧЩРПМОСЕФ РПЙУЛ ХУМХЗ ОБ ПУОПЧЕ ОЕЛПФПТЩИ ЦЕМБЕНЩИ ИБТБЛФЕТЙУФЙЛ ХУМХЗ. пДОБЛП ЙОПЗДБ ЧПЪОЙЛБЕФ ОЕПВИПДЙНПУФШ ЧЩСУОЙФШ РПМОЩК РЕТЕЮЕОШ ФЙРПЧ ХУМХЗ, РТЕДПУФБЧМСЕНЩИ SDP-УЕТЧЕТПН, ОЕ ЙНЕС ОЙЛБЛПК ЙОЖПТНБГЙЙ ПВ ЙНЕАЭЙИУС УЕТЧЙУБИ. фБЛПК РТПГЕУУ ЧУЕИ РТЕДМБЗБЕНЩИ УЕТЧЙУПЧ ОБЪЩЧБЕФУС ПВЪПТПН (browsing).
Bluetooth SDP УЕТЧЕТ sdpd(8) Й ЛМЙЕОФ У ЙОФЕТЖЕКУПН ЛПНБОДОПК УФТПЛЙ sdpcontrol(8) ЧЛМАЮЕОЩ Ч УФБОДБТФОХА РПУФБЧЛХ FreeBSD. ч УМЕДХАЭЕН РТЙНЕТЕ РПЛБЪБОП, ЛБЛ ЧЩРПМОСФШ ЪБРТПУ ОБ SDP-ПВЪПТ.
% sdpcontrol -a 00:01:03:fc:6e:ec browse Record Handle: 00000000 Service Class ID List: Service Discovery Server (0x1000) Protocol Descriptor List: L2CAP (0x0100) Protocol specific parameter #1: u/int/uuid16 1 Protocol specific parameter #2: u/int/uuid16 1 Record Handle: 0x00000001 Service Class ID List: Browse Group Descriptor (0x1001) Record Handle: 0x00000002 Service Class ID List: LAN Access Using PPP (0x1102) Protocol Descriptor List: L2CAP (0x0100) RFCOMM (0x0003) Protocol specific parameter #1: u/int8/bool 1 Bluetooth Profile Descriptor List: LAN Access Using PPP (0x1102) ver. 1.0
... Й ФБЛ ДБМЕЕ. ъБНЕФШФЕ, ЮФП ЛБЦДЩК УЕТЧЙУ ЙНЕЕФ РЕТЕЮЕОШ БФТЙВХФПЧ (ОБРТЙНЕТ, ЛБОБМ RFCOMM). ч ЪБЧЙУЙНПУФЙ ПФ УЕТЧЙУБ ЧБН НПЦЕФ РПФТЕВПЧБФШУС ЗДЕ-ФП УПИТБОЙФШ ЬФЙ БФТЙВХФЩ. оЕЛПФПТЩЕ ТЕБМЙЪБГЙЙ Bluetooth ОЕ РПДДЕТЦЙЧБАФ РТПУНПФТ УЕТЧЙУПЧ Й НПЗХФ ЧПЪЧТБЭБФШ РХУФПК УРЙУПЛ. ч ЬФПН УМХЮБЕ ЧПЪНПЦЕО РПЙУЛ ЛПОЛТЕФОПК ХУМХЗЙ. ч РТЙНЕТЕ ОЙЦЕ РПЛБЪБОП, ЛБЛ ЧЩРПМОЙФШ РПЙУЛ УМХЦВЩ OBEX Object Push (OPUSH):
% sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH
чП FreeBSD РТЕДПУФБЧМЕОЙЕ УЕТЧЙУПЧ ЛМЙЕОФБН Bluetooth ПУХЭЕУФЧМСЕФУС УЕТЧЕТПН sdpd(8). чП FreeBSD 5.5, 6.1 Й Ч ВПМЕЕ ОПЧЩИ, УМЕДХАЭБС УФТПЛБ НПЦЕФ ВЩФШ ДПВБЧМЕОБ Ч ЖБКМ /etc/rc.conf:
sdpd_enable="YES"
рПУМЕ ЬФПЗП sdpd ДБЕНПО НПЦЕФ ВЩФШ ЪБРХЭЕО У РПНПЭША:
# /etc/rc.d/sdpd start
чП FreeBSD 6.0, Й ЧП FreeBSD 5.X РЕТЕД 5.5, sdpd ОЕ ЙОФЕЗТЙТПЧБО Ч УЛТЙРФЩ ЪБЗТХЪЛЙ УЙУФЕНЩ. пО ДПМЦЕО ЪБРХУЛБФШУС БЧФПНБФЙЮЕУЛЙ ЛПНБОДПК:
# sdpd
рТЙМПЦЕОЙЕ ОБ МПЛБМШОПН УЕТЧЕТЕ, ЦЕМБАЭЕЕ РТЕДПУФБЧЙФШ УЕТЧЙУ Bluetooth ХДБМЕООЩН ЛМЙЕОФБН, ТЕЗЙУФТЙТХЕФ УЕТЧЙУ ЮЕТЕЪ МПЛБМШОПЗП ДБЕНПОБ SDP. рТЙНЕТ ФБЛПЗП РТЙМПЦЕОЙС -- rfcomm_pppd(8). рПУМЕ ЪБРХУЛБ ПОП ТЕЗЙУФТЙТХЕФ Bluetooth LAN УЕТЧЙУ ЮЕТЕЪ МПЛБМШОПЗП ДБЕНПОБ SDP.
уРЙУПЛ УЕТЧЙУПЧ, ЪБТЕЗЙУФТЙТПЧБООЩИ ЮЕТЕЪ МПЛБМШОЩК SDP УЕТЧЕТ, НПЦЕФ ВЩФШ РПМХЮЕО РХФЕН ЧЩДБЮЙ ЪБРТПУБ ОБ РТПУНПФТ SDP ЮЕТЕЪ МПЛБМШОЩК ЛПОФТПМШОЩК ЛБОБМ:
# sdpcontrol -l browse
нПДХМШ ТБВПФЩ У ЛПННХФЙТХЕНЩН ДПУФХРПН Л УЕФЙ (DUN - Dial-Up Networking) Ч ВПМШЫЙОУФЧЕ УМХЮБЕЧ ЙУРПМШЪХЕФУС У НПДЕНБНЙ Й УПФПЧЩНЙ ФЕМЕЖПОБНЙ. ьФПФ НПДХМШ РПЛТЩЧБЕФ УМЕДХАЭЙЕ УМХЮБЙ:
УПФПЧЩК ФЕМЕЖПО ЙМЙ НПДЕН ЙУРПМШЪХЕФУС ЧНЕУФЕ У ЛПНРШАФЕТПН Ч ЛБЮЕУФЧЕ ВЕУРТПЧПДОПЗП НПДЕНБ ДМС РПДЛМАЮЕОЙС Л УЕТЧЕТХ ЛПННХФЙТХЕНПЗП ДПУФХРБ Ч йОФЕТОЕФ, ЙМЙ ДТХЗПК ЛПННХФЙТХЕНПК ХУМХЗЕ;
УПФПЧЩК ФЕМЕЖПО ЙМЙ НПДЕН ЙУРПМШЪХЕФУС ЛПНРШАФЕТПН ДМС РТЙЈНБ ЧИПДСЭЙИ УПЕДЙОЕОЙК.
нПДХМШ ДПУФХРБ Л УЕФЙ РП РТПФПЛПМХ PPP (Network Access with PPP - LAN) НПЦЕФ ЙУРПМШЪПЧБФШУС Ч УМЕДХАЭЙИ УЙФХБГЙСИ:
ДПУФХР Л мчу ДМС ПДОПЗП Bluetooth-ХУФТПКУФЧБ;
ДПУФХР Л мчу ДМС ОЕУЛПМШЛЙИ Bluetooth-ХУФТПКУФЧ;
УЧСЪШ НЕЦДХ ДЧХНС рл (РТЙ РПНПЭЙ РТПФПЛПМБ PPP РПЧЕТИ ЬНХМЙТХЕНПЗП РПУМЕДПЧБФЕМШОПЗП ЛБОБМБ УЧСЪЙ).
чП FreeBSD ПВБ УМХЮБС ТЕБМЙЪХАФУС РТЙ РПНПЭЙ УЕТЧЙУОЩИ РТПЗТБНН ppp(8) Й rfcomm_pppd(8) - ЬФП ПВТБВПФЮЙЛ, РТЕПВТБЪХАЭЙК RFCOMM-УПЕДЙОЕОЙС Bluetooth Ч ОЕЮФП, У ЮЕН НПЦЕФ ТБВПФБФШ PPP. рЕТЕД ФЕН, ЛБЛ ЙУРПМШЪПЧБФШ МАВПК НПДХМШ, Ч ЖБКМЕ /etc/ppp/ppp.conf ДПМЦОБ ВЩФШ УПЪДБОБ ОПЧБС PPP-НЕФЛБ. рТЙНЕТЩ ЙУРПМШЪПЧБОЙС НПЦОП ОБКФЙ Ч УРТБЧПЮОПК УФТБОЙГЕ Л rfcomm_pppd(8).
ч УМЕДХАЭЕН РТЙНЕТЕ rfcomm_pppd(8) ВХДЕФ ЙУРПМШЪПЧБФШУС ДМС ПФЛТЩФЙС RFCOMM-УПЕДЙОЕОЙС Л ХДБМЈООПНХ ХУФТПКУФЧХ У BD_ADDR 00:80:37:29:19:a4 ОБ DUN RFCOMM-ЛБОБМЕ. тЕБМШОЩК ОПНЕТ RFCOMM-ЛБОБМБ ВХДЕФ РПМХЮБФШУС У ХДБМЈООПЗП ХУФТПКУФЧБ ЮЕТЕЪ SDP. чПЪНПЦОП ХЛБЪБФШ RFCOMM-ЛБОБМ ЧТХЮОХА, Й Ч ЬФПН УМХЮБЕ rfcomm_pppd(8) ОЕ ВХДЕФ ЧЩРПМОСФШ SDP-ЪБРТПУ. дМС ОБИПЦДЕОЙС RFCOMM-ЛБОБМБ ОБ ХДБМЈООПН ХУФТПКУФЧЕ ЙУРПМШЪХКФЕ ХФЙМЙФХ sdpcontrol(8).
# rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup
дМС ФПЗП, ЮФПВЩ ПТЗБОЙЪПЧБФШ УЕТЧЙУ Network Access with PPP (LAN), ОЕПВИПДЙНП ЪБРХУФЙФШ УЕТЧЕТ sdpd(8). ч ЖБКМЕ /etc/ppp/ppp.conf ДПМЦОБ ВЩФШ УПЪДБОБ ОПЧБС ЪБРЙУШ ДМС ЛМЙЕОФПЧ LAN. рТЙНЕТЩ НПЦОП ОБКФЙ Ч УРТБЧЛЕ РП rfcomm_pppd(8). оБЛПОЕГ, ЪБРХУФЙФЕ RFCOMM PPP УЕТЧЕТ ОБ УХЭЕУФЧХАЭЕН ОПНЕТЕ ЛБОБМБ RFCOMM. уЕТЧЕТ RFCOMM PPP БЧФПНБФЙЮЕУЛЙ ЪБТЕЗЙУФТЙТХЕФ Bluetooth LAN УЕТЧЙУ ЮЕТЕЪ МПЛБМШОЩК SDP ДБЕНПО. ч РТЙНЕТЕ ОЙЦЕ РПЛБЪБОП, ЛБЛ ЪБРХУФЙФШ УЕТЧЕТ RFCOMM PPP.
# rfcomm_pppd -s -C 7 -l rfcomm-server
OBEX СЧМСЕФУС ЫЙТПЛП ЙУРПМШЪХЕНЩН РТПФПЛПМПН ДМС РТПУФПК РЕТЕДБЮЙ ЖБКМПЧ НЕЦДХ НПВЙМШОЩНЙ ХУФТПКУФЧБНЙ. ч ПУОПЧОПН ПО ЙУРПМШЪХЕФУС Ч ЛПННХОЙЛБГЙСИ ЮЕТЕЪ ЙОЖТБЛТБУОЩК РПТФ ДМС РЕТЕДБЮЙ ЖБКМПЧ НЕЦДХ ОПХФВХЛБНЙ ЙМЙ лрл, Б ФБЛЦЕ ДМС РЕТЕУЩМЛЙ ЧЙЪЙФОЩИ ЛБТФПЮЕЛ ЙМЙ ЛБМЕОДБТОЩИ РМБОПЧ НЕЦДХ УПФПЧЩНЙ ФЕМЕЖПОБНЙ Й ДТХЗЙНЙ ХУФТПКУФЧБНЙ У РЕТУПОБМШОЩНЙ ЙОЖПТНБГЙПООЩНЙ НЕОЕДЦЕТБНЙ.
уЕТЧЕТ Й ЛМЙЕОФ OBEX ТЕБМЙЪПЧБОЩ Ч ЧЙДЕ РБЛЕФБ УФПТПООЕЗП ТБЪТБВПФЮЙЛБ obexapp, ЛПФПТЩК ДПУФХРЕО Ч ЧЙДЕ РПТФБ comms/obexapp.
лМЙЕОФ OBEX ЙУРПМШЪХЕФУС ДМС РПУЩМЛЙ ЙМЙ РТЙЈНБ ПВЯЕЛФПЧ У УЕТЧЕТБ OBEX. пВЯЕЛФПН, Л РТЙНЕТХ, НПЦЕФ ВЩФШ ЧЙЪЙФОБС ЛБТФПЮЛБ ЙМЙ ХЛБЪБОЙЕ. лМЙЕОФ OBEX НПЦЕФ РПМХЮЙФШ ОПНЕТ RFCOMM-ЛБОБМБ, ХЛБЪБЧ ЧНЕУФП ОЕЗП ЙНС УЕТЧЙУБ. рПДДЕТЦЙЧБАФУС УМЕДХАЭЙЕ ЙНЕОБ УЕТЧЙУБ: IrMC, FTRN Й OPUSH. лБОБМ RFCOMM НПЦОП ЪБДБФШ ЕЗП ОПНЕТПН. оЙЦЕ ДБЈФУС РТЙНЕТ УЕБОУБ OBEX, ЗДЕ У УПФПЧПЗП ФЕМЕЖПОБ ЪБВЙТБЕФУС ПВЯЕЛФ У ЙОЖПТНБГЙЕК ПВ ХУФТПКУФЧЕ, Б ОПЧЩК ПВЯЕЛФ (ЧЙЪЙФОБС ЛБТФПЮЛБ) РЕТЕДБЈФУС Ч ЛБФБМПЗ УПФПЧПЗП ФЕМЕЖПОБ.
% obexapp -a 00:80:37:29:19:a4 -C IrMC obex> get telecom/devinfo.txt devinfo-t39.txt Success, response: OK, Success (0x20) obex> put new.vcf Success, response: OK, Success (0x20) obex> di Success, response: OK, Success (0x20)
дМС ФПЗП, ЮФПВЩ РТЕДПУФБЧЙФШ УЕТЧЙУ OBEX Push, ДПМЦЕО ВЩФШ ЪБРХЭЕО УЕТЧЕТ sdpd(8). дПМЦЕО ВЩФШ УПЪДБО ЛПТОЕЧПК ЛБФБМПЗ, Ч ЛПФПТПН ВХДХФ УПИТБОСФШУС ЧУЕ РПУФХРБАЭЙЕ ПВЯЕЛФЩ. рП ХНПМЮБОЙА ЛПТОЕЧЩН ЛБФБМПЗПН СЧМСЕФУС /var/spool/obex. оБЛПОЕГ, ЪБРХУФЙФЕ OBEX УЕТЧЕТ ОБ УХЭЕУФЧХАЭЕН ОПНЕТЕ ЛБОБМБ RFCOMM. OBEX УЕТЧЕТ БЧФПНБФЙЮЕУЛЙ ЪБТЕЗЙУФТЙТХЕФ УЕТЧЙУ OBEX Object Push ЮЕТЕЪ МПЛБМШОПЗП ДБЕНПОБ SDP. ч РТЙНЕТЕ ОЙЦЕ РПЛБЪБОП, ЛБЛ ЪБРХУФЙФШ OBEX-УЕТЧЕТ.
# obexapp -s -C 10
рТПЖЙМШ РПУМЕДПЧБФЕМШОПЗП РПТФБ (SPP - Serial Port Profile) РПЪЧПМСЕФ Bluetooth-ХУФТПКУФЧБН ПУХЭЕУФЧМСФШ ЬНХМСГЙА РПУМЕДПЧБФЕМШОПЗП РПТФБ RS232 (ЙМЙ РПДПВОПЗП). ьФПФ РТПЖЙМШ РПЛТЩЧБЕФ УМХЮБЙ, ЛБУБАЭЙЕУС ТБВПФЩ ХОБУМЕДПЧБООЩИ РТЙМПЦЕОЙК У Bluetooth Ч ЛБЮЕУФЧЕ ЪБНЕОЩ ЛБВЕМШОПНХ УПЕДЙОЕОЙА, РТЙ ЬФП ЙУРПМШЪХЕФУС БВУФТБЛГЙС ЧЙТФХБМШОПЗП РПУМЕДПЧБФЕМШОПЗП РПТФБ.
хФЙМЙФБ rfcomm_sppd(1) ТЕБМЙЪХЕФ РТПЖЙМШ РПУМЕДПЧБФЕМШОПЗП РПТФБ. ч ЛБЮЕУФЧЕ ЧЙТФХБМШОПЗП РПУМЕДПЧБФЕМШОПЗП РПТФБ ЙУРПМШЪХЕФУС РУЕЧДП-ФЕТНЙОБМ. ч РТЙНЕТЕ ОЙЦЕ РПЛБЪБОП, ЛБЛ РПДЛМАЮЙФШУС Л УЕТЧЙУХ Serial Port ХДБМЈООПЗП ХУФТПКУФЧБ. ъБНЕФШФЕ, ЮФП ЧЩ ОЕ ХЛБЪЩЧБЕФЕ RFCOMM-ЛБОБМ - rfcomm_sppd(1) НПЦЕФ РПМХЮЙФШ ЕЗП У ХДБМЈООПЗП ХУФТПКУФЧБ ЮЕТЕЪ SDP. еУМЙ ЧЩ ИПФЙФЕ РЕТЕПРТЕДЕМЙФШ ЬФП, ХЛБЦЙФЕ RFCOMM-ЛБОБМ СЧОП Ч ЛПНБОДОПК УФТПЛЕ.
# rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6 rfcomm_sppd[94692]: Starting on /dev/ttyp6...
рПУМЕ РПДЛМАЮЕОЙС РУЕЧДП-ФЕТНЙОБМ НПЦОП ЙУРПМШЪПЧБФШ ЛБЛ РПУМЕДПЧБФЕМШОЩК РПТФ:
# cu -l ttyp6
оЕЛПФПТЩЕ УФБТЩЕ Bluetooth-ХУФТПКУФЧБ ОЕ РПДДЕТЦЙЧБАФ РЕТЕЛМАЮЕОЙЕ ТПМЕК. рП ХНПМЮБОЙА, ЛПЗДБ FreeBSD РПДФЧЕТЦДБЕФ ОПЧПЕ УПЕДЙОЕОЙЕ, ПОБ РЩФБЕФУС ЧЩРПМОЙФШ РЕТЕЛМАЮЕОЙЕ ТПМЙ Й УФБФШ ЧЕДХЭЙН ХУФТПКУФЧПН. хУФТПКУФЧБ, ЛПФПТЩЕ ЬФП ОЕ РПДДЕТЦЙЧБАФ, ОЕ УНПЗХФ РПДЛМАЮЙФШУС. ъБНЕФШФЕ, ЮФП РЕТЕЛМАЮЕОЙЕ ТПМЕК ЧЩРПМОСЕФУС РТЙ ХУФБОПЧМЕОЙЙ ОПЧПЗП УПЕДЙОЕОЙС, РПЬФПНХ ОЕЧПЪНПЦОП ЧЩСУОЙФШ, РПДДЕТЦЙЧБЕФ МЙ ХДБМЈООПЕ ХУФТПКУФЧП РЕТЕЛМАЮЕОЙЕ ТПМЕК. оБ МПЛБМШОПК НБЫЙОЕ ЙНЕЕФУС ЧПЪНПЦОПУФШ ПФЛМАЮЙФШ РЕТЕЛМАЮЕОЙЕ ТПМЕК РТЙ РПНПЭЙ HCI-РБТБНЕФТБ:
# hccontrol -n ubt0hci write_node_role_switch 0
дБ, НПЦОП. чПУРПМШЪХКФЕУШ РБЛЕФПН УФПТПООЕЗП ТБЪТБВПФЮЙЛБ, hcidump ЛПФПТЩК ДПУФХРЕО Ч ЧЙДЕ РПТФБ comms/hcidump. хФЙМЙФБ hcidump РПИПЦБ ОБ tcpdump(1). пОБ НПЦЕФ ВЩФШ ЙУРПМШЪПЧБОБ ДМС ЧЩЧПДБ ОБ ФЕТНЙОБМ УПДЕТЦЙНПЗП Bluetooth-РБЛЕФПЧ Й УВТБУЩЧБФШ РБЛЕФЩ Bluetooth Ч ЖБКМ.
рТЕД. | оБЮБМП | уМЕД. |
вЕУРТПЧПДОЩЕ УЕФЙ | хТПЧЕОШ ЧЩЫЕ | нПУФЩ |
ьФПФ, Й ДТХЗЙЕ ДПЛХНЕОФЩ, НПЗХФ ВЩФШ УЛБЮБОЩ У ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
рП ЧПРТПУБН, УЧСЪБООЩН У FreeBSD, РТПЮЙФБКФЕ ДПЛХНЕОФБГЙА РТЕЦДЕ ЮЕН РЙУБФШ Ч <questions@FreeBSD.org>.
рП ЧПРТПУБН, УЧСЪБООЩН У ЬФПК ДПЛХНЕОФБГЙЕК, РЙЫЙФЕ <doc@FreeBSD.org>.
рП ЧПРТПУБН, УЧСЪБООЩН У ТХУУЛЙН РЕТЕЧПДПН ДПЛХНЕОФБГЙЙ, РЙЫЙФЕ Ч ТБУУЩМЛХ <frdp@FreeBSD.org.ua>.
йОЖПТНБГЙС РП РПДРЙУЛЕ ОБ ЬФХ ТБУУЩМЛХ ОБИПДЙФУС ОБ УБКФЕ РТПЕЛФБ РЕТЕЧПДБ.