On 12/06/11 11:22, Ronald F. Guilmette wrote:
With a pre-recorded CD in the drive, the following works fine for me when
I'm root:

     cdda2wav -D 0,0,0 -B

My question is:  What do I need to do in order to make this work also
when executed from a non-root account?

Here's what I get when I try to do the above from a non-root account:

   cdda2wav: Permission denied. Cannot open or use SCSI driver.
   cdda2wav: For possible targets try 'cdda2wav -scanbus'. Make sure you are 
root.
   Probably you did not define your SCSI device.
   Set the CDDA_DEVICE environment variable or use the -D option.
   You can also define the default device in the Makefile.
   For possible transport specifiers try 'cdda2wav dev=help'.

Effing hell!  I've tried just about everything I can think of off the top
of my head to beat this and nothing works.  I've tried chmod 0660 /dev/pass*
(and yes, the account I'm trying these experiments from _is_ a member of the
`operator' group), but that didn't help a bit.

And before anybody asks, let me say that yes, I _do_ have:

    atapicam_load="YES"

in my /boot/loader.conf file.

So how exactly does one adjust the permissions on one of these atamicam
pseudo-SCSI devices.  Where are they underneath /dev ?  Please excuse my
ignorance, but I just don't know.

<<gnashing of teeth sound>>

I've just been through the same experience getting cdparanoia to work for a non-root user under REL 8.2p4. Note that I have the ahci module loaded so my cd is /dev/cd0.

You need write access to /dev/cd0 plus the corresponding /dev/passN (use camcontrol devlist to find out which) *and* /dev/xpt0.

From my /etc/devfs.conf

own     cd0     root:operator
perm    cd0     0660
link    cd0     cdrom
perm    xpt0    0660
perm    pass5   0660


This is the relevant part my machine's /dev. I'm in operator group.

arthur@fileserver> ls -l /dev/{cd,pass,xpt}*
crw-rw----  1 root  operator    0,  97 Nov 23 16:24 /dev/cd0
lrwxr-xr-x  1 root  wheel            3 Dec  2 16:08 /dev/cdrom -> cd0
crw-------  1 root  operator    0,  91 Nov 23 16:24 /dev/pass0
crw-------  1 root  operator    0,  92 Nov 23 16:24 /dev/pass1
crw-------  1 root  operator    0,  93 Nov 23 16:24 /dev/pass2
crw-------  1 root  operator    0,  94 Nov 23 16:24 /dev/pass3
crw-------  1 root  operator    0,  95 Nov 23 16:24 /dev/pass4
crw-rw----  1 root  operator    0,  96 Nov 23 16:24 /dev/pass5
crw-------  1 root  operator    0, 113 Nov 23 16:24 /dev/pass6
crw-------  1 root  operator    0, 115 Nov 23 16:24 /dev/pass7
crw-------  1 root  operator    0, 116 Nov 23 16:24 /dev/pass8
crw-------  1 root  operator    0, 118 Nov 23 16:24 /dev/pass9
crw-rw----  1 root  operator    0,  61 Nov 23 16:24 /dev/xpt0


And how to find which /dev/passN corresponds to the cd drive:

arthur@fileserver> camcontrol devlist | grep cd
<ASUS DRW-2014S1T 1.00>            at scbus7 target 0 lun 0 (cd0,pass5)



All I really wanted to do is to rip an "E"CD (enhanced CD) that I own,
using abcde.  I found out that cdparanoia chokes on the ECD, so I'm trying
to figure out how to make abcde work with cdda2wav, but it apparently isn't
at all easy.  (Any hints or advice welcomed.)

Oh!  And by the way, this causes a segfault and a core dump:

   cdda2wav -D /dev/acd0 -B

I'll have to send in a PR on that, I guess, but it is rather stunning to me
that nobody even tested for that.

_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to