Sony DSC-S600 in Linux
The Sony Cybershot DSC-S600 camera is "almost" supported as a mass-storage device by Linux. I write "Almost" because Linux does not immediatly recognize it as such when you plug it. So, here are two ways to make the camera work as a proper mass storage device in LInux. In the following, the camera USB mode is left at factory defaults ("auto"), "Mass Stoarge" should also work. Of course "PTP" mode is reserved to gphoto2 (see next paragraph).
Note: the camera is
known to be supported by gphoto2 in PTP mode... Lucky people will be happy with this PTP mode of the camera, which allows some KDE ioslaves (
kamera) or Gnome modules to browse the contents of the memory stick. Unlucky people like myself (fresh but buggy upgrade from Breezy to Dapper), won't be happy with this PTP mode since Kubuntu 6.06 seems to have problem with the kamera ioslave (need to use
gtkam "by hand" to replace the faulty
kamera !). Since I don't know anything about KDE configuration things, I decided to look at some simple way to fix the kernel to make the mass storage mode work properly.
Method 1: edit the kernel binary module
This is the uggliest method you could find, ever. It has the greatest advantage that you don't need to recompile a new kernel to make the camera work as an UMS device.
Tested with the i386 version of the 2.6.15 kernel (in ubuntu:
linux-image-2.6.15-23-k7-2.6.15.deb). This should work with any kernel version, any architecture (on big endian hosts, don't forget to invert the order of bytes):
- rmmod usb-storage (if loaded)
- make a backup of /lib/modules/2.6.15-23-k7/kernel/drivers/usb/storage/usb-storage.ko
- edit the /lib/modules/2.6.15-23-k7/kernel/drivers/usb/storage/usb-storage.ko file with your preferred binary editor (I used emacs in hexl-mode) :
- look for the values 4c 05 10 00 00 05 00 05
- replace with 4c 05 10 00 00 05 00 06 (note: any figure above "06" is OK - I used the figure "30" for example)
- save the file
- edit /etc/modules, add the line: usb-storage (because we didn't update the alias=usb:... strings into the binary)
- modprobe usb-storage
Now you can plug the camera, Linux should recognize it and
usb-storage should make it appear as an
SCSI drive as usual.
Method 2: update the kernel sources
This is the "normal" way of fixing the problem. Apply the following patch to
drivers/usb/storage/unusual_devs.h:
--- unusual_devs.h-orig 2006-06-06 11:32:23.000000000 +0200
+++ unusual_devs.h 2006-06-06 11:32:53.000000000 +0200
@@ -416,9 +416,9 @@
US_FL_SINGLE_LUN | US_FL_NOT_LOCKABLE | US_FL_NO_WP_DETECT ),
/* This entry is needed because the device reports Sub=ff */
-UNUSUAL_DEV( 0x054c, 0x0010, 0x0500, 0x0500,
+UNUSUAL_DEV( 0x054c, 0x0010, 0x0500, 0x0600,
"Sony",
- "DSC-T1",
+ "DSC-T1/DSC-S600",
US_SC_8070, US_PR_DEVICE, NULL,
US_FL_SINGLE_LUN ),
No need to add any line to
/etc/modules.