| |||||||
Das Thema "USB Host Mode" befindet sich unter Root / Hacking / Modding für Motorola Milestone auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 06.09.2009
Beiträge: 21
Abgegebene Danke: 0
Erhielt 17 Danke für 6 Beiträge
| USB Host mode on Motorola Droid Chris Paget's Blog Demzufolge kann zumindest die USB-Hardware im Droid im USB Host Mode agieren, d.h. man kann Geräte wie USB-Sticks, Webcams, externe Keyboards etc. anschließen. Werd mir den nötigen Adapter mal basteln und Euch auf dem Laufenden halten, ob's beim Milestone funktioniert. Wäre natürlich wirklich der Kracher. Unbegrenzte Möglichkeiten was Zubehör und Connectivity angeht. Hier mal ein paar Ideen: - VGA-Adapter, um z.B. seinen LCD-Fernseher oder einen Beamer anzusteuern - USB-Stick (Datensicherung) - den Cradle für meinen Livescribe (www.livescribe.de) - nen Drucker und und und. Was sagt Ihr dazu? |
| | |
| | #4 (permalink) |
| Junior Mitglied Modell: Motorola Milestone Registriert seit: 09.07.2009
Beiträge: 42
Abgegebene Danke: 15
Erhielt 7 Danke für 5 Beiträge
|
Laut den Kernel Sourcen von Motorola ist der Treiber für OTG bereits vorhanden /* * otg.c -- USB OTG utility code * * Copyright (C) 2004 Texas Instruments * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. */ #include <linux/kernel.h> #include <linux/device.h> #include <linux/usb/otg.h> static struct otg_transceiver *xceiv; /** * otg_get_transceiver - find the (single) OTG transceiver * * Returns the transceiver driver, after getting a refcount to it; or * null if there is no such transceiver. The caller is responsible for * calling otg_put_transceiver() to release that count. * * For use by USB host and peripheral drivers. */ struct otg_transceiver *otg_get_transceiver(void) { if (xceiv) get_device(xceiv->dev); return xceiv; } EXPORT_SYMBOL(otg_get_transceiver); /** * otg_put_transceiver - release the (single) OTG transceiver * @x: the transceiver returned by otg_get_transceiver() * * Releases a refcount the caller received from otg_get_transceiver(). * * For use by USB host and peripheral drivers. */ void otg_put_transceiver(struct otg_transceiver *x) { put_device(x->dev); } EXPORT_SYMBOL(otg_put_transceiver); /** * otg_set_transceiver - declare the (single) OTG transceiver * @x: the USB OTG transceiver to be used; or NULL * * This call is exclusively for use by transceiver drivers, which * coordinate the activities of drivers for host and peripheral * controllers, and in some cases for VBUS current regulation. */ int otg_set_transceiver(struct otg_transceiver *x) { if (xceiv && x) return -EBUSY; xceiv = x; return 0; } EXPORT_SYMBOL(otg_set_transceiver); ich denke mal - das die Whitelist nur noch gepflegt werden müsste welche Devices "erlaubt" sind /* * drivers/usb/core/otg_whitelist.h * * Copyright (C) 2004 Texas Instruments * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. */ /* * This OTG Whitelist is the OTG "Targeted Peripheral List". It should * mostly use of USB_DEVICE() or USB_DEVICE_VER() entries.. * * YOU _SHOULD_ CHANGE THIS LIST TO MATCH YOUR PRODUCT AND ITS TESTING! */ static struct usb_device_id whitelist_table [] = { /* hubs are optional in OTG, but very handy ... */ { USB_DEVICE_INFO(USB_CLASS_HUB, 0, 0), }, { USB_DEVICE_INFO(USB_CLASS_HUB, 0, 1), }, #ifdef CONFIG_USB_PRINTER /* ignoring nonstatic linkage! */ /* FIXME actually, printers are NOT supposed to use device classes; * they're supposed to use interface classes... */ { USB_DEVICE_INFO(7, 1, 1) }, { USB_DEVICE_INFO(7, 1, 2) }, { USB_DEVICE_INFO(7, 1, 3) }, #endif #ifdef CONFIG_USB_NET_CDCETHER /* Linux-USB CDC Ethernet gadget */ { USB_DEVICE(0x0525, 0xa4a1), }, /* Linux-USB CDC Ethernet + RNDIS gadget */ { USB_DEVICE(0x0525, 0xa4a2), }, #endif #if defined(CONFIG_USB_TEST) || defined(CONFIG_USB_TEST_MODULE) /* gadget zero, for testing */ { USB_DEVICE(0x0525, 0xa4a0), }, #endif { } /* Terminating entry */ }; static int is_targeted(struct usb_device *dev) { struct usb_device_id *id = whitelist_table; /* possible in developer configs only! */ if (!dev->bus->otg_port) return 1; /* HNP test device is _never_ targeted (see OTG spec 6.6.6) */ if ((le16_to_cpu(dev->descriptor.idVendor) == 0x1a0a && le16_to_cpu(dev->descriptor.idProduct) == 0xbadd)) return 0; /* NOTE: can't use usb_match_id() since interface caches * aren't set up yet. this is cut/paste from that code. */ for (id = whitelist_table; id->match_flags; id++) { if ((id->match_flags & USB_DEVICE_ID_MATCH_VENDOR) && id->idVendor != le16_to_cpu(dev->descriptor.idVendor)) continue; if ((id->match_flags & USB_DEVICE_ID_MATCH_PRODUCT) && id->idProduct != le16_to_cpu(dev->descriptor.idProduct)) continue; /* No need to test id->bcdDevice_lo != 0, since 0 is never greater than any unsigned number. */ if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_LO) && (id->bcdDevice_lo > le16_to_cpu(dev->descriptor.bcdDevice))) continue; if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_HI) && (id->bcdDevice_hi < le16_to_cpu(dev->descriptor.bcdDevice))) continue; if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_CLASS) && (id->bDeviceClass != dev->descriptor.bDeviceClass)) continue; if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_SUBCLASS) && (id->bDeviceSubClass != dev->descriptor.bDeviceSubClass)) continue; if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_PROTOCOL) && (id->bDeviceProtocol != dev->descriptor.bDeviceProtocol)) continue; return 1; } /* add other match criteria here ... */ /* OTG MESSAGE: report errors here, customize to match your product */ dev_err(&dev->dev, "device v%04x p%04x is not supported\n", le16_to_cpu(dev->descriptor.idVendor), le16_to_cpu(dev->descriptor.idProduct)); #ifdef CONFIG_USB_OTG_WHITELIST return 0; #else return 1; #endif } |
| | |
| | #6 (permalink) |
| Neuer Benutzer Registriert seit: 13.12.2009
Beiträge: 20
Abgegebene Danke: 0
Erhielt 2 Danke für 1 Beitrag
|
Also auf dem Droid scheinen zumindest usb keybords unterstützt zu werden. Hat das schon jemand getestet? Welche Pins sind das denn die für das USB OTG Dongle kurzgeschlossen werden?
|
| | |
| | #8 (permalink) |
| Android Guru Modell: Samsung Galaxy S2 i9100 XWKI4 Registriert seit: 13.01.2010
Beiträge: 2.551
Abgegebene Danke: 102
Erhielt 691 Danke für 456 Beiträge
| |
| | |
| Folgender Benutzer bedankt sich bei ninjafox für diesen Beitrag: | bemymonkey (14.02.2010) |
| | #9 (permalink) |
| Ehren-Mitglied Modell: Galaxy Nexus Registriert seit: 06.12.2009
Beiträge: 4.581
Abgegebene Danke: 793
Erhielt 421 Danke für 347 Beiträge
|
Aha, zu ende lesen hilft wohl... ich ging davon aus, dass (zumindest im Post von royalcs) von der Unterstützung _ohne_ Hardwaremods die Rede war |
| | |
| | #10 (permalink) |
| Android Guru Modell: Samsung Galaxy S2 i9100 XWKI4 Registriert seit: 13.01.2010
Beiträge: 2.551
Abgegebene Danke: 102
Erhielt 691 Danke für 456 Beiträge
|
den comments nach zu urteilen kannste dir auch ein usb hostkabel kaufen bei ebay... gibts ab ~ 4€
|
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| USB-Host/OTG möglich? | floe | Root / Hacking / Modding für Samsung Galaxy | 16 | 06.02.2011 21:48 |
| Tastenkombinationen (Boot-Mode) | Mindbear | Root / Hacking / Modding für Acer Liquid | 4 | 25.01.2010 10:10 |
| Sleep-mode unterdrücken | djk | Android App Entwicklung | 1 | 06.12.2009 12:21 |
| Recovery mode ohne PC? | Grisu122 | Root / Hacking / Modding für HTC Magic | 44 | 18.09.2009 22:45 |
| Recovery Mode [Gelöst] | jerom | Root / Hacking / Modding für HTC Magic | 6 | 01.09.2009 07:27 |