Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Aug 2006 00:15:24 GMT
From:      Chad Fraleigh <chadf@bookcase.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   misc/101450: transcode/tcprobe broken for devfs
Message-ID:  <200608060015.k760FON1064486@www.freebsd.org>
Resent-Message-ID: <200608060020.k760K8lk005617@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200608060015.k760FON1064486>