Fedora Core 3 pro lamy - zprovoznění Bluetooth / GPRS

MyEgo.cz

home foto blogy mywindows.cz kontakt

Fedora Core 3 pro lamy - zprovoznění Bluetooth / GPRS

Linux 14.12.04
CDMA a GPRS zároveň

Zprovoznění Bluetooth je od verze kernelu 2.6.x poměrně snadné, protože projekt bluez je v kernelu (jako modul) standardně instalován, přesto to ale není zcela plug&play věc… Tento článek by se chtěl na zprovoznění Bluetooth napojení na telefon, včetně GPRS/EDGE dial-upu přes Bluetooth, podívat (na obrázku vidíte aktivní Ethernet, CDMA i GPRS spojení zároveň).

KDE 3.3.1 má navíc podporu pro OBEX, takže kromě Bluetooth připojení k internetu přes Váš mobil můžete i synchronizovat kontakty, adresář, poznámky, soubory, a další. Prostě kompletní podpora Bluetooth.

Bluetooth moduly - zprovoznění

Nejdříve musíme fyzicky připojit Váš Bluetooth USB dongle, a potom nahrát bluetooth modul, a to takto:

# su
# /etc/init.d/bluetooth start
# /sbin/modprobe hci_usb
# /sbin/modprobe usb-uhci

Tímto by se nám měl bluetooth aktivovat, a příkaz dmesg vypíše něco takovéhoto:

# dmesg
Bluetooth: L2CAP ver 2.4
Bluetooth: L2CAP socket layer initialized
Bluetooth: RFCOMM ver 1.3
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM TTY layer initialized

Zjišťování Bluetooth adres

Nejdříve musíte zjistit Bluetooth adresu Vašeho telefonu, na telefonu tedy zapněte Bluetooth, nastavte Váš mobil jako viditelný, a spusťte příkaz hcitool inq. Ten v mém případě vypsal toto:

# hcitool inq
Inquiring ...
 00:60:57:0E:8A:3D  clock offset: 0x698f  class: 0x500204
 00:01:E3:2B:6F:6D  clock offset: 0x20d4  class: 0x720204

Vidíme zde dvě Bluetooth zařízení, ale jen jedno z nich je můj Siemens SX1. Musel jsem tedy zjistit jméno prvního zařízení:

# hcitool name 00:60:57:0E:8A:3D
Nokia 6310i

A je jasně vidět, že to je sousedova Nokia 6310i… :-) Takže použijeme tu druhou adresu, což je můj Siemens SX1.

Známe již Bluetooth adresu našeho telefonu a na telefon si můžeme “pingnout”, zda žije, příkazem l2ping, parametrem je Bluetooth adresa zařízení:

# l2ping 00:01:E3:2B:6F:6D
Ping: 00:01:E3:2B:6F:6D from 00:03:C9:2F:4E:01 (data size 20) ...
0 bytes from 00:01:E3:2B:6F:6D id 200 time 34.16ms
0 bytes from 00:01:E3:2B:6F:6D id 201 time 22.26ms
0 bytes from 00:01:E3:2B:6F:6D id 202 time 24.31ms
0 bytes from 00:01:E3:2B:6F:6D id 203 time 25.36ms
4 sent, 4 received, 0% loss

Konfigurace Bluetooth

Následně musíme upravit několik souborů v /etc/bluetooth, a to konkrétně PIN kód našeho zařízení v souboru /etc/bluetooth/pin (nastavte si něco těžko uhádnutelného, a nejlépe 8 znaků dlouhého!):

111111

Následně je nutné specifikovat Bluetooth adresu našeho telefonu v souboru /etc/bluetooth/rfcomm.conf, komunikační kanál, a zda se má příkazem rfcomm bind all automaticky připojit:

rfcomm0 {
  # Automatically bind the device at startup
  bind yes;
  # Bluetooth address of the device
  device 00:01:E3:2B:6F:6D;
  # RFCOMM channel for the connection
  channel	1;
  # Description of the connection
  comment "Siemens SX1";
}

A obecné parametry bluetooth spojení v souboru /etc/bluetooth/hcid.conf by měly vypadat takto (zapnul jsem i šifrování komunikace):

# HCId options
options {
	# Automatically initialize new devices
	autoinit yes;

	# Security Manager mode
	#   none - Security manager disabled
	#   auto - Use local PIN for incoming connections
	#   user - Always ask user for a PIN
	#
	security auto;

	# Pairing mode
	#   none  - Pairing disabled
	#   multi - Allow pairing with already paired devices
	#   once  - Pair once and deny successive attempts
	pairing multi;

	# PIN helper
	pin_helper /usr/bin/bluepin;

	# D-Bus PIN helper
	#dbus_pin_helper;
}

# Default settings for HCI devices
device {
	# Local device name
	#   %d - device id
	#   %h - host name
	name "%h-%d";

	# Local device class
	class 0x120104;

	# Default packet type
	#pkt_type DH1,DM1,HV1;

	# Inquiry and Page scan
	iscan enable; pscan enable;

	# Default link mode
	#   none   - no specific policy 
	#   accept - always accept incoming connections
	#   master - become master on incoming connections,
	#            deny role switch on outgoing connections
	#
	lm accept;

	# Default link policy
	#   none    - no specific policy
	#   rswitch - allow role switch
	#   hold    - allow hold mode
	#   sniff   - allow sniff mode
	#   park    - allow park mode
	#
	lp rswitch,hold,sniff,park;

	# Authentication and Encryption
	auth enable;
	encrypt enable;
}

Nastavení připojení k internetu

Nyní je tedy náš telefon připraven, zbývá ještě nastavit jeho automatické párování s počítačem, takže dejte na Vašem telefonu vyhledat Bluetooth zařízení, a při párování s Vaším počítačem na telefonu vložte jako PIN kód číslo (upravené) 111111.

V systému by se mělo vytvořit nové rfcomm zařízení:

# ls /dev/rfcomm*
/dev/rfcomm0

Pro daný telefon a kanál:

# rfcomm
rfcomm0: 00:01:E3:2B:6F:6D channel 1 clean

Následně postačí nastavit parametry ppp, v souboru /etc/wvdial.conf, pro GPRS například takto:

[Modem1]
Modem = /dev/rfcomm0
Baud = 115200
SetVolume = 0
Dial Command = ATDT
Init1 = ATZ
Init3 = ATM0
FlowControl = CRTSCTS
[Dialer GPRS]
Username = internet
Password = internet
Phone = *99#
Stupid Mode = 1
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Inherits = Modem1

Připojení k internetu přes Bluetooth GPRS/EDGE poté provedeme jednoduše zadáním wvdial GPRS.

OBEX

Pokud používáte KDE, máte podporu pro OBEX (transfer a synchronizaci souborů, kalendáře, kontaktů a dalšího) již instalovánu, pokud používáte Gnome či jiný window-manager, budou se Vám hodit odkazy na openobex.sf.net a rfcomm-obex.

OpenObex si můžete rovněž instalovat takto:

yum install openobex openobex-apps

Komentáře

  1. 1 Radek Hulán 14.12.04, 01:12:16
    FB

    test GPRS místo CDMA...

  2. 2 Miroslav Navrátil 14.12.04, 03:12:55
    FB

    Tobe jde gprs a cdma zaroven? hm...

  3. 3 Radek Hulán 14.12.04, 04:12:49
    FB

    [2] no jistě, na Linuxu a s iptables žádný problém.. plus tam je ještě gigabitový ethernet

  4. 4 Miroslav Navrátil 15.12.04, 11:12:26
    FB

    [3] Nevypadá to špatně, ale myslím, že bych to nevyužil... :) Stačí mi jedno připojení.

  5. 5 Miroslav Navrátil 15.12.04, 11:12:28
    FB

    Připojení k netu... ;) I když teď vlastně jedu taky přes ethernet, cdma modem mám píchnutej do routeru. :)

  6. 6 blackwhit 07.04.05, 11:04:03
    FB

    cus, jsem absolutni lama v linuxu a stale se jen snazim ucit, ale net pres gprs a bluetooth nutne potrebuju co nejdriv. postupoval jsem presne podle navodu, ale kdyz dam vytacet (wvdial) spoji se to s telefonem, ale za chvili napise, ze je jako chyba, ze nemuze najit v rcomm0 serial port ci co a druha chyba input/output... tak kdybyste mel nekdo tip...byl bych vdecen /presne si ta chybova hlaseni nepamatuju a musel jsem se prepnout do woken, abych mohl na net/

  7. 7 cebek 27.12.05, 03:12:09
    FB

    Zdravim,

    zkousel jsem tento postup ve FC3 a FC4 a ve FC3 v poradku a pod FC4 mi to porad nemuze najit modem nebo mi to pise, ze se nemuze spojit s telefonem pres Bluetooth. Neni tam nejaka nekompatibilita...? ... jsem velka lama tak prosim polopate.. :)) zkousel jsem tez postup, ze jsem to rozchodil v FC3 a dal jsem upgrade na FC4 a razem mi to nefungovalo. Je reseni tam nechat FC3? .. :) Diky za informace. cebek