Slackware 11, Bluetooth, GPRS

W tym miejscu zapraszamy Was do współpracy. Czekamy na propozycje, sugestie i rady.
Moderatorzy zatroszczą się o to, by najlepsze teksty trafiły do FAQ.

Moderatorzy: Moderatorzy, Administratorzy

Jaka jest twoja ulubiona marka?

Nokia
17
53%
Motorola
2
6%
Samsung
1
3%
Sony Ericsson
9
28%
SPV
1
3%
Sagem
2
6%
 
Liczba głosów: 32

korab
Użytkownik
Posty: 1
Rejestracja: 2007-04-14, 09:53

Slackware 11, Bluetooth, GPRS

Post autor: korab »

Opis dotyczy kernela 2.6.18 i Slackware 11.0.

Z kernelem 2.4 występował jakiś drobny błąd, nie wnikalem co bylo przyczyna poniewaz korzystam z kernela 2.6. Wszystko potrzebne do uruchomienia bluetooth dostępne jest na http://linuxpackages.net w wersji dla S11.

1. Instalujemy pakiety.

dbus-1.0.2-i486-1mht.tgz
bluez-libs-3.5-i686-1.tgz
bluez-utils-3.5-i686-1.tgz
openobex-1.3-i686-1.tgz

2. D-Bus.

Najpierw musimy uruchomić D-Bus. Obecnie jest on niezbędny do działania bluetooth. Najnowszy Xfce również bez niego nie ruszy. "D-Bus is a message bus system, a simple way for applications to talk to one another."

Dodajemy usera messagebus

Kod: Zaznacz cały

useradd -d /dev/null -s /dev/null messagebus
edytujemy /etc/rc.d/rc.local

Kod: Zaznacz cały

test -x /etc/rc.d/rc.messagebus && /etc/rc.d/rc.messagebus start
edytujemy /etc/rc.d/rc.local_shutdown

Kod: Zaznacz cały

test -x /etc/rc.d/rc.messagebus && /etc/rc.d/rc.messagebus stop
rm -f /var/run/dbus/*
rc.local, rc.local_shutdown i rc.messagebus powinny mieć atrybut wykonywalności.

Startujemy D-Bus.

Kod: Zaznacz cały

/etc/rc.d/rc.messagebus start
Jeśli pojawi sie "Failed to start message bus: The pid file "/var/run/dbus/pid" exists, if the message bus is not running, remove this file" to zatrzymajmy dbus i wyczyśćmy katalog /var/run/dbus/
Zatrzymanie D-Busa /etc/rc.d/rc.messagebus stop z jakiegoś powodu pozostawia pid i "socket". Można to obejsc dodając rm -f /var/run/dbus/* do rc.local_shutdown lub poprawiając rc.messagebus.

Sprawdzamy czy dziala

Shell# ps ax | grep dbus

/usr/bin/dbus-daemon --system

3. Konfiguracja Bluetooth.

Shell# ldd /usr/sbin/hcid

libdbus-1.so.2 => not found

Kod: Zaznacz cały

ln -s /usr/lib/libdbus-1.so.3.2.0 /usr/lib/libdbus-1.so.2
edytujemy /etc/rc.local

Kod: Zaznacz cały

# bluetooth
test -x /etc/rc.d/rc.bluetooth && /etc/rc.d/rc.bluetooth start
edytujemy /etc/rc.local_shutdown

Kod: Zaznacz cały

# bluetooth
test -x /etc/rc.d/rc.bluetooth && /etc/rc.d/rc.bluetooth stop
edytujemy /etc/bluetooth/hcid.conf. Możemy do niego wpisać PIN czyli 'passkey'.

Kod: Zaznacz cały

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

# Default PIN code for incoming connections
passkey "1234";
edytujemy /etc/bluetooth/rfcomm.conf

Kod: Zaznacz cały

rfcomm0 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the device
device A0:B2:C3:D4:E5:F6;
# RFCOMM channel for the connection
channel 1;
# Description of the connection
comment "Dialup";
}

rfcomm1 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the device
device A0:B2:C3:D4:E5:F6;
# RFCOMM channel for the connection
channel 6;
# Description of the connection
comment "OBEX Object Push";
}
Jeśli nie wiemy co wpisać do 'device' i 'channel', użyjmy hcitool scan i sdptool browse. 'channel 1' oznacza kanał pod którym dostępny jest modem w naszej komórce.

4. Konfiguracja GPRS na przykładzie plusgsm.

Ponizsze pliki kopiujemy do /etc/ppp/ i nadajemy im atrybut wykonywalności.

plusgsm_gprs_chat_script

Kod: Zaznacz cały

ABORT BUSY
ABORT 'NO CARRIER'
ABORT VOICE
ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE'
ABORT 'NO ANSWER'
'' ATZ
OK-AT-OK AT+CGDCONT=1,"IP","internet"
OK "ATD*99***1#"
CONNECT ''
plusgsm_gprs_start_script

Kod: Zaznacz cały

pppd /dev/rfcomm0 115200 \
connect "chat -V -f /etc/ppp/plusgsm_gprs_chat_script" \
crtscts modem -detach noccp defaultroute \
noauth ipcp-accept-remote ipcp-accept-local noipdefault debug
/etc/resolv.conf

Kod: Zaznacz cały

nameserver 212.2.96.51
nameserver 212.2.96.52
Startujemy bluetooth.

Kod: Zaznacz cały

/etc/rc.d/rc.bluetooth start
Teraz w komorce musimy wlaczyc BT, znalesc i dodac nasz komputer 'BlueZ (0)' Zostaniemy poproszeni o PIN, ktory wpisalismy do hcid.conf

Jeśli komórka nic nie znalazła.

Shell# /etc/rc.d/rc.bluetooth stop
Shell# rm -rf /var/lib/bluetooth/*

Nie nalezy usuwać /var/lib/bluetooth tylko id naszej komórki, która tam się znajduje. Następnie /etc/rc.d/rc.bluetooth start i ponawiamy szukanie.

Gdy urządzenia zostaną sparowane możemy nawiazac polaczenie.

Shell# /etc/ppp/gprs_start_script &
zamykamy:
Shell# killall pppd

5. Przesylanie plikow.

Skorzystalem z tych 'opd' i 'ussp-push'. U mnie dziala to tylko dla niewielkich plikow. Przy kilku megowych zawiesza sie. Czasami trzeba restartowac BT nawet przy mniejszych. Nie wiem co jest przyczyna zawieszania. Moze kombinacje z biblotekami lub stare wersje opd i ussp-push z ktorych korzystalem? Podobno rowniez zalecany jest w bluez z cfs. Problem dotyczy tylko przesylania plikow. GPRS dziala bez zarzutu.

Musimy znalesc gdzies 'opd', 'ussp-push' i skopiowac je do /usr/sbin/

Shell# ldd /usr/sbin/opd

libopenobex-1.0.so.1 => not found
libbluetooth.so.1 => not found

Kod: Zaznacz cały

ln -s /usr/lib/libopenobex.so.1.3.0 /usr/lib/libopenobex-1.0.so.1
ln -s /usr/lib/libbluetooth.so.2.3.0 /usr/lib/libbluetooth.so.1
Shell# /etc/rc.d/rc.bluetooth restart

Shell# rfcomm

rfcomm0: 01:02:03:04:05:06 channel 1 clean
rfcomm1: 01:02:03:04:05:06 channel 6 clean

Przesylanie.

komputer --> komorka

Kod: Zaznacz cały

ussp-push /dev/rfcomm1 /dir/plik_do_wyslania plik_do_wyslania
komorka --> komputer

Kod: Zaznacz cały

/usr/sbin/opd --mode OBEX --channel 7 --path /tmp/ --sdp --metadata
Ostatnio zmieniony 2007-04-14, 17:01 przez korab, łącznie zmieniany 8 razy.
Awatar użytkownika
SaraniS
Użytkownik
Posty: 176
Rejestracja: 2005-08-10, 08:22
Lokalizacja: Olesno Slaskie
Kontakt:

Re: Slackware 11, Bluetooth, GPRS

Post autor: SaraniS »

Witam
Czasem (jak u mnie - Nokia 7650 po irda, ale z tego, co wygooglałem, i na BT występuje*), może zaistnieć problem rozłączania po ok. 2 minutach - czyli po 4 requestach lcp-echa. Rozwiązaniem jest dopisanie w wywołaniu pppd opcji

Kod: Zaznacz cały

lcp-echo-interval 65535
Przynajmniej u mnie to pomogło :)

*) EDIT
Kupiłem dongla BT na USB - problem występuje i taki wpis go rozwiązuje :)
Pozdrawiam
Ostatnio zmieniony 2007-12-07, 19:17 przez SaraniS, łącznie zmieniany 1 raz.
Toshiba Satellite L40-14B: Cel530 1.73GHz/ 2GiB RAM/ 320GiB HDD Slackware 14.0 Linux 3.2.29, KDE 4.8.5, Opera 12, Skype 4.2, XMMS/ amarok/ MPlayer
RLU #398894
ODPOWIEDZ