What does the letter »r« stand for in /dev/sr0?

sktsee sktsee at tulsaconnect.com
Thu Nov 5 15:36:10 UTC 2009


On Thu, 2009-11-05 at 09:18 -0500, Verde Denim wrote:
> 
> 
> On Wed, Nov 4, 2009 at 10:17 PM, Derek Broughton
> <derek at pointerstop.ca> wrote:
>         Verde Denim wrote:
>         
>         > On Tue, Nov 3, 2009 at 9:34 AM, Derek Broughton
>         > <derek at pointerstop.ca>wrote:
>         >
>         >
>         
>         > Translation - I don't know either... lol
>         
>         
>         Actually, I'd already said that - and suggested "raw" as a
>         wild guess.  But
>         I was intrigued that Detlef thought that knowing what it stood
>         for would
>         prevent errors, since I really can't imagine how most of us
>         would need to
>         know it.
>         --
>         derek
>         
> And knowing the acronym definitions probably won't help the learning
> too much, either.
> But, according to the Linux SCSI sub-system documentation I have, it
> would have to stand for _SCSI_ _READ_ since it is a cd drive that is
> designated read-only. For generic operations on the same device, it
> would map to sg0 (_SCSI_ _GENERIC_) in order to gain the write perm.
> Apparently all of the devices like /dev/sr0, /dev/st0, /dev/nst0x map
> to an sg device for generic operations.
> Although _raw_ seems to be a good logical choice.

Loïc had it right.

But you should read the code from orbit. It's the only way to make sure.

>From a 2.4 kernel source

drivers/scsi/sd.c
static struct Scsi_Device_Template sd_template = { 
	name:"disk",
	tag:"sd",
	scsi_type:TYPE_DISK,     <== "d" for disk
	major:SCSI_DISK0_MAJOR,
        /*
         * Secondary range of majors that this driver handles.
         */
	min_major:SCSI_DISK1_MAJOR,
	max_major:SCSI_DISK7_MAJOR,
	blk:1,
	detect:sd_detect,
	init:sd_init,
	finish:sd_finish,
	attach:sd_attach,
	detach:sd_detach,
	init_command:sd_init_command,
};

drivers/scsi/st.c
static struct Scsi_Device_Template st_template =
{
	name:"tape", 
	tag:"st", 
	scsi_type:TYPE_TAPE,   <== "t" for tape
	major:SCSI_TAPE_MAJOR, 
	detect:st_detect, 
	init:st_init,
	attach:st_attach, 
	detach:st_detach
};


drivers/scsi/sr.c
static struct Scsi_Device_Template sr_template =
{
	name:"cdrom",
	tag:"sr",
	scsi_type:TYPE_ROM,    <== "r" for ROM
	major:SCSI_CDROM_MAJOR,
	blk:1,
	detect:sr_detect,
	init:sr_init,
	finish:sr_finish,
	attach:sr_attach,
	detach:sr_detach,
	init_command:sr_init_command
};

>From a 2.6 kernel source

drivers/scsi/sr.c
MODULE_DESCRIPTION("SCSI cdrom (sr) driver"); 
MODULE_LICENSE("GPL");
MODULE_ALIAS_BLOCKDEV_MAJOR(SCSI_CDROM_MAJOR);
MODULE_ALIAS_SCSI_DEVICE(TYPE_ROM);
MODULE_ALIAS_SCSI_DEVICE(TYPE_WORM);

-- 
sktsee







More information about the ubuntu-users mailing list