Reattach/redetect allways connected umass device - is it possible ?

Bernd Walter ticso at cicely12.cicely.de
Mon Mar 28 06:38:51 PST 2005


On Mon, Mar 28, 2005 at 04:24:30PM +0200, Poul-Henning Kamp wrote:
> In message <20050328134856.GF14532 at cicely12.cicely.de>, Bernd Walter writes:
> 
> >> Driver support for this is not really meaterialized and therefore
> >> the model now is that when the media is ejected the geom device
> >> is removed and a new one created right away, even if a new media
> >> is not inserted right away.
> >
> >Do you get eject notifications from any device type?
> 
> Right now I belive floppy disks DTRT.

Interesting.

> >One of my problems is that it is possible with SCSI MO drives to
> >eject the media, reinsert a new one and errously continue to work
> >with the old GEOM layout.
> >I already trashed the data on one media by forgetting to trigger
> >a reprobe - since then I use a mount script.
> 
> Well, I have no idea how to pull the information out of the CAM/SCSI
> code, but I'm sure there is _some_ way it can be done.

There is the test unit ready command.
Either it returns OK, or you may get usefull sense data.
Here is an example:

No media in the drive:
[60]cicely13# camcontrol tur -n da -u 0 -v
Unit is not ready
(pass0:ahc0:0:1:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(pass0:ahc0:0:1:0): CAM Status: SCSI Status Error
(pass0:ahc0:0:1:0): SCSI Status: Check Condition
(pass0:ahc0:0:1:0): NOT READY asc:3a,0
(pass0:ahc0:0:1:0): Medium not present
Exit 1

Media just inserted and give the drive some time to spin up:
[61]cicely13# camcontrol tur -n da -u 0 -v
Unit is not ready
(pass0:ahc0:0:1:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(pass0:ahc0:0:1:0): CAM Status: SCSI Status Error
(pass0:ahc0:0:1:0): SCSI Status: Check Condition
(pass0:ahc0:0:1:0): UNIT ATTENTION asc:28,0
(pass0:ahc0:0:1:0): Not ready to ready change, medium may have changed
Exit 1

Just retry TUR command:
[62]cicely13# camcontrol tur -n da -u 0 -v
Unit is ready

Media ejected:
[63]cicely13# camcontrol tur -n da -u 0 -v
Unit is not ready
(pass0:ahc0:0:1:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(pass0:ahc0:0:1:0): CAM Status: SCSI Status Error
(pass0:ahc0:0:1:0): SCSI Status: Check Condition
(pass0:ahc0:0:1:0): NOT READY asc:3a,0
(pass0:ahc0:0:1:0): Medium not present
Exit 1

Media reinserted without waiting the drive to spin up:
[64]cicely13# camcontrol tur -n da -u 0 -v
Unit is not ready
(pass0:ahc0:0:1:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(pass0:ahc0:0:1:0): CAM Status: SCSI Status Error
(pass0:ahc0:0:1:0): SCSI Status: Check Condition
(pass0:ahc0:0:1:0): NOT READY asc:98,0
(pass0:ahc0:0:1:0): Vendor Specific ASC
Exit 1

After the drive spun up:
[65]cicely13# camcontrol tur -n da -u 0 -v
Unit is not ready
(pass0:ahc0:0:1:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(pass0:ahc0:0:1:0): CAM Status: SCSI Status Error
(pass0:ahc0:0:1:0): SCSI Status: Check Condition
(pass0:ahc0:0:1:0): UNIT ATTENTION asc:28,0
(pass0:ahc0:0:1:0): Not ready to ready change, medium may have changed
Exit 1

Retry TUR:
[66]cicely13# camcontrol tur -n da -u 0 -v
Unit is ready

-- 
B.Walter                   BWCT                http://www.bwct.de
bernd at bwct.de                                  info at bwct.de



More information about the freebsd-mobile mailing list