Получение устройств с поддержкой MTP для работы с Ubuntu?

Начиная с доступ к хранилищу Ubuntu 13.04 для доступа к внешним устройствам через MTP должен работать «из коробки» через модуль GVFS-MTP. 1113]

Хотя этот вопрос касается Galaxy Nexus, другие устройства Android, а также Windows Phone и мультимедийные проигрыватели с поддержкой MTP также поддерживаются . ​​

Для устранения неполадок см. этот ответ .


У меня довольно много проблем с передачей файлов, работающих через MTP с Galaxy Nexus. Я использую 64-битную Kubuntu 11.10, и это то, что я сделал, и результаты, которые я получаю:

  1. Добавлено правило для устройства в /etc/udev/rules.d/51-android.rules. Правило следующее и работает для adb:

    SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0666", OWNER="leob" #Galaxy Nexus
    
  2. Перезапуск udev (и компьютер только для уверенности).

Adb работает, и все методы для чтения с устройства через MTP, похоже, работают (я пробовал монтировать с помощью mtpfs, gmtp и напрямую использовать пакет mtp-tools). Однако, когда я пытаюсь записать на устройство, ничего из того, что я пробовал, не работает.

Например, выполнение mtp-newfolder test_dir 0 0 дает следующий вывод:

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!

Если я запускаю mtp-folders после сбоя mtp-newfolder без повторного подключения устройства, я получаю следующий вывод:

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.

Сопровождается следующим в 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

Кто-нибудь знает, что делать?

РЕДАКТИРОВАТЬ: [ 1124]

Я также попробовал режим PTP. Опять же, чтение работает нормально, но я не могу ничего записать на устройство.

70
задан 13 April 2017 в 15:25

7 ответов

Начиная с Ubuntu 13.04, доступ к хранилищу для внешних устройств через MTP работает из коробки через модуль GVFS-MTP.

Связанный вопрос: Есть ли какие-либо планы по улучшению поддержки mtp в будущих выпусках Ubuntu?

Для устранения неполадок см. этот ответ .


Для меня проблема заключалась в том, что в моей системе не было последних файлов libmtp . Итак, я исправил проблему и написал эту статью, чтобы помочь другим .

Краткое содержание ссылки: В libmtp , связанном со старыми выпусками Ubuntu, была ошибка . Эта ошибка уже исправлена ​​в последнем источнике из libmtp .

37
ответ дан 13 April 2017 в 15:25

Установите и перезагрузите:

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
ответ дан 13 April 2017 в 15:25

Все программы, основанные на libmtp , по-прежнему имеют проблемы с Galaxy Nexus (начиная с libmtp 1.1.3). У меня работают программы на основе gphoto2 .

Лично я использую ​​gphotofs , доступный в одноименном пакете.

Используйте gphotofs ~ / mymountpoint для подключения, затем fusermount -u ~ / mymountpoint для отключения, когда вы закончите.

5
ответ дан 13 April 2017 в 15:25

В качестве первого шага я бы установил jmtpfs ( sudo apt-get install jmtpfs в терминале - Ctrl + Alt + T ), затем создайте папку с mkdir имя папки и затем смонтируйте устройство с jmtpfs имя папки , затем перейдите в nautilus (Файлы ).

Если ваше устройство несовместимо с версией libmtp в ubuntu. Вам необходимо загрузить и собрать последнюю версию libmtp (> 1.1.12), как показано ниже: Как я могу установить последнюю версию libmtp?

Вы также должны увидеть папки с помощью mtp-папок в терминале или с помощью графического интерфейса gmtp .

Предыдущие шаги могли показывать ошибку, если вы выполняли их без sudo :

libusb_open() failed!: Permission denied

Чтобы избежать использования sudo, вам следует добавить свое устройство в /etc/udev/rules.d/51 -android.rules , как указано выше (см. desgua), и правила перезагрузки или перезапуска.

0
ответ дан 13 April 2017 в 15:25

Просто небольшое обходное решение, подключите свой телефон на базе ICS к старому доброму МАССОВОМ ХРАНИЛИЩУ http://forum.xda-developers.com/showthread.php?t=1556367

adb install UMS1.0.apk
-1
ответ дан 13 April 2017 в 15:25

Вы пробовали предложение Билала Ахтара в omgubuntu ?

Подключение телефона или планшета Android к Ubuntu с помощью MTPFS

  1. Настройка

    Сначала установите необходимые инструменты с помощью sudo apt-get install mtp-tools mtpfs

    Подключите Galaxy Nexus к компьютеру . На телефоне откройте панель уведомлений и нажмите «Тип USB-подключения». Убедитесь, что выбран MTP.

    image showing Android USB connection settings

    Затем выполните следующие команды:

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

    Вы получите следующий результат: enter image description here

    Теперь выполните следующие команды:

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

    Должно открыться окно Gedit. Введите этот текст в одну единственную строку :

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

    Замените VENDORID на idVendor , который вы записали ранее. Аналогичным образом замените PRODUCTID записанным вами idProduct . В моем случае это были 04e8 и 685c соответственно, но они могли быть другими для вас.

    Сохраните и закройте файл. Затем отключите телефон и выполните следующие команды:

     sudo service udev restart
    sudo mkdir / media / GalaxyNexus
    sudo chmod a + rwx / media / GalaxyNexus
    sudo adduser $ USER предохранитель
     

    $ USER - переменная оболочки по умолчанию, и это должен быть пользователь, которого вы хотите добавить (обычно вы сами). Теперь запустите эту команду:

     gksu gedit /etc/fuse.conf
     

    В окне Gedit удалите # в начале последней строки (той, которая начинается с #user_allow_other ) следующим образом:

    enter image description here

    Вы почти закончили ! Теперь перезагрузите компьютер и выполните следующие три команды:

     echo "alias android-connect = \" mtpfs -o allow_other / media / GalaxyNexus \ "" >> ~ / .bashrc
    echo "псевдоним android-disconnect = \" fusermount -u / media / GalaxyNexus \ "" >> ~ / .bashrc
    источник ~ / .bashrc
     
  2. Использование

    Подключите телефон, убедитесь, что ваш телефон использует MTP, и запустите android-connect .

    Вуаля! Теперь вы можете просматривать содержимое вашего телефона Android с помощью Nautilus. Просто запустите файловый менеджер, а затем на боковой панели нажмите GalaxyNexus, чтобы просматривать содержимое телефона, как если бы вы это делали с USB-накопителем. Вы также можете добавлять, удалять и изменять файлы, как и в обычной файловой системе.

    screenshot of nautilus displaying phone contents

    Чтобы безопасно удалить телефон, просто запустите android-disconnect .

  3. Заключение

    С этого момента вы просто необходимо запустить android-connect , чтобы подключить телефон, а затем android-disconnect , чтобы безопасно удалить телефон. Все остальное должно обрабатываться автоматически. Я пробовал много способов, чтобы монтирование и размонтирование происходило автоматически при кабельном соединении, но это было лучшее решение, которое я мог придумать.

    Эти две команды не требуют прав суперпользователя для запуска. Все пользователи, входящие в группу пользователей fuse, должны иметь возможность запускать эти команды без доступа root.

    Вот и все! Вы успешно подключили свой телефон Ice Cream Sandwich к компьютеру с Ubuntu. Процесс может быть долгим для новичка, но я уверен, что кто-нибудь придет и сделает для всего этого графический интерфейс, чтобы все происходило гладко. :)

22
ответ дан 13 April 2017 в 15:25

קאַנעקטינג דעוויסעס דורך MTP מיט GVFS

זינט Ubuntu 13.04 סטאָרידזש אַקסעס צו MTP טויגעוודיק דעוויסעס אַרבעט אויס פון די קעסטל דורך אַ GVFS באַקענד. ביטע קוק אין זענען פּלאַנז צו פֿאַרבעסערן מטפּ שטיצן אויף צוקונפֿט ובונטו ריליסיז? פֿאַר ינסטאַלירונג ינסטראַקשאַנז איידער 13.04.

די לייזונג זאָל אַרבעטן פֿאַר אַלע אַנדרויד דעוויסעס פּראַוויידינג MTP פונקטיאָנאַליטי און מיסטאָמע אַלע ניט-אַנדרויד דעוויסעס מיט MTP פאַנגקשאַנאַליטי ווי Windows Phones און Portable Media Players .

צי ניט זיין צעמישט

עס איז געווען עטלעכע צעמישונג, לאָזן ס פּרובירן צו ויסמעקן די זאכן:

  • איר טאָן ניט דאַרפֿן צו טאָן עפּעס וואָס קען פּאָסל דיין וואָראַנטי!

    • איר טאָן ניט דאַרפֿן צו וואָרצל דיין מיטל.
    • איר טאָן ניט דאַרפֿן צו ופשליסן די באָאָטלאָאַדער. (איר קענען געפֿינען ינסטראַקשאַנז פֿאַר Android her e .)

    אַנלאַקינג נאָר רעפערס צו די אַפּערייטינג סיסטעמס לאָקקסקרעען אין דעם ענטפער.

  • איר טאָן ניט דאַרפֿן צו קאַנפיגיער דעוועלאָפּער אַקסעס צו דיין מיטל ווי ADB, פאַסטבאָאָט אָדער עפּעס ענלעך דורך עטלעכע ודעוו כּללים. (איר קענט געפֿינען אינסטרוקציעס פֿאַר אַנדרויד אין קאַפּיטל קאַנפיגיערינג וסב אַקסעס איר e אָדער איר e .)

  • לויט ווי איך וויסן, איר אויך טאָן ניט דאַרפֿן FUSE אָדער קאַנפיגיער FUSE- פֿאַרבונדענע אָפּציעס.

טראָובלעשאָאָטינג ישוז

  1. איך קען נישט שטעלן טעקעס אויף דעם מיטל.

    דיין מיטל דאַרף זיין אַנלאַקט צו אַקסעס די סטאָרידזש פון די מיטל מיט ובונטו דורך MTP .

    showing device in nautilus in locked and unlocked state

  2. איך באַקומען אַ טעות אָנזאָג אַז די מיטל קען נישט זיין מאָונטעד.

    אויב איר באַקומען די אונטן טעות אָנזאָג, פּרובירן צו ריפּלאַג די מיטל אַמאָל .

    error message that might pop up when connecting

    אויב די טעות אָנזאָג אויס עפן ווידער אַ נייַע Nautilus פֿענצטער פֿון די לאָנטשער (בילכער דורך קליקינג די בילדל פון די מיטל) און מיסטאָמע קלאָוזינג די קראַנט Nautilus פֿענצטער. עפשער פֿאַרבונדענע: ווי אַזוי צו שאַפֿן אַ ודעוו כּללים צו דיסייבאַל איינער פון אַנדרויד דעוויסעס?

  3. טשעק אויב עס זענען ודעוו כּללים פֿאַר דיין מיטל

    עפֿענען אַ וואָקזאַל און דרוקן lsusb . געפֿינען דיין מיטל אין דער רעזולטאַט און טאָן די שייַן (למשל 0fce: 01b1 ). דער ערשטער טייל איז דער פאַרקויפער שייַן די לעצטע טייל די פּראָדוקט שייַן.

    עפֿן די קאָראַספּאַנדינג מטפּ ודעוו כּללים טעקע מיט nano /lib/udev/rules.d/69-libmtp.rules און איר זוכט פֿאַר דיין פּראָדוקט שייַן (נוצן קטרל + וו ). אויב איר קען ניט געפֿינען עס, איר מוזן שאַפֿן אַ מנהג פּאָזיציע אין /etc/udev/rules.d/69-libmtp.rules לויט דעם מוסטער אונטן און רעבאָאָט .

     # 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"
     

    איר זאָל באַטראַכטן פאָרלייגן אַ זשוק קעגן די libmtp פּעקל (מער פּינטלעך libmtp-common ) צו האָבן דיין מיטל אַרייַנגערעכנט אין צוקונפֿט ווערסיעס, אויב דאָס אַרבעט

  4. איך קען נאָך נישט פאַרבינדן

    דיין מיטל איז ניט געשטיצט דורך די אַנדערלייינג libmtp אָדער איר קען דערפאַרונג די זעלבע אַרויסגעבן מיט מיין Lumia 620, ביטע נאָכפאָלגן די וואָרקאַראָונד ( סטעפּס צו רעפּראָדוצירן) איך אַרייַנגעשיקט אין לפּ # 1247572: נאָקיאַ לומיאַ 620 (וופּ 8) קען נישט פאַרלאָזן רילייאַבלי דורך gvfs-mtp אין nautilus . (דער מיטל נאָך קען נישט אַרבעטן פלאָלאַס דאָ, אָבער ניצן mtp-detect העלפּס.)

    איר זאָל זוכן דעם libmtp bug tracker פֿאַר דיין מיטל און נאָכגיין די ינסטראַקשאַנז פֿאַר נייַ דעוויסעס אויף די פּרויעקט בלאַט צו עפֿענען אַ זשוק באַריכט.

  5. די זשוק טראַקער ליסטעד מיין מיטל ווי געשטיצט אָבער עס נאָך וועט נישט אַרבעטן

    אין עטלעכע קאַסעס, אַ זשוק באַריכט וועגן דיין מיטל קען האָבן שוין געווען פיילד און סאַלווד אין אַ מער פריש libmtp מעלדונג ווי וואָס דיין פאַרשפּרייטונג איז געשיקט מיט (למשל: Motorola Moto G ). אויב דאָס איז דער פאַל, איר וועט האָבן צו וואַרטן פֿאַר די באַאַמטער ריפּאַזאַטאָריז צו דערהייַנטיקן אָדער זוכן פֿאַר אַ דערהייַנטיקט פּפּאַ.

    אַ דערהייַנטיקט רשימה פון אַלע libmtp ווערסיעס בנימצא דורך דער באַאַמטער ובונטו ווייכווארג טשאַנאַלז און פּריוואַט PPAs קען זיין געפֿונען דאָ (מאַכן זיכער צו יקספּאַנד אנדערע ווערסיעס פון 'libmtp' אין ונטראַסטיד אַרקייווז ). זינט 2014/02/13 , דעם PPA פון Matthieu Baerts אָפפערס די לעצטע libmtp פּעקל בנימצא פֿאַר ובונטו.

    ווארענונג : דער PPA כּולל פאַרשידן פאַרשידענע און עפשער אַנסטייבאַל פּאַקידזשיז. איך וואָלט רעקאָמענדירן צו לייגן עס צו דיין סיסטעם. אַנשטאָט, איר קען אראפקאפיע די libmtp פּאַקידזשיז סעפּעראַטלי און מאַניואַלי ינסטאַלירן זיי אויף דיין סיסטעם.

    ביטע באקענען זיך מיט פּפּאַס און זייער ריסקס איידער איר מאַך ווייַטער. ביטע אויך לייענען די פּאַראַגראַף אונטן צו ומקערן די אָריגינעל פּאַקידזשיז איידער איר גיין צו די פאלגענדע סטעפּס: 11104738] libmtp-common , libmtp-runtime , libmtp9 , mtp-tools . מאַכט זיכער צו קלייַבן די רעכט אַרקאַטעקטשער פֿאַר דיין סיסטעם (דאָס וועט יוזשאַוואַלי זיין amd64 ).

    דאָ זענען די פּעקל לינקס פֿון 2014/02/13: libmtp-common , libmtp-runtime , libmtp9 , mtp-tools

  6. גיינ ווייַטער צו מאַניואַלי ינסטאַלירן די דערהייַנטיקט פּאַקידזשיז מיט dpkg (טוישן $ HOME / Downloads צו דיין אראפקאפיע טעקע און מאַכן זיכער אַז קיין אנדערע דעב טעקעס זענען פאָרשטעלן:

     cd "$ HOME / Downloads"
    סודאָ דפּקג -י * .דעב
     
  7. אַמאָל אַלץ איז אינסטאַלירן הצלחה, ריסטאַרט דיין קאָמפּיוטער, ופשליסן דיין אַנדרויד מיטל,פאַרבינדן עס דורך וסב און עס זאָל זיין געוויזן אין דיין טעקע פאַרוואַלטער.

דאָס איז געווען פייַן פֿאַר מיר (@ גלוטאַנימאַטע) מיט מיין מאָטאָראָלאַ מאָטאָ G. ווייַל איך איז געווען פליסנדיק ובונטו 12.04 לץ איך ערשטער האט צו ינסטאַלירן אַ דערהייַנטיקט ווערסיע פון ​​ gnome-gvfs . ביטע זען ינסטאַלירונג ינסטראַקשאַנז איידער 13.04 אין שפּיץ פֿאַר מער אינפֿאָרמאַציע.

צו ופמאַכן די ענדערונגען אויב עפּעס גייט פאַלש אָדער אויב די מיטל נאָך איז נישט דערקענט, איר וועט האָבן צו מאַניואַלי ינסטאַלירן די אָריגינעל פּאַקידזשיז. גיין צו די libmtp מקור איבערבליק און געפֿינען דיין ובונטו מעלדונג. יקספּאַנד די פּאָזיציע אין די קשיא און אָפּלאָדירן די פּאַקאַדזשאַז, פּונקט ווי אין טרעפּל 2 פריער. פאָרזעצן מיט די ינסטאַלירונג ווי דיסקרייבד אין שריט 3 און רעבאָאָט דיין סיסטעם. אַלץ זאָל זיין צוריק צו נאָרמאַל איצט.

21
ответ дан 13 April 2017 в 15:25

Другие вопросы по тегам:

Похожие вопросы: