MrChoke.Org

Month: November 2009

mount iPhone บน Karmic ฉบับย่อ

ว่าด้วยการเชื่อมต่อ iPhone กับ Ubuntu 9.10 แบบ Ext HDD

iphone

หลังจากได้ค้นหาข้อมูลการเชื่อมต่อ 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 เอง

เริ่มลงมือกันเลย

วิธีแรกการติดตั้งแบบอัตโนมัติ

1. 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 นะครับ

2. ทำการ update ข้อมูลจาก server

sudo apt-get update

3. ติดตั้ง package ที่ต้องการใช้ดังนี้

sudo apt-get install ifuse libiphone

packages หลักๆ ที่ควรติดตั้งคือ

  • libusb
  • usbmuxd
  • libplist
  • libiphone
  • ifuse

4. เมื่อติดตั้งเสร็จแล้วก็ลองเสียบสาย 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 detected
Nov 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 เหมือนด้านบน

5. ทำการ 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

Where am I?

GPS tracking powered by InstaMapper.com

ความทรงจำดีๆ ของคนทำงาน

จริงๆ จะเขียน Blog นี้ตั้งนานแล้วทิ้งไว้นานเป็นเดือนเชียว เหตุเกิดขึ้นที่ห้อง Lab ที่ทำงานนี่แหละกำลังนั่งทำงานอยู่ ก็มีลุงคนหนึ่งหอบของรุงรังกดกริ่งหน้าห้อง เมื่อเปิดประตูให้ก็เข้ามาหาคนช่วยดูเครื่องคอมพิวเตอร์ให้หน่อย จริงๆ เหตุการณ์แบบนี้เกิดขึ้นบ่อยสำหรับที่นี่มีคนแบกเครื่องมาให้ดูกันบ่อยๆ แต่ที่ผมประทับใจมันมีอยู่ว่า ลุงแกเดินทางมาจากปัตตานีด้วยขบวนรถไฟ ขบวนก่อนที่จะตกรางตรงประจวบ คอมพ์เป็นเครื่อง PC ของ ICT รุ่นแรก แกห่อมาด้วยแผ่นป้ายผ้าใหญ่ๆ ม้วนๆ ห่อๆ มัดด้วยเชือกฟางบ้าง ไนล้อนบ้าง อย่างแน่นหนา นึกภาพตามกันออกไหม เสียดายผมไม่ได้ถ่ายรูปไว้เพราะมัวแต่ตกตะลึงกับเหตุการณ์อยู่ แค่ได้ยินว่า ปัตตานี บวกกับเห็นก้อนผ้ามัดเชือกก็ระทึกแล้วครับ ฮ่าๆ มาถึงแกก็เล่าอาการให้ฟังพร้อมกับแกะห่อผ้าออก โดยให้น้องฝึกงานเป็นคนช่วย สรุปได้ว่าเป็นเครื่อง ICT รุ่นแรก ยังใช้ LinuxTLE 5.5 หน้าตายังเหมือนเดิมทุกประการ แกใช้มากี่ปีแล้วละเนี๊ยะ แกบอกว่ามันบู๊ตไม่ขึ้นช่วยดูให้หน่อย ถ้าไมได้ยังไงเดี๋ยวแกจะเอาไปโยนคลองรังสิตแล้วซื้อใหม่เสีย ฮ่าๆ แกตลกนะครับไม่ได้จริงจัง แกบอกว่าไม่ต้องรีบแกจะทิ้งไว้สองสามวันแกจะไปเที่ยวกรุงเทพก่อน แล้วจะเข้ามารับวันหลังแกยังไม่ได้นอนเลย พวกผมก็รับปากจะดูให้ไม่ต้องเป็นห่วง แกยังเล่าต่อว่าแกโทรไปที่กระทรวง ICT มาแล้วเขาไม่รับดูให้แล้วมันหมดโครงการไปนานแล้ว แกเลยแบกมาที่นี่แหละ

หลังจากน้องฝึกงานตรวจสอบก็ยังใช้งานได้ดี แต่มันช้ามากจะลงของใหม่ๆ ให้ก็เกรงว่าจะไม่ไหวเลยลงความเห็นว่ามันปกติ รอแกมารับกลับถ้าจะให้เร็วกว่านี้ก็คงต้องหาแรมมาใส่เพิ่ม หรือซื้อเครื่องใหม่แทน ไอ้ผมละกลัวแกจะเอาไปทิ้งคลองรังสิตจริงๆ ผ่านไปแกก็โทรเข้ามาพร้อมจะมารับเครื่อง เมื่อมาถึงน้องฝึกงานก็รายงานให้ฟังแกก็ไม่ว่าอะไร พร้อมยังคุยกันสนุกสนาน ผมแนะนำตัวว่าเป็นคนใต้เหมือนกัน แกก็ถามมาเลย “แหลงใต้ได้ไหม้” แฮะๆ ค่อยมีรสชาติหน่อย ผมแนะนำว่าคราวหลังไม่ต้องยกมาที่นี่ก็ได้เข้าไปที่ ม.สงขลา ที่หาดใหญ่ก็ได้ ที่นั้นช่วยได้ แกก็บอกพรรคพวกผมทั้งนั้น ผมเรียนโทที่นั้น โห ลุงจบโทเลยเหรอเนี๊ยะ ผมนึกในใจ แกก็เล่าต่อ ว่าเป็นอดีต ผอ. โรงเรียนแถวปัตตานี ผมจำชื่อโรงเรียนไม่ได้แล้ว ตอนนี้เกษียณอายุ กะจะเอาจริงเอาจังกับการเล่นลินุกซ์สักหน่อย พวกผมก็อึ้งพอสมควรกับภาพที่เห็นในวันแรกสถาพตาลุงแต่งตัวแบบคนบ้านผม หอบของรุงรังเข้ามา แต่ตอนนี้รู้จักว่าเป็นอดีต ผู้อำนวยการโรงเรียน เลยทีเดียว นับถือๆ

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

Share Net บน Leopard แบบมั่วๆ

ช่วงนี้อาจจะดูเหมือน Zealot แต่จริงๆ ถ้าจะเรียกผมว่า Zealot ก็ไม่ว่า ฮ่าๆ ผมใช้ทั้งลินุกซ์ แมค หรือบางครั้งถ้าเจอเรื่องบังคับมากๆ ก็เปิดวินโดว์ขึ้นมาใช้เหมือนกัน ไม่ใช่ปัญหา มีอะไรตั้งอยู่ตรงหน้าผมควรจะใช้มันได้ นั้นแหละความสุขของผม ถ้าใช้มันไม่ได้สิผมเป็นทุกข์แย่เลย เพราะเห็นหลายคนทำตัวเมพๆ เจอโอเอสที่ตัวเองไม่ได้เล่นแล้วทำแหยงๆ ฮ่าๆ ว่าเข้าไป พอแค่นี้ก่อนเดี๋ยวโดนยำ

พอดีผมนึกสนุกขึ้นมา หาตัว Airport Express มาทำเน็ตเล่นภายในห้อง แล้วตัว share net ของ Leopard มันไม่ยอมทำงานให้ผม อันนี้จนปัญญาจริงๆ ครับตอนแรกก็ถอดใจแล้วนั่งทำตั้งแต่ตอนค่ำยันเที่ยงคืนไม่ยอมแซร์ให้ผมจริงๆ เลยลองค้นหาดูพบคำสั่งคล้ายๆ บนลินุกซ์ เรื่องการทำ NAT เลยลองดูสักหน่อยเพราะใกล้จะหลับแล้ว พบว่ามันได้เฉยเลย แม่เจ้า เลยไม่ได้นอนเลยคราวนี้ ครั้นจะเขียน Blog เว็บดันตายซะอีก เลยปล่อยๆ มันรอให้ db server คืนสภาพเดี๋ยวก็ดีเองเพราะทำอะไรไม่ได้มากเช่าเค้ามาอีกที

มาดูวิธีแบบมั่วๆ ของคนหัดเล่นแมคครับ

ขั้นแรกวางแผนการเชื่อมต่อก่อน ผมรับ Net ด้วย Wireless ด้วย Leoperd แล้วผมจะ Share ผ่านทาง Ethernet ไปยัง Airport Express แล้วก็เอาตัวอื่นๆ มารับอีกที เพราะอะไรผมต้องทำแบบนี้ในเมื่อมี Wireless ให้ใช้ เหตุผลคือห้องผมรับสัญญาณไม่ค่อยได้ สัญญาณมันเดินทางไกลพอสมควรจากอาคาร Pilot Plant ของ Biotec เครื่องที่รับได้คือ iMac นอกนั้นแล้วแต่โชครับได้บ้างไม่ได้บ้าง ผมเลยมีความคิดนี้ขึ้นมา

แผนการเชื่อมต่อ

ขั้นต่อมาเชื่อมต่ออุปกรณ์

ติดตั้ง AirPort Express เสียบสายลำโพงด้วย

เสียบสาย Cross เข้าตูด iMac

ขั้นต่อมาตั้งค่า ให้ iMac และ AirPort Express

จริงๆ มันควรจบตรงนี้ Share แล้วได้เลย แต่มันไม่ได้

ตั้ง ip ให้ตรงกับ iMac ขา Ethernet ผม Fixed ทั้งคู่ครับ

ขั้นต่อมา forward ip และทำ NAT

sudo sysctl -w net.inet.ip.forwarding=1
sudo /usr/sbin/natd -same_ports -use_sockets -log -deny_incoming -interface en1
sudo /sbin/ipfw add divert natd ip from any to any via en1

en1 เป็นขาออกคือ Wireless ของ iMac

ขั้นต่อมาเล่น

เชื่อมต่อด้วย iPhone

วัดความเร็วสักหน่อย

หมายเหตุวิธีนี้มันถึก อาจจะมีวิธีที่ดีกว่านี้ กรุณาชี้แนะด้วยครับ

Copyright © 2016 MrChoke.Org

Theme by Anders NorenUp ↑