Skocz do zawartości

Internet W Telefonie Przez Bluetooth


wklaczynski

Rekomendowane odpowiedzi

We wcześniejszym moim poście opisałem sposób konfiguracji sieci PAN na Fedorze 7, od tego czasu uległo kilka zmian co do tej usługi, nie jestem pewien co do wersji fedory 8-9, ale postanowiłem ponownie umieścić opis konfiguracji modyfikując go dla Fedora 10, gdzie cała sprawa wygląda nieco inaczej, ponieważ część funkcjonalności zostało przekazane do pakietu bluez.

 

W tym miejscu krótko opiszę instalację interfejsu bluetooth na naszej fedorce, ponieważ to już całkiem inny temat. Ale aby przejść dalej należy to wykonać i mieć już zainstalowaną usługę bluetooth, hidd i inne narzędzia. Zazwyczaj fedora instaluje większość domyślnie podczas instalacji systemu, ale może się trafić wiele wyjątków. A więc jeżeli nie ma zainstalowanych poniższych pakietów w naszym systemie, to należy je ściągnąć z repo fedory i zainstalować. Aby można było wiele funkcji wycisnąć z telefonu i fedorki powinny być zainstalowane poszczególne pakiety:

bluez-libs
libbtctl

openobex
openobex-apps
obexftp

#ja używam gnome a więc:
bluez-gnome
gnome-bluetooth
gnome-bluetooth-libs

Między innymi dzięki powyższym pakietom można przesłać pliki( za pomocą menu wyślij w nautilus), można listować katalogi telefonu (podając w nautilus path obex:///), i wiele innych pożytecznych rzeczy.

 

Jak wszystko jest ok, w tace systemowej pojawia się ikona sygnalizująca bluetooth, należy ustawić czas kiedy urządzenie staje się niewidoczne na nigdy, wciskając prawy przycisk myszki na ikonce sygnalizującej pracę bluetooth. Teraz możemy sprawdzić adres MAC naszego adaptera bluetooth używając funkcji hcitool:

[root@localhost ~]# hcitool dev
Devices:
        hci0    00:14:85:96:9A:9B

Jeśli urządzenie ma adres MAC złożony z samych jedynek lub zer np: 11:11:11:11:11:11, 00:00:00:00:00:00, to znaczy że możemy sobie już dać spokój, takie urządzenia nie posiadają unikalnych adresów i nie ma szans, że będą działać, tym bardziej adres 11:11:... który zachowuje się jak multicast nie da się przyłączyć do mostka, a po rozłączeniu zawiesi komputer. W takim wypadku należy wybrać się do sklepu i zakupić urządzenie które posiada legalne MAC adresy. Można teraz sprawdzić czy telefon paruje się z naszym komputerem, w tym celu należy w telefonie wykryć urządzenia bluetooth i wykonać wszystkie czynności połączeniowe. Jeżeli wszystko możemy rozpocząć ustawienia sieci.

 

Kolejnym etapem jest dodanie interfejsu mostu pan1 ponieważ usługa Network Service pakietu bluez poszukuje tego tego interfejsu aby montować interfejsy bnep0...bnepn , w tym celu należy dodać plik "/etc/sysconfig/network-scripts/ifcfg-pan1 i wystartować ten interfejs, za pomocą narzędzi konfiguracji sieci lub komendy ifup pan1

DEVICE=pan1
TYPE=Bridge
BOOTPROTO=none
IPADDR=10.0.244.1
NETMASK=255.255.255.0
ONBOOT=yes

Teraz należy skonfigurować serwer DHCP, ponieważ telefon będzie potrzebował informacji o naszej sieci które pobiera z serwera dhcp. Jeżeli nie ma zainstalowanego pakietu dhcp w naszym systemie, to ściągamy go z repozytorium fedory i instalujemy. Serwer dhcp w momencie startowania wymaga istnienia interfejsów i adresów IP, które zostały ujęte w jego konfiguracji , w tym celu powstał powyższy interfejs mostek pan0, który łączy się wraz ze startem systemu i do niego będą się przyłączały interfejsy tworzone przez usługę pand, ponieważ interfejsy bnep pojawiają się jedynie w czasie połączenia telefonu z komputerem, i nie mogą być użyte w konfiguracji serwera dhcpd . Aby ustawić serwer dhcpd należy wy edytować plik "/etc/dhcpd.conf". Następnie wystartować serwer dhcpd i sprawdzić czy w pliku "/var/lib/messages" nie ma żadnych błędów, usługę dhcpd należy ustawić tak aby startowała wraz z systemem.

ddns-update-style interim;
ddns-updates on;
allow client-updates;
one-lease-per-client true;
allow bootp;
option T150 code 150 = string;

subnet 10.0.244.0 netmask 255.255.255.0 {
    range 10.0.244.2 10.0.244.128;
    interface pan0;
    default-lease-time 600;
    max-lease-time 7200;
    option domain-name "sabasoft.pl";

    option subnet-mask 255.255.255.0;
    option broadcast-address 10.0.244.255;
    option routers 10.0.244.1;
    option domain-name-servers 213.241.79.37, 83.238.255.76;
    option time-offset -3600;
    option ntp-servers 10.0.244.1;
}

Teraz można zrobić maskaradę na iptables: "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE", Zezwolić na ruch po porcie 80 i 433. Włączyć ruting pakietów edytując plik "etc/sysctl.conf" i ustawić wartość net.ipv4.ip_forward = 1, aby nie restartować systemu po ustawieniu sysctl.conf można wykonać "echo 1 >/proc/sys/net/ipv4/ip_forward" w terminalu. Maskaradę można także ustawić używając graficznego edytora "Zapora Sieciowa". To są wszystkie standardowe czynności jakie się wykonuje udostępniając internet w sieci lokalnej.

 

Ja powyższy krok wykonałem inaczej, za pomocą proxy, ten sam serwer proxy wykorzystuję do łączenia się z internetem przeglądarką internetową, dzięki temu mogę spokojnie oglądać strony zasypane reklamami w flash player, które przykrywają ekran nie dając się wyłączyć i innych wrednych rzeczy serwowanych z netu, słowem można się w fajny sposób pozbyć spamu. Aby skonfigurować serwer proxy należy ściągnąć pakiet privoxy, dostępny jest w repo fedory, następnie otworzyć plik "/etc/privoxy/config" i zmienić wpis w linii:

listen-address 1270.0.1:8118 na listen-address :8118

tak aby można było używać z wszystkich interfejsów. Jeżeli nie ma linii to dopisać. Zezwolić na ruch po porcie 8118 protokołu TCP i UDP. Wystartować usługę privoxy i ustawić tak aby startowała z systemem.

 

Każdy telefon ustawia się inaczej, ja mam Sony Ericson K800i, u mnie po dodaniu urządzeń i sparowaniu urządzeń, wykonałem połącz.

Ustawienia->Łączność->Bluetooth->Moje Urządzenia->Nowe urządzenie

Następnie dodałem profil komputer w Profilach Internetowych, jako Łącz używając wskazałem zaskandowany komputer w poprzednim kroku.

W związku z tym, że używałem proxy po dodaniu profilu wy edytowałem połączenie i zaznaczyłem łączenie za pomocą proxy wpisując adres interfejsu pan0 "10.0.244.1" i port "8118", podobnie ustawiłem Ustawienia Java. Oczywiście należy pamiętać aby dodany profil był wybrany. Przy stosowaniu samej maskarady nie należy ustawiać proxy.

Ustawienia->Łączność->Ustaw. Internetowe

 

Po ustawieniu tego wszystkiego można uruchomić przeglądarkę w telefonie, zamiast kuli sygnalizującej połączenie GPRS powinny pojawić się jedynie strzałki przy bluetooth, następnie pojawić się wybrana strona w przeglądarce. Jak wszystko jest poprawne w messages mam log:

Nov 27 16:34:58 localhost avahi-daemon[2586]: Withdrawing address record for fe80::214:85ff:fe96:9a9b on bnep0.
Nov 27 16:34:58 localhost kernel: pan1: port 1(bnep0) entering disabled state
Nov 27 16:34:58 localhost kernel: device bnep0 left promiscuous mode
Nov 27 16:34:58 localhost kernel: pan1: port 1(bnep0) entering disabled state
Nov 27 16:35:04 localhost bluetoothd[2311]: Added new connection: bnep0
Nov 27 16:35:04 localhost kernel: device bnep0 entered promiscuous mode
Nov 27 16:35:04 localhost bluetoothd[2311]: bridge pan1: interface bnep0 added
Nov 27 16:35:04 localhost kernel: pan1: port 1(bnep0) entering learning state
Nov 27 16:35:05 localhost avahi-daemon[2586]: Registering new address record for fe80::214:85ff:fe96:9a9b on bnep0.*.
Nov 27 16:35:19 localhost kernel: pan1: topology change detected, propagating
Nov 27 16:35:19 localhost kernel: pan1: port 1(bnep0) entering forwarding state
Nov 27 16:35:33 localhost dhcpd: DHCPDISCOVER from 00:1a:75:a5:d3:c3 via pan1
Nov 27 16:35:34 localhost dhcpd: DHCPOFFER on 10.0.244.2 to 00:1a:75:a5:d3:c3 via pan1
Nov 27 16:35:34 localhost dhcpd: DHCPREQUEST for 10.0.244.2 (10.0.244.1) from 00:1a:75:a5:d3:c3 via pan1
Nov 27 16:35:34 localhost dhcpd: DHCPACK on 10.0.244.2 to 00:1a:75:a5:d3:c3 via pan1
Nov 27 16:40:32 localhost dhcpd: DHCPREQUEST for 10.0.244.2 from 00:1a:75:a5:d3:c3 via pan1
Nov 27 16:40:32 localhost dhcpd: DHCPACK on 10.0.244.2 to 00:1a:75:a5:d3:c3 via pan1
Nov 27 16:45:32 localhost dhcpd: DHCPREQUEST for 10.0.244.2 from 00:1a:75:a5:d3:c3 via pan1
Nov 27 16:45:32 localhost dhcpd: DHCPACK on 10.0.244.2 to 00:1a:75:a5:d3:c3 via pan1
Nov 27 16:50:31 localhost dhcpd: DHCPREQUEST for 10.0.244.2 from 00:1a:75:a5:d3:c3 via pan1
Nov 27 16:50:31 localhost dhcpd: DHCPACK on 10.0.244.2 to 00:1a:75:a5:d3:c3 via pan1
Nov 27 16:55:30 localhost dhcpd: DHCPREQUEST for 10.0.244.2 from 00:1a:75:a5:d3:c3 via pan1
Nov 27 16:55:30 localhost dhcpd: DHCPACK on 10.0.244.2 to 00:1a:75:a5:d3:c3 via pan1
Nov 27 16:55:42 localhost yum: Installed: bluez-gnome-analyzer-1.8-8.fc10.x86_64
Nov 27 16:55:43 localhost yum: Installed: bluez-hcidump-1.42-2.fc10.x86_64
Nov 27 16:55:43 localhost yum: Installed: bluez-gstreamer-4.17-2.fc10.x86_64
Nov 27 17:00:28 localhost dhcpd: DHCPREQUEST for 10.0.244.2 from 00:1a:75:a5:d3:c3 via pan1
Nov 27 17:00:28 localhost dhcpd: DHCPACK on 10.0.244.2 to 00:1a:75:a5:d3:c3 via pan1
Nov 27 17:05:28 localhost dhcpd: DHCPREQUEST for 10.0.244.2 from 00:1a:75:a5:d3:c3 via pan1
Nov 27 17:05:28 localhost dhcpd: DHCPACK on 10.0.244.2 to 00:1a:75:a5:d3:c3 via pan1
Nov 27 17:09:45 localhost dhcpd: DHCPRELEASE of 10.0.244.2 from 00:1a:75:a5:d3:c3 via pan1 (found)
Nov 27 17:09:45 localhost avahi-daemon[2586]: Withdrawing address record for fe80::214:85ff:fe96:9a9b on bnep0.
Nov 27 17:09:45 localhost kernel: pan1: port 1(bnep0) entering disabled state
Nov 27 17:09:45 localhost kernel: device bnep0 left promiscuous mode
Nov 27 17:09:45 localhost kernel: pan1: port 1(bnep0) entering disabled state
Nov 27 17:09:45 localhost bluetoothd[2311]: Added new connection: bnep0
Nov 27 17:09:45 localhost kernel: device bnep0 entered promiscuous mode
Nov 27 17:09:45 localhost bluetoothd[2311]: bridge pan1: interface bnep0 added
Nov 27 17:09:45 localhost kernel: pan1: port 1(bnep0) entering learning state
Nov 27 17:09:47 localhost avahi-daemon[2586]: Registering new address record for fe80::214:85ff:fe96:9a9b on bnep0.*.
Nov 27 17:10:00 localhost kernel: pan1: topology change detected, propagating
Nov 27 17:10:00 localhost kernel: pan1: port 1(bnep0) entering forwarding state
Nov 27 17:10:15 localhost dhcpd: DHCPDISCOVER from 00:1a:75:a5:d3:c3 via pan1
Nov 27 17:10:16 localhost dhcpd: DHCPOFFER on 10.0.244.2 to 00:1a:75:a5:d3:c3 via pan1
Nov 27 17:10:16 localhost dhcpd: DHCPREQUEST for 10.0.244.2 (10.0.244.1) from 00:1a:75:a5:d3:c3 via pan1
Nov 27 17:10:16 localhost dhcpd: DHCPACK on 10.0.244.2 to 00:1a:75:a5:d3:c3 via pan1

 

Powodzenia!

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 month later...

Niestety...po mimo wykonania wszystkich w/w i opisanych czynności (bez błędu krok po kroku...wielokrotnie):

1.nie udało się podnieść interfejsu pan0 (domaga się brctl...czyli plik z nieujętego w poradniku pakietu bridge-utils)

2. nawet po zainstalowania w/w pakieetu i automatycznym tworzeniu interfejsu pan0 i tak nie dochodzi do utworzenia bnep0 oraz tym samym pan1

(oczywiście adresy serwerów DNS stosowne do mojej UPC...ale nawet przy podaniu tych z np. neostrady zero sukcesu)

3. typowe komunikaty w /var/log/messages:

Jan 12 13:45:49 localhost bluetoothd[3830]: Added new connection: bnep0

Jan 12 13:45:49 localhost bluetoothd[3830]: Can't add bnep0 to the bridge pan1: No such device(19)

Jan 12 13:46:22 localhost bluetoothd[3830]: link_key_request (sba=xx:xx:xx:xx:xx:xx, dba=yy:yy:yy:yy:yy:yy)

oczywiście zamiast faktycznych numerów użyłem xx i yy...oba interfejsy (w telefonie i w kluczu USB broadcom) są z unikatowym numerem MAC i pod wingrozą udaje się uzyskać dzięki nim w/w typ połączenia internetowego)

4. ponadto skoro już jest zainstalowany bridge-utils wynik stosownego polecenia #"brctl show" jest następujący:

bridge name bridge id STP enabled interfaces

pan0 8000.000000000000 no

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...