Problem with built-in USB memory card reader

ajm ajm91qw at sbcglobal.net
Wed Jan 3 18:44:56 PST 2007


On Wed, Jan 03, 2007 at 10:54:08PM +0100, Alexander Pohoyda wrote:
> Micah wrote:
> 
> > Alexander Pohoyda wrote:
> > 
> > > Lowell Gilbert writes:
> > > 
> > >> Alexander Pohoyda <alexander.pohoyda at gmx.net> 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:
> <UNUSED>
> The data for partition 3 is:
> <UNUSED>
> The data for partition 4 is:
> <UNUSED>
>     $ mount /dev/da0s1
> <<Success>>
> 
> This should be automatically done by the system, I suppose.
> 
> 

On this list I have found the following two examples:
( considering /dev/da0 is your target )
( as root or su to root )

# cat /dev/null > /dev/da0

        -- OR  --

# dd if=/dev/null of=/dev/da0 count=0

It is best to put one of the above in a script.

-- 
Alexander
FreeBSD 6.0-RELEASE i386


More information about the freebsd-questions mailing list