it-swarm.dev

Chcete, aby zařízení s podporou protokolu MTP fungovala s Ubuntu?

Protože buntu 13.04 přístup k úložišti k externím zařízením prostřednictvím MTP pracovat mimo krabici přes modul GVFS-MTP.

I když se tato otázka týká Galaxy Nexus, další Android zařízení, jakož i Windows telefony a multimediální přehrávače s podporou MTP jsou také podporovány.

Pro odstraňování problémů viz tento anwser .


Mám docela dost problémů s přenosem souborů přes MTP s Galaxy Nexus. Používám Kubuntu 11.10 64-bit, a to je to, co jsem udělal a výsledky dostanu:

  1. Přidáno pravidlo pro zařízení v /etc/udev/rules.d/51-Android.rules. Pravidlo je následující a funguje pro adb:

    SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0666", OWNER="leob" #Galaxy Nexus
    
  2. Restartováno udev (a počítač jen pro jistotu).

Adb funguje a zdá se, že všechny metody pro čtení ze zařízení přes MTP fungují (zkusil jsem připojit pomocí mtpfs, gmtp a přímo pomocí balíčku mtp-tools). Když se však pokusím do zařízení napsat, nic, co jsem vyzkoušel, nefunguje.

Například spuštění mtp-newfolder test_dir 0 0 Dává následující výstup:

libmtp version: 1.1.0
Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7510/Galaxy Tab 10.1.
Folder creation failed.
ERROR: Could not close session!

Pokud spustím mtp-folders Po selhání mtp-newfolder bez opětovného připojení zařízení, dostanu následující výstup:

Attempting to connect device(s)
Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7510/Galaxy Tab 10.1.
PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
LIBMTP libusb: Attempt to reset device
mtp-folders: Successfully connected
Friendly name: (NULL)
Error 1: Get Storage information failed.
Error 2: PTP Layer error 02fe: get_all_metadata_fast(): could not get proplist of all    objects.
Error 2: (Look this up in ptp.h for an explanation.)
Error 2: PTP Layer error 02fe: get_handles_recursively(): could not get object handles.
Error 2: (Look this up in ptp.h for an explanation.)
LIBMTP_Get_Storage()
: Resource temporarily unavailable
OK.

Doprovázeno v dmesg:

[ 1000.912082] usb 2-4: reset high speed USB device number 7 using ehci_hcd
[ 1001.045877] usb 2-4: usbfs: process 3166 (mtp-folders) did not claim interface 0 before use

Má někdo nějakou představu o tom, co dělat?

ÚPRAVA:

Také jsem vyzkoušel režim PTP. Čtení opět funguje dobře, ale do zařízení nemůžu nic napsat.

69
Leo

Od Ubuntu 13.04 funguje přístup k úložišti k externím zařízením prostřednictvím MTP mimo modul přes modul GVFS-MTP.

Související otázka: Existují nějaké plány na zlepšení podpory mtp v budoucích vydáních Ubuntu?

Řešení problémů viz tato odpověď .


Pro mě to byl problém, když v mém systému nebyly nejnovější soubory libmtp. Takže jsem problém vyřešil a udělal toto zapisování na pomoc ostatním .

Shrnutí odkazu: V libmtp došlo k chybě spojené se staršími verzemi Ubuntu. Tato chyba byla již opravena v nejnovější zdroj z libmtp.

37
Shannon_VanWagner

Vyzkoušeli jste Bilal Akhtar návrh na omgubunt ?

Připojení vašeho telefonuAndroid telefon nebo tablet k Ubuntu pomocí MTPFS)

  1. Nastavení

    Nejprve nainstalujte potřebné nástroje pomocí Sudo apt-get install mtp-tools mtpfs

    Připojte svůj Galaxy Nexus k počítači. V telefonu otevřete zásuvku oznámení a klikněte na „Typ připojení USB“. Ujistěte se, že je vybrána MTP.

    image showing Android USB connection settings

    Poté spusťte tyto příkazy:

    mtp-detect | grep idVendor
    mtp-detect | grep idProduct
    

    Dostanete výstup jako je tento: enter image description here

    Nyní spusťte tyto příkazy:

    gksu gedit /etc/udev/rules.d/51-Android.rules
    

    Mělo by se otevřít okno Gedit. Zadejte do něj tento text, vše v jednom řádku :

    SUBSYSTEM=="usb", ATTR{idVendor}=="VENDORID", ATTR{idProduct}=="PRODUCTID", MODE="0666"
    

    Nahraďte VENDORID za idVendor, které jste si poznamenali dříve. Podobně nahraďte PRODUCTID za idProduct, které jste si poznamenali. V mém případě to byli 04e8 a 685c, ale mohly se pro vás lišit.

    Uložte a zavřete soubor. Poté odpojte telefon a spusťte tyto příkazy:

    Sudo service udev restart
    Sudo mkdir /media/GalaxyNexus
    Sudo chmod a+rwx /media/GalaxyNexus
    Sudo adduser $USER Fuse
    

    $USER je výchozí proměnná prostředí a měl by to být uživatel, kterého chcete přidat (obvykle sami). Nyní spusťte tento příkaz:

    gksu gedit /etc/Fuse.conf
    

    V okně Gedit odeberte # na začátku posledního řádku (ten, který začíná #user_allow_other) takhle:

    enter image description here

    Jsi skoro hotový! Nyní restartujte počítač a spusťte tyto tři příkazy:

    echo "alias Android-connect=\"mtpfs -o allow_other /media/GalaxyNexus\"" >> ~/.bashrc
    echo "alias Android-disconnect=\"fusermount -u /media/GalaxyNexus\"" >> ~/.bashrc
    source ~/.bashrc
    
  2. Použití

    Připojte telefon, ujistěte se, že váš telefon používá MTP a spusťte Android-connect.

    Voila! Nyní můžete procházet obsah vašeho telefonu Android pomocí telefonu Nautilus. Stačí spustit správce souborů a poté na postranním panelu kliknutím na GalaxyNexus procházet obsah telefonu, jako byste to dělali s USB klíčkem. Soubory můžete také přidávat, odebírat a upravovat stejně jako běžný systém souborů.

    screenshot of nautilus displaying phone contents

    Chcete-li telefon bezpečně odebrat, stačí spustit Android-disconnect.

  3. Závěr

    Od nynějška stačí spustit Android-connect připojte telefon a poté Android-disconnect pro bezpečné odebrání telefonu. Všechno ostatní by mělo být zpracováno automaticky. Vyzkoušel jsem mnoho způsobů, jak přimontovat a odpojit, aby se dělo automaticky při připojení kabelem, ale to bylo nejlepší řešení, s kterým jsem mohl přijít.

    Tyto dva příkazy nevyžadují ke spuštění rootova oprávnění . Všichni uživatelé, kteří jsou členy skupiny uživatelů pojistek, by měli mít možnost tyto příkazy spouštět bez přístupu root.

    A je to! Úspěšně jste připojili svůj sendvičový telefon se zmrzlinou k počítači Ubuntu. Tento proces může být pro nováčka dlouhý, ale jsem si jistý, že někdo přijde a vytvoří pro to všechno GUI, aby se vše dařilo hladce. :)

22
desgua

Propojení zařízení přes MTP s GVFS

Protože přístup k úložišti Ubuntu 13.04 k zařízením podporujícím MTP funguje mimo krabici prostřednictvím GVFS backend. Podívejte se prosím na Existují nějaké plány na zlepšení podpory mtp v budoucích verzích Ubuntu? pro instalační pokyny před 13.04.

Toto řešení by mělo fungovat pro všechny Android zařízení ) poskytující funkčnost MTP a pravděpodobně všechna zařízení mimo Android s funkcemi MTP jako Windows telefony a přenosné přehrávače médií .

Nenechte se zmást

Došlo k určitému zmatku, zkusme to vyjasnit:

  • nemusíte dělat nic, co by mohlo vést ke ztrátě záruky!

    • Zařízení nemusíte rootovat.
    • Zavaděč nemusíte odemykat. (Najdete pokyny pro Android její e .)

    Odemknutí se v této odpovědi týká pouze uzamčení obrazovky operačních systémů.

  • Podle určitých pravidel udev nemusíte konfigurovat přístup vývojářů k vašemu zařízení, jako je ADB, fastboot nebo něco podobného. (Pokyny pro Android v kapitole Konfigurace přístupu USB ji e nebo její e .)

  • Pokud vím, také nepotřebujete pojistku ani nenastavujte možnosti související s pojistkou.

Problémy s řešením problémů

  1. Nemohu do zařízení ukládat soubory.

    Vaše zařízení musí být odemčeno , abyste získali přístup k úložišti zařízení pomocí Ubuntu přes MTP.

    showing device in nautilus in locked and unlocked state

  2. Zobrazuje se chybová zpráva, že zařízení nelze připojit.

    Pokud se zobrazí níže uvedená chybová zpráva, zkuste zařízení znovu připojit jednou .

    error message that might pop up when connecting

    Pokud se chybová zpráva objeví znovu, otevřete nové okno nautilus ze spouštěče (nejlépe kliknutím na ikonu zařízení) a pravděpodobně zavřete aktuální okno nautilus. Možná související: Jak vytvořit pravidla udev pro deaktivaci jednoho z Android zařízení?

  3. Zkontrolujte, zda pro vaše zařízení existují pravidla udev

    Otevřete terminál a zadejte lsusb. Vyhledejte zařízení ve výstupu a poznamenejte si ID (např. 0fce:01b1). První část je ID dodavatele a poslední část je ID produktu.

    Otevřete odpovídající soubor pravidel mtp udev pomocí nano /lib/udev/rules.d/69-libmtp.rules a hledejte své ID produktu (použití Ctrl+W). Pokud ji nemůžete najít, musíte vytvořit vlastní položku v /etc/udev/rules.d/69-libmtp.rules podle vzoru níže a restartujte počítač .

    # SONY Xperia Z2 MTP
    ATTR{idVendor}=="01b1", ATTR{idProduct}=="01b1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
    

    Měli byste zvážit podání chyby proti balíček libmtp (přesněji libmtp-common ) na mít vaše zařízení zahrnuto v budoucích verzích, pokud to pro vás fungovalo.

  4. Stále se nemůžu připojit

    Vaše zařízení buď nepodporuje základní libmtp, nebo se může vyskytnout stejný problém, jaký mám s mým Lumia 620, postupujte podle řešení (kroky k reprodukci), které jsem zveřejnil v LP # 1247572: Nokia Lumia 620 (WP8) se nepodařilo spolehlivě připojit přes gvfs-mtp v nautilus . (Zařízení zde stále nefunguje bezchybně, ale pomocí mtp-detect pomáhá.)

    Měli byste prohledat libmtp bug tracker pro vaše zařízení a podle pokynů pro nová zařízení na stránka projekt otevřít hlášení o chybě.

  5. Sledovač chyb uvádí mé zařízení jako podporované, ale stále nebude fungovat

    V některých případech může být zpráva o chybě týkající se vašeho zařízení již podána a vyřešena v novějším vydání libmtp, než jaké je vaše distribuce dodána (např .: Motorola Moto G ). V takovém případě budete muset počkat, až se aktualizují oficiální úložiště, nebo hledat aktualizovanou PPA.

    Aktualizovaný seznam všech verzí libmtp dostupných prostřednictvím oficiálních softwarových kanálů Ubuntu a soukromých PPA lze nalézt zde (nezapomeňte rozbalit Další verze 'libmtp' v nedůvěryhodných archivech ). Od 2014/02/13 tento PPA od Matthieu Baerts nabízí nejnovější balíček libmtp dostupný pro Ubuntu.

    Varování : Tato PPA obsahuje řadu různých a pravděpodobně nestabilních balíčků. Doporučil bych, abyste jej do svého systému nepřidali. Místo toho si můžete stáhnout balíčky libmtp samostatně a nainstalovat je ručně do svého systému.

    Před dalším přesunem se prosím seznamte s PPA a jejich rizika . Před pokračováním v následujících krocích si také přečtěte odstavec níže o obnovení původních balíčků:

    1. Přejděte na stránka s podrobnostmi o balíčku PPA a rozbalte položku libmtp
    2. Stáhněte si následující balíčky: libmtp-common, libmtp-runtime, libmtp9, mtp-tools. Nezapomeňte vybrat správnou architekturu pro váš systém (obvykle to bude AMD64).

      Zde jsou odkazy na balíčky k 2014/02/13: libmtp-common , libmtp-runtime , libmtp9 , mtp- nástroje

    3. Pokračujte v ruční instalaci aktualizovaných balíčků pomocí dpkg (změna $HOME/Downloads do složky ke stažení a ujistěte se, že neexistují žádné další soubory deb:

      cd "$HOME/Downloads"
      Sudo dpkg -i *.deb
      
    4. Jakmile bude vše úspěšně nainstalováno, restartujte počítač, odemkněte zařízení Android, připojte jej přes USB a mělo by se zobrazit ve správci souborů).

    To mi fungovalo dobře (@Glutanimate) s mým motorem Motorola Moto G. Protože jsem používal Ubuntu 12.04 LTS, musel jsem nejprve nainstalovat aktualizovanou verzi gnome-gvfs. Další informace naleznete v instalačních pokynech před 13.04 v horní části.

    Chcete-li zrušit změny, pokud se něco pokazí nebo pokud zařízení stále není rozpoznáno, budete muset ručně nainstalovat původní balíčky. Vydejte se do přehled zdrojů libmtp a najděte si Ubuntu verzi. Rozbalte dotyčný záznam a pokračujte ve stahování balíčků, stejně jako v předchozím kroku. Pokračujte v instalaci podle popisu v kroku 3 a restartujte systém. Všechno by teď mělo být normální.

21
LiveWireBT

Zdá se, že všechny programy založené na libmtp stále mají problémy s Galaxy Nexus (k libmtp 1.1.3). Programy založené na gphoto2 pracovat pro mě.

Osobně používám gphotofs, k dispozici v balíčku se stejným názvem.

Použijte gphotofs ~/mymountpoint připojte se, poté fusermount -u ~/mymountpoint odpojit, až budete hotovi.

5
bseibold

Nainstalujte následující a restartujte počítač:

Sudo apt-get install gvfs-backends mtpfs jmtpfs libmtp-common mtp-tools libmtp-dev libmtp-runtime libmtp9 gmtp libdbus-cpp5 libgflags2v5 libgoogle-glog0v5 libmtp-dbg libmtp-doc libmtpserver-dev libmtpserver1 libprocess-cpp3 mtp-server
4
mchid

Jako první krok bych nainstaloval jmtpfs (Sudo apt-get install jmtpfs v terminálu - Ctrl+Alt+T ) a vytvořte složku pomocí mkdir foldername a připojte zařízení pomocí jmtpfs foldername, potom přejděte na nautilus (Files).

Pokud vaše zařízení není v Ubuntu kompatibilní s verzí libmtp. Musíte si stáhnout a vytvořit nejnovější libmtp (> 1.1.12), jako v: Jak mohu nainstalovat nejnovější verzi libmtp?

Složky byste měli vidět také pomocí mtp-folders v terminálu nebo s grafickým rozhraním gmtp.

Předchozí kroky by mohly ukázat chybu, pokud je spustíte bez Sudo:

libusb_open() failed!: Permission denied

Chcete-li se vyhnout používání Sudo, měli byste zařízení přidat do /etc/udev/rules.d/51-Android.rules soubor jak je uvedeno výše (viz desgua) a znovu načíst pravidla nebo restartovat.

0
Ferroao