Difficulty playing DVDs under AHCI/CAM?
Garrett Wollman
wollman at freebsd.org
Sat Aug 28 17:30:11 UTC 2010
After a recent upgrade, I switched to AHCI/CAM for my SATA devices,
including a new DVD drive. Now I find that nothing can play DVDs any
more. For example, here's what mplayer does:
8469 initial thread CALL open(0x806c25450,O_RDONLY,<unused>0)
8469 initial thread NAMI "/dev/cd0"
8469 initial thread RET open 3
8469 initial thread CALL fstat(0x3,0x7fffffffb410)
8469 initial thread STRU struct stat {dev=50396928, ino=89, mode=crw-r----- , nlink=1, uid=0, gid=5, rdev=89, atime=1282953341.461532000, stime=1282953341.461532000, ctime=1282953341.461532000, birthtime=-1, size=0, blksize=4096, blocks=0, flags=0x0 }
8469 initial thread RET fstat 0
8469 initial thread CALL ioctl(0x3,DVDIOCREADSTRUCTURE,0x7fffffffac30)
8469 initial thread RET ioctl 0
8469 initial thread CALL ioctl(0x3,DVDIOCREPORTKEY,0x7fffffffb430)
8469 initial thread RET ioctl 0
...so two DVD-specific ioctl calls succeed...
8469 initial thread CALL open(0x7fffffffbcd0,O_RDWR|O_CREAT,S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)
8469 initial thread NAMI "/home/wollman/.dvdcss/CACHEDIR.TAG"
8469 initial thread RET open 4
...write to this file omitted for clarity...
8469 initial thread CALL close(0x4)
8469 initial thread RET close 0
8469 initial thread CALL read(0x3,0x7fffffffb4d0,0x800)
8469 initial thread RET read -1 errno 6 Device not configured
...say what? Why is the cd driver suddenly returning ENXIO?
8469 initial thread CALL lseek(0x3,0,SEEK_SET)
8469 initial thread RET lseek 0
8469 initial thread CALL lseek(0x3,0x80000,SEEK_SET)
8469 initial thread RET lseek 524288/0x80000
8469 initial thread CALL read(0x3,0x7fffffff6000,0x800)
8469 initial thread RET read -1 errno 6 Device not configured
8469 initial thread CALL write(0x2,0x7fffffffb2b0,0x43)
8469 initial thread GIO fd 2 wrote 67 bytes
"libdvdnav:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.IFO failed
"
Same results (but without error messages) in vlc. My drive is
identified as:
<TSSTcorp CDDVDW SH-S223L SB02> at scbus0 target 0 lun 0 (pass0,cd0)
-GAWollman
More information about the freebsd-current
mailing list