Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Jul 2009 22:20:33 +0800
From:      Eugene Grosbein <eugen@kuzbass.ru>
To:        Sagara Wijetunga <sagara@tomahawk.com.sg>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: SCSI device not created upon a CF card plug in
Message-ID:  <20090722142033.GA13316@svzserv.kemerovo.su>
In-Reply-To: <20090722022027.12059.qmail@us1.tomahawkonline.net>
References:  <20090722022027.12059.qmail@us1.tomahawkonline.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jul 22, 2009 at 10:20:27AM +0800, Sagara Wijetunga wrote:

> My questions in this regards are:
> 1. Is this an error/bug in FreeBSD 7.2? 

This is regression from pre-5.x days. In 4.x and earlier,
you can have static device nodes and access them just fine.

> 2. Or, does it require some configuration tweak? 

As a workaround, you should drop cardreader.conf into /usr/local/etc/devd/
(create directory if it does not exist) with contents like:

attach 1000 {
        device-name "umass[0-9]+";
        action "/usr/local/libexec/umass/attach-umass $device-name";
};

Script /usr/local/libexec/umass/attach-umass is invoked
when umassX appears:

#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin
DEV=/dev
p=`dirname $0`

[ -z "$1" ] && exit 1
u="$1"

# wait until dust settles
i=1;
while [ $i -le 10 ]	
do
  sleep 1
  device=`$p/umass2da $u`
  if [ $? = 0 ]; then
    : > $DEV/${device}
    break
  fi
  i=$(($i+1))
done

This script calls /usr/local/libexec/umass/umass2da helper
to translate umassX to daY (in hope this translation is possible):

#!/bin/sh
PATH=/sbin:/usr/bin

camcontrol devlist -v | awk -v u=$1 '\
BEGIN { s = ""; e = 1; }
$3 ~ /umass-sim[0-9]+/ { s = $3; sub("-sim","",s); }
/[,(]da[0-9]+.*\)$/ {
  if(s == u) {
    match($NF, /da[0-9]+/);
    print substr($NF, RSTART, RLENGTH);
    e=0; exit 0;
  }
}
END { exit e; }'

Eugene Grosbein



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090722142033.GA13316>