On Wed, May 30, 2007 at 05:09:55PM +0200, Martin Toft wrote:
> When connecting a Nikon Coolpix L10 camera to my laptop via USB, no i
> partition shows up:
[snip]
Thanks to krw@, the cause of the problem has been found! Yay! :)
The msdos partition on my camera's flash memory extends past the end of
the device. OpenBSD therefore refused to make the fake i label, as this
condition is checked for in /usr/src/sys/arch/i386/i386/disksubr.c (line
193). After having commented out the check, rebuilt and installed a new
kernel, I can now use my camera with OpenBSD. disklabel now warns me:
$ sudo disklabel sd0
[snip]
16 partitions:
# size offset fstype [fsize bsize cpg]
c: 4019904 0 unused 0 0 # Cyl 0 -
250*
i: 4022029 243 MSDOS # Cyl 0*-
250*
disklabel: partition i: partition extends past end of unit
The simple change:
--- /usr/src/sys/arch/i386/i386/disksubr.c.orig Wed May 30 21:19:37 2007
+++ /usr/src/sys/arch/i386/i386/disksubr.c Wed May 30 21:23:54 2007
@@ -190,8 +190,6 @@
if (dp2->dp_typ == DOSPTYP_OPENBSD)
continue;
- if (letoh32(dp2->dp_size) > lp->d_secperunit)
- continue;
if (letoh32(dp2->dp_start) > lp->d_secperunit)
continue;
if (letoh32(dp2->dp_size) == 0)
I know it's not an optimal situation, but this is the way the in-camera
software formatted the flash memory.
Best regards,
Martin