Hello, I successfully installed, configured und run the Soundcard
Vendor: Trust (www.trust.com) Product: Sound Expert Digital Surround 5.1 (www.trust.com/12667) Chipset: CMI8738 Driver: cmipci Notes: (see below) so this device could be supplemented in the ALSA Soundcard Matrix. This soundcard has digital I/O IEC958 RCA Input/Output and TOSLINK Input/Output, however, I did not manage to get the Digital IN/OUT working - for this I am looking for any help or contacts, respectively. I searched the FAQ/HOWTO/man-pages (unfortunately the mailing list is not searchable) etc, but infos concerning digital in/out are quite abcent. Then I discovered the little note at the bottom of http://www.alsa-project.org/~goemon saying "NOTE: Just because an I/O is listed does NOT mean it is guaranteed to be supported. ..." and therefore, at this time I do not know anything definite in this regard. I viewed an email from a user who has the Zoltrix Nightingale (the same soundchip CMI8738) and from his message it appears that digital I/O should work, but who knows this reliably??? Do you know it??? If it is true that digital I/O is working with CMI8738-based soundcards, where do I get detailed infos how to set up and run it? My hardware setup is o.k. (I tested it with Win95 and successfully recorded from the optical SPDIF IN via TOSLINK cable connected to my CD-player, with SPDIF set to 5V and normal phase in the Win95 driver), so I see two possibilities: 1) digital I/O for CMI8738-based soundcards basically unsupported/broken 2) digital I/O for CMI8738-based soundcards is basically supported, but I have not the right driver setup/configuration etc. I'am using SuSE 7.3 (kernel 2.4.10), "cat /proc/asound/version" says 0.5.11, and "arecord -l" says: C-Media PCI CM8738: 1 [card1] / #0: C-Media PCI DAC/ADC Directions: playback capture duplex Playback subdevices: 1 Capture subdevices: 1 Playback subdevice #0: subdevice #0 Capture subdevice #0: subdevice #0 C-Media PCI CM8738: 1 [card1] / #1: C-Media PCI 2nd DAC Directions: playback Playback subdevices: 1 Capture subdevices: 0 Playback subdevice #0: subdevice #0 C-Media PCI CM8738: 1 [card1] / #2: C-Media PCI SPDIF Directions: playback capture duplex Playback subdevices: 1 Capture subdevices: 1 Playback subdevice #0: subdevice #0 Capture subdevice #0: subdevice #0 /etc/asound.conf is: # ALSA driver configuration # This configuration is generated with the alsactl program. soundcard("card1") { control { ; The type is 'bool'. switch("Joystick", false) ; The type is 'bool'. switch("Modem", false) } mixer("C-Media PCI") { ; The type is 'bool'. switch("Exchange DAC", false) ; The type is 'bool'. switch("Analog Four Channel", false) ; The type is 'bool'. switch("Line-In As Rear", false) ; The type is 'bool'. switch("SPDIF Enable", true) ; The type is 'bool'. switch("SPDIF In Valid", false) ; The type is 'bool'. switch("SPDIF Copyright", false) ; The type is 'bool'. switch("SPDIF DAC To Out", false) ; The type is 'bool'. switch("SPDIF Out To DAC", false) ; The type is 'bool'. switch("SPDIF 5V", true) ; The type is 'bool'. switch("SPDIF Loop", false) ; The type is 'bool'. switch("SPDIF In Monitor", true) ; The type is 'bool'. switch("SPDIF In Phase Inverse", false) ; The type is 'bool'. switch("Line-In As Bass", false) element("Aux Input Switch",0,100,Switch1(on,on)) element("Aux Output Switch",0,100,Switch1(on,on)) ; Voice 0 : Min 0 Max 15 ; Voice 1 : Min 0 Max 15 element("Aux Volume",0,200,Volume1(0,0)) ; Voice 0 : Min 0 Max 3 element("PC Speaker Volume",0,200,Volume1(0)) element("Mic Gain Switch",0,100,Switch1(off)) ; Voice 0 : Min 0 Max 7 element("Mic Gain Level",0,200,Volume1(0)) element("MIC Input Switch",0,100,Switch1(off,off)) element("MIC Output Switch",0,100,Switch1(off)) ; Voice 0 : Min 0 Max 31 element("MIC Volume",0,200,Volume1(0)) element("Line Input Switch",0,102,Switch3(on,off,off,on)) element("Line Output Switch",0,100,Switch1(on,on)) ; Voice 0 : Min 0 Max 31 ; Voice 1 : Min 0 Max 31 element("Line Volume",0,200,Volume1(31,31)) element("CD Input Switch",0,102,Switch3(off,off,off,off)) element("CD Output Switch",0,100,Switch1(off,off)) ; Voice 0 : Min 0 Max 31 ; Voice 1 : Min 0 Max 31 element("CD Volume",0,200,Volume1(0,0)) element("Synth Input Switch",0,102,Switch3(off,off,off,off)) ; Voice 0 : Min 0 Max 31 ; Voice 1 : Min 0 Max 31 element("Synth Volume",0,200,Volume1(0,0)) element("PCM Input Switch",0,100,Switch1(off,off)) element("PCM Output Switch",0,101,Switch2(on)) ; Voice 0 : Min 0 Max 31 ; Voice 1 : Min 0 Max 31 element("PCM Volume",0,200,Volume1(31,31)) element("3D Surround",0,101,Switch2(off)) ; Voice 0 : Min 0 Max 31 ; Voice 1 : Min 0 Max 31 element("Master Volume",0,200,Volume1(31,31)) } } "strace -o /tmp/strace.out arecord -c 0 -d 2 -t 1 /tmp/test.wav" says: ---------------------------------------------------------------------- execve("/usr/bin/arecord", ["arecord", "-c", "0", "-d", "2", "-t", "1", "/tmp/te st.wav"], [/* 48 vars */]) = 0 uname({sys="Linux", node="mp3", ...}) = 0 brk(0) = 0x804f0c8 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0 x40015000 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=5009, ...}) = 0 old_mmap(NULL, 5009, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40016000 close(3) = 0 open("/usr/lib/libasound.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300P\0"..., 1024) = 102 4 fstat64(3, {st_mode=S_IFREG|0755, st_size=148445, ...}) = 0 old_mmap(NULL, 127520, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40018000 mprotect(0x40036000, 4640, PROT_NONE) = 0 old_mmap(0x40036000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1d0 00) = 0x40036000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\330"..., 1024) = 10 24 fstat64(3, {st_mode=S_IFREG|0755, st_size=1384168, ...}) = 0 old_mmap(NULL, 1201988, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40038000 mprotect(0x40153000, 42820, PROT_NONE) = 0 old_mmap(0x40153000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x11 a000) = 0x40153000 old_mmap(0x4015a000, 14148, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON YMOUS, -1, 0) = 0x4015a000 close(3) = 0 munmap(0x40016000, 5009) = 0 open("/dev/snd/controlC0", O_RDONLY) = 3 close(3) = 0 open("/dev/snd/controlC0", O_RDWR) = 3 close(3) = 0 open("/dev/snd/controlC1", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC1", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC1", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC1", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC1", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC1", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC2", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC2", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC2", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC2", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC2", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC2", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC3", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC3", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC3", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC3", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC3", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC3", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC4", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC4", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC4", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC4", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC4", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC4", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC5", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC5", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC5", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC5", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC5", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC5", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC6", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC6", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC6", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC6", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC6", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC6", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC7", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC7", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC7", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC7", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC7", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC7", O_RDWR) = -1 ENOENT (No such file or directory) write(2, "Arecord: version 0.5.10 by Jaros"..., 59) = 59 open("/dev/snd/controlC0", O_RDWR) = 3 ioctl(3, USBDEVFS_CONTROL, 0xbffff604) = 0 brk(0) = 0x804f0c8 brk(0x804f0e8) = 0x804f0e8 brk(0x8050000) = 0x8050000 ioctl(3, 0x81285501, 0xbffff640) = 0 close(3) = 0 write(2, "Using soundcard \'C-Media PCI CM8"..., 66) = 66 open("/dev/snd/controlC0", O_RDWR) = 3 ioctl(3, USBDEVFS_CONTROL, 0xbffff6e4) = 0 ioctl(3, 0x40045520, 0xbffff4f8) = 0 ioctl(3, 0x40045521, 0xbffff4fc) = 0 ioctl(3, 0x40045523, 0xbffff500) = 0 open("/dev/snd/pcmC0D2c", O_RDWR) = 4 ioctl(4, AGPIOC_INFO, 0xbffff724) = 0 close(3) = 0 ioctl(4, AGPIOC_RELEASE, 0x804ee60) = 0 ioctl(4, 0x4132, 0x8048a72) = -1 EBADFD (File descriptor in bad stat e) rmdir("/tmp/test.wav") = -1 ENOTDIR (Not a directory) unlink("/tmp/test.wav") = 0 open("/tmp/test.wav", O_WRONLY|O_CREAT, 0644) = 3 write(3, "RIFFd\37\0\0WAVE", 12) = 12 write(3, "fmt \20\0\0\0\1\0\1\0@\37\0\0@\37\0\0\1\0\10\0", 24) = 24 write(3, "data@\37\0\0", 8) = 8 write(2, "Recording WAVE \'/tmp/test.wav\' :"..., 33) = 33 write(2, "Unsigned 8-bit, ", 16) = 16 write(2, "Rate 8000 Hz, ", 14) = 14 write(2, "Mono", 4) = 4 write(2, "\n", 1) = 1 ioctl(4, 0x4132, 0x4001a8a0) = -1 EBADFD (File descriptor in bad stat e) ioctl(4, AGPIOC_RELEASE, 0xbfffeffc) = 0 ioctl(4, 0x41544110, 0xbffff2e8) = 0 ioctl(4, 0x813c4120, 0x804f22c) = 0 ioctl(4, AGPIOC_RELEASE, 0xbfffec94) = 0 old_mmap(NULL, 2112, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0x40016000 old_mmap(NULL, 131072, PROT_READ, MAP_SHARED, 4, 0x80000000) = 0x4015e000 ioctl(4, 0x4130, 0x4001a7f8) = 0 brk(0x8056000) = 0x8056000 ioctl(4, 0x4131, 0x4001a83c) = 0 poll([{fd=4, events=POLLIN}], 1, 1000) = 0 poll([{fd=4, events=POLLIN}], 1, 1000) = 0 poll([{fd=4, events=POLLIN}], 1, 1000) = 0 poll([{fd=4, events=POLLIN}], 1, 1000) = 0 poll([{fd=4, events=POLLIN}], 1, 1000) = -1 EINTR (Interrupted system call) --- SIGINT (Interrupt) --- +++ killed by SIGINT +++ atkis:/share/tmp/gosen> cat strace.out execve("/usr/bin/arecord", ["arecord", "-c", "0", "-d", "2", "-t", "1", "/tmp/test.wav"], [/* 48 vars */]) = 0 uname({sys="Linux", node="mp3", ...}) = 0 brk(0) = 0x804f0c8 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40015000 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=5009, ...}) = 0 old_mmap(NULL, 5009, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40016000 close(3) = 0 open("/usr/lib/libasound.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300P\0"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=148445, ...}) = 0 old_mmap(NULL, 127520, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40018000 mprotect(0x40036000, 4640, PROT_NONE) = 0 old_mmap(0x40036000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1d000) = 0x40036000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\330"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=1384168, ...}) = 0 old_mmap(NULL, 1201988, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40038000 mprotect(0x40153000, 42820, PROT_NONE) = 0 old_mmap(0x40153000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x11a000) = 0x40153000 old_mmap(0x4015a000, 14148, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4015a000 close(3) = 0 munmap(0x40016000, 5009) = 0 open("/dev/snd/controlC0", O_RDONLY) = 3 close(3) = 0 open("/dev/snd/controlC0", O_RDWR) = 3 close(3) = 0 open("/dev/snd/controlC1", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC1", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC1", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC1", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC1", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC1", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC2", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC2", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC2", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC2", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC2", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC2", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC3", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC3", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC3", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC3", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC3", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC3", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC4", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC4", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC4", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC4", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC4", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC4", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC5", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC5", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC5", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC5", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC5", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC5", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC6", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC6", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC6", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC6", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC6", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC6", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC7", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC7", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC7", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC7", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC7", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC7", O_RDWR) = -1 ENOENT (No such file or directory) write(2, "Arecord: version 0.5.10 by Jaros"..., 59) = 59 open("/dev/snd/controlC0", O_RDWR) = 3 ioctl(3, USBDEVFS_CONTROL, 0xbffff604) = 0 brk(0) = 0x804f0c8 brk(0x804f0e8) = 0x804f0e8 brk(0x8050000) = 0x8050000 ioctl(3, 0x81285501, 0xbffff640) = 0 close(3) = 0 write(2, "Using soundcard \'C-Media PCI CM8"..., 66) = 66 open("/dev/snd/controlC0", O_RDWR) = 3 ioctl(3, USBDEVFS_CONTROL, 0xbffff6e4) = 0 ioctl(3, 0x40045520, 0xbffff4f8) = 0 ioctl(3, 0x40045521, 0xbffff4fc) = 0 ioctl(3, 0x40045523, 0xbffff500) = 0 open("/dev/snd/pcmC0D2c", O_RDWR) = 4 ioctl(4, AGPIOC_INFO, 0xbffff724) = 0 close(3) = 0 ioctl(4, AGPIOC_RELEASE, 0x804ee60) = 0 ioctl(4, 0x4132, 0x8048a72) = -1 EBADFD (File descriptor in bad state) rmdir("/tmp/test.wav") = -1 ENOTDIR (Not a directory) unlink("/tmp/test.wav") = 0 open("/tmp/test.wav", O_WRONLY|O_CREAT, 0644) = 3 write(3, "RIFFd\37\0\0WAVE", 12) = 12 write(3, "fmt \20\0\0\0\1\0\1\0@\37\0\0@\37\0\0\1\0\10\0", 24) = 24 write(3, "data@\37\0\0", 8) = 8 write(2, "Recording WAVE \'/tmp/test.wav\' :"..., 33) = 33 write(2, "Unsigned 8-bit, ", 16) = 16 write(2, "Rate 8000 Hz, ", 14) = 14 write(2, "Mono", 4) = 4 write(2, "\n", 1) = 1 ioctl(4, 0x4132, 0x4001a8a0) = -1 EBADFD (File descriptor in bad state) ioctl(4, AGPIOC_RELEASE, 0xbfffeffc) = 0 ioctl(4, 0x41544110, 0xbffff2e8) = 0 ioctl(4, 0x813c4120, 0x804f22c) = 0 ioctl(4, AGPIOC_RELEASE, 0xbfffec94) = 0 old_mmap(NULL, 2112, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0x40016000 old_mmap(NULL, 131072, PROT_READ, MAP_SHARED, 4, 0x80000000) = 0x4015e000 ioctl(4, 0x4130, 0x4001a7f8) = 0 brk(0x8056000) = 0x8056000 ioctl(4, 0x4131, 0x4001a83c) = 0 poll([{fd=4, events=POLLIN}], 1, 1000) = 0 poll([{fd=4, events=POLLIN}], 1, 1000) = 0 poll([{fd=4, events=POLLIN}], 1, 1000) = 0 poll( ... ... ... =>arecord is sticking in this polling forever, and the size of /tmp/test.wav stays at 44 bytes (the header, I suggest) - in contrast to recording from Line-In: strace -o /tmp/strace.out arecord -c 0 -d 0 -t 1 /tmp/test.wav execve("/usr/bin/arecord", ["arecord", "-c", "0", "-d", "0", "-t", "1", "/tmp/test.wav"], [/* 48 vars */]) = 0 uname({sys="Linux", node="mp3", ...}) = 0 brk(0) = 0x804f0c8 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40015000 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=5009, ...}) = 0 old_mmap(NULL, 5009, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40016000 close(3) = 0 open("/usr/lib/libasound.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300P\0"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=148445, ...}) = 0 old_mmap(NULL, 127520, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40018000 mprotect(0x40036000, 4640, PROT_NONE) = 0 old_mmap(0x40036000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1d000) = 0x40036000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\330"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=1384168, ...}) = 0 old_mmap(NULL, 1201988, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40038000 mprotect(0x40153000, 42820, PROT_NONE) = 0 old_mmap(0x40153000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x11a000) = 0x40153000 old_mmap(0x4015a000, 14148, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4015a000 close(3) = 0 munmap(0x40016000, 5009) = 0 open("/dev/snd/controlC0", O_RDONLY) = 3 close(3) = 0 open("/dev/snd/controlC0", O_RDWR) = 3 close(3) = 0 open("/dev/snd/controlC1", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC1", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC1", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC1", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC1", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC1", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC2", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC2", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC2", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC2", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC2", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC2", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC3", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC3", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC3", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC3", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC3", O_RDONLY) = -1 ENODEV (No such device) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC3", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC4", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC4", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC4", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC4", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC4", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC4", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC5", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC5", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC5", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC5", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC5", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC5", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC6", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC6", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC6", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC6", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC6", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC6", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC7", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC7", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC7", O_RDWR) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC7", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/aloadC7", O_RDONLY) = -1 ENOENT (No such file or directory) close(-1) = -1 EBADF (Bad file descriptor) open("/dev/snd/controlC7", O_RDWR) = -1 ENOENT (No such file or directory) write(2, "Arecord: version 0.5.10 by Jaros"..., 59) = 59 open("/dev/snd/controlC0", O_RDWR) = 3 ioctl(3, USBDEVFS_CONTROL, 0xbffff604) = 0 brk(0) = 0x804f0c8 brk(0x804f0e8) = 0x804f0e8 brk(0x8050000) = 0x8050000 ioctl(3, 0x81285501, 0xbffff640) = 0 close(3) = 0 write(2, "Using soundcard \'C-Media PCI CM8"..., 66) = 66 open("/dev/snd/controlC0", O_RDWR) = 3 ioctl(3, USBDEVFS_CONTROL, 0xbffff6e4) = 0 ioctl(3, 0x40045520, 0xbffff4f8) = 0 ioctl(3, 0x40045521, 0xbffff4fc) = 0 ioctl(3, 0x40045523, 0xbffff500) = 0 open("/dev/snd/pcmC0D0c", O_RDWR) = 4 ioctl(4, AGPIOC_INFO, 0xbffff724) = 0 close(3) = 0 ioctl(4, AGPIOC_RELEASE, 0x804ee60) = 0 ioctl(4, 0x4132, 0x8048a72) = -1 EBADFD (File descriptor in bad state) rmdir("/tmp/test.wav") = -1 ENOTDIR (Not a directory) unlink("/tmp/test.wav") = 0 open("/tmp/test.wav", O_WRONLY|O_CREAT, 0644) = 3 write(3, "RIFFd\37\0\0WAVE", 12) = 12 write(3, "fmt \20\0\0\0\1\0\1\0@\37\0\0@\37\0\0\1\0\10\0", 24) = 24 write(3, "data@\37\0\0", 8) = 8 write(2, "Recording WAVE \'/tmp/test.wav\' :"..., 33) = 33 write(2, "Unsigned 8-bit, ", 16) = 16 write(2, "Rate 8000 Hz, ", 14) = 14 write(2, "Mono", 4) = 4 write(2, "\n", 1) = 1 ioctl(4, 0x4132, 0x4001a8a0) = -1 EBADFD (File descriptor in bad state) ioctl(4, AGPIOC_RELEASE, 0xbfffeffc) = 0 ioctl(4, 0x41544110, 0xbffff2e8) = 0 ioctl(4, 0x813c4120, 0x804f22c) = 0 ioctl(4, AGPIOC_RELEASE, 0xbfffec94) = 0 old_mmap(NULL, 2112, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0x40016000 old_mmap(NULL, 131072, PROT_READ, MAP_SHARED, 4, 0x80000000) = 0x4015e000 ioctl(4, 0x4130, 0x4001a7f8) = 0 ioctl(4, 0x4131, 0x4001a83c) = 0 poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 1000) = 1 write(3, "\177\177\177\177\177\177\177\177\177\177\177\177\177\177"..., 1024) = 1024 poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 1000) = 1 write(3, "\177\177\177\177\177\177\177\177\177\177\177\177\177\177"..., 1024) = 1024 poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 1000) = 1 write(3, "\177\177\177\177\177\177\177\177\177\177\177\177\177\177"..., 1024) = 1024 poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 1000) = 1 write(3, "\177\177\177\177\177\177\177\177\177\177\177\177\177\177"..., 1024) = 1024 poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 1000) = 1 write(3, "\177\177\177\177\177\177\177\177\177\177\177\177\177\177"..., 1024) = 1024 poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 1000) = 1 write(3, "\177\177\177\177\177\177\177\177\177\177\177\177\177\177"..., 1024) = 1024 poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 1000) = 1 write(3, "\177\177\177\177\177\177\177\177\177\177\177\177\177\177"..., 1024) = 1024 poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 1000) = 1 write(3, "\177\177\177\177\177\177\177\177\177\177\177\177\177\177"..., 832) = 832 close(3) = 0 munmap(0x40016000, 2112) = 0 munmap(0x4015e000, 131072) = 0 close(4) = 0 _exit(0) Any ideas, suggestions? Or is the Hercules Fortissimo II (CS4624 chip) the better choice for digital I/O??? I am thinking about buying this one if it does digital I/O without hassle... Sorry for any trouble, and many thanks in advance for any hint or help, Christoph Goßen _______________________________________________ Alsa-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-user