รับอุปกรณ์ที่เปิดใช้งาน MTP ให้ทำงานกับ Ubuntu ได้หรือไม่


69

เนื่องจากUbuntu 13.04 ที่เก็บข้อมูลเข้าถึงอุปกรณ์ภายนอกผ่านทางMTPนั้นควรจะทำงานนอกกรอบผ่านโมดูล GVFS-MTP

ในขณะที่คำถามนี้เกี่ยวกับ Galaxy Nexus อุปกรณ์ Android อื่น ๆ รวมถึงWindows Mediaและโปรแกรมเล่นสื่อที่เปิดใช้งาน MTP ก็รองรับเช่นกัน

สำหรับการแก้ไขปัญหาดูanwserนี้


ฉันมีปัญหานิดหน่อยที่การถ่ายโอนไฟล์ทำงานผ่าน MTP กับ Galaxy Nexus ฉันใช้ Kubuntu 11.10 64- บิตและนี่คือสิ่งที่ฉันได้ทำและผลลัพธ์ที่ฉันได้รับ:

  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

ใครบ้างมีความคิดเกี่ยวกับสิ่งที่ต้องทำ

แก้ไข:

ฉันลองใช้โหมด PTP ด้วย อีกครั้งการอ่านใช้งานได้ดี แต่ฉันไม่สามารถเขียนอะไรลงอุปกรณ์ได้


ฉันไม่คิดว่ามันเป็นซัมซุง .... และฉันคิดว่ามันเป็น Android อุปกรณ์ที่ขับเคลื่อนด้วย Honeycomb ของฉันเป็นแบบเดียวกับที่คุณต้องใช้ MTP เท่านั้น ฉันคิดว่านี่เป็นสิ่งที่โพสต์อุปกรณ์ Android 2.3 จะเป็นอย่างไร

คำตอบ:


37

ตั้งแต่ Ubuntu 13.04 การเข้าถึงพื้นที่เก็บข้อมูลไปยังอุปกรณ์ภายนอกผ่าน MTP ทำงานนอกกรอบผ่านโมดูล GVFS-MTP

คำถามที่เกี่ยวข้อง: มีแผนใดที่จะปรับปรุงการรองรับ mtp สำหรับ Ubuntu ในอนาคตหรือไม่?

สำหรับการแก้ไขปัญหาดูคำตอบนี้


สำหรับฉันมันเป็นปัญหาของการไม่มีlibmtpไฟล์ล่าสุดในระบบของฉัน ดังนั้นผมคงมีปัญหาและทำให้นี้เขียนขึ้นเพื่อช่วยให้คนอื่น ๆ

สรุปลิงก์:มีข้อผิดพลาดในการlibmtpรวมกับ Ubuntu รุ่นเก่า ข้อผิดพลาดนี้ถูกแก้ไขแล้วในแหล่งใหม่ล่าสุดlibmtpของ


1
ดูเหมือนว่าปัญหาจะได้รับการแก้ไขในแพ็คเกจสำหรับ Ubuntu 12.04 ดังนั้นจึงสามารถใช้งานได้หากคุณกล้าพอที่จะทำ ฉันจับพวกเขาจากlaunchpad.net/ubuntu/+source/libmtp/1.1.1-1และสร้างแพ็คเกจสำหรับระบบ (และเหมือนกับ gmtp)
Tatu Lahtela

@Shannon ขอบคุณ นี่คือทางออกที่ดีที่สุด หวังว่าฉันจะได้พบมันก่อน
MountainX

2
rhythmbox ยังคงค้างและให้ข้อผิดพลาด (LIBMTP_Send_Representative_Sample (): ไม่สามารถรับข้อมูลวัตถุ) เมื่อพยายามเข้าถึง Nexus และ nautilus ให้: ไม่สามารถติดตั้ง Galaxy Nexus; เกิดข้อผิดพลาดในการเริ่มต้นกล้อง: -60: ไม่สามารถล็อคอุปกรณ์ ปู่
waspinator

มันจะเป็นการดีที่จะอัปเดตคำแนะนำเพื่อรับ mtp ล่าสุดไม่ใช่ 1.1.1
Kostiantyn Rybnikov

21

คุณลองใช้คำแนะนำของ Bilal Akhtarที่omgubuntu แล้วหรือยัง?

เชื่อมต่อโทรศัพท์ Android หรือแท็บเล็ตกับ Ubuntu ด้วย MTPFS

  1. ติดตั้ง

    ก่อนอื่นให้ติดตั้งเครื่องมือที่จำเป็นด้วย sudo apt-get install mtp-tools mtpfs

    เชื่อมต่อ Galaxy Nexus กับคอมพิวเตอร์ของคุณ บนโทรศัพท์ของคุณเปิดลิ้นชักการแจ้งเตือนแล้วคลิกที่ "ประเภทการเชื่อมต่อ USB" ตรวจสอบให้แน่ใจว่าได้เลือก MTP

    ภาพแสดงการตั้งค่าการเชื่อมต่อ USB ของ Android

    จากนั้นรันคำสั่งเหล่านี้:

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

    คุณจะได้ผลลัพธ์เช่นนี้ ป้อนคำอธิบายรูปภาพที่นี่

    ตอนนี้รันคำสั่งเหล่านี้:

    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 fuse
    

    $USERเป็นตัวแปรเชลล์เริ่มต้นและควรเป็นผู้ใช้ที่คุณต้องการเพิ่ม (โดยปกติคือตัวคุณเอง) ตอนนี้เรียกใช้คำสั่งนี้:

    gksu gedit /etc/fuse.conf
    

    ในหน้าต่าง Gedit ให้ลบ#ที่จุดเริ่มต้นของบรรทัดสุดท้าย (อันที่ขึ้นต้นด้วย#user_allow_other) ดังนี้:

    ป้อนคำอธิบายรูปภาพที่นี่

    เกือบเสร็จแล้ว! ตอนนี้ให้รีสตาร์ทคอมพิวเตอร์แล้วเรียกใช้คำสั่งทั้งสามนี้:

    echo "alias android-connect=\"mtpfs -o allow_other /media/GalaxyNexus\"" >> ~/.bashrc
    echo "alias android-disconnect=\"fusermount -u /media/GalaxyNexus\"" >> ~/.bashrc
    source ~/.bashrc
    
  2. การใช้

    เชื่อมต่อโทรศัพท์ของคุณให้แน่ใจว่าโทรศัพท์ของคุณใช้ MTP android-connectและเรียกใช้

    Voila! ตอนนี้คุณสามารถเรียกดูเนื้อหาในโทรศัพท์ Android ของคุณโดยใช้ Nautilus เพิ่งเปิดโปรแกรมจัดการไฟล์ขึ้นมาแล้วคลิกที่ GalaxyNexus เพื่อเรียกดูเนื้อหาในโทรศัพท์ของคุณในแถบด้านข้างเหมือนกับที่คุณใช้ USB Stick นอกจากนี้คุณยังสามารถเพิ่มลบและแก้ไขไฟล์ได้เช่นเดียวกับระบบไฟล์ปกติ

    สกรีนช็อตของหอยโข่งแสดงเนื้อหาในโทรศัพท์

    android-disconnectเพื่อความปลอดภัยเอาโทรศัพท์เพียงแค่เรียกใช้

  3. ข้อสรุป

    นับจากนี้เป็นต้นไปคุณจะต้องเรียกใช้android-connectเพื่อเชื่อมต่อโทรศัพท์ของคุณแล้วจึงandroid-disconnectนำโทรศัพท์ออกอย่างปลอดภัย ทุกอย่างอื่นควรได้รับการจัดการโดยอัตโนมัติ ฉันลองหลายวิธีในการติดตั้งและยกเลิกการต่อเชื่อมให้เกิดขึ้นโดยอัตโนมัติในการเชื่อมต่อสายเคเบิล แต่นี่เป็นทางออกที่ดีที่สุดที่ฉันสามารถทำได้

    คำสั่งสองคำสั่งเหล่านี้ไม่ต้องการการอนุญาตให้รูท ผู้ใช้ทั้งหมดที่เป็นสมาชิกของกลุ่มผู้ใช้ฟิวส์ควรสามารถเรียกใช้คำสั่งเหล่านี้ได้โดยไม่ต้องเข้าถึงรูท

    แค่นั้นแหละ! คุณเชื่อมต่อโทรศัพท์ Ice Cream Sandwich กับคอมพิวเตอร์ Ubuntu สำเร็จแล้ว กระบวนการอาจใช้เวลานานสำหรับมือใหม่ แต่ฉันมั่นใจว่าจะมีบางคนเข้ามาและสร้าง GUI สำหรับสิ่งนี้เพื่อให้ทุกอย่างเกิดขึ้นอย่างราบรื่น :)


ใช่ลองใช้วิธีส่วนใหญ่แล้ว mtpfs-tools เมื่อพบว่าแชนนอนมันเป็นข้อผิดพลาดใน libmtp
Leo

มันใช้งานได้ แต่ฉันมีคำถาม 1. การกำหนดค่า udev นั้นทำอะไรทำไมมันไม่ทำงานโดยปราศจากมัน? 2. มันวิเศษอะไรที่จะรู้ว่าอุปกรณ์ใดที่จะเมานท์เมื่อคุณทำmtpfsหรือมันเพียงแค่สนับสนุนอุปกรณ์ที่เชื่อมต่อ 1 ครั้ง?
Bart van Heukelom

นอกจากนี้เมื่อคัดลอกไฟล์ขนาดใหญ่ (ด้วย Nautilus) มันจะปรากฏขึ้นเพื่อคัดลอกอย่างรวดเร็ว (50MB / s) แต่ในช่วงเวลานั้นจะไม่คัดลอกอะไรเลย เฉพาะเมื่อแถบความคืบหน้าเข้าชม 100% แถบนั้นจะเริ่มการคัดลอกจริง (และอินเทอร์เฟซจะหยุดทำงาน) อาจปิดใช้งานตัวเลือกบัฟเฟอร์บางประเภทได้หรือไม่
Bart van Heukelom

น่าเสียดายที่ฉันไม่รู้คำตอบที่คุณต้องการ ฉันขอโทษ.
desgua

ทำสิ่งนี้ทั้งหมด แต่รับข้อความนี้เมื่อพยายามเชื่อมต่อกับ Android: fusermount: ไม่สามารถเปิด /etc/fuse.conf: การอนุญาตถูกปฏิเสธ fusermount: ตัวเลือก allow_other อนุญาตเฉพาะเมื่อตั้งค่า 'user_allow_other' ใน /etc/fuse.conf แม้ว่าฉันจะแก้ไข /etc/fuse.conf ตามคำแนะนำ
Dmitry Shvedov

21

เชื่อมต่ออุปกรณ์ผ่าน MTP กับ GVFS

ตั้งแต่การเข้าถึงหน่วยเก็บข้อมูล Ubuntu 13.04 ไปยังอุปกรณ์ที่มีความสามารถใน MTP นั้นใช้งานได้นอกกรอบผ่านแบ็กเอนด์GVFS โปรดดูที่มีแผนจะปรับปรุงการสนับสนุน mtp สำหรับ Ubuntu รุ่นใหม่หรือไม่? สำหรับคำแนะนำในการติดตั้งก่อน 13.04

การแก้ปัญหานี้ควรจะทำงานสำหรับทุกอุปกรณ์ Androidให้การทำงาน MTP และอาจจะทุกอุปกรณ์ที่ไม่ใช่ Android ที่มีฟังก์ชั่น MTP เช่นWindows โทรศัพท์และสื่อแบบพกพา

อย่าสับสน

มีความสับสนบ้างลองทำสิ่งต่าง ๆ ให้ชัดเจนขึ้น:

  • คุณไม่จำเป็นต้องทำอะไรที่อาจทำให้การรับประกันของคุณเป็นโมฆะ!

    • คุณไม่จำเป็นต้องรูทอุปกรณ์ของคุณ
    • คุณไม่จำเป็นต้องปลดล็อค bootloader (คุณสามารถค้นหาคำแนะนำสำหรับ Android ของเธอ .)

    การปลดล็อคหมายถึงหน้าจอล็อคของระบบปฏิบัติการในคำตอบนี้

  • คุณไม่จำเป็นต้องกำหนดค่าการเข้าถึงของนักพัฒนาให้กับอุปกรณ์ของคุณเช่น ADB, fastboot หรือสิ่งที่คล้ายกันผ่านกฎของ udev (คุณสามารถค้นหาคำแนะนำสำหรับ Android ในบทการกำหนดค่า USB การเข้าถึงของเธออีหรือเธอ .)

  • เท่าที่ฉันรู้ว่าคุณไม่จำเป็นต้องมี FUSE หรือกำหนดค่าตัวเลือกที่เกี่ยวข้องกับ FUSE

การแก้ไขปัญหา

  1. ฉันไม่สามารถวางไฟล์ลงในอุปกรณ์

    อุปกรณ์ของคุณต้องปลดล็อคเพื่อเข้าถึงที่เก็บข้อมูลของอุปกรณ์ด้วย Ubuntu ผ่าน MTP

    แสดงอุปกรณ์ในหอยโข่งในสถานะถูกล็อคและปลดล็อค

  2. ฉันได้รับข้อความแสดงข้อผิดพลาดว่าไม่สามารถติดตั้งอุปกรณ์ได้

    ถ้าคุณได้รับข้อความนี้พยายามที่จะเสียบปลั๊กอุปกรณ์ครั้งเดียว

    ข้อความแสดงข้อผิดพลาดที่อาจปรากฏขึ้นเมื่อเชื่อมต่อ

    หากข้อความแสดงข้อผิดพลาดปรากฏขึ้นอีกครั้งให้เปิดหน้าต่าง nautilus ใหม่จากตัวเรียกใช้งาน (ดีกว่าโดยคลิกที่ไอคอนของอุปกรณ์) และอาจปิดหน้าต่าง nautilus ปัจจุบัน อาจเกี่ยวข้องกับ: สร้างกฎ udev เพื่อปิดใช้งานอุปกรณ์ Android ตัวใดตัวหนึ่งได้อย่างไร

  3. ตรวจสอบว่ามีกฎ udev สำหรับอุปกรณ์ของคุณ

    เปิด terminal lsusbและพิมพ์ ค้นหาอุปกรณ์ของคุณในผลลัพธ์และจดบันทึก ID (เช่น0fce:01b1) ส่วนแรกคือรหัสผู้ขายส่วนสุดท้ายของรหัสผลิตภัณฑ์

    เปิดไฟล์กฎ mtp udev ที่สอดคล้องกันด้วยnano /lib/udev/rules.d/69-libmtp.rulesและค้นหารหัสผลิตภัณฑ์ของคุณ (ใช้Ctrl+ W) หากคุณไม่สามารถหาได้คุณต้องสร้างรายการที่กำหนดเองใน/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 ทั่วไป ) เพื่อให้อุปกรณ์ของคุณรวมอยู่ในรุ่นอนาคตถ้ามันเหมาะกับคุณ

  4. ฉันยังไม่สามารถเชื่อมต่อได้

    อุปกรณ์ของคุณไม่รองรับlibmtpหรือคุณอาจประสบปัญหาเดียวกันกับ Lumia 620 ของฉันโปรดทำตามขั้นตอน (ขั้นตอนในการทำซ้ำ) ฉันโพสต์ในLP # 1247572: Nokia Lumia 620 (WP8) ล้มเหลวในการติดตั้งที่เชื่อถือได้ผ่าน gvfs-MTP ในหอยโข่ง (อุปกรณ์ยังใช้งานไม่ได้อย่างไร้ที่ติที่นี่ แต่ใช้ความmtp-detectช่วยเหลือ)

    คุณควรค้นหาตัวติดตามข้อผิดพลาด libmtpสำหรับอุปกรณ์ของคุณและทำตามคำแนะนำสำหรับอุปกรณ์ใหม่ในหน้าโครงการเพื่อเปิดรายงานข้อผิดพลาด

  5. ตัวติดตามบั๊กแสดงรายการอุปกรณ์ของฉันว่ารองรับ แต่ก็ยังใช้งานไม่ได้

    ในบางกรณีรายงานข้อผิดพลาดเกี่ยวกับอุปกรณ์ของคุณอาจได้รับการจัดเก็บและแก้ไขในการเปิดตัว libmtp ล่าสุดกว่าที่จัดส่งของคุณด้วย (เช่น: Motorola Moto G ) หากเป็นกรณีนี้คุณจะต้องรอที่เก็บข้อมูลอย่างเป็นทางการเพื่อรับการอัปเดตหรือไปหา PPA ที่อัปเดต

    รายการอัปเดตของเวอร์ชัน libmtp ทั้งหมดที่มีอยู่ผ่านช่องทางซอฟต์แวร์ Ubuntu อย่างเป็นทางการและ PPA ส่วนตัวสามารถดูได้ที่นี่ (ตรวจสอบให้แน่ใจว่าได้ขยาย'libmtp' รุ่นอื่น ๆ ในคลังข้อมูลที่ไม่น่าเชื่อถือ ) ในฐานะของ 2014/02/13 PPA นี้โดย Matthieu Baerts เสนอแพคเกจ libmtp ล่าสุดสำหรับ Ubuntu

    คำเตือน : PPA นี้มีแพ็คเกจที่แตกต่างและอาจไม่เสถียรหลากหลาย ฉันจะแนะนำไม่ให้เพิ่มเข้าไปในระบบของคุณ แต่คุณสามารถดาวน์โหลดแพคเกจ libmtp แยกต่างหากและติดตั้งด้วยตนเองในระบบของคุณ

    โปรดทำความคุ้นเคยกับPPA และความเสี่ยงของพวกเขาก่อนที่จะดำเนินการใด ๆ เพิ่มเติม โปรดอ่านย่อหน้าด้านล่างเกี่ยวกับการคืนค่าแพ็คเกจเดิมของคุณก่อนที่จะดำเนินการตามขั้นตอนต่อไปนี้:

    1. ไปที่หน้ารายละเอียดแพ็คเกจของ PPAและขยายรายการ libmtp
    2. libmtp-commonดาวน์โหลดแพคเกจต่อไปนี้: libmtp-runtime, libmtp9, mtp-tools, ตรวจสอบให้แน่ใจว่าได้เลือกสถาปัตยกรรมที่เหมาะสมสำหรับระบบของคุณ (ซึ่งโดยทั่วไปจะเป็นamd64)

      นี่คือลิงค์แพ็กเกจตั้งแต่วันที่ 2014/02/56: libmtp-common , libmtp-runtime , libmtp9 , mtp-tools

    3. ดำเนินการติดตั้งแพ็กเกจที่อัพเดตด้วยตัวเองด้วย dpkg (เปลี่ยน$HOME/Downloadsเป็นโฟลเดอร์ดาวน์โหลดของคุณและตรวจสอบว่าไม่มีไฟล์ deb อื่น ๆ อยู่:

      cd "$HOME/Downloads"
      sudo dpkg -i *.deb
      
    4. เมื่อติดตั้งทุกอย่างเรียบร้อยแล้วให้รีสตาร์ทคอมพิวเตอร์ปลดล็อกอุปกรณ์ Android เชื่อมต่อผ่าน USB และควรปรากฏในเครื่องมือจัดการไฟล์ของคุณ

    สิ่งนี้ทำงานได้ดีสำหรับฉัน (@Glutanimate) กับโมโตโรล่าโมโตจีของฉันเพราะฉันใช้ Ubuntu 12.04 LTS ฉันต้องติดตั้งเวอร์ชันที่อัปเดตgnome-gvfsก่อน โปรดดูคำแนะนำการติดตั้งก่อน 13.04ที่ด้านบนสำหรับข้อมูลเพิ่มเติม

    หากต้องการยกเลิกการเปลี่ยนแปลงหากมีสิ่งผิดปกติหรืออุปกรณ์ยังไม่รู้จักคุณจะต้องติดตั้งแพ็กเกจดั้งเดิมด้วยตนเอง มุ่งหน้าไปที่ภาพรวมแหล่ง libmtpและค้นหา Ubuntu ของคุณ ขยายรายการที่เป็นปัญหาและดำเนินการดาวน์โหลดแพ็คเกจเช่นเดียวกับที่คุณทำในขั้นตอนที่ 2 ก่อนหน้านี้ ดำเนินการติดตั้งต่อตามที่อธิบายไว้ในขั้นตอนที่ 3 และรีบูตระบบของคุณ ตอนนี้ทุกสิ่งควรกลับมาเป็นปกติ


1
+1 สำหรับ 'อย่าสับสน' ไม่ทำงานกับ galaxy s3 mini ของฉันแม้ว่า :(
hugo der hungrige

ใช้งานได้กับแท็บเล็ต Samsung Galaxy ของฉันกับ Android 4.1.2 แต่ฉันไม่สามารถแก้ไขไฟล์ได้ทุกที่ คุณมีทางออกสำหรับเรื่องนั้นด้วยหรือไม่?
Vesnog

"คู่มือบางคนแนะนำให้เพิ่มกฎ udev ให้กับไฟล์ที่เรียกว่า 51-android.rules สิ่งเหล่านี้ไม่ใช่สำหรับ MTP, ... " คุณสูญเสียความน่าเชื่อถือทั้งหมดเมื่อคุณพูด กฎใน udev / rules.d / มีความยืดหยุ่นอย่างสิ้นเชิง 51-android-rules เป็นสถานที่ที่เหมาะสมที่สุดสำหรับพวกเขา คุณอาจวางกฎไว้ใน 52 กฎโทรศัพท์อย่างสมเหตุสมผล
Auspex

@Auspex บรรทัดสามารถเขียนได้ดีขึ้น แต่แทนที่จะบ่นคุณสามารถทำได้ (ที่จะต้องอ่านและทำความเข้าใจโพสต์ทั้งหมด) หรือให้คำตอบที่ดีกว่า เมื่อดูที่โปรไฟล์ของคุณฉันถือว่าคุณรู้ว่าไซต์ SE ควรทำงานอย่างไร วิธีที่คุณจัดการไฟล์ผิด/etcพลาดขึ้นอยู่กับคุณทั้งหมด ตามที่อธิบายไว้ข้างต้นนึกคิด udev กฎทั้งหมดควรให้ ootb ถ้าไม่อย่างใดอย่างหนึ่งควรยื่นข้อผิดพลาดเพื่อรวมกฎที่หายไป/lib/.../69-libmtp.rulesดังนั้นทุกคนจะมีความสุขกับการเปิดตัวครั้งต่อไป
LiveWireBT

1
@Auspex ฉันไม่เข้าใจสิ่งที่คุณพยายามที่จะบรรลุที่นี่ ฉันทำซ้ำ: วิธีจัดการไฟล์ของคุณ/etcขึ้นอยู่กับคุณ /lib/udev/rules.d/69-libmtp.rulesเป็นสิ่งที่ผู้ดูแลแพคเกจเลือกและฉันแนะนำให้ยื่นข้อบกพร่องกับแพ็คเกจนั้น (ฉันได้อัปเดตคำตอบของฉัน) สำหรับผู้ใช้ที่พบปัญหานี้ หากคุณยังมีปัญหาอยู่โปรดพูดคุยกับผู้ดูแลหรือโพสต์คำตอบของคุณเอง ตอนนี้ฉันโค้งคำนับจากการสนทนานี้กับคุณในหัวข้อนี้
LiveWireBT

5

โปรแกรมทั้งหมดที่ใช้ระบบlibmtpยังคงมีปัญหากับ Galaxy Nexus (ณ libmtp 1.1.3) โปรแกรมที่gphoto2ทำงานบนพื้นฐานของฉัน

โดยส่วนตัวฉันใช้gphotofsอยู่ในแพ็คเกจชื่อเดียวกัน

ใช้gphotofs ~/mymountpointเพื่อเมานต์แล้วfusermount -u ~/mymountpointเลิกเมานท์เมื่อคุณทำเสร็จแล้ว


เพิ่งอัพเกรดเป็น 12.04 และดูเหมือนว่า libmtp 1.1.3 ทำงานไม่ถูกต้องตามที่คุณพูด จะต้องตรวจสอบเรื่องนี้อีกสักหน่อย gphotofs ทำงานได้อย่างสมบูรณ์แบบดังนั้นขอบคุณสำหรับคำแนะนำ!
Leo

1
การใช้gphotofsทำให้ฉันมีไดเรกทอรีเดียวที่ว่างเปล่า
นาธานออสมัน

4

ติดตั้งสิ่งต่อไปนี้และรีบูต:

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

และใช่คำตอบนี้ใช้ยัง"อูบุนตู 13.04 [ขึ้นไปที่] เข้าถึงที่จัดเก็บกับอุปกรณ์ภายนอกผ่านทาง MTP ควรจะทำงานออกจากกล่องผ่านโมดูล GVFS-MTP" เพราะมันอาจจะไม่ได้รับการติดตั้งออกมาจากกล่อง แม้ว่าอุปกรณ์ MTP ของคุณจะได้รับการต่อเชื่อมอัตโนมัติแล้วก็ตาม! (แต่ให้สิทธิ์การเข้าถึงแบบอ่านอย่างเดียวหรือปัญหาอื่น ๆ )
tanius

1
@tanius ฉันต้องบอกว่าโปรแกรมแปลช้ามากจนฉันไม่ต้องใช้อีกต่อไป esfile explorer มีเซิร์ฟเวอร์ ftp และฉันใช้ curl เพื่ออัปโหลดไฟล์ไปยังอุปกรณ์ในเครือข่ายท้องถิ่นของฉัน
mchid

คำสั่งนี้ชี้ไปยังแหล่งที่มาของปัญหา:The following packages have unmet dependencies: gvfs-backends : Depends: gvfs (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed Depends: gvfs-daemons (= 1.28.2-1ubuntu1~16.04.2) Depends: gvfs-libs (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed Depends: gvfs-common (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed E: Unable to correct problems, you have held broken packages.
NoBugs

1
คุณควรทราบว่าเมื่อสิ่งนี้ล้มเหลวในความคิดเห็นข้างต้นให้ลบและติดตั้ง "ubuntu-desktop" และข้างต้นด้วย sudo apt-get install --reinstall จากนั้นรีสตาร์ท
NoBugs

0

เป็นขั้นตอนแรกฉันจะติดตั้งjmtpfs( sudo apt-get install jmtpfsในเทอร์มินัล - Ctrl+ Alt+ T) จากนั้นสร้างโฟลเดอร์ที่มีmkdir foldernameและจากนั้นติดตั้งอุปกรณ์ด้วยjmtpfs foldernameจากนั้นไปที่ nautilus (ไฟล์)

หากอุปกรณ์ของคุณไม่รองรับlibmtpเวอร์ชั่นใน Ubuntu คุณต้องดาวน์โหลดและสร้างล่าสุดlibmtp(> 1.1.12) เช่นเดียวกับใน: ฉันจะติดตั้ง libmtp รุ่นล่าสุดได้อย่างไร

คุณควรจะสามารถที่จะเห็นโฟลเดอร์ยังมีการใช้mtp-foldersใน terminal gmtpหรือกับอินเตอร์เฟซกราฟิก

ขั้นตอนก่อนหน้านี้อาจแสดงข้อผิดพลาดหากคุณเรียกใช้โดยไม่sudo:

libusb_open() failed!: Permission denied

เพื่อหลีกเลี่ยงการใช้ sudo คุณควรเพิ่มอุปกรณ์ของคุณไปที่/etc/udev/rules.d/51-android.rulesไฟล์ดังกล่าวข้างต้น (ดู desgua) และโหลดกฎหรือรีสตาร์ท


-1

เพียงแค่วิธีแก้ปัญหาเล็ก ๆ ให้เชื่อมต่อโทรศัพท์ที่ใช้ ICS ของคุณด้วย MASS STORAGE เก่าที่ดีhttp://forum.xda-developers.com/showthread.php?t=1556367

adb install UMS1.0.apk

1
ในขณะที่นี่เป็นทางออกที่ดีสำหรับโทรศัพท์บางรุ่น แต่จะใช้งานได้หากโทรศัพท์มีการ์ด sd แยกต่างหาก ในความสัมพันธ์กับคำถามเดิมสิ่งนี้จะไม่สามารถใช้ได้กับ Galaxy Nexus
coversnail

แม้จะมีการ์ด SD แยกกันฉันไม่คิดว่าการติดตั้งเป็นอุปกรณ์เก็บข้อมูลขนาดใหญ่เป็นตัวเลือกสำหรับ Android เวอร์ชันใหม่กว่า แม้ว่า "จะมีประตูหลังอยู่เสมอ" ดังนั้นฉันจะไม่ไปไกลเท่าที่จะบอกว่ามันเป็นไปไม่ได้
mchid

นั่นคือ 4 ปีที่แล้ว;)
jflaflamme
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.