[Megoldva]Bluez4 soros port emuláció nem

Fórumok

A Bluetooth fehér folt a számomra - ez az első próbálkozásom.
Első lépésben, azt szeretném elérni, hogy a Linux boxomat (semmi különös) bluetooth -on át elérjem, XP klienssel (egyenlőre) - szeretnék egy vezeték nélküli konzolt beállítani. Ráadásul NEM akarok semmilyen ablakozós felületet, tiszta parancssor, minden sallang nélkül.
Rengeteg google -zás után, ahol a legtöbb cikk arról szól hogyan csatoljak fel a gépre ezt-azt a következőkre jutottam:
Szükséges csomagok: bluez és a python-gobject
Telepítés után, ha bedugom a dongle-t szó nélkül feláll a szerkezet :)


$hcitool dev
  hci   "mac address"

Ahhoz, hogy a box scannelhető legyen (a windows kliens gépről) két kipróbáltan működő parancs is van:


#hciconfig hci0 piscan
#dbus-send --system --dest=org.blez /org/bluez/hci0 org.bluezAdapter.SetMode string:discoverable

Én az elsőt használom - kicsit egyszerűbbnek tűnik :)
Hosszas keresgélés után megtaláltam mivel tudok a saját gépemnek pin kódot "csinálni":
$bluetooth-agent --adapter hci0 1234 "mac address"
Ha ezek után XP alól scannelek, látja a gépet ("hostname"-0) és itt megrekedtem :(
Úgy tűnik, regisztrálni kell a soros kommunikációt mint szolgáltatást:
$spdtool add --channel=n SP
Ennek dacára, he benézek a scannelés eredményébe NEM látom hogy lenne soros port szolgáltatásom, a "#hciconfig -a" kimenete "Networking" és "Telephony" - ami megfelel az XP által jelzetteknek.
Elindítottam a soros bluetooth soros portot is:
$rfcomm listen /dev/rfcomm0 n
(az n a csatornaszám - ez sem igazán világos miért is kell de legyen)
Ha (valamelyik cikk alapján) az XP -n elindítom a hyperterminált a (egy másik azonos típusú USB -vel felszerelve) beállítva a bluetooth által létrehozott virtuális portot (com6) akkor elvileg, ha kiadok egy ilyet:
$echo "teszt" > /dev/rfcomm0
annak meg kellene jelennie a terminálon - semmi nem történik, sőt a Linux kijelenti hogy "NO such a device" - de ez sem igaz, mivel:
$ls -la /dev/rfcomm?
crw-rw--T root dialup /dev/rfcomm0
(a "T" -még nem tudom hova tenni)
Másik szimptóma, hogy a hyperterminál "csatlakoztatásakor" nincs autentikáció kérés - ha scan ablakban XP rákattintok a "Dialup vlmi" akkor kérte - beírtam, de a státusz továbbra is "Not connected".
Rengeteg cikket megnéztem, de nem találok más beállítani valót - ez is kicsit szokatlan, hogy ennyire nincs ez a szolgáltatás beállításhoz valami segéd script - mintha ezt csak GUI felől használnák :(
Mi kellhet még?

Hozzászólások

Kicsit kezd tisztulni a kép.
A Wheezy alap konfigurációban bekapcsolás után, ha bedugom az USB bluetooth adaptert, nem "felderíthető". Így ezt be kell neki állítani: # hciconfig hci0 piscan
(az eredmény ellenőrizhető a # hciconfig -a paranccsal, ekkor a beállítások között megjelenik az ISCAN).

Ahhoz hogy bárki elérhessen bármilyen szolgáltatást, szükség van egy pin kód egyeztető valamire:
# bluetooth-agent --adapter hci0 pin &
(a szolgáltatásra szükség lesz, így fusson csak a háttérben)

A soros port szolgáltatást "regisztrálni" kell:
$ sdptool add --channel=csatorna (én most 15 használtam)

Létre kell hozni egy device node -ot:
# mknod /dev/rfcomm0 c 216 0

Majd el lehet indítani a portot:
$ rfcom listen /dev/rfcomm0 csatorna

Amíg nem kapcsolódik ide valaki, majd nem lép ki addig ez fut.

Sajnos egyenlőre a # getty 38400 /dev/rfcomm0 nem működik.
Próbáltam az rfcomm parancsba foglalni de akkor azt írja hogy nincs ilyen fájl.

Gyanúsan bonyolult ez így. Nem hiszem hogy nekem kéne a node -ot létrehoznom. Nem értem miét nem megy a getty - azt írja nincs ilyen fájl - pontosan ugyanezt írja ha nincs kapcsolat.
Valami kis tipp?

* Én egy indián vagyok. Minden indián hazudik.

Meg van a hiba! A loginhez a következő parancsot kell kiadni:
# getty 38400 rfcomm0

Én pedig leírtam, de senkinek nem szúrt szemet, azt próbáltam (én lüke), hogy /dev/rfcomm0 - mire a getty pár másodperc múlva szép csendben faképnél hagyott!
Persze ezzel a dolog még mindig nem gömbölyű - ezeket a parancsokat (amivel felállítom a szükséges szolgáltatásokat) valahogy automatizálni kell, ráadásul pl. a bluetooth-agent, node és a getty root jogokat igényel.
A Debian bluez csomagban található bluez-simple/test programocskák tulajdonképpen ilyesmiket csinálnak amit én most kézzel összeraktam, de leginkább a fejlesztéshez használhatták, dokumentálva nincsenek (és szerintem nem is lesznek).
Ki kellene "silabizálnom" ki is olvassa az /etc/bluetooth könyvtárban lévő konfigurációs fájlokat. Gyanítom, hogy ott azt is betudnám állítani, hogy legyen soros kommunikáció alapból (most ugye kézzel adtam hozzá). Lehet hogy erre utal a multicast -ság? - több soros csatornát is lehet csinálni, különböző csatornákon.
Talán az a helyes megfogalmazás, hogy a bluez csomag tartalmazza a szükséges drivereket és az alapvető felhasználói programokat az eszközök beállításához (leszámítva az olyanokat mint a nyomtatók, szkennerek és egyéb, specifikus protokollokat használó eszközöket).
A PAN -on még gondolkodom - arra valójában szerintem jobb a WiFi nem látom a bluetooth ilyen jellegű használatának előnyét - talán olcsóbb?
(mint volt rádiósnak, már az is fura, hogy hogy tud működni ez a kis körömpiszoknyi adó/vevő egy masszív WiFi router közelisége mellett - 2m - mindezt az ipari hulladék frekvencián - 2,4GHz - mikrosütő)
Már rendeltem az eBay -ről pár RS-232/Bluetooth lapot - ez még jobb lesz - pl. RPI -hez - hiszen akár a boot folyamatot is megnézhetem.

* Én egy indián vagyok. Minden indián hazudik.