Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 192610

Summary: I/O error when reading from Nikon D200 camera
Product: Gentoo Linux Reporter: Mike Morano <mmorano>
Component: [OLD] Core systemAssignee: Gentoo Kernel Bug Wranglers and Kernel Maintainers <kernel>
Status: RESOLVED FIXED    
Severity: normal CC: david
Priority: High Keywords: InVCS
Version: unspecified   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: D200 unusual devs patch
Patch for D200 quirk to support lower revision

Description Mike Morano 2007-09-15 17:17:54 UTC
My Nikon D200 camera was no longer able to mount after upgrading my kernel.  This is related to other bugs for other nikon models experiencing the same issues:

http://bugs.gentoo.org/show_bug.cgi?id=185517
http://bugs.gentoo.org/show_bug.cgi?id=186326

There is also a thread in the forums regarding this issue, and the last posting by Gadger (Sept. 5, 2007) provides a fix that I have confirmed to be working on my system.  Here is the snippet of code added to drivers/usb/storage/unusual_devs.h:

UNUSUAL_DEV(  0x04b0, 0x040f, 0x0200, 0x0200,
        "NIKON",
        "NIKON DSC D200",
        US_SC_DEVICE, US_PR_DEVICE, NULL,
        US_FL_FIX_CAPACITY), 



Reproducible: Always

Steps to Reproduce:
1. with unpatched kernel, plug in nikon d200


Actual Results:  
device appears in lsusb - but is not mountable (error message about bad superblock)

Expected Results:  
device is mountable

after patching kernel, device appears in lsusb and is mountable
Comment 1 Mike Morano 2007-09-15 17:19:35 UTC
Sorry, forgot to include the url to the forum post:

http://forums.gentoo.org/viewtopic-t-571491-highlight-nikon+d200.html
Comment 2 Mike Pagano gentoo-dev 2007-09-15 18:11:56 UTC
ok, thanks for the patch. We'll wait a bit and see if Gadger submits this upstream. If he doesn't, we can submit it on his behalf.  Once it makes the mainline development tree, we can back port to the latest genpatches for inclusion in gentoo-sources.

Comment 3 Mike Pagano gentoo-dev 2007-09-16 16:22:38 UTC
Created attachment 131062 [details, diff]
D200 unusual devs patch 

Would you mind installing the latest vanilla kernel which is vanilla-source-2.6.23_rc6 as of this writing?

Then, can you apply the patch I have attached by copying it to the directory where your kernel source is and entering the command:

patch -p1 < unusual_devs_mod_D200.patch

After compiling and installing the kernel, please post your test results here and if all works well, I'll submit upstream.

Thanks for your help with this.
Comment 4 Mike Pagano gentoo-dev 2007-09-17 00:57:06 UTC
On second thought, the latest gentoo-sources kernel will do for testing.
Comment 5 Daniel Drake (RETIRED) gentoo-dev 2007-09-18 19:06:41 UTC
Mike, there's no need for the test request as comment #0 already confirms that it works.
Comment 6 Mike Morano 2007-09-18 22:56:30 UTC
OK - Great thanks for the note Daniel, you just saved me an hour.  If there is something that you'd like me to test, just let me know.

Thanks,
Mike
Comment 7 David Edwards 2007-09-30 10:28:27 UTC
This patch made it into 2.6.22-gentoo-r8 but still didn't work for me. It turns out that my D200 is an older rev so I changed the bcdDeviceMin field from 0x0200 to 0x0100 in unusual_devs.h. Here's the modified entry:

UNUSUAL_DEV(  0x04b0, 0x040f, 0x0100, 0x0200,
       "NIKON",
       "NIKON DSC D200",
       US_SC_DEVICE, US_PR_DEVICE, NULL,
       US_FL_FIX_CAPACITY),

With this change it works fine.
Comment 8 Mike Pagano gentoo-dev 2007-09-30 11:13:59 UTC
Thank-you for your change I will adjust this and resubmit upstream.

I would not expect to see this change hit mainline until 2.6.24 but we will incorporate the back patch earlier, of course.
Comment 9 Mike Pagano gentoo-dev 2007-10-04 13:14:58 UTC
Created attachment 132556 [details, diff]
Patch for D200 quirk to support lower revision
Comment 10 Mike Pagano gentoo-dev 2007-10-05 21:44:20 UTC
(In reply to comment #7)
> This patch made it into 2.6.22-gentoo-r8 but still didn't work for me. It turns
> out that my D200 is an older rev

David,

Upstream has requested a copy of your /proc/bus/usb/devices

Please post that to this bug.

Thanks. 
Comment 11 Mike Pagano gentoo-dev 2007-10-19 13:20:13 UTC
David,

Upstream maintainers are insisting on having the output of your /proc/bus/usb/devices while the D200 is plugged in before accepting the patch.

If you're still interested in seeing the D200 supported in the kernel feel free to reopen this bug and attach the requested info.
Comment 12 David Edwards 2007-11-01 13:52:59 UTC
Sorry for the delay, I didn't check back.

Here's the entry for my camera from /proc/bus/usb/devices:

T:  Bus=01 Lev=01 Prnt=01 Port=09 Cnt=02 Dev#=  6 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=04b0 ProdID=040f Rev= 1.00
S:  Manufacturer=NIKON
S:  Product=NIKON DSC D200
S:  SerialNumber=0000000
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  2mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
Comment 13 Daniel Drake (RETIRED) gentoo-dev 2007-11-01 14:19:21 UTC
.
Comment 14 Mike Pagano gentoo-dev 2007-11-01 16:48:06 UTC
Patch submitted upstream. We'll keep an eye on this.

http://marc.info/?l=linux-usb-devel&m=119393062311203&w=2
Comment 15 Daniel Drake (RETIRED) gentoo-dev 2007-11-27 15:05:37 UTC
Mike, any news on that patch?
Comment 16 Mike Pagano gentoo-dev 2007-11-27 15:46:24 UTC
It's in Greg's USB tree. Should make mainline shortly.
Comment 17 Mike Pagano gentoo-dev 2007-12-08 20:56:49 UTC
This patch has made the mainline and will be in 2.6.24

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=034fec2e75e97a5429512a6daf2c605a4829853d
Comment 18 Mike Pagano gentoo-dev 2007-12-15 12:52:43 UTC
this was fixed in gentoo-sources-2.6.23-r4