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