วิธีที่ดีกว่าในการเชื่อมต่อ Galaxy Nexus (ICS) กับ Linux


13

ฉันสามารถเชื่อมต่อ Galaxy Nexus ของฉันกับเครื่อง Kubuntu โดยใช้โปรโตคอลPTPแต่มันช้ามาก ฉันได้อ่านบทสัมภาษณ์นี้เกี่ยวกับสาเหตุที่ Galaxy Nexus ไม่สนับสนุนที่เก็บข้อมูล USB ขนาดใหญ่และฉันได้ไปที่http://www.android.com/filetransfer/ตามที่ได้รับคำสั่ง เชื่อมต่อกับอุปกรณ์เครื่องใช้ลินุกซ์และMTP

ไม่มีใครรู้วิธีรับ MTP หรือโปรโตคอลอื่นทำงานได้หรือไม่

คำตอบ:


7

นอกจากนี้คุณยังสามารถลองmtpfsหรือgMTP mtpfs อนุญาตให้ติดตั้งอุปกรณ์ MTP เป็นระบบไฟล์ในขณะที่ gMTP เป็นโปรแกรมแบบสแตนด์อโลน

กว่าที่ AskUbuntu มีคำตอบที่แสดงวิธีใช้ mtpfs


gMTP ดูเหมือนว่าจะทำงานได้ดีมากสำหรับฉันที่จะคัดลอกรูปภาพจากโทรศัพท์เครื่องเก่าของฉัน พยายามคัดลอก PTP เจ็บปวด
Ryan

1
gMTP ไม่น่าพอใจสำหรับฉัน ช้ามากและมีข้อผิดพลาดเกี่ยวกับไฟล์เพลง (พยายามสร้างอัลบั้มสำหรับทุกไฟล์ที่ถ่ายโอน) gMTP ก็ล้มเหลวบ่อยใน Ubuntu ฉันชอบวิธีการของ ADB ที่ดีกว่า ฉันยังใช้ SSHFS ผ่าน WiFi และวิธีอื่น ๆ
MountainX

6

ฉันจะขยายแนวคิดของ Ryan Conrad:

adb จาก android-tools เป็นวิธี

ฉันชอบทำตามคำแนะนำนี้เพื่อติดตั้ง Eclipse กับ android-sdk:

http://developer.android.com/sdk/installing.html

การติดตั้งขึ้นอยู่กับ JDK เท่านั้น ไม่มีการติดตั้งแพ็คเกจใหม่ ฉันเองทำขั้นตอนเดียวกัน (= แยกสองโฟลเดอร์ที่ใดก็ได้และกำหนดค่า eclipse) ในลักษณะเดียวกันบน Ubuntu, Mint หรือ Debian distributions และทั้งหมดก็ใช้งานได้

หลังจากเสร็จสิ้นคู่มือคลาสสิกนี้ฉันมีสองโฟลเดอร์ใหม่: คราสและหุ่นยนต์ SDKs ในโฟลเดอร์android- sdks ./platform-tools/adbเป็นพา ธ ไปยังadbเครื่องมือซึ่งสามารถใช้ในการpush(อัปโหลด) และpull(รับ) ไฟล์จากอุปกรณ์ android โดยไม่มี mtpfs หรือเมานต์เพิ่มเติม

เช่นเดียวadbกับโปรแกรมบรรทัดคำสั่งมันสามารถเป็นแบบอัตโนมัติในระยะเวลาอันสั้น นอกจากนี้คุณยังมีมุมมองFile Explorerของ Eclipse ซึ่งมีโครงสร้างไฟล์ทรีกราฟิกที่ดีและส่วนติดต่อแบบลากและวางพื้นฐาน (อย่าลืมเลือกอุปกรณ์ของคุณในมุมมองอุปกรณ์ก่อน!)

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


1
adb เป็นปัญหาด้านความปลอดภัยหากคุณเปิดใช้งานอย่างต่อเนื่อง โปรดทราบว่าไม่มีบทสนทนาวลีรหัสผ่านหรืออะไร หนึ่งสามารถข้ามล็อคหน้าจอและการเข้ารหัสอุปกรณ์ได้ โดยเฉพาะอย่างยิ่งถ้าคุณคิดค่าบริการในสถานที่ที่ไม่รู้จัก (พีซีในร้านอินเทอร์เน็ต ฯลฯ )
4

ขอบคุณสำหรับการแจ้งให้ทราบ ce4 ให้ฉันถาม: เราควรใช้การเข้าถึงที่เก็บข้อมูล android ในสถานที่ที่ไม่รู้จักหมายความว่าอย่างไร?
furikuretsu

1
เพิ่มคำตอบของตัวเองเกี่ยวกับ bluetooth :-)
ce4

6

คุณสามารถใช้บลูทู ธ

Bluetooth FTP (Linux) สนับสนุน Linux และมีแอพBluetooth File Transferที่เพิ่มฟังก์ชั่นนี้ให้กับ android อย่างไรก็ตามมันไม่เร็วนัก (<200kb / s) ขึ้นอยู่กับรุ่นบลูทู ธ ของคุณ -

มีโมดูลฟิวส์ที่เรียกว่าobexfs ต่อไปนี้เป็น Nexus S ของฉันที่ติดตั้ง:

root@local:/tmp# obexfs -b f0:08:f1:xx:xx:xx -- /media/bla
root@local:/tmp# cd /media/bla
root@leo61326:/media/bla# ls -lh /media/bla/DCIM/
total 5,5K
drwxr-xr-x 1 root root    0 2012-05-25 16:09 100ANDRO
drwxr-xr-x 1 root root    0 2012-07-05 17:31 2012-06-09_Rafting
drwxr-xr-x 1 root root    0 2012-07-09 22:30 Camera

นักสำรวจไฟล์บางคนสนับสนุนผ่านปลั๊กอินโดยตรง (nautilus / gnome / kde / ... ) ต่อไปนี้เป็นคำถามที่เกี่ยวข้องกับ Ubuntu ของ obex


1
คำตอบนี้สมควรได้รับการอัปโหลดมากขึ้น - ฉันไม่สามารถรับ MTP หรือ PTP เพื่อให้ทำงานได้ดีกับการติดตั้ง Kubuntu ของฉัน
Nathan Osman

หวังว่ามันจะดีขึ้นเมื่อใช้ Ubuntu รุ่นใหม่ ฉันมั่นใจจริงๆเกี่ยวกับเรื่องนี้ ฉันส่วนใหญ่ใช้ ADB บน ​​commandline (ซึ่งฉันใช้บ่อย) ดังนั้นนี่คือเส้นทางที่เร็วที่สุดสำหรับฉันในตอนนี้ ฉันยังใช้ "bluetooth-sendto some-file" บางครั้ง
ce4

3

คุณสามารถใช้ adb และถ่ายโอนโดยใช้คำสั่ง adb pull / push

ไม่แน่ใจว่าสิ่งที่ distro ของลินุกซ์คุณกำลังใช้ แต่ฉันพบนี้ที่บอกว่า MTP เป็นแพคเกจและพร้อมสำหรับอูบุนตูแม้ว่าจะเป็นแพคเกจที่เรียกว่าMTP เครื่องมือ

โปรดทราบว่านี่ไม่ใช่เฉพาะ android 3.x / 4.x นี่เป็นความจริงสำหรับอุปกรณ์ใด ๆ ที่ใช้ 3.x / 4.x ที่ไม่มี sdcard ภายนอก หากอุปกรณ์มีช่องเสียบ sdcard คุณจะสามารถติดตั้งอุปกรณ์ได้เช่นใน Android รุ่นก่อนหน้า


2

mpfs เป็นระบบไฟล์แบบ FUSE ที่สามารถติดตั้ง Nexus บนระบบของคุณ

mtpfs -o allow_other /media/MOUNTPOINT

จะติดตั้งเพื่อคุณ หากต้องการถอนติดตั้งเพียงแค่ติดตั้ง / สื่อ / MOUNTPOINT


0

ตัวเลือกหนึ่งคือWebDAV

การตั้งค่าเซิร์ฟเวอร์ Android WebDAV

ในสต็อกของฉัน Nexus 7 ฉันติดตั้งเซิร์ฟเวอร์ WebDAVเปิดมันคลิกที่ปุ่มเริ่มและสามารถเห็น/storage/sdcardโฟลเดอร์ของฉันในเว็บเบราว์เซอร์ของฉันได้ทันทีที่ URL ที่แสดงโดยแอปพลิเคชันเช่นhttp://192.168.x.y:8080

โปรดทราบว่ามีWebDAV เซิร์ฟเวอร์คุณยังมีตัวเลือกในการเลือกราก (/)หรือDCIMเช่นเดียวกับsdcardเป็นของ WebDAV ราก

การใช้เซิร์ฟเวอร์ WebDAV ผ่าน Nautilus

ใน Nautilus ฉันเลือก "เชื่อมต่อกับเซิร์ฟเวอร์ ... " จากเมนูไฟล์เลือก "WebDAV (HTTP)" ซึ่งป้อน192.168.x.yเป็นเซิร์ฟเวอร์และ8080เป็นพอร์ตและคลิกที่เชื่อมต่อ

การนำทางผ่านลำดับชั้นไดเรกทอรีจะช้ากว่าการเข้าถึงเครือข่ายอื่น ๆ ที่ใช้ร่วมกัน แต่ไม่สามารถแก้ไขได้ การคัดลอกไฟล์ 42MB เดียวผ่าน Nautilus ใช้เวลาประมาณ 12 วินาทีดังนั้น 3.6MB / s

การเมาต์ไดรฟ์ WebDAV จากบรรทัดคำสั่ง

ฉันติดตั้งdavfs2และติดตั้งการแชร์ของฉันเป็นการ/mntใช้คำสั่ง:

sudo mount -t davfs http://192.168.x.y:8080 /mnt

การคัดลอกไฟล์ 42MB เดียวกัน แต่มีเวลาที่แม่นยำกว่าใช้เวลา 12.88s หรือ 3.24MB / s

$ time cp music.fsb /tmp

real    0m12.880s
user    0m0.002s
sys     0m0.143s

คำเตือน

  • เข้าถึง WebDAV ไม่ปลอดภัย แม้ว่าคุณจะตั้งรหัสผ่านในการแชร์ WebDAV แต่การเชื่อมต่อยังhttpไม่httpsเป็นเช่นนั้นจึงไม่ได้เข้ารหัส ใช้ WebDAV บนเครือข่าย wifi ที่ปลอดภัยเท่านั้นและแน่นอนว่าจะไม่เปิดใช้งานเซิร์ฟเวอร์ WebDAV ในขณะที่คุณอยู่ในอินเทอร์เน็ตคาเฟ่หรือ wifi ที่ไม่ปลอดภัยอื่น ๆ

0

คุณสามารถใช้โปรโตคอล FTP ที่ความเร็วสาย usb กับแอพนี้ (ไม่ใช่ว่าต้องมี adb แต่หลังจากคุณตั้งค่าการเชื่อมต่อ / ถ่ายโอน adb นั้นรวดเร็วและไม่เจ็บปวดและคุณยังสามารถดูไฟล์ในโปรแกรมจัดการไฟล์ที่คุณชื่นชอบ

https://play.google.com/store/apps/details?id=com.theolivetree.ftpserver

คำแนะนำอยู่ในคำอธิบาย play store


0

ใช้งาน MTP บน Ubuntu สำหรับ Galaxy Nexus, Nexus 7 และ Acer A500

ฉันพบคำแนะนำสำหรับ Nexus 7 (ที่ฉันเพิ่งนำมา) บนเว็บไซต์นี้ Ubuntu 12.04 - Automount Nexus 7 ในโหมด MTP เครดิตทั้งหมดให้กับผู้เขียนของหน้านั้นเพื่อหามัน คำแนะนำที่ฉันมีด้านล่างมาจากไซต์นี้ถูกตัดออกไปตามคำสั่งหากคุณต้องการคำอธิบายเพิ่มเติมให้ดูที่เว็บไซต์ด้านบน

ฉันใช้ Ubuntu 12.10 และได้กำหนดค่าสำหรับ Nexus 7, Galaxy Nexus และ Acer A500 แล้ว คำแนะนำ

กำหนดค่า FUSE

เปลี่ยน /etc/fuse.conf เพื่อให้อ่านได้ทั้งหมด ..

# sudo chmod a+r /etc/fuse.conf

แก้ไข /etc/fuse.conf เพื่อลบความคิดเห็น # จาก user_allow_other ดังนั้น default fuse.conf จะดูเหมือน

# Set the maximum number of FUSE mounts allowed to non-root users.
# The default is 1000.
#
#mount_max = 1000

# Allow non-root users to specify the 'allow_other' or 'allow_root'
# mount options.
#
user_allow_other

รวบรวมและติดตั้ง go_mtp

# sudo apt-get install libmtp-dev golang 
# mkdir /tmp/go
# export GOPATH=/tmp/go
# go get github.com/hanwen/go-mtpfs
# sudo mv /tmp/go/bin/go-mtpfs /usr/local/sbin/go-mtpfs
# sudo chmod a+x /usr/local/sbin/go-mtpfs

สร้างจุดเมานต์

Use the following as you need..
# sudo mkdir /media/Nexus7
# sudo chmod 777 /media/Nexus7
# sudo mkdir /media/GalaxyNexus
# sudo chmod 777 /media/GalaxyNexus
# sudo mkdir /media/A500
# sudo chmod 777 /media/A500

ตั้งค่ากฎ udev

ใช้โปรแกรมแก้ไขรายการโปรดของคุณและสร้างไฟล์ต่อไปนี้ (ลบกฎ android udev อื่น ๆ ที่คุณอาจทดลองก่อน)

# sudo vi /etc/udev/rules.d/99-android.rules

วางในเนื้อหาต่อไปนี้ คุณสามารถลบกฎที่คุณไม่ต้องการอุปกรณ์ Nexus ทั้งสองปรากฏว่ามีรหัสเดียวกันสำหรับ bootloader และการกู้คืน หมายเหตุ: คุณต้องแทนที่ # YOURLOGIN # ด้วยชื่อผู้ใช้ / ข้อมูลเข้าสู่ระบบของคุณ

# Google Nexus 7 & Galaxy Nexus 16 Gb Bootloader & recovery mode
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0666" # Bootloader
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666" # Recovery

# Google Nexus 7 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e43", MODE="0666" # PTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e44", MODE="0666" # PTP media with USB debug on

# Google Nexus 7 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e41", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0666" # MTP media with USB debug on

# Google Nexus 7 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus7"

# Google Nexus 7 MTP mode : automatic unmount when unplugged
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"


# Google Galaxy Nexus 16 Gb Bootloader & recovery mode
#SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0666" # Bootloader
#SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666" # Recovery

# Google Galaxy Nexus 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6865", MODE="0666" # PTP media
#SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="4e44", MODE="0666" # PTP media with USB debug on

# Google Galaxy Nexus 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="685c", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0666" # MTP media with USB debug on

# Google Nexus 7 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="685c", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/GalaxyNexus"
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="6860", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/GalaxyNexus"

# Google Nexus 7 MTP mode : automatic unmount when unplugged
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="685c", ACTION=="remove", RUN+="/bin/umount /media/GalaxyNexus"
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="6860", ACTION=="remove", RUN+="/bin/umount /media/GalaxyNexus"


# Acer A500 16 Gb Bootloader & recovery mode
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3201", MODE="0666" # Bootloader
#SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="d001", MODE="0666" # Recovery

# Acer A500 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="33b2", MODE="0666" # PTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="33b1", MODE="0666" # PTP media with USB debug on

# Acer A500 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3341", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3325", MODE="0666" # MTP media with USB debug on

# Acer A500 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3341", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/A500"
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3325", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/A500"

# Acer A500 MTP mode : automatic unmount when unplugged
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3341", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3325", ACTION=="remove", RUN+="/bin/umount /media/A500"

หมายเหตุ: หากคุณใช้ gedit และคุณได้แก้ไขไฟล์แล้วคุณจะต้องลบ 99-android.rules ~ เนื่องจาก udev จะไม่พอใจ ..

ถัดไปรีสตาร์ท udev

# sudo service udev restart

แก้ไข / etc / fstab

Add the following to /etc/fstab
DeviceFs(Nexus\0407)        /media/Nexus7         fuse.DeviceFs(Nexus\0407)      allow_other,rw,user,noauto    0    0
DeviceFs(Galaxy\040Nexu)    /media/GalaxyNexus    fuse.DeviceFs(Galaxy\040Nexu)  allow_other,rw,user,noauto    0    0
DeviceFs(A500)              /media/A500           fuse.DeviceFs(A500)            allow_other,rw,user,noauto    0    0

เสร็จ

ตอนนี้คุณสามารถเชื่อมต่ออุปกรณ์ของคุณแล้วและที่เก็บข้อมูลภายในจะพร้อมใช้งานคุณควรจำไว้ว่าจะยกเลิกการเมานต์ก่อนที่จะยกเลิกการเชื่อมต่อ

หมายเหตุ: ดูเหมือนว่า ENV {ID_MODEL} สำหรับ Nexus 7 เปลี่ยนเป็น Nexus_7 ในบางจุด (ฉันคิดว่าด้วยการอัปเดต android 4.2)

จากhttp://www.winters.org.nz/android-hints-tips-stuff/working-mtp-on-ubuntu


0

มีเครื่องมือที่มีประโยชน์มาก ๆ ชื่อของมันคือ "Wifi File Transfer" เพียงดาวน์โหลดจาก Play Store บนอุปกรณ์ Android ของคุณและติดตั้ง เปลี่ยนอุปกรณ์มือถือ Android ของคุณเป็นเซิร์ฟเวอร์ขนาดเล็กที่ให้คุณดาวน์โหลดและอัพโหลดไฟล์จากและไปยังโทรศัพท์ของคุณ

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