Problem with built-in USB memory card reader

Alexander Pohoyda alexander.pohoyda at
Wed Jan 3 13:54:13 PST 2007

Micah wrote:

> Alexander Pohoyda wrote:
> > Lowell Gilbert writes:
> > 
> >> Alexander Pohoyda <alexander.pohoyda at> writes:
> >> 
> >>> Everything works perfect if the system is started with a memory card
> >>> inserted into the reader.
> >>> 
> >>> The problem arises when the system is started without the memory card
> >>> inserted.  Since the reader is built-in (permanently attached to the
> >>> motherboard), it is detected by the system at startup and no umass
> >>> device is created.  Inserting a memory card at some later time has no
> >>> visible effect whatsoever.
> >>> 
> >>> I'm using the 5.4 release.  Is there a solution for this?
> >> USB handling would be better in a more recent release of FreeBSD, but
> >> I think you should be getting the basic da(4) device, just not the
> >> slices (which aren't there yet) if the medium isn't available at
> >> boot.  Is that the case?  [I haven't done this in a while, and don't
> >> have access to a card reader at the moment.]
> > 
> > Yes, exactly.  If no memory cards were inserted at the boot, only
> > da(4) devices are created and inserting/removing memory cards
> > afterwards has no visible effect.  This behavior is well known also
> > for external USB card readers, but those are easily
> > detached/re-attached which triggers their re-scanning.
> > 
> > I'm asking because Ms Windows somehow gets the insertion event and
> > mounts the memory card automatically.  So that is be possible.
> > 
> > Does anybody know how that is done?
> > 
> There is a hack, but I can't quite remember it. I think it was "true
> > /dev/da0" to get devfs to reread the partitions and create the dev
> entires. I haven't been able to get to a reader to test it
> though. Test on a junk media card just in case I'm totally off base.

After some experiments in FreeBSD 4.9, I found out that just running
the fdisk on da(4) device will enable to mount partitions on it:

    $ fdisk /dev/da0
******* Working on device /dev/da0 *******
parameters extracted from in-core disklabel are:
cylinders=495 heads=2 sectors/track=16 (32 blks/cyl)

parameters to be used for BIOS calculations are:
cylinders=495 heads=2 sectors/track=16 (32 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 1,(Primary DOS with 12 bit FAT)
    start 25, size 15783 (7 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 10;
        end: cyl 493/ head 1/ sector 16
The data for partition 2 is:
The data for partition 3 is:
The data for partition 4 is:
    $ mount /dev/da0s1

This should be automatically done by the system, I suppose.

Alexander Pohoyda <alexander.pohoyda at>
PGP Key fingerprint: 7F C9 CC 5A 75 CD 89 72  15 54 5F 62 20 23 C6 44

More information about the freebsd-questions mailing list