Maceraya hazır mısın! bir BSD almaz mısın?

Bu konuya katılanlar

Duyuru
* Forum tasarımımız yenilendi.
* FreeBSD 10.4 - RELEASE Final çıktı.
* FreeBSD 11.1 - RELEASE Final çıktı.
Son Mesajlar
Çevrimiçi (0)

Freebsd 9.1 'de Bluetooth Hizmeti

Bluetooth 10 metre menzile sahip, 2.4 GHz lisanssız bant faaliyeti gösteren, kişisel ağlar oluşturmak için kullanılan bir kablosuz teknolojidir. Ağlar genellikle cep telefonları, el bilgisayarları ve dizüstü bilgisayarlar gibi taşınabilir cihazlar arasında ad-hoc modunda oluşur.Dosya transferi, ses taşıma gibi hizmetlerde bluetooth kullanılabilir.
Freebsd 9.1 yerleşik bir bluetooth yöneticisi arayüzü ile gelmez. Bluetooth hizmetini başlatmak ve yapılandırmak için uç birimden ilgili komutları girmemiz gerekir.
Bluetooth dongle 'ların çoğu ng_ubt sürücüsüyle desteklenir.Broadcom BCM2033 yonga tabanlı Bluetooth cihazları ubtbcmfw ve ng_ubt sürücüleri tarafından desteklenir.3Com Bluetooth PC Kart 3CRWB60-A ng_bt3c sürücüsü tarafından desteklenmektedir.Seri ve UART bazlı Bluetooth cihazları sio , ng_h4 ve hcseriald ile desteklenir.
Varsayılan olarak Bluetooth aygıt sürücüleri çekirdek modülleri olarak mevcuttur. Bir aygıt takmadan önce, çekirdek içine sürücüsünü yüklemeniz gerekecektir:
# kldload ng_ubt
Bluetooth aygıtının sistem başlangıcı sırasında modülünün yüklenmesi için /boot/loader.conf e aşağıdaki satırın eklenmesi:
ng_ubt_load="YES"
Bluetooth dongle aygıtlar ya bilgisyarımızın üzerinde gelir yada dıştan usb bluetooth dongle olarak usb'den takılılr.
Bluetooth hizmetini başlatmak için aşağıdaki komutları kullanabiliriz:
# service bluetooth start ubt0
ya da
# /etc/rc.d/bluetooth start ubt0
Bu komutlardan sonra aşağıdaki hata iletisini alırsanız bunu önemsemeyin, hizmet başlayacaktır. Nitekim aynı komutu ikinci kez gireseniz bu mesajı almadığınızı göreceksiniz:
/etc/rc.d/bluetooth: ERROR: Unable to setup Bluetooth stack for device ubt0
Hizmeti durdurmak aynı komutlar ile "start" yazan yere "stop" yazarak gerçekleşir.

Host Controller Interface (HCI):
HCI 'nin varsayılan ismi"devicehci" dir. En yaygın görevlerinden biri RF(radyo frekans) yakınlığındaki Bluetooth cihazlarını keşfetmektir.Bu işleme, inquiry(araştırma) denir. inquiry ve diğer HCI ile ilgili işlemler hccontrol programı ile yapılır. Yakınımızdaki bluetooth'lu cihazların bulunabilmesi için bluetooth'larının açık ve keşfedilebilir modda olması gerekir.
# hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 34:7e:39:c8:11:0d
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 0x2
Page Scan Mode: 00
Class: 5a:02:04
Clock offset: 0x33c6
Inquiry complete. Status: No error [00]
root@fbsdcosmic-pc:/home/fbsdcosmic #
BD_ADDR ağ kartı MAC adreslerini benzer şekilde bir Bluetooth aygıtının benzersiz adresidir.Bu adres bir aygıt ile veri aktarımı için gereklidir. Bluetooth hizmetlerini çalıştırırken bu adresi kullanacağız. BD_ADDR adresine okunabilen bir isim atamak da mümkündür. Akılda tutulması zor olan BD_ADDR adresi yerine atadığımız bu adı kullanabiliriz. BD_ADDR adresine isim atamak için /etc/bluetooth/hosts dosyasını yapılandırmamız gerekir.
Bu çalışmada bluetooth'lu aygıt olarak Nokia 6600i 3G mobil telefon kullanılmıştır.
# nano /etc/bluetooth/hosts
/etc/bluetooth/hosts dosyasının içeriği:
# $Id: hosts,v 1.1 2003/05/21 17:48:40 max Exp $
# $FreeBSD: release/9.1.0/etc/bluetooth/hosts 152286 2005-11-10 19:09:22Z emax $
#
# Bluetooth Host Database
#
# This file should contain the Bluetooth addresses and aliases for hosts.
#
# BD_ADDR Name [ alias0 alias1 ... ]
# 00:11:22:33:44:55 phone
34:7e:39:c8:11:0d Nokia6600
Aşağıdaki komut, uzak aygıtta (burada Nokia 6600) bluetooth menüsünde cihaza atanan adı alır:
# hccontrol -n ubt0hci remote_name_request 34:7e:39:c8:11:0d
BD_ADDR: 34:7e:39:c8:11:0d
Name: Nokia6600
Yukarda /etc/bluetooth/hosts dosyasının sonunu kendime göre düzenledim. BD_ADDR adresine "Nokia6600" adını atadım.Fakat böyle olması şart değil siz istediğiniz bir ismi atayabilirsiniz.
Şimdi bunu test edelim:
# hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: Nokia6600
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 0x2
Page Scan Mode: 00
Class: 5a:02:04
Clock offset: 0x33c7
Inquiry complete. Status: No error [00]
Görüldüğü gibi BD_ADDR: Nokia6600 oldu.
Uzak bir Bluetooth aygıtından(burada Nokia6600) bir arama yaparsanız "your.host.name (ubt0)" olarak bilgisayarınızı bulacaktır.
Aygıtları eşleştirme:
Varsayılan olarak, Bluetooth iletişimi kimlik denetimi istemez ve herhangi bir cihaz diğer cihazla konuşabilir. Bir Bluetooth aygıtı (örneğin, cep telefonu) için belirli bir hizmeti (örneğin, Dial-Up servisi) sağlamak için kimlik doğrulaması gerekliliğini seçebilirsiniz. Bluetooth kimlik normalde PIN kodları ile yapılır. Bir PIN kodu uzunluğu 16 karakter olan bir ASCII dizesidir. Kullanıcı her iki cihazda aynı PIN kodunu girmelidir. Kullanıcının PIN kodunu girdikten sonra, her iki cihaz bir bağlantı anahtarı üretecektir. Daha sonra bağlantı anahtarı ya cihazların kendi içinde ya da bir kalıcı depolama içinde saklanabilir.Gelecek sefer iki cihaz daha önce oluşturulan bağlantı anahtarını kullanır.Yukarıda açıklanan prosedüre eşleştirme adı verilir.Bağlantı anahtarı herhangi bir aygıt tarafında kaybolursa eşleştirmenin tekrarlanması gerekir.Hcsecd tüm Bluetooth kimlik doğrulama isteklerini işlemekten sorumludur. Varsayılan yapılandırma dosyası /etc/bluetooth/hcsecd.conf dur. PIN kodu aşağıda keyfi olarak "1234" olarak ayarlanmıştırr:
# nano /etc/bluetooth/hcsecd.conf
device {
bdaddr 34:7e:39:c8:11:0d;
name "Nokia6600";
key nokey;
pin "1234";
}

Bazı cihazlar için (örneğin Bluetooth kulaklıklar için) yerleşik sabit bir PIN kodu olabilir.
# hcsecd -D
-D anahtarı hcsecd sürecini ön planda kalmaya zorlar, böylece neler olup bittiğini görmek kolaydır.Eşleştirme almak ve uzaktaki cihaza Bluetooth bağlantısı başlatmak için uzaktaki cihazı ayarlayın. Uzak aygıt bu eşleştirmeyi kabul edip etmeyeceğinizi söyler ve PIN kodu talep eder. hcsecd.conf dosyasındaki aynı PIN kodunu girin.Şimdi bilgisayar ve uzaktaki cihaz eşleşir. Alternatif olarak, uzak aygıttan da eşleştirme başlatabilir. hcsecd 'yi sistem başlangıcında otomatik olarak başlatmak için /etc/rc.conf dosyasına aşağıdaki satırı ekleyin:
hcsecd_enable="YES"

Eşleştirmeyi gerçekleştirmek için, kimlik doğrulamayı açmanız gerekir:
# hccontrol write_authentication_enable 1
# hccontrol read_authentication_enable
Son olarak hcsecd'yi çalıştırıyoruz:
# hcsecd
Artık bilgisayarımız bluetooth aracılığıyla yine bluetootlu bir cihazla(bizim örneğimizde Nokia6600) eşleşmeye hazırdır.
Özet:
1-)/boot/loader.conf ekleyin
ng_ubt_load="YES"
2-) # /etc/rc.d/bluetooth start ubt0hci
3-)/etc/bluetooth/hosts son satırı ekleyin
# $Id: hosts,v 1.1 2003/05/21 17:48:40 max Exp $
# $FreeBSD: release/9.1.0/etc/bluetooth/hosts 152286 2005-11-10 19:09:22Z emax $
#
# Bluetooth Host Database
#
# This file should contain the Bluetooth addresses and aliases for hosts.
#
# BD_ADDR Name [ alias0 alias1 ... ]
# 00:11:22:33:44:55 phone
34:7e:39:c8:11:0d Nokia6600
4-)/etc/bluetooth/hcsecd.conf aşağıdaki satırları ekleyin
device {
bdaddr 34:7e:39:c8:11:0d;
name "Nokia6600";
key nokey;
pin "1234";
}
5-)/etc/rc.conf dosyasına ekleyin:
hcsecd_enable="YES"

6-)# hccontrol write_authentication_enable 1
7-)# hccontrol read_authentication_enable
8-)# hcsecd
1,3,4,5. maddelerde belirtilen dosyalarda yaptığımız düzenlemeleri bir kereliğine yapıyoruz. Fakat bluetooth hizmetini ve eşleştirmeyi başlatmak için gerekli komutları bilgisayarımızı her açışımızda girmemiz gerekiyor. Yok her defasında bu komutları girmek istemiyorsanız:
# nano /bin/bluetooth_baslat
Dosyanın içine aşağıdaki satırları ekliyoruz:




#!/bin/sh
/etc/rc.d/bluetooth start ubt0
hccontrol write_authentication_enable 1
hccontrol read_authentication_enable
hcsecd
exit 0





Kaydetip çıktıktan sonra:
# chmod 577 /bin/bluetooth_baslat
Artık bilgisayarımızı yeniden başlattığımızda bluetooth hizmetini ve eşleştirmeyi başlatmak için sadece:
# bluetooth_baslat
Bu komuttan sonra aşağıdaki iletiyi alırsanız bunu yok sayın hizmet başlayacaktır:
/etc/rc.d/bluetooth: ERROR: Unable to setup Bluetooth stack for device ubt0
Artık bluetooth protokollerini kullanabiliriz. Bunları daha sonraki iletilerimde paylaşacağım.

Yorumlar

  • Eline sağlık @doctur
    Teknik terimleride açıklayarak gerçekten çok hoş bir rehber hazırlamışsın, özet kısmıda zekice olmuş kafa karışıklığı da olmaz böylelikle, süper. >:D)

    Maceraya hazır mısın?  Bir BSD almaz mısın!
Yorum yapmak için Oturum Açın yada Kayıt Olun .