mount iPhone บน Karmic ฉบับย่อ
ว่าด้วยการเชื่อมต่อ iPhone กับ Ubuntu 9.10 แบบ Ext HDD
หลังจากได้ค้นหาข้อมูลการเชื่อมต่อ iPhone 3GS กับ Karmic มาสักระยะเลยอยากบันทึกไว้สักหน่อยซึ่งเนื้อหาที่จะเขียนไม่ได้ใหม่ไปกว่าข้อมูลที่มีอยู่บน Internet ในตอนนี้ก็อ่านเพือเป็นแนวทางในการค้นคว้าต่อไปนะครับ
ก่อนอื่นมาดูข้อจำกัดของ iPhone ที่ทำงานกับ Linux กันก่อน
- Apple ไม่ Support การทำงาน iPhone บน Linux
- ไม่มี iTune สำหรับ Sync ข้อมูลต่าง ๆ บน Linux
- Linux มองเห็น iPhone เป็นแค่กล้องถ่ายรูปธรรมดาเท่านั้น ซึ่งสามารถ Copy รูปภาพและ VDO ออกมาได้อย่างเดียว
- การเชื่อมต่อ internet โดยใช้ iPhone เป็นตัว share net ทำได้เฉพาะผู้ที่ใช้เครือข่าย True เท่านั้น ตรงนี้ผมยังไม่ได้หาวิธีเพราะผมใช้ Dtac
ข้างบนเป็นข้อจำกัดที่รับรู้กันโดยทั่วไปอยู่แล้ว แต่ถ้าใครที่ใช้เครื่องที่ผ่านการ Jailbreak มาแล้วก็จะสามารถทำอะไรได้มากกว่านี้ เฃ่น
- สามารถ share net ได้ทุกเครือข่าย
- สามารถ remote เข้าไปยังเครื่อง iPhone ผ่าน ssh ได้
- สามารถ mount iPhone ได้ถึงระดับ root คือมองเห็นโครงสร้างของ filesystem ทั้งหมด
- bla bla
แต่ที่ผมจะเขียนบันทึกในวันนี้นั้นเฉพาะเรื่องการ mount iPhone แบบ External Harddisk เท่านั้นนะครับ ซึ่งเครื่องผมเป็นเครื่องที่ไม่ได้ผ่านการ Jailbreak มาแต่อย่างใด
ข้อมูลทั้งหมดผมได้มาจากเว็บ : http://marcansoft.com
การเตรียมตัว และ การติดตั้งไม่ได้ยุ่งอยากอะไรสำหรับ Karmic ทำได้ในเวลาไม่กี่นาทีดังนี้
สิ่งที่ต้องเตรียม
- Computer with Karmic
- iPhone 3G ผมใช้ 3GS รุ่นอื่นไม่แน่ใจนะ
- สาย usb ของ iPhone
- ชุดพัฒนาโปรแกรมบน Karmic เช่น gcc ในกรณีต้องการ build เอง
เริ่มลงมือกันเลย
วิธีแรกการติดตั้งแบบอัตโนมัติ
- add ppa:jonabeck/ppa เข้าใน sources.list โดยใช้คำสั่ง
sudo add-apt-repository ppa:jonabeck/ppa
ตรงนี้มันจะทำสองอย่างคือ การเพิ่ม repo เข้าไปใน sources.list และ การ import keys มาจาก server ด้วย ถ้าเจออาการนิ่งไปนาน ๆ แสดงว่า network ที่ใช้มีการ block port ของ keys server ไม่ต้องตกใจรอสักครู่มันก็จะหลุดออกมาพร้อมข้อความ error ก็ไม่ต้องสนใจก็ได้ แต่มันจะบ่นเรื่อง keys ทุกครั้งที่มีการ update หรือ ติดตั้ง package อ้อ!! วิธี add repo แบบเดิมก็ยังใช้ได้อยู่นะครับ ตือการยัดเข้าไปตรง ๆ ใน sources.list เลย โดยใส่บรรทัดต่อไปนี้ลงไป
deb http://ppa.launchpad.net/jonabeck/ppa/ubuntu karmic main
deb-src http://ppa.launchpad.net/jonabeck/ppa/ubuntu karmic main
สังเกตุว่าวิธีแรกจะง่ายกว่าเพราะไม่ต้องกังวลเรื่อง syntax ไม่ต้องใส่ code name และที่เก็บของวิธีแรกจะเก็บไว้ใน /etc/apt/sources.list.d นะครับ
- ทำการ update ข้อมูลจาก server
sudo apt-get update
- ติดตั้ง package ที่ต้องการใช้ดังนี้
sudo apt-get install ifuse libiphone
packages หลัก ๆ ที่ควรติดตั้งคือ
- libusb
- usbmuxd
- libplist
- libiphone
- ifuse
- เมื่อติดตั้งเสร็จแล้วก็ลองเสียบสาย sync iPhone ซึ่งมันควรจะรัน usbmuxd อัตโนมัติ ตรวจสอบด้วยรันคำสั่ง
tail -f /var/log/messages
ไว้อีก terminal ซึ่งจะเห็นข้อความ
Nov 16 11:11:15 mrchoke-ubuntu usbmuxd[6220]: [3] usbmuxd v1.0.0 starting up
Nov 16 11:11:15 mrchoke-ubuntu usbmuxd[6222]: [4] Creating socket
Nov 16 11:11:15 mrchoke-ubuntu usbmuxd[6222]: [3] Successfully dropped privileges to 'usbmux'
Nov 16 11:11:15 mrchoke-ubuntu usbmuxd[6222]: [4] Initializing USB
Nov 16 11:11:15 mrchoke-ubuntu usbmuxd[6222]: [4] Found new device with v/p 05ac:1294 at 2-5
Nov 16 11:11:15 mrchoke-ubuntu usbmuxd[6222]: [4] Using wMaxPacketSize=512 for device 2-5
Nov 16 11:11:15 mrchoke-ubuntu usbmuxd[6222]: [3] Connecting to new device on location 0x20005 as ID 1
Nov 16 11:11:15 mrchoke-ubuntu usbmuxd[6222]: [4] 1 device detectedNov 16 11:11:15 mrchoke-ubuntu usbmuxd[6222]: [3] Initialization complete
Nov 16 11:11:15 mrchoke-ubuntu usbmuxd[6222]: [3] Connected to v1.0 device 1 on location 0x20005 with serial number xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ถ้าได้ตามนั้นก็แสดงว่าทำได้ละ ถ้าไม่ได้ต้องเรียกคำสั่ง usbmuxd เอง
$ sudo usbmuxd -u -U -v -v
-v ให้แสดง verbose เหมือนด้านบน
- ทำการ mount ด้วยคำสั่ง ifuse
$ sudo ifuse mount-point
ถ้าใครผ่านการ jailbreak มาแล้วก็ให้ใส่ –root
$ sudo ifuse --root mount-point
แค่นี้ก็จะสามารถเข้าไป copy พวกเพลงพวกหนังได้แล้ว เหลือแต่ขั้นตอนการเปิดด้วยพวกโปรแกรมจัดการเพลงต่ออีกทีซึ่งต้องอาศัย libgpod ซึ่งที่มีอยู่มันยังเก่าไปยังไม่ support db ตัวใหม่ของ iTune แต่ถ้าใครลองทดสอบตัวใหม่ก็ลองทำตามในเว็บ http://marcansoft.com/blog/2009/10/iphone-syncing-on-linux-part-2/ ดูครับ ผมยังไม่ได้ลอง ส่วน iPod และ iPhone เก่า ๆ น่าจะได้ แต่ก็มีบางคนรายงานว่า sync แล้วทำให้ db เสียก็มี อันนี้แล้วแต่ความใจกล้าว่าจะอยากลองไหม ฮ่า ๆ ผมไม่รู้เหมือนกัน แต่เท่านี้ก็สามารถ copy ออกมาได้แล้ว แค่ยัง sync เพลงลงไปไม่ได้แค่นั้นเอง
เอาละไปต่อยอดกันเอาเองนะจีะ
mrchoke@mrchoke-ubuntu:~$ ls -l /media/iphone/
total 0
drwxr-xr-x 2 root root 68 1970-01-01 07:00 ApplicationArchives
-rw-r--r-- 1 root root 0 1970-01-01 07:00 com.apple.itdbprep.postprocess.lock
-rw-r--r-- 1 root root 0 1970-01-01 07:00 com.apple.itunes.lock_sync
drwxr-xr-x 5 root root 238 1970-01-01 07:00 DCIM
drwxr-xr-x 2 root root 102 1970-01-01 07:00 Downloads
drwxr-xr-x 6 root root 204 1970-01-01 07:00 iTunes_Control
drwxr-xr-x 3 root root 136 1970-01-01 07:00 Photos
drwxr-xr-x 2 root root 68 1970-01-01 07:00 Podcasts
drwxr-xr-x 2 root root 68 1970-01-01 07:00 PublicStaging
drwxr-xr-x 2 root root 68 1970-01-01 07:00 Purchases
drwxr-xr-x 2 root root 102 1970-01-01 07:00 Recordings
drwxr-xr-x 2 root root 136 1970-01-01 07:00 Safari