Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.



fakam fszycho
Ok, jakiś tengi musk wymyślił, że nie będzie będzie parowania urządzeń przez wpisywanie pinu do plików konfiguracyjnych, ani też żadne passkey-agenty nie są potrzebne.
Zainstaluj sobie bluez-gnome albo kbluetooth i paruj. Nie chcesz pół gnome w systemie? To spadaj
Ale jakbym chciał gnome, to bym zainstalował. Spróbuję uruchomić transfer plików telefon <=> laptop we fluxboksie.
Zakładam, że mamy już zainstalowany bluez, wystartowany bluetooth, a
hcitool scan
wykrywa telefon i podaje jego MAC (dla pewności lepiej na tę chwilę upublicznić telefon).
Jak już pisałem :) w bluez-utils+bluez-libs albo "alternatywnym" bluez nie da się dopisać PIN do pliku hcid.conf, bo go nie ma. Nie ma żadnych pin-helperów. Jest odesłanie do nakładek graficznych z gnome/kde. Ale da się inaczej.
Zgodnie z tym opisem - post #8 kradniemy skrypt simple-agent np. stąd
(dla leniwych - jest w folderze "test")
#!/usr/bin/python
import gobject
import sys
import dbus
import dbus.service
import dbus.mainloop.glib
class Rejected(dbus.DBusException):
_dbus_error_name = "org.bluez.Error.Rejected"
class Agent(dbus.service.Object):
exit_on_release = True
def set_exit_on_release(self, exit_on_release):
self.exit_on_release = exit_on_release
@dbus.service.method("org.bluez.Agent",
in_signature="", out_signature="")
def Release(self):
print "Release"
if self.exit_on_release:
mainloop.quit()
@dbus.service.method("org.bluez.Agent",
in_signature="os", out_signature="")
def Authorize(self, device, uuid):
print "Authorize (%s, %s)" % (device, uuid)
@dbus.service.method("org.bluez.Agent",
in_signature="o", out_signature="s")
def RequestPinCode(self, device):
print "RequestPinCode (%s)" % (device)
return raw_input("Enter PIN Code: ")
@dbus.service.method("org.bluez.Agent",
in_signature="o", out_signature="u")
def RequestPasskey(self, device):
print "RequestPasskey (%s)" % (device)
passkey = raw_input("Enter passkey: ")
return dbus.UInt32(passkey)
@dbus.service.method("org.bluez.Agent",
in_signature="ou", out_signature="")
def DisplayPasskey(self, device, passkey):
print "DisplayPasskey (%s, %d)" % (device, passkey)
@dbus.service.method("org.bluez.Agent",
in_signature="ou", out_signature="")
def RequestConfirmation(self, device, passkey):
print "RequestConfirmation (%s, %d)" % (device, passkey)
confirm = raw_input("Confirm passkey (yes/no): ")
if (confirm == "yes"):
return
raise Rejected("Passkey doesn't match")
@dbus.service.method("org.bluez.Agent",
in_signature="s", out_signature="")
def ConfirmModeChange(self, mode):
print "ConfirmModeChange (%s)" % (mode)
@dbus.service.method("org.bluez.Agent",
in_signature="", out_signature="")
def Cancel(self):
print "Cancel"
def create_device_reply(device):
print "New device (%s)" % (device)
mainloop.quit()
def create_device_error(error):
print "Creating device failed: %s" % (error)
mainloop.quit()
if __name__ == '__main__':
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
manager = dbus.Interface(bus.get_object("org.bluez", "/"),
"org.bluez.Manager")
if len(sys.argv) > 1:
path = manager.FindAdapter(sys.argv[1])
else:
path = manager.DefaultAdapter()
adapter = dbus.Interface(bus.get_object("org.bluez", path),
"org.bluez.Adapter")
path = "/test/agent"
agent = Agent(bus, path)
mainloop = gobject.MainLoop()
if len(sys.argv) > 2:
if len(sys.argv) > 3:
device = adapter.FindDevice(sys.argv[2])
adapter.RemoveDevice(device)
agent.set_exit_on_release(False)
adapter.CreatePairedDevice(sys.argv[2], path, "DisplayYesNo",
reply_handler=create_device_reply,
error_handler=create_device_error)
else:
adapter.RegisterAgent(path, "DisplayYesNo")
print "Agent registered"
mainloop.run()
#adapter.UnregisterAgent(path)
#print "Agent unregistered"odpalamy z roota i parujemy. Telefon zawoła o PIN, wklepujemy, następnie powtarzamy w konsoli. I już.
Do przerzucania plików z komputra na telefon potrzebny jest obexftp:
Poleceniem
sdptool browse 00:11:22:33:44:55
przeglądamy telefon i szukamy fragmentu, gdzie występuje "OBEX" w towarzystwie "Protocol Descriptor List", zczytujemy "Channel". Przyda się do przerzucania plików :)
Np. tak:
Service Name: OBEX File Transfer
Service RecHandle: 0x1001a
Service Class ID List:
"OBEX File Transfer" (0x1106)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 11
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"OBEX File Transfer" (0x1106)
Version: 0x0100Jest - Channel: 11
Teraz wystarczy już tylko:
obexftp --nopath --noconn --uuid none --bluetooth 00:11:22:33:44:55 --channel 11 --put <plik>
np.:
obexftp --nopath --noconn --uuid none --bluetooth 00:11:22:33:44:55 --channel 11 --put zajebiaszcza_tapeta.png
Oprócz forum archlinux korzystałem też z tej strony
Ostatnio edytowany przez ippo76 (2010-03-20 20:08:22)
Offline




złodziej wirków ]:->
ippo76 wrzuć to do FAQ na portalu. Chwilowo nie mam klucza BT ale pewnie niedługo przetestuję i może oskryptuje żeby nie trzeba było tyle klepać w konsoli ;]
Offline



fakam fszycho
winnetou napisał(-a):
ippo76 wrzuć to do FAQ na portalu...
Chyba nie mam uprawnień ;)
Poza tym, to dopiero pół drogi, bo w drugą stronę nie działa - telefon nie wykrywa laptopa, mimo że raz go zobaczył i sparował :)
Offline

Użytkownik


Świetna sprawa, dzięki.
btw jest jeszcze http://blueman-project.org/ , który nie wymaga gnome/kde
Ostatnio edytowany przez svL (2010-03-20 17:33:32)
Offline




złodziej wirków ]:->
ippo a tam nie masz uprawnień, nabij jednego posta więcej w odpowiednim temacie i już będziesz miał ;)
Offline



fakam fszycho
svL napisał(-a):
....
btw jest jeszcze http://blueman-project.org/ , który nie wymaga gnome/kde
Używałem kiedyś w układzie arch+lxde. Ale teraz bawiłem się gentoo, a tam bluemana nie ma w stable :)
Znalazłem coś do wyszukiwania niewidzialnych urządzeń:
My computer isn't visible
Can't discover computer from your phone? Enable PSCAN and ISCAN:
# enable PSCAN and ISCAN
$ hciconfig hci0 piscan
# check it worked
$ hciconfig
hci0: Type: USB
BD Address: 00:12:34:56:78:9A ACL MTU: 192:8 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN
RX bytes:20425 acl:115 sco:0 events:526 errors:0
TX bytes:5543 acl:84 sco:0 commands:340 errors:0
Note: Check DiscoverableTimeout and PairableTimeout in /etc/bluetooth/main.confźródło
Telefon "widzi" już lapka ale jeszcze nie chce plików wysyłać.
niejasne_przeczucie napisał(-a):
A masz w kernelu fuse?
Aaa!
Już mam:
mount -t fuse "obexfs#-b00:11:22:33:44:55 -B6" /katalog_docelowy
np.:
mount -t fuse "obexfs#-b00:11:22:33:44:55 -B6" /mnt/e50
Niestety, montuje się z roota, więc user (ja) nawet nie widzi e50 w pcmanfm. Nie jestem specem od uprawnień (!), nie wiem, czy można chownąć bezpiecznie /mnt userowi :)
W każdym razie,
sudo mc
pozwala przeglądać telefon; nie próbujcie nic kopiować - działa ale trwa! (no i root jest właścicielem plików).
Dziś już nic mądrzejszego nie wymyślę.
Ostatnio edytowany przez ippo76 (2010-03-20 19:48:18)
Offline


Gambini



rewelka, dzieki
Offline



fakam fszycho
Nie zapomnijcie odmontować telefonu, bo baterii szkoda :)
Edyta: u mnie działa nawet po "ukryciu" telefonu. Wciąż jednak nie wysyła plików z poziomu telefonu >>wyślij >> via BT >> laptok
Sposób na parowanie ukradłem z forum archa, a resztę ze strony domowej obex
Ostatnio edytowany przez ippo76 (2010-03-20 19:54:33)
Offline




złodziej wirków ]:->
ippo76 napisał(-a):
Niestety, montuje się z roota, więc user (ja) nawet nie widzi e50 w pcmanfm. Nie jestem specem od uprawnień (!), nie wiem, czy można chownąć bezpiecznie /mnt userowi :)
Hmmm a może by tak do tego fusermount/fuser-utils i dodanie użytkownika do grupy fuse? Próbowałeś?
Ostatnio edytowany przez winnetou (2010-03-20 20:27:31)
Offline



fakam fszycho
Nie mam takiej grupy, ale gdzieś dzisiaj widziałem coś o uucp...
Nie, nic z tego...
Czyli musiałbym doinstalować coś...
...fuse-utils jest zamaskowany. Dziś odpuszczam :)
Fajnie, jakbyś to Wodzu oskryptował :)
Ostatnio edytowany przez ippo76 (2010-03-20 20:39:20)
Offline







Kapelusznik








ippo76 napisał(-a):
...fuse-utils jest zamaskowany.
* app-portage/autounmask
Available versions: 0.27
Homepage: http://download.mpsna.de/opensource/autounmask/
Description: autounmask - Unmasking packages the easy way
Coś dla bidaków siedzących na stable :)
Offline



fakam fszycho






Ojciec Założyciel
@ippo76 - już masz uprawnienia
Offline



fakam fszycho
Bodzio napisał(-a):
@ippo76 - już masz uprawnienia
Pięknie dziękuję!
Obiecuję dzisiaj w ciągu dni poskładać do kupy i wrzucić do FAQ
Edycia:
Jest jako szkic, trochę wygładziłem ale nie chciało mi się zmieniać stylu na oficjalny. Jeśli ktoś z admiralicji administracji ma czas, to proszę przejrzeć i podrzucić uwagi.
Potrzebny jest też happy end, czyli sposób na dostęp do plików z poziomu usera. Za min. 30 wierszy tekstu podzielę się autorstwem :)
Ostatnio edytowany przez ippo76 (2010-03-21 12:27:33)
Offline






Admin łajza







Bodzio napisał(-a):
@ippo76 - już masz uprawnienia
Pokręciłeś :)
Redaktorzy to grupa dla osób dodających niusy. Do dodawania Artykułów oraz FAQ jest Członkowie Gangu.
Będę musial napisać ściągę ;)
Offline






Ojciec Założyciel
tfuuu, mea culpa :), widzę poprawiłeś :)
Offline



fakam fszycho
Bodzio napisał(-a):
tfuuu, mea culpa :), widzę poprawiłeś :)
Sam poprawiłem,
redaktor
to w moim mniemaniu zbyt oficjalny dla mnie tytuł; poza tym - jak się okazało - nie spełniam kryteriów formalnych :)
Offline