misc/101450: transcode/tcprobe broken for devfs

Chad Fraleigh chadf at bookcase.com
Sun Aug 6 00:20:09 UTC 2006


>Number:         101450
>Category:       misc
>Synopsis:       transcode/tcprobe broken for devfs
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Aug 06 00:20:07 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Chad Fraleigh
>Release:        6.1
>Organization:
>Environment:
FreeBSD anonymous.host.name 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Fri Jul 28 18:51:04 EDT 2006     root@:/usr/src/sys/i386/compile/MYCONFIG  i386

transcode-1.0.2_3

>Description:
tcprobe fails on CD/DVD devices. The transcode 1.0.2_3 port uses device major numbers to determine how to use a device path. With devfs no longer using well known major device numbers, the function used to identify it thinks all devices are OSS (major 0).

The broken code is in import/ioaux.c:probe_path():

# ifdef __FreeBSD__
              case 4: /* acd */
                  return(TC_PROBE_PATH_ABSPATH);
              case 229: /* bktr */
                  return(TC_PROBE_PATH_BKTR);
              case 0: /* OSS */
                  return(TC_PROBE_PATH_OSS);
# endif

This causes an indirect error with tcprobe (which also effects the dvdrip port) when it attempts to do an SNDCTL_DSP_GETFMTS ioctl() [misreported in the error message as SNDCTL_DSP_SETFMT].

OpenBSD may also be affected if it has, or plans to, make simular device changes (in case any one cross project monitoring is reading this).

>How-To-Repeat:
% tcprobe -i /dev/acd0
[tcprobe] OSS audio device
SNDCTL_DSP_SETFMT: Inappropriate ioctl for device
[tcprobe] failed to probe source


% tcprobe -i /dev/null
[tcprobe] OSS audio device
SNDCTL_DSP_SETFMT: Inappropriate ioctl for device
[tcprobe] failed to probe source

>Fix:
Abstact: Determine reliable method to distinguish between CD/DVD, BKTR, OSS, and other devices and add approriete patch to the port and/or submit to original authors.

Possibly even adding a warning message to the port during installation so that users know it is broken in this respect, until a real fix can be made.

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list