gphoto2 + Nikon D70 patch

กล้อง Nikon D70 ตั้งให้โอนภาพเข้าเครื่องได้สองวิธีคือ ตั้งเป็น USB mass storage ซึ่งจะเห็นเป็นไดรว์ หรืออีกวิธีคือใช้ PTP (Picture Transfer Protocol) ซึ่งต้องใช้โปรแกรมในการโอน บนลินุกซ์ก็จะมี libgphoto2 เป็นไลบรารีที่โอนภาพผ่าน PTP ได้ .. ปัญหาคือ libgphoto2 ตัวปัจจุบัน ยังไม่รู้จัก Nikon D70 .. วันนี้เลยลองไล่ code ของ libgphoto2 ดู แล้วก็เพิ่ม device ID เข้าไป (Mass storage กับ PTP ของ D70 จะใช้ USB device ID คนละตัวกัน) .. ตอนนี้ libgphoto2 ใน aowthai ก็รู้จักกล้องรุ่นนี้แล้ว :)

ปัญหาอีกข้อคือการใช้ PTP mode ในทะเล ผู้ใช้ธรรมดาไม่มีสิทธิในการใช้งาน device เลยต้องใช้ root ในการโอนภาพ หรือไม่ก็ต้องเปลี่ยน permission ใน /proc/bus/usb/*/* ซึ่งไม่สะดวกเอาเสียเลย จะ suid gthumb / gphoto ก็ไม่ได้เพราะโปรแกรมจะเช็ค suid ก่อน ถ้ามีการตั้งไว้มันจะไม่ยอมทำงาน (อ่านเพิ่มเติม) .. ไล่ไปไล่มาก็พบว่าปัญหามันเกิดเพราะสคริปต์ /etc/hotplug/usb/usbcam มันระบุ path ของไฟล์ console.lock ไม่ตรงกับ path ในทะเล .. พอไม่เจอไฟล์ console.lock pam_console เลยจัดการ permission ของ device ให้เป็นไปตามผู้ใช้ไม่ได้ .. แก้นิดเดียว พอ path ถูกต้องแล้วก็ฉลุยเลย ต่อสาย USB เปิด power ปุ๊บ g-v-m ก็เรียก gthumb มารอ import ภาพ .. สะดวกขึ้นเยอะ ;)