Hlavní navigace

Jak propojit dva počítače bez drátů?

CIJOML

Dnes si probereme nový, perspektivní způsob propojení linuxových počítačů do bluetooth pikosítě. Asi se divíte, proč zrovna bluetooth. Důvod je čistě ekonomický. Proč při počtu několika málo počítačů pořizovat drahé switche, kabeláž a pokládku kabelů, když dnes máme možnost propojit počítače bezdrátově?

V současné době je možno zvolit ze dvou řešení. Jedná se o technologii 802.11b (též zvaná WiFi) a technologii společnosti Ericsson, jménem Bluetooth. Název Bluetooth vznikl podle krále Haralda, zvaného Modrozub (odtud Bluetooth), který na přelomu 10. století sjednotil Dánsko a Norsko, a to bez použití síly, jen na základě jednání. Asi proto si společnost Ericsson zvolila tento název pro technologii, která má spojovat lidi a dávat jim tu nejlepší základnu pro propojení všemožných zařízení na krátkou vzdálenost, a to bezdrátově.

Tato technologie vznikla za účelem eliminace kabelů a drátů nutných pro propojení s nehybnými i mobilními zařízeními, podpory datové i hlasové komunikace a pro maximální využití synchronizace všemožných zařízení. Běžný dosah těchto zařízení je 10 metrů, ale je možno dosáhnout až 100 metrové vzdálenosti. Buetooth zařízení komunikují na veřejném rádiovém pásmu 2.4 GHz a jejich běžné rychlosti jsou 432.6 kb/s při synchronním provozu oběma směry, nebo 721 kb/s pro upload a 57,6 kb/s pro download při použití asynchronního přenosu. Pakliže chcete využít vyšší rychlost, použijte technologii WiFi, ale cena je o mnoho vyšší. Dostanete za ni ovšem až 11 MBit/s a maximální dosah 100 metrů. Technologii Bluetooth podporuje několik stovek výrobců. Společnost Ericsson dala světu specifikaci této technologie volně k dispozici, jedinou podmínkou pro využívání značky Bluetooth je nutnost nechat každý výrobek otestovat v testovacím centru. Seznam všech ověřených zařízení naleznete zde.

Každé zařízení podporuje takzvané profily. To je seznam funkcí, které zařízení zná a skrze které komunikuje se svým okolím. Profilů je několik desítek, ale každé zařízení zná vždy jen několik z nich. Je zbytečné, aby karta do notebooku měla podporu pro sluchátko, když neumí vytáčet číslo a podobně. Pakliže zvolíte stejná zařízení, což je i můj případ, nebudete mít s propojením žádné problémy.

Já zvolil dva kusy tohoto adaptéru – Mitsumi USB adapter typu WIF-0402C

Pokusme se nyní tato dvě zařízení pod Linuxem spojit. Zvolíme konfiguraci master – slave. Pakliže byste chtěli využít spojení do pikosítě, musíte jedno zařízení v módu slave spojit s dalšími minimálně dvěma mastery. Na jedno zařízení je možno připojit až sedm dalších zařízení.

Jako první je potřeba přeložit kernel. Já zvolil poslední kernel ze stabilní řady – 2.4.19-pre10 – a v něm zapnul podporu pro Bluetooth takto:

Bluetooth subsystem support
L2CAP protocol support
SCO links support
HCI USB driver
[*]   Firmware download support 

Potom jsem potřeboval ovládací utility. Ty se bohužel v distribuci Debian nenacházejí, a tak jsem ze stránky bluez.sf.net stáhnul tyto soubory:
bluefw-0.3.tar.gz
bluez-libs-2.0-pre9.tar.gz
bluez-sdp-0.4.tar.gz
bluez-utils-2.0-pre9.tar.gz
hcidump-1.2.tar.gz
rfcommd-1.1.tar.gz

Následovalo rozbalení a překlad všech stažených souborů. Jako první je potřeba přeložit bluez-libs. Kompilace se mi pod distribucí Debian nezdařila. Jak jsem později zjistil, je možná pod distribucí Red Hat, na které je také primárně projekt vyvíjen. Proto jsem ze stránek bluez.sf.net stáhnul debianí balíček a nainstaloval (nutné nainstalovat jak knihovny samotné, tak i jejich devel verze).

Pro spojení je nutné začít inicializací adaptérů na obou strojích:
  modprobe hci_usb;modprobe l2cap
hciconfig hci0 up

Pokusíme se zařízení navzájem nalézt:
hcitool -i hci0 inq
dostaneme tuto odpověd:

Inquiring ...
  Inquiring ...
  00:03:AA:00:AB:F0   clock offset: 0x54b6   class: 0x502204

Na druhém zařízení dostaneme obdobnou odpověd, jen adresa se bude lišit. Pokusíme se nyní o ping zařízení navzájem:
l2ping 00:03:AA:00:AB:F0
Ping: 00:03:AA:00:AB:F0 from 00:A0:96:1F:B0:0C (data size 20) …
0 bytes from 00:03:AA:00:AB:F0 id 200 time 29.46ms
0 bytes from 00:03:AA:00:AB:F0 id 201 time 26.83ms
2 sent, 2 received, 0% loss

To zopakujeme i na druhém stroji. Pakliže výsledek bude stejný, je vše v pořádku a přistoupíme k nastavování komunikace. Nebudeme používat ověřování. Není to potřeba, jelikož zařízení nedovolí připojit žádné další, které není uvedeno v rfcommd.conf.
Nastavíme nyní démona, který pro nás obstarává komunikaci přes bluetooth – rfcommd:
Démon bude nastaven jako master na straně serveru a jako slave na straně klienta.
Nastavení na straně serveru provedeme takto:

options {
   psm 3;        # Listen on this psm.

   ppp           /usr/sbin/pppd;
   ifconfig      /sbin/ifconfig;
   route         /sbin/route;
   firewall      /sbin/ipchains;
}

# Network Access
na {
   channel 1;
   up {
         ppp "noauth 10.0.0.1:10.0.0.2";
   };
}

A nastavení na straně klienta takto:

options {
   psm 3;        # Listen on this psm.

   ppp           /usr/sbin/pppd;
   ifconfig      /sbin/ifconfig;
   route         /sbin/route;
   firewall      /sbin/ipchains;
}

# Network Access
na {
   channel 1;
   up {
         ppp "noauth";
   };
}

Nyní spustíme komunikaci. Je to snadné. Provádí se za pomoci dvou příkazů.
Na straně serveru: rfcommd -s na
Na straně klienta: rfcommd na adresaserveru, kde adresa serveru je číslo zjištěné via hcitool inq.

Zařízení se spojí přes protokol ppp, takže se nám na obou počítačích objeví zařízení ppp0, popřípadě vyšší. Nyní, abychom mohli z druhého počítače přistupovat k Internetu, musíme nastavit routování a maskarading. Není to nic těžkého.
Na straně klienta nastavíme routování: route add default gw 10.0.0.1
A na straně serveru spustíme maskaradu: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;echo 1 > /proc/sys/net/ipv4/ip_forward. Tato maskarada bude definovana pro ethernet adapter, kterým je server pripojen k Internetu. Pakliže máte server připojen jiným způsobem, použijte -o a typ adaptéru, kterým jste do Internetu připojeni.

Tato technologie bude dle mého názoru hodně využívaná v momentě, kdy ceny bluetooth zařízení klesnou. V současné době je Mitsumi adaptér nejlevnějším výrobkem na našem trhu a jeho cena se pohybuje okolo 2500 Kč s DPH.

Pakliže se chcete dozvědět i něco o propojení mobilu a počítače skrze Bluetooth, přečtěte si i tento tento článek.

Našli jste v článku chybu?
17. 6. 2002 18:22
CIJOML (neregistrovaný)

Viz ten odkaz na muj clanek na abclinuxu.cz nebo klikni primo sem na ten link http://www.abclinuxu.cz/clanky/ViewRelation?relationId=5678

17. 6. 2002 14:21
jn (neregistrovaný)

jak se pres bluez spojim s telefonkem? neco jako v affixu: btctl connect 1 a pak pppd /dev/bty0