MTP özellikli cihazlar Ubuntu ile çalışacak mı?

67
  

MTP üzerinden harici cihazlara Ubuntu 13.04 depolama alanının GVFS-MTP modülü aracılığıyla kutunun dışında çalışması olması bekleniyor. / p>      

Bu soru Galaxy Nexus'la ilgili olsa da, diğer Android cihazların yanı sıra Windows Telefonları ve MTP özellikli medya oynatıcıları da desteklenmektedir .

     

Sorun giderme için bu anwser .

MTP üzerinden Galaxy Nexus ile dosya aktarımı yapmakta epeyce sorun yaşıyorum. Ben Kubuntu 11.10 64-bit kullanıyorum ve yaptığım bu ve elde ettiğim sonuçlar:

  1. /etc/udev/rules.d/51-android.rules cinsinden cihaz için kural eklendi. Kural aşağıdaki gibidir ve adb için çalışıyor:

    SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0666", OWNER="leob" #Galaxy Nexus
    
  2. udev yeniden başlatıldı (ve bilgisayar sadece emin olmak için).

Adb çalışır ve MTP üzerinden cihazdan okumak için tüm yöntemler işe yarar gibi görünüyor (mtpfs, gmtp ile montaj ve doğrudan mtp-araçları paketi kullanarak çalıştım). Ancak cihaza yazmayı denediğimde, denediğim hiçbir şey işe yaramıyor.

Örnek olarak, mtp-newfolder test_dir 0 0 dosyasını çalıştırmak aşağıdaki çıktıyı verir:

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!

Cihazı yeniden takmadan, başarısız bir mtp-newfolder'dan sonra mtp-folders çalıştırırsam, şu çıktıyı elde ederim:

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'de aşağıdakiler eşliğinde:

[ 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

Herkesin ne yapacağına dair bir fikri var mı?

DÜZENLEME:

Ayrıca PTP modunu da denedim. Yine, okuma güzel çalışıyor, ancak cihaza bir şey yazamam.

    
sordu Leo 14.12.2011 10:01

7 cevap

37

Ubuntu 13.04'ten beri, MTP üzerinden harici cihazlara depolama alanı bir GVFS-MTP modülü üzerinden kutudan çıkar.

İlgili soru: Orada mısın? gelecekteki Ubuntu sürümlerinde mtp desteğini iyileştirme planları var mı?

Sorun giderme için bu yanıtı .

Benim için, sistemimde en son libmtp dosyalarına sahip olmamam sorun oldu. Bu yüzden sorunu çözdüm ve bu yazmayı yaptım başkalarına yardım et .

Bağlantının özeti: Eski Ubuntu sürümleriyle birlikte%% co_de dosyasında bir hata oluştu. Bu hata, libmtp dosyasının en yeni kaynağında zaten sabitlendi.

    
verilen cevap Shannon_VanWagner 18.12.2011 11:22
21

Bilal Akhtar'ın önerisini omgubuntu ?

Android telefonunuzu veya tabletinizi MTPFS ile Ubuntu'ya bağlar

  1. Kurulum

    İlk önce gerekli araçları sudo apt-get install mtp-tools mtpfs

    ile yükleyin.

    Galaxy Nexus'unuzu bilgisayarınıza bağlayın. Telefonunuzda, bildirim çekmecesini açın ve "USB Bağlantı tipi" üzerine tıklayın. MTP'nin seçildiğinden emin olun.

    Ardından, şu komutları çalıştırın:

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

    Böyle bir çıktı alacaksınız:

    Şimdi, şu komutları çalıştırın:

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

    Bir Gedit penceresi açılmalıdır. Bu metni, tümü tek satırda yazın:

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

    VENDORID 'yi daha önce not ettiğiniz idVendor ile değiştirin. Benzer şekilde, PRODUCTID 'yi not ettiğiniz idProduct ile değiştirin. Benim durumumda, sırasıyla 04e8 ve 685c idi, ancak sizin için farklı olabilirler.

    Dosyayı kaydedin ve kapatın. Ardından, telefonunuzu ayırın ve şu komutları çalıştırın:

    sudo service udev restart
    sudo mkdir /media/GalaxyNexus
    sudo chmod a+rwx /media/GalaxyNexus
    sudo adduser $USER fuse
    

    $USER , varsayılan bir kabuk değişkenidir ve eklemek istediğiniz kullanıcı (genellikle kendiniz) olmalıdır. Şimdi, şu komutu çalıştırın:

    gksu gedit /etc/fuse.conf
    

    Gedit penceresinde, son satırın başındaki # 'yi ( #user_allow_other ile başlayan) aşağıdaki gibi kaldırın:

    Neredeyse bitti! Şimdi, bilgisayarınızı yeniden başlatın ve sonra şu üç komutu çalıştırın:

    echo "alias android-connect=\"mtpfs -o allow_other /media/GalaxyNexus\"" >> ~/.bashrc
    echo "alias android-disconnect=\"fusermount -u /media/GalaxyNexus\"" >> ~/.bashrc
    source ~/.bashrc
    
  2. Kullanım

    Telefonunuzu bağlayın, telefonunuzun MTP kullandığından ve android-connect dosyasını çalıştırdığından emin olun.

    İşte bu kadar! Artık Android telefon içeriğinize Nautilus'u kullanarak göz atabilirsiniz. Sadece dosya yöneticisini ateşleyin ve sonra yan çubuğunda bir USB çubuğu ile yaptığınız gibi telefon içeriğinize göz atmak için GalaxyNexus'u tıklayın. Dosyaları normal bir dosya sistemi gibi ekleyebilir, kaldırabilir ve değiştirebilirsiniz.

    Telefonu güvenle kaldırmak için android-disconnect dosyasını çalıştırın.

  3. Sonuç

    Şu andan itibaren, telefonunuzu güvenli bir şekilde kaldırmak için telefonunuzu monte etmek üzere android-connect dosyasını çalıştırmanız ve ardından android-disconnect 'yi çalıştırmanız yeterlidir. Her şey otomatik olarak ele alınmalıdır. Montajı almanın ve kablo bağlantısında otomatik olarak gerçekleşmesi için birçok yolu denedim, ancak bu en iyi çözümdü.

    Bu iki komutun çalışması için kök izinleri gerektirmeyecek . Sigorta kullanıcı grubunun üyesi olan tüm kullanıcılar, bu komutları root erişimi olmadan çalıştırabilmelidir.

    İşte bu! Ice Cream Sandwich telefonunuzu Ubuntu bilgisayarınıza başarıyla bağladınız. Süreç yeni bir kullanıcı için çok uzun olabilir, ancak eminim ki birisi etrafta dolaşacak ve her şey için sorunsuz bir şekilde bir GUI oluşturacaktır. :)

verilen cevap desgua 17.12.2011 19:13
19

Cihazları GVFS ile MTP üzerinden bağlama

Ubuntu 13.04 depolama biriminin MTP özellikli cihazlara erişimi, bir GVFS arka uçu aracılığıyla kutudan çıktı. Lütfen gelecekteki Ubuntu sürümlerinde mtp desteğini iyileştirmek için herhangi bir planınız var mı? için bir göz atın. 13.04'ten önceki yükleme talimatları.

Bu çözüm, tüm Android cihazlar için , MTP işlevselliği ve muhtemelen Windows Telefonları ve Taşınabilir Medya Oynatıcıları gibi MTP işlevselliği olan Android olmayan tüm cihazlarda çalışmalıdır .

Şaşkın olma

Bazı karışıklıklar oldu, hadi bir şeyler temizlemeye çalışalım:

  • Garantinizi geçersiz kılacak bir şey yapmanız gerekiyor !

    • Cihazınızı rootlamanıza gerek yoktur.
    • Önyükleyicinin kilidini açmanız gerekmez. (Android için talimatları bulabilirsiniz e .)

    Kilit açma, yalnızca bu yanıttaki işletim sistemleri kilit ekranını ifade eder.

  • Cihazınıza geliştirici erişimini ADB, fastboot veya belirli udev kuralları ile benzer bir şekilde yapılandırmanız gerekmez. (Android için talimatları USB Erişimini Yapılandırma bölümünde bulabilirsiniz. e veya onun e .)

  • Bildiğim kadarıyla da FUSE'ye ihtiyacınız yoksa FUSE ile ilgili seçenekleri yapılandırmanız gerekmiyor.

Sorun giderme sorunları

  1. Dosyaları cihaza yerleştiremiyorum.

    Cihazınızın, MTP üzerinden Ubuntu ile depolama alanına erişmek için kilitli olması gerekir.

  2. Cihazın monte edilemediğine dair bir hata mesajı alıyorum.

    Aşağıdaki hata mesajını alırsanız, cihazı bir kez tekrar göndermeyi deneyin.

    Hata mesajı tekrar belirirse, başlatıcıdan yeni bir nautilus penceresi açın (cihazın ikonuna tıklayarak) ve muhtemelen mevcut nautilus penceresini kapatabilirsiniz. Muhtemelen ilgili: Android cihazlardan birini devre dışı bırakmak için bir udev kuralları nasıl oluşturulur?

  3. Cihazınız için udev kuralları olup olmadığını kontrol edin

    Bir terminal açın ve lsusb yazın. Cihazınızı çıktıda bulun ve kimliği not edin (ör.% Co_de%). İlk kısım, satıcı kimliğinin son kısmı ürün kimliğidir.

    İlgili codp udev kuralları dosyasını 0fce:01b1 ile açın ve ürün kimliğiniz için seach ( Ctrl + W kullanın). Bulamıyorsanız, aşağıdaki örüntüyü izleyen nano /lib/udev/rules.d/69-libmtp.rules özel girişini ve yeniden başlat 'ı oluşturmanız gerekir.

    # 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 paketine karşı bir hata oluşturmayı düşünün (daha kesin olarak libmtp-common ), cihazınızın gelecekteki sürümlerinde yer almasını sağlamak, eğer sizin için işe yaraydıysa.

  4. Hala bağlanamıyorum

    Cihazınız ya temelde /etc/udev/rules.d/69-libmtp.rules tarafından desteklenmiyor ya da Lumia 620 cihazımda sahip olduğum aynı sorunu yaşayabilirsiniz, lütfen geçici çözümü uygulayın (yeniden oluşturma adımları) LP#1247572: Nokia Lumia 620 (WP8), gutus'taki gvfs-mtp ile güvenilir bir şekilde monte edilmiyor . (Cihaz hala burada kusursuz çalışmıyor, ancak libmtp kullanımı yardımcı oluyor.)

    Cihazınız için libmtp hata izleyicisini aramalı ve yeni cihazlara ilişkin talimatları proje sayfası .

  5. Hata izleyici, cihazımı desteklenen şekilde listeler; ancak yine de işe yaramaz.

    Bazı durumlarda, cihazınızla ilgili bir hata raporu daha önce bir libmtp sürümünde dağıtımınız ile birlikte gönderilmiş ve çözülmüş olabilir (örneğin: Motorola Moto G ). Bu durumda, resmi depoların güncellenmesi veya güncellenmiş bir PPA'nın aranması için beklemek zorunda kalacaksınız.

    Resmi Ubuntu yazılım kanalları ve özel PPA'lar aracılığıyla kullanılabilen tüm libmtp sürümlerinin güncellenmiş bir listesi burada ( Güvenilmeyen arşivlerde 'libmtp' diğer sürümleri 'yi genişletmeyi unutmayın.) 2014/02/13 bu PPA , Ubuntu için mevcut en yeni libmtp paketini sunmaktadır.

    Uyarı : Bu PPA, çeşitli ve muhtemelen kararsız paketler içerir. Sisteminize eklemenizi tavsiye ederim. Bunun yerine libmtp paketlerini ayrı ayrı indirebilir ve sisteminize manuel olarak yükleyebilirsiniz.

    Lütfen PPA'lar ve riskleri hakkında bilgi edinin. > Daha fazla taşınmadan önce. Lütfen aşağıdaki adımları takip etmeden önce orijinal paketlerinizi geri yüklemeyle ilgili aşağıdaki paragrafı da okuyun:

    1. PPA’nın paket ayrıntı sayfasına gidin ve libmtp girişini genişletin
    2. Aşağıdaki paketleri indirin: mtp-detect , libmtp-common , libmtp-runtime , libmtp9 . Sisteminiz için doğru mimariyi seçtiğinizden emin olun (bu genellikle mtp-tools olacaktır).

      2014/02/13 itibarıyla paket linkler: libmtp-common , libmtp-çalışma zamanı , libmtp9 , MTP-araçları

    3. Güncelleştirilmiş paketleri dpkg ile manuel olarak yüklemeye devam edin ( amd64 dosyasını indirme klasörünüze değiştirin ve başka bir deb dosyasının bulunmadığından emin olun:

      cd "$HOME/Downloads"
      sudo dpkg -i *.deb
      
    4. Her şey başarıyla yüklendikten sonra, bilgisayarınızı yeniden başlatın, Android cihazınızın kilidini açın, USB aracılığıyla bağlayın ve dosya yöneticinizde görünmelidir.

    Bu benim Motorola Moto G ile benim için iyi çalıştı (@Glutanimate). Ubuntu 12.04 LTS çalıştırıyordum çünkü ilk $HOME/Downloads güncellenmiş bir sürümünü yüklemek zorunda kaldı. Daha fazla bilgi için lütfen en üstte 13.04'den önceki yükleme talimatları 'na bakın.

    Bir şeyler ters giderse değişiklikleri geri almak için veya aygıt hala tanınmıyorsa, orijinal paketleri elle yüklemeniz gerekir. libmtp kaynak özetine gidin ve Ubuntu sürümünüzü bulun. Söz konusu girdiyi genişletin ve yalnızca 2. adımda yaptığınız gibi paketleri indirmeye devam edin. 3. adımda açıklandığı gibi kurulumla devam edin ve sisteminizi yeniden başlatın. Artık her şey normale dönmeli.

verilen cevap LiveWireBT 15.06.2013 01:04
5

libmtp 'ye dayanan tüm programların hala Galaxy Nexus ile ilgili sorunları var gibi görünüyor (libmtp 1.1.3 sürümünden itibaren). Programları gphoto2 'si benim için çalışıyor.

Şahsen, aynı adın bir paketinde bulunan gphotofs kullanıyorum.

Bitirmek için gphotofs ~/mymountpoint 'yı kullanın, ardından işiniz bittiğinde bağlantıyı kaldırmak için fusermount -u ~/mymountpoint ' yi kullanın.

    
verilen cevap bseibold 07.07.2012 15:28
3

Aşağıdakileri yükleyin ve yeniden başlatın:

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
    
verilen cevap mchid 11.10.2015 13:10
0

İlk adım olarak, (terminalde jmtpfs - Ctrl + Alt + T ) sudo apt-get install jmtpfs yükleyecek, sonra mkdir foldername ile bir klasör oluşturun ve ardından cihazı jmtpfs foldername ile bağlayın, ardından nautilus'a gidin (Dosyalar).

Cihazınız, ubuntu'daki libmtp sürümü ile uyumlu değilse. Şu şekilde olduğu gibi, yeni bir libmtp (& gt; 1.1.12) yüklemeniz ve oluşturmanız gerekir: nasıl libmtp en son sürümünü yüklemek?

Klasörleri ayrıca bir terminalde mtp-folders veya grafik arabirimi gmtp kullanarak da görebilmeniz gerekir.

Önceki adımları sudo olmadan çalıştırırsanız önceki adımlar bir hata gösterebilir:

libusb_open() failed!: Permission denied

Sudo kullanmaktan kaçınmak için, cihazınızı yukarıdaki gibi /etc/udev/rules.d/51-android.rules dosyasına eklemeniz ve kuralları yeniden yüklemeniz veya yeniden başlatmanız gerekir.

    
verilen cevap Ferroao 05.07.2018 22:01
-1

Sadece küçük bir çözüm olarak, ICS tabanlı telefonunuzu eski eski MASS STORAGE ile bağlayın İşte

adb install UMS1.0.apk
    
verilen cevap jflaflamme 23.03.2012 20:57

Etiketlerdeki diğer soruları oku