Subject: port-hp700/35239: audiorecord(1) with harmony(4) on hp700 doesn't seem to work
To: None <port-hp700-maintainer@netbsd.org, gnats-admin@netbsd.org,>
From: None <dhgutteridge@sympatico.ca>
List: netbsd-bugs
Date: 12/12/2006 04:55:00
>Number: 35239
>Category: port-hp700
>Synopsis: audiorecord(1) with harmony(4) on hp700 doesn't seem to work
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: port-hp700-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Dec 12 04:55:00 +0000 2006
>Originator: David H. Gutteridge
>Release: current/4-BETA
>Organization:
>Environment:
NetBSD arcusiv.nonus-porta.net 4.99.4 NetBSD 4.99.4 (GENERIC) #0: Wed Nov 29 11:10:54 UTC 2006 root@arcusiv.nonus-porta.net:/usr/src/sys/arch/hp700/compile/GENERIC hp700
>Description:
If I try using audiorecord(1) on my B180L, it doesn't seem to work. The
audio functionality in general does work, e.g. I can play mp3s with
mpg123, I can send line-in input and it plays back through the speaker
when the monitor value is set accordingly, I can change output volume with
mixerctl(1), etc.
But if I try to record anything, I always get the error:
audiorecord: failed to set audio info: Invalid argument
This isn't what happens on other machines when there isn't even any
line-in capabilities (e.g on my iBook SE), where I get the error:
audiorecord: read failed: Operation not permitted
(In the latter case, the file specified was opened and a requisite
header for the audio output format written, whereas on hp700, the
resultant file is completely empty.)
Here is a script of some things I ran.
[disciple@arcusiv:disciple]# audioctl -a
name=Advanced audio
version=0.3;244
config=harmony0
encodings=mulaw:8,alaw:8,slinear_be:16,slinear_le:16*,ulinear_be:16*,ulinear_le:16*
properties=full_duplex
full_duplex=0
fullduplex=0
blocksize=4096
hiwat=16
lowat=1
monitor_gain=0
mode=
play.rate=8000
play.channels=1
play.precision=8
play.encoding=mulaw
play.gain=127
play.balance=32
play.port=0x0
play.avail_ports=0x0
play.seek=0
play.samples=0
play.eof=0
play.pause=0
play.error=0
play.waiting=0
play.open=0
play.active=0
play.buffer_size=65536
record.rate=8000
record.channels=1
record.precision=8
record.encoding=mulaw
record.gain=127
record.balance=32
record.port=0x0
record.avail_ports=0x3
record.seek=0
record.samples=0
record.eof=0
record.pause=0
record.error=0
record.waiting=0
record.open=0
record.active=0
record.buffer_size=65536
record.errors=0
[disciple@arcusiv:disciple]# mixerctl -v -a
inputs.input=240,240 volume
inputs.overrange=off [ off on ]
outputs.output=244,244 volume
outputs.gain=off [ off on ]
monitor.monitor=0,0 volume
record.source=line [ mic line ]
monitor.output=speaker [ line speaker headphones ]
disciple@arcusiv:disciple]# audiorecord foo.wav
audiorecord: failed to set audio info: Invalid argument
disciple@arcusiv:disciple]# audiorecord -p line foo.au
audiorecord: failed to set audio info: Invalid argument
I tried using ktrace too, here is the output.
[disciple@arcusiv:disciple]$ kdump ktrace.out
13092 1 ktrace EMUL "netbsd"
13092 1 ktrace RET ktrace 0
13092 1 ktrace CALL execve(0x70002348,0x70001038,0x70001044)
13092 1 ktrace NAMI "/bin/audiorecord"
13092 1 ktrace RET execve -1 errno 2 No such file or directory
13092 1 ktrace CALL execve(0x70002348,0x70001038,0x70001044)
13092 1 ktrace NAMI "/sbin/audiorecord"
13092 1 ktrace RET execve -1 errno 2 No such file or directory
13092 1 ktrace CALL execve(0x70002348,0x70001038,0x70001044)
13092 1 ktrace NAMI "/usr/bin/audiorecord"
13092 1 ktrace NAMI "/usr/libexec/ld.elf_so"
13092 1 audiorecord EMUL "netbsd"
13092 1 audiorecord RET execve JUSTRETURN
13092 1 audiorecord CALL mmap(0,0x8000,3,0x1002,0xffffffff,0,0,0)
13092 1 audiorecord RET mmap 805580800/0x30043000
13092 1 audiorecord CALL open(0x3002f918,0,0x3002f918)
13092 1 audiorecord NAMI "/etc/ld.so.conf"
13092 1 audiorecord RET open -1 errno 2 No such file or directory
13092 1 audiorecord CALL open(0x70002608,0,0)
13092 1 audiorecord NAMI "/usr/lib/libc.so.12"
13092 1 audiorecord RET open 3
13092 1 audiorecord CALL __fstat30(3,0x70002a88)
13092 1 audiorecord RET __fstat30 0
13092 1 audiorecord CALL mmap(0,0x1000,1,1,3,0,0,0)
13092 1 audiorecord RET mmap 806354944/0x30100000
13092 1 audiorecord CALL munmap(0x30100000,0x1000)
13092 1 audiorecord RET munmap 0
13092 1 audiorecord CALL mmap(0,0x123000,5,2,3,0,0,0)
13092 1 audiorecord RET mmap 806354944/0x30100000
13092 1 audiorecord CALL mmap(0x30208000,0xb000,7,0x12,3,0,0,0xf8000)
13092 1 audiorecord RET mmap 807436288/0x30208000
13092 1 audiorecord CALL mmap(0x30213000,0x10000,7,0x1012,0xffffffff,0,0,0)
13092 1 audiorecord RET mmap 807481344/0x30213000
13092 1 audiorecord CALL mprotect(0x301f9000,0xf000,0)
13092 1 audiorecord RET mprotect 0
13092 1 audiorecord CALL close(3)
13092 1 audiorecord RET close 0
13092 1 audiorecord CALL __sysctl(0x7000238c,2,0x30212894,0x70002388,0,0)
13092 1 audiorecord RET __sysctl 0
13092 1 audiorecord CALL open(0x700010d0,0x601,0x1b6)
13092 1 audiorecord NAMI "foo.wav"
13092 1 audiorecord RET open 3
13092 1 audiorecord CALL open(0x13d50,0,7)
13092 1 audiorecord NAMI "/dev/sound"
13092 1 audiorecord RET open 4
13092 1 audiorecord CALL ioctl(4,AUDIO_GETINFO,0x24cc0)
13092 1 audiorecord GIO fd 4 read 136 bytes
"\0\0\^_@\0\0\0\^A\0\0\0\b\0\0\0\^A\0\0\0\^?\0\0\0\0\0\0\0\0\0\0\0\0\0\^A\0\0\0\0\0\0\0\
\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\^_@\0\0\0\^A\0\0\0\b\0\0\0\^A\0\0\0\^?\0\0\0\0\0\0\0\
\0\0\0\0\^C\0\^A\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\^A\0\0\0\0\0\0\0\^P\0\0\0\0\^P\
\0\0\0\f\0\0\0\0\0\0\0\^B"
13092 1 audiorecord RET ioctl 0
13092 1 audiorecord CALL __sysctl(0x700024d0,2,0x700024cc,0x700024c8,0,0)
13092 1 audiorecord RET __sysctl 0
13092 1 audiorecord CALL readlink(0x301eea30,0x700023d4,0x3f)
13092 1 audiorecord NAMI "/etc/malloc.conf"
13092 1 audiorecord RET readlink -1 errno 2 No such file or directory
13092 1 audiorecord CALL mmap(0,0x1000,3,0x1002,0xffffffff,0,0,0)
13092 1 audiorecord RET mmap 805613568/0x3004b000
13092 1 audiorecord CALL break(0x24d5c)
13092 1 audiorecord RET break 0
13092 1 audiorecord CALL break(0x25d5c)
13092 1 audiorecord RET break 0
13092 1 audiorecord CALL break(0x26000)
13092 1 audiorecord RET break 0
13092 1 audiorecord CALL break(0x36000)
13092 1 audiorecord RET break 0
13092 1 audiorecord CALL ioctl(4,AUDIO_SETINFO,0x24bf0)
13092 1 audiorecord GIO fd 4 wrote 136 bytes
"\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\
\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\
\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\0\0\^_@\0\0\0\^A\0\0\0\b\0\0\
\0\^A\0\0\0\^?\0\0\0\0\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\
\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^? \M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\
\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?\0\0\0\^B"
13092 1 audiorecord RET ioctl -1 errno 22 Invalid argument
13092 1 audiorecord CALL write(2,0x700029f8,0xd)
13092 1 audiorecord GIO fd 2 wrote 13 bytes
"audiorecord: "
13092 1 audiorecord RET write 13/0xd
13092 1 audiorecord CALL write(2,0x700029b8,0x18)
13092 1 audiorecord GIO fd 2 wrote 24 bytes
"failed to set audio info"
13092 1 audiorecord RET write 24/0x18
13092 1 audiorecord CALL write(2,0x301ee910,2)
13092 1 audiorecord GIO fd 2 wrote 2 bytes
": "
13092 1 audiorecord RET write 2
13092 1 audiorecord CALL issetugid
13092 1 audiorecord RET issetugid 0
13092 1 audiorecord CALL issetugid
13092 1 audiorecord RET issetugid 0
13092 1 audiorecord CALL break(0x37000)
13092 1 audiorecord RET break 0
13092 1 audiorecord CALL open(0x70002dd0,0,0x3e4)
13092 1 audiorecord NAMI "/usr/share/nls/nls.alias.db"
13092 1 audiorecord RET open -1 errno 2 No such file or directory
13092 1 audiorecord CALL open(0x301edd6c,0,0x3e4)
13092 1 audiorecord NAMI "/usr/share/nls/nls.alias"
13092 1 audiorecord RET open 5
13092 1 audiorecord CALL fcntl(5,2,1)
13092 1 audiorecord RET fcntl 0
13092 1 audiorecord CALL __fstat30(5,0x70003248)
13092 1 audiorecord RET __fstat30 0
13092 1 audiorecord CALL mmap(0,0x5f0,1,2,5,0,0,0)
13092 1 audiorecord RET mmap 808452096/0x30300000
13092 1 audiorecord CALL close(5)
13092 1 audiorecord RET close 0
13092 1 audiorecord CALL break(0x38000)
13092 1 audiorecord RET break 0
13092 1 audiorecord CALL munmap(0x30300000,0x5f0)
13092 1 audiorecord RET munmap 0
13092 1 audiorecord CALL open(0x700028c8,0,1)
13092 1 audiorecord NAMI "/usr/share/nls/C/libc.cat"
13092 1 audiorecord RET open 5
13092 1 audiorecord CALL __fstat30(5,0x70002d48)
13092 1 audiorecord RET __fstat30 0
13092 1 audiorecord CALL mmap(0,0x10be,1,1,5,0,0,0)
13092 1 audiorecord RET mmap 808452096/0x30300000
13092 1 audiorecord CALL close(5)
13092 1 audiorecord RET close 0
13092 1 audiorecord CALL munmap(0x30300000,0x10be)
13092 1 audiorecord RET munmap 0
13092 1 audiorecord CALL write(2,0x700029f8,0x11)
13092 1 audiorecord GIO fd 2 wrote 17 bytes
"Invalid argument
"
13092 1 audiorecord RET write 17/0x11
13092 1 audiorecord CALL exit(1)
>How-To-Repeat:
Try using audiorecord(1).
>Fix: