[OpenIndiana-discuss] Sound on x86

jay at m5.chicago.il.us jay at m5.chicago.il.us
Wed Mar 25 14:35:55 UTC 2015


Esteemed Colleagues:

As you may recall, my computer is a multiboot machine, on which
several different operating systems are installed, which enables me to
compare how different systems manage identical hardware.  You may also
recall that my attempt to integrate my Linux and Schillix systems by
placing shared directories (e.g., /export/home/jay, or /opt/assp) on
ZFS has permenantly driven me off my Linux system, as installing ZFS
on my Linux system crippled it, it can no longer stay functional for
more than a few minutes.  Apparently, installing native ZFS on a
32-bit Linux system with 256 megabytes of memory is not a good idea.

When I had to start using my Schillix system exclusively, one of the
more visible losses was the loss of my sound device.  Judging from the
external ports on my computer, I have two audio devices, one seems to
be on the motherboard whereas the other is a separate card.  My Linux
system was able to recognize one of my sound devices, namely, the
external card; my Schillix system is not.  There is no /dev/audio.
Here are the relevant lines from the output of prtconf -v:

 System Configuration:  Sun Microsystems  i86pc
 Memory size: 256 Megabytes
 System Peripherals (Software Nodes):

   [ many lines omitted ... ]

             pci1102,8022 (driver not attached)
                 Hardware properties:
                     name='assigned-addresses' type=int items=5
                         value=81023810.00000000.0000ece0.00000000.00000020
                     name='reg' type=int items=10
                         value=00023800.00000000.00000000.00000000.00000000.01023810.00000000.00000000.00000000.00000020
                     name='compatible' type=string items=7
                         value='pci1102,2.1102.8022.a' + 'pci1102,2.1102.8022' + 'pci1102,8022' + 'pci1102,2.a' + 'pci1102,2' + 'pciclass,040100' + 'pciclass,0401'
                     name='model' type=string items=1
                         value='Audio device'
                     name='power-consumption' type=int items=2
                         value=00000001.00000001
                     name='fast-back-to-back' type=boolean
                     name='devsel-speed' type=int items=1
                         value=00000001
                     name='interrupts' type=int items=1
                         value=00000001
                     name='max-latency' type=int items=1
                         value=00000014
                     name='min-grant' type=int items=1
                         value=00000002
                     name='subsystem-vendor-id' type=int items=1
                         value=00001102
                     name='subsystem-id' type=int items=1
                         value=00008022
                     name='unit-address' type=string items=1
                         value='7'
                     name='class-code' type=int items=1
                         value=00040100
                     name='revision-id' type=int items=1
                         value=0000000a
                     name='vendor-id' type=int items=1
                         value=00001102
                     name='device-id' type=int items=1
                         value=00000002

I do not know whether the above describes the audio device on the
motherboard, which my Linux system did not see, or the audio device on
the separate card, into which my speakers are connected, which my
Linux system did see; prtconf only describes a single audio device.
The point is that I had sound on Linux, but I do not have it now.

This is, parenthetically, quite annoying, because I expect more from a
Solaris-derived operating system; Solaris is supposed to be a serious
operating system, not a toy.  In contrast, I recently installed SkyOS
on my computer, and SkyOS is a tiny operating system, the entire
operating system fits on a single live CD, and it was from the live CD
that I installed it.  When I boot SkyOS, the speakers play music.
Even a tiny toy operating system like SkyOS is able to find and drive
my audio card, but Schillix cannot.

That is not, however, the sole reason why I write.  The reason why I
write is that I recently bought a headset with both audio and USB
connectors.  There was no point in using the audio connectors, but I
attached the headset to a USB port using the USB connector, and, to my
surprise and short-lived delight, I now have a /dev/audio.  Here is
the relevant output from ls -l:

First, before sticking in the USB connector:

 $ ls -lRa /dev/audio* /dev/usb*
 ls: cannot access /dev/audio*: No such file or directory
 /dev/usb:
 total 9
 drwxr-xr-x   6 root root  512 Mar 25 09:39 .
 drwxr-xr-x 242 root sys  4096 Mar 25 09:39 ..
 drwxr-xr-x   3 root root  512 Mar 16 11:23 4b8.104
 lrwxrwxrwx   1 root root   54 Mar 16 11:23 device0 -> ../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:usb_mid
 lrwxrwxrwx   1 root root   42 Oct 11  2013 hub0 -> ../../devices/pci at 0,0/pci1028,d2 at 1f,2:hubd
 lrwxrwxrwx   1 root root   42 Oct 11  2013 hub1 -> ../../devices/pci at 0,0/pci1028,d2 at 1f,4:hubd

 /dev/usb/4b8.104:
 total 3
 drwxr-xr-x 3 root root 512 Mar 16 11:23 .
 drwxr-xr-x 6 root root 512 Mar 25 09:39 ..
 drwxr-xr-x 9 root root 512 Mar 16 11:23 0

 /dev/usb/4b8.104/0:
 total 9
 drwxr-xr-x 9 root root 512 Mar 16 11:23 .
 drwxr-xr-x 3 root root 512 Mar 16 11:23 ..
 lrwxrwxrwx 1 root root  67 Mar 16 11:23 cntrl0 -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:4b8.104.cntrl0
 lrwxrwxrwx 1 root root  71 Mar 16 11:23 cntrl0stat -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:4b8.104.cntrl0stat
 lrwxrwxrwx 1 root root  68 Mar 16 11:23 devstat -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:4b8.104.devstat
 lrwxrwxrwx 1 root root  67 Mar 16 11:23 if0in1 -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:4b8.104.if0in1
 lrwxrwxrwx 1 root root  71 Mar 16 11:23 if0in1stat -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:4b8.104.if0in1stat
 lrwxrwxrwx 1 root root  68 Mar 16 11:23 if0out2 -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:4b8.104.if0out2
 lrwxrwxrwx 1 root root  72 Mar 16 11:23 if0out2stat -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:4b8.104.if0out2stat


and now, after sticking in the USB connector:

 $ ls -lRa /dev/audio* /dev/usb*
 lrwxrwxrwx  1 root root  10 Mar 25 10:14 /dev/audio -> usb/audio0
 lrwxrwxrwx  1 root root  18 Mar 25 10:14 /dev/audioctl -> usb/audio-control0

 /dev/usb:
 total 17
 drwxr-xr-x  14 root root  512 Mar 25 10:14 .
 drwxr-xr-x 245 root sys  4096 Mar 25 10:14 ..
 drwxr-xr-x   3 root root  512 Mar 16 11:23 4b8.104
 lrwxrwxrwx   1 root root   77 Mar 25 10:14 audio-control0 -> ../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2/sound-control at 0:sound,audioctl
 lrwxrwxrwx   1 root root   66 Mar 25 10:14 audio-mux0 -> ../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2/sound-control at 0:mux
 lrwxrwxrwx   1 root root   61 Mar 25 10:14 audio-stream0 -> ../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2/sound at 1:usb_as
 lrwxrwxrwx   1 root root   61 Mar 25 10:14 audio-stream1 -> ../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2/sound at 2:usb_as
 lrwxrwxrwx   1 root root   74 Mar 25 10:14 audio0 -> ../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2/sound-control at 0:sound,audio
 drwxr-xr-x   3 root root  512 Mar 25 10:14 d8c.139
 lrwxrwxrwx   1 root root   54 Mar 16 11:23 device0 -> ../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:usb_mid
 lrwxrwxrwx   1 root root   54 Mar 25 10:14 device1 -> ../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2:usb_mid
 lrwxrwxrwx   1 root root   71 Mar 25 10:14 hid0 -> ../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2/input at 3:consumer_control
 lrwxrwxrwx   1 root root   42 Oct 11  2013 hub0 -> ../../devices/pci at 0,0/pci1028,d2 at 1f,2:hubd
 lrwxrwxrwx   1 root root   42 Oct 11  2013 hub1 -> ../../devices/pci at 0,0/pci1028,d2 at 1f,4:hubd

 /dev/usb/4b8.104:
 total 3
 drwxr-xr-x  3 root root 512 Mar 16 11:23 .
 drwxr-xr-x 14 root root 512 Mar 25 10:14 ..
 drwxr-xr-x  9 root root 512 Mar 16 11:23 0

 /dev/usb/4b8.104/0:
 total 9
 drwxr-xr-x 9 root root 512 Mar 16 11:23 .
 drwxr-xr-x 3 root root 512 Mar 16 11:23 ..
 lrwxrwxrwx 1 root root  67 Mar 16 11:23 cntrl0 -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:4b8.104.cntrl0
 lrwxrwxrwx 1 root root  71 Mar 16 11:23 cntrl0stat -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:4b8.104.cntrl0stat
 lrwxrwxrwx 1 root root  68 Mar 16 11:23 devstat -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:4b8.104.devstat
 lrwxrwxrwx 1 root root  67 Mar 16 11:23 if0in1 -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:4b8.104.if0in1
 lrwxrwxrwx 1 root root  71 Mar 16 11:23 if0in1stat -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:4b8.104.if0in1stat
 lrwxrwxrwx 1 root root  68 Mar 16 11:23 if0out2 -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:4b8.104.if0out2
 lrwxrwxrwx 1 root root  72 Mar 16 11:23 if0out2stat -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,2/device at 1:4b8.104.if0out2stat

 /dev/usb/d8c.139:
 total 3
 drwxr-xr-x  3 root root 512 Mar 25 10:14 .
 drwxr-xr-x 14 root root 512 Mar 25 10:14 ..
 drwxr-xr-x 11 root root 512 Mar 25 10:14 0

 /dev/usb/d8c.139/0:
 total 11
 drwxr-xr-x 11 root root 512 Mar 25 10:14 .
 drwxr-xr-x  3 root root 512 Mar 25 10:14 ..
 lrwxrwxrwx  1 root root  67 Mar 25 10:14 cntrl0 -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2:d8c.139.cntrl0
 lrwxrwxrwx  1 root root  71 Mar 25 10:14 cntrl0stat -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2:d8c.139.cntrl0stat
 lrwxrwxrwx  1 root root  68 Mar 25 10:14 devstat -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2:d8c.139.devstat
 lrwxrwxrwx  1 root root  70 Mar 25 10:14 if1.1out1 -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2:d8c.139.if1.1out1
 lrwxrwxrwx  1 root root  74 Mar 25 10:14 if1.1out1stat -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2:d8c.139.if1.1out1stat
 lrwxrwxrwx  1 root root  69 Mar 25 10:14 if2.1in2 -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2:d8c.139.if2.1in2
 lrwxrwxrwx  1 root root  73 Mar 25 10:14 if2.1in2stat -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2:d8c.139.if2.1in2stat
 lrwxrwxrwx  1 root root  67 Mar 25 10:14 if3in7 -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2:d8c.139.if3in7
 lrwxrwxrwx  1 root root  71 Mar 25 10:14 if3in7stat -> ../../../../devices/pci at 0,0/pci1028,d2 at 1f,4/device at 2:d8c.139.if3in7stat


However, although I now have a /dev/audio device, that fact is not
(yet) of any use to me.  Specifically, when I stick the USB connector
into a USB port, and put the headphones on my head, and then cat a .au
file onto /dev/audio -- e.g., 

 $ cat /opt/demo/sound/does_not_compute.au > /dev/audio

I do not hear intelligible sounds, I only hear an unintelligible
chirping.  I do hear something, and after more than a year without
sound on my Schillix system, it is encouraging to hear an
unintelligible chirp, but it is not useful.

Thus, it seems that I have two questions:

1. Are there any kernel drivers I can obtain from anywhere, and then
   modload into my system, that will enable it to recognize the audio
   card that my Linux and SkyOS systems can recognize?

2. Regardless of whether I can make my audio card functional, what
   must I do to obtain a functioning /dev/audio with my USB
   converter?

As always, thank you in advance for any and all replies.


                        Jay F. Shachter
                        6424 N Whipple St
                        Chicago IL  60645-4111
                                (1-773)7613784   landline
                                (1-410)9964737   GoogleVoice
                                jay at m5.chicago.il.us
                                http://m5.chicago.il.us

                        "Quidquid latine dictum sit, altum videtur"




More information about the openindiana-discuss mailing list