I'm starting to wonder if it is getting the base name by looking at the
PCI or USB information for the device...
/etc/dynamic/scripts/part.script seems to be the one making the
directory and modifying /etc/fstab. It relies on the variable $mpoint.
So do many of the other scripts in /etc/dynamic... but none of them
actually set the damned variable.
and in looking for it, we discover that rgrep isn't actually recursing
(sort of belies the r, neh?):
[jack@chupacabra jack]$ sudo rgrep mpoint /etc/*
[jack@chupacabra jack]$ sudo rgrep mpoint /etc/dynamic/*
/etc/dynamic/scripts/part.script: /usr/sbin/drakupdate_fstab --auto
--$1 $2 | while read mpoint type; do
/etc/dynamic/scripts/part.script: [ ! -d $mpoint ] && mkdir
$mpoint
/etc/dynamic/scripts/part.script: mount $mpoint
...
man rgrep, and
-r
recursively scan through directory tree
sigh... yes Virginia, the rgrep command requires a freaking -r flag to
make it actually recurse. That's pretty lame.
However, even with an rgrep -r I still can't find the memory_card string
or the mpoint variable definition... google to the rescue. The Answer
Guy posted this snippet:
" mount | {
IFS=" (,)";
while read dev x mpoint x type opts; do
echo $dev $type;
done
}
"
which makes it clear that $mpoint is being defined here:
/etc/dynamic/scripts/part.script: /usr/sbin/drakupdate_fstab --auto
--$1 $2 |
while read mpoint type; do
I looked in /usr/sbin/drakupdate_fstab and it's a perl script, which
sets mpoint here:
sub set_mount_point {
my ($part, $fstab) = @_;
my $mntpoint = detect_devices::suggest_mount_point($part) or return;
$mntpoint = "/mnt/$mntpoint";
foreach ('', 2 .. 10) {
next if fsedit::mntpoint2part("$mntpoint$_", $fstab);
$part->{mntpoint} = "$mntpoint$_";
return 1;
}
0;
}
which relies on the use statements at the top:
use lib qw(/usr/lib/libDrakX);
use detect_devices;
...
and if we look in /usr/lib/libDrakX/detect_devices.pm we will see:
sub usb_description2removable {
local ($_) = @_;
return 'camera' if /\bcamera\b/i;
return 'memory_card' if /\bmemory\s?stick\b/i ||
/\bcompact\s?flash\b/i || /
\bsmart\s?media\b/i;
return 'memory_card' if /DiskOnKey/i || /IBM-DMDM/i;
return 'zip' if /\bzip\s?(100|250|750)/i;
return 'floppy' if /\bLS-?120\b/i;
return;
}
Look in that file and you'll probably find the one you wanted changed
too.
Talk about a journey through the plumbing...
Jack
On Mon, 2002-10-21 at 13:16, bascule wrote:
> exactly, if i could find that then i could just edit whatever file it was to
> say 'camera' instead,
> except of course that i also have a scsi removable drive that gets mounted
> there too if it's connected!
>
> it's all a bit too clever for it's own good, i'd just like to turn this
> behaviour off and go back to good old manual mounting
>
> bascule
>
> On Monday 21 Oct 2002 7:58 pm, Jack Coates wrote:
> >
> > I took a look at this area, and it's definitely cause for suspicion, but
> > I can't find exactly where it's doing what it does because it's a morass
> > of functions which pass each other flags (so a variable may be defined
> > in one file, called in a second for passing to a third, and acted on in
> > the third).
> >
> > This set of scripts seems to do some cool stuff -- for instance, I think
> > it's responsible for auto-detecting my memory stick slot and mounting it
> > under /mnt/memory_card. But I'll be damned if I can find where it
> > decided that /mnt/[foobar] is the right mount point...
>
> --
> "Another world, another day, another dawn. "
>
>
> ----
>
> Want to buy your Pack or Services from MandrakeSoft?
> Go to http://www.mandrakestore.com
--
Jack Coates
Monkeynoodle: A Scientific Venture...
Want to buy your Pack or Services from MandrakeSoft?
Go to http://www.mandrakestore.com