Topic: Z bluetooth-om in telefonom v linuxu do interneta
No tukaj bo pa en vodič za urh-a ko ga bo naslednjič zajebaval isp. ( Malo bo večji račun za mobitel )
1. Kaj rabimo?
V kernelu skompajlano (ali kot modul) podporo za usb, bluetooth in ppp
- bluez-libs in bluez-utils
- pppd
- gcc, make in ostalo kramo
- USB bluetooth stik ter telefon z bluetooth-om (no saj to je ze jasno)
Ceprav bom probal vse od zacetka, se lahko zgodi, da bo pri vam kaj drugce (tak da mejte to vedno v mislih). Zraven bom se npisal kak je za gentoo (ker je to distribucija, ki jo jaz uporabljam).
Se glede simobila in drugih ponudnikov.
Napisal sem za mobitel, ker je tudi originalen howto za mobitel (jaz bom sicer tega malo predelal) ... Torej za mobitel je:
username: mobitel
password: internet
number: *99#
----------------------------------------------------------------------------------------------------------------------------------------------------
2. Konfiguracija kernela
V vecini distribucij, bi ze tako moralo biti nastavljeno, ce pa ni pa gremo hitro naret. Ce pa slucajno nimate podpore omogocene niti kernel source, pol pa mate smolo in se bo treba malo znajt (pa brez kakih ZS). Mozno pa je, da imate samo omogoceno kot module. Sicer ne vem kaj dejansko je potrebno (jaz mam kar bluetooth v celoti omogocen), ampak mislim, da je za usb dovol usbcore, ehci-hcd, ohci-hcd in uhci-hcd za bluetooth bluetooth, l2cap, rfcomm, bnep in hci_usb, ter za ppp ppp_generic (z ukazom modprobe vsakega preizkusimo). Ok, gremo na kompajlanje.
Kar vse bomo delali kot root, zato kr:
--------------------------
su
cd /usr/src/linux
make menuconfig
--------------------------
za usb gremo pod:
Device Drivers --->
USB support --->
<*> Support for Host-side USB
<*> EHCI HCD (USB 2.0) support
<*> OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support
-------------------------------------------------------------------------------------------
za bluetooth:
Networking --->
<*> Bluetooth subsystem support --->
#jaz mam vse omogoceno, ampak mislim, da je glavno tole
<*> L2CAP protocol support
<*> RFCOMM protocol support
[* ] RFCOMM TTY support
<*> BNEP protocol support
[* ] Multicast filter support
[* ] Protocol filter support
Bluetooth device drivers --->
<*> HCI USB driver
-------------------------------------------------------------------------------------------
za ppp:
Device Drivers --->
Network device support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
-------------------------------------------------------------------------------------------
To je to. zdaj se samo skompajlamo (make && make modules_install ), ter skopiramo bzImage in nastavimo boot loader (predvidevam da vetekje je, ker je to cisto od distribucije odvisno ...).
-------------------------------------------------------------------------------------------
3. Instalacija ter konfiguracija BT-ja
Se vedno smo logirani kot root. Najprej gremo na bluez.org in si DL bluez-libs-2.25 ter bluez-utils-2.25 (v gentooju samo: emerge bluez-utils). 2.25 sta zadnji verziji, ki se pa bosta mogoce s casom spremenili, tako da bo potrebno uporabiti zgornji link. Ok, instalirajmo najprej bluez-libs:
tar -zxvf bluez-libs-2.25.tar.gz
cd bluez-libs-2.25
./configure
make
make install
aja, predlagam da source kode ne zbrisete, saj lahko kasneje z make uninstall vse deinstalirate. Se bluez-utils:
tar -zxvf bluez-utils-2.25.tar.gz
cd bluez-utils-2.25
./configure --disable-cups --disable-dbus --disable-gtk --disable-pcmcia
make
make install
ce ni javilo nobenega errorja pri instalaciji, pol je zdaj podpora instalirana. Vklopimo bluetooth na telefonu in vraknemu stick v usb. Testirajmo najprej stick:
/usr/local/bin/hcitool dev
----------------------------------------
Devices:
hci0 99:88:77:66:55:44
----------------------------------------
ce ne pokaze hci, pol al nimate kodpore al za usb, al za bluetooth, al pa niste vtaknili vtikaca.
Stestiramo se, ce stick vidi telefon:
/usr/local/bin/hcitool scan
----------------------------------------
Scanning ...
11:22:33:44:55:66 JuryUrlow
----------------------------------------
ce ni, preverite se enkrat bluettoth povezavo na telefonu. Ta stevilka pa je tud pomembna, saj jo bomo bpisali v naslednji config pod device. Editiramo /etc/bluetooth/rfcomm.conf:
-------------------------------------------------------------
#
# RFCOMM configuration file.
#
rfcomm0 {
# Automatically bind the device at startup
bind no;
# Bluetooth address of the device
device 11:22:33:44:55:66;
# RFCOMM channel for the connection
channel 1;
# Description of the connection
comment "Example Bluetooth device";
}
-------------------------------------------------------------
pri bind damo yes, za device pa kot sem ze rekel. Sharnimo. Ustvarimo novo datoteko /etc/bluetooth/pin-helper (v gentooju ze obstaja):
---------------------------------
#!/bin/sh
echo -n "PIN:"
cat /etc/bluetooth/pin
---------------------------------
Vpisemo: chmod 755 /etc/bluetooth/pin-helper
Editiramo /etc/bluetooth/pin. Noter vpisemo samo pin (se pravi 4 stevike). Nic drugega.
Zdaj pa se gremo v /etc/bluetooth/hcid.conf, ter zakomentiramo dbus_pin_helper: (ce se ni), ter zakomentiramo (ali spremenimo) pin_helper /usr/bin/bluepin; v pin_helper /etc/bluetooth/pin-helper;.
Tako, bluetooth je konfiguriran, sedaj se ga je treba samo pognat (za gentoo samo: /etc/init.d/bluetooth start). Ustvarimo "skripto", npr. /usr/bin/bt-start, ter noter vpisemo:
-------------------------------------------------------------------------
/usr/local/sbin/hid2hci -0 -q
/usr/local/sbin/hcid -f /etc/bluetooth/hcid.conf
/usr/local/sbin/sdpd
/usr/local/bin/rfcomm -f /etc/bluetooth/rfcomm.conf bind all
/usr/local/bin/dund --listen --persist
/usr/local/bin/pand --listen --role NAP
-------------------------------------------------------------------------
Vpisemo: chmod 755 /usr/bin/bt-start
se za stop /usr/bin/bt-stop:
-----------------------------------------------
killall pand
killall dund
/usr/local/bin/rfcomm release all
killall sdpd
killall hcid
-----------------------------------------------
Vpisemo: chmod 755 /usr/bin/bt-stop
Zazenimo bluetotoh, se pravi vpisemo /usr/bin/bt-start. Ce je slo vse po sreci, bi se moral ustarit device. Vpisemo ls -l /dev/rfcomm0:
-----------------------------------------------------------------------------
crw-rw---- 1 root root 216, 0 2006-05-04 04:50 /dev/rfcomm0
-----------------------------------------------------------------------------
Tako BT zdaj deulje. Lahko se sice preverimo ce obstajajo procesi (ps -u root): hcid, sdpd, dund in pand, samo, ce je device naredilo bi skoraj mogli bit. Za konec pa se ga samo dodamo v telefonu.
-----------------------------------------------------------------------------
4. Instalacija ter konfiguracija ppp-ja
Najprej gremo po ppp oz. lahko kar direktno na ftp in si DL ppp-2.4.3 (v gentoo: emerge -av ppp). Razpakiramo in instaliramo:
tar -zxvf ppp-2.4.3.tar.gz
cd ppp-2.4.3
./configure
make
make instal
source /etc/profile
ppp nima uninstaller, tako da ce boste hoteli kasneje zbrisat:
rm /usr/local/sbin/ppp*
rm -r /usr/local/include/pppd/
rm -r /usr/local/lib/pppd/
rm /usr/local/man/man8/ppp*
Se konfiguracija. Meni ni ustvarilo dir. /etc/ppp, ceprav v readme datoteki pise, da bi ga moglo. No kakorkoli, ce ni:
mkdir -p /etc/ppp/peers
Ustvarimo /etc/ppp/peers/gprsbt:
------------------------------------------------------------------
file /etc/ppp/options.gprsbt
connect "/usr/local/sbin/chat -f /etc/ppp/chat.gprsbt"
------------------------------------------------------------------
Pozor: Ce ste instalirali paket od svoje distribucije, potem se verjetno chat nahaha v /usr/sbin/chat in ne local, potem usrezno spremenite. Kot ze receno bo treba za druge operaterje spremenit, tak da mejte to v mislih.
Se vse ostalo:
/etc/ppp/options:
---------------------------
defaultroute
lock
usepeerdns
115200
---------------------------
/etc/ppp/options.gprsbt:
------------------------------------------------------
crtscts
local
ipcp-accept-local
noipdefault
novj
novjccomp
nobsdcomp
nodeflate
noaccomp
noipx
user mobitel
lcp-echo-interval 0
------------------------------------------------------
/etc/ppp/chat.gprsbt:
------------------------------------------------------
ABORT "BUSY"
"" "\d"
SAY "reseting modem\n"
"" "atz"
SAY "init 1\n"
OK "ATE"
SAY "init 2\n"
OK "AT&FE0"
SAY "init 3\n"
OK "ATM0"
SAY "init 4\n"
OK AT+CGDCONT=1,"IP","internet"
SAY "connecting\n"
OK "atdt*99#"
TIMEOUT 60
CONNECT ""
SAY "connected\n"
------------------------------------------------------
/etc/ppp/pap-secrets:
------------------------------------------------------
# Secrets for authentication using PAP
# client server secret IP addresses
mobitel * internet
------------------------------------------------------
Tako, sedaj pa pride trenutek resnice. Ce zdaj vpisemo ukaz pppd /dev/rfcomm0 call gprsbt, in se zadeva dejansko poveze, pol smo v novem avtu (sem slisal, da je tak bol moderno). Aja ce nekaj, ce se nam je povezalo, pa ne gre nikamor, poglejte ce mate za kako mrezno gateway nastavljen. Pol ga seveda zbrisite (IP je lahko). To mi je vzelo 2 uri, predno se je moja skromna inteligenca spomnila, da bi lahko sel v loge gledat. Ubijemo pa z ukazom killall pppd. Seveda lahko damo tud ta dva ukaza v "skripto", recimo mobile-start pa mobile-stop.
Vir: Koki (naj gre dalje po GPL ). Uredil 51M3K
BTW kdo to spravi skup vsaka mu čast