Konfiguracja GPS (Bluetooth) pod Linux'em
W sieci można znaleźć wiele przykładów na konfigurację OziExplorer'a dla popularnego systemu Microsoft'u.
Dla przeważającej większości osób jest to podstawowy system operacyjny, z którego korzystają na co dzień.
Są jednak tacy, którzy świadomie decydują się na wybór jednej z dystrybucji Linux'a jako "alternatywnego" rozwiązania.
Obecnie Linux jest o wiele przyjaźniejszy i łatwiejszy w konfiguracji niż był jeszcze dziesięć lat temu. Podstawową konfigurację można zwyczajnie "wyklikać". Niestety konfiguracja obsługi GPS poprzez Bluetooth wiąże się z koniecznością użycia konsoli i wykonania kilku komend w trybie znakowym.
Oczywiście można zadać pytanie po co komplikować życie? W moim przypadku korzystam z Linux'a do pracy i do zabawy. Używam dystrybucji Ubuntu 12.04 LTS zainstalowanej na Toughbook'u Panasonic CF-19. Mój odbiornik GPS to tania "kostka" Navibe GB 735. O ile komunikacja z odbiornikiem pod Linux'em poprzez Bluetooth działa bez zarzutu, o tyle system nie widzi urządzenia przy bezpośrednim połączeniu przez USB.
Parowanie Modułu
Aby mieć obsługę Bluetooth w Ubuntu instalujemy (o ile nie są już zainstalowane):
~$ sudo apt-get install bluez gpsd gpsd-clients
Po zainstalowaniu tego pakietu powinniśmy dostać dostęp do narzędzi do obsługi bluetooth'a. Najważniejsze z nich to hcitool, hciconfig, hcitool, rfcomm oraz bluetooth-agent.
Skanujemy w poszukiwaniu urządzań bluetooth, w celu poznania jego adresu MAC:
~$ hcitool scan
Scanning ...
00:12:0E:7C:E4:C6 BT GPS V10
Zapisujemy adres MAC modułu GPS. W moim przypadku jest to 00:12:0E:7C:E4:C6, a następnie włączamy autentykację urządzania za pomocą komendy (uwaga po wydaniu komendy system nie odpowie - nic nie pojawi się na ekranie):
~$ sudo hciconfig hci0 auth
W kolejnym kroku tworzymy połączenie z urządzeniem
~$ sudo hcitool cc 00:12:0E:7C:E4:C6
W wyniku wykonania ostatniej komendy powinno pojawić się okno dialogowe, w którym musimy podać pin urządzenia. W przypadku BT GPS V10 będzie to "0000".
Podłączamy znaleziony odbiornik pod port komunikacyjny w systemie (można do tego wykorzystać też plik /etc/bluetooth/rfcomm.conf). Gdzie rfcomm0 jest zwyczajową nazwą urządzenia komunikacyjnego. Istotne jest aby zwrócić uwagę na numer portu w nazwie urządzenia (na samym końcu). Czy aby przypadkiem urządzanie nie jest aktualnie wykorzystywane w systemie. W tym celu warto przejrzeć wpisy w pliku /etc/bluetooth/rfcomm.conf. Należy wybrać kolejną liczbę, przy czym numeracja rozpoczyna się od "0" (pierwsze urządzanie).
~$ sudo rfcomm bind /dev/rfcomm0 00:12:0E:7C:E4:C6
Sprawdzamy czy powstał port.
~$ ls /dev/rfcomm0
Odpalamy GPSD a więc usługę dla odbiornika GPS (łączymy usługę z urządzaniem).
~$ sudo gpsd /dev/rfcomm0
Następnie testujemy połączenie.
~$ xgps
W tym momencie powinniśmy mieć wyświetlony stan odbiornika GSP (listę satelitów, stan, etc).
OziExplorer pod Linux'em
Aby cieszyć się działającym OziExplorer'em musimy podjąć decyzję w jaki sposób aplikacja będzie uruchamiana. W tym celu możemy posłużyć się Wine. Jest to implementacja interfejsu WinAPI, który poprzez udostępnienie alternatywnych bibliotek DLL umożliwia uruchomienie poza Windowsem popularnych programów.
Alternatywne podejście zakłada użycie jednego z programów do wirtualizacji systemów operacyjnych np. VirtualBox i zainstalowanie systemu Microsoft'u bezpośrednio pod Linux'em.
Niezależnie na którą opcję się zdecydujemy, musimy wykonać dodatkowy krok. Ponieważ Ozi pracuje na portach COM a nie urządzeniach z /dev musimy „zmapować” /dev/rfcomm0 na wirtualny port do komunikacji szeregowej /dev/ttySx (gdzie x oznacza kolejną liczbę, poczynając od zera). W moim przypadku będzie to drugi port, oznaczony jako ttyS1 ponieważ mój CF-19 ma fizycznie zainstalowany pierwszy port (ttyS0).
W przypadku większości nowych komputerów raczej nie należy się spodziewać obecności portów do komunikacji szeregowej, więc bez obaw można użyć ttyS0.
~$ sudo ln -sb /dev/rfcomm0 /dev/ttyS1
(opcja b tworzy kopię zapasową ttyS1)
Teraz pozostaje nam udostępnienie Windows'owi spod Linux'a portu do komunikacji szeregowej. Można to uczynić na kilka sposobów, zależnie od tego jak będziemy uruchamiać aplikację do nawigacji.
Jeżeli korzystamy z Wine, tworzymy dowiązanie symboliczne.
~$ /dev/ttyS1 .wine/dosdevices/com1
W przypadku korzystania z wirtualizacji systemów operacyjnych, należy postępować zgodnie z dokumentacją danego programu.
Pozostaje nam już uruchomić Windows'a i skonfigurować OziExplorer'a aby korzystał z wybranego przez nas portu szeregowego (com1).
Pozdrawiam
antigonus
NA FORUM
-
-
- Pochwal się swoim Land Roverem
- 14 marca 2025 22:31 / wczoraj
-
Najnowsze terapie
- No events posted.