BBS水木清华站∶精华区

发信人: reden (鱼 ~ 憧憬着风花雪月), 信区: Linux 
标  题: Opti931 Mini HOWTO 
发信站: BBS 水木清华站 (Fri Sep 18 01:00:50 1998) WWW-POST 
 
Note: Better View in WWW 
 
OPTi931 Mini-HOWTO 
 
Last Updated: May 23, 1998 
 
Preface: 
 
After buying a cheap $14.99 (Labled "ExpertColor Multimedia" on the box)  
sound card from Fry's Electronics, I couldn't for 
the life of me get sound to work in Linux. I searched through DejaNews and  
joined the linux-sound mailing list, but all I could 
find were people attempting to set it up, and for the most part, being  
unsuccessful or only partly successful. I finally got it to 
work with the help of a few others.  
 
Here are the steps I took to get the OPTi931 working under Linux.  
 
1. Easy Way Out:  
 
If you're just looking for an easy way out, just go out and buy the driver  
from Open Sound System driver from 4Front 
Technologies. Make sure sound is disabled in your kernel, run their program  
and voila! You have sound! This is super easy but 
costs $20 if you plan on using it for any amount of time. Personally, I'd  
rather hack it and get it working the right way (and for 
free!) If you were only willing to spend $10-20 on an Opti931 sound card,  
you're obviously too cheap to get a decent sound 
card or buy the $20 driver, so read on and learn how to set the card up  
properly. ;-)  
 
2. Configuring/Compiling the Kernel: 
 
These directions apply only to kernel versions 2.0.X. I have recently  
upgraded to the latest development kernels, and the 
installation routine there is slightly different. Refer to my OPTi931 on  
2.1.X page to set it up there.  
 
Compile sound as a module. I prefer to use xconfig when configuring. Here's  
the options needed. I'm using kernel 2.0.33 with 
OSS Free sound drivers. The current drivers in 2.0.33 is apparently almost 2  
years old! Grab the latest sound drivers from the 
OSS Free Homepage. I also have the OSS sound drivers available.  
 
M Sound card support 
Y Generic OPL2/OPL3 FM synthesizer support 
Y MPU-401 support (NOT for SB16) 
Y Microsoft Sound System support 
Y FM synthesizer (YM3812/OPL-3) support 
330 I/O base for MPU401 Check from manual of the card 
5 MPU401 IRQ Check from manual of the card 
530 MSS/WSS I/O base 530, 604, E80 or F40 
7 MSS/WSS IRQ 7, 9, 10 or 11 
0 MSS/WSS DMA 0, 1 or 3 
1 MSS/WSS second DMA (if possible) 0, 1 or 3 
 
I recommend that you use the same settings as me. Change the configuration of  
your other cards if necessary. You'll find out 
why later. Then do you standard make dep; make clean; make zlilo if  
necessary. If you didn't have sound compiled in your 
kernel you don't need to do this, and you just need to do a make modules;  
make modules_install.  
 
Update:I have learned how to setup the Opti under different IO ports and  
IRQs. So you can now use any settings you wish.  
 
3. ISAPNPTOOLS: 
 
Next step is to download and run isapnp. Grab the latest version here. Then  
go to their website and read about it. I also have 
version 1.14 available on my server. Basically, the documentation tells you  
to run these two commands after compiling and 
installing the source.  
 
 pnpdump > isapnp.conf 
 
You need to then modify the isapnp.conf file to reflect the configuration  
used when making your modules. The most inportant 
thing to change is to add this line to your config file.  
 
(CSN 1 (LD 0 (REG 2 (POKE 4)))) 
 
This line turns off PnP control of the card, so that we can configure it.  
Take a look at my isapnp.conf if you're confused and 
need a little guidance. When you're done, put it in /etc dir.  
 
Now run 
 
 isapnp /etc/isapnp.conf 
 
and you'll get some confirmation. I get  
 
Board 1 has Identity 74 ff ff ff ff 31 09 14 3e:  OPT0931 Serial No  
4294967295 [checksum 74]  
 
4. Writing the configuration to the OPTi931 
 
We're almost there! We need to compile and run this little program. Here's  
the source code and binary. Thank Donald M 
Burns for this nifty little program. Visit his OPTi931 homepage for some  
information on the Opti931 and his program. 
Basically, this program writes the OPTi931 configuration. Here's the command  
line to set the OPTi931 to the settings 
described earlier (MSS io-530, irq-7, dma-0, MPU-401 io-330, irq-5):  
 
To compile the source, use any compiler (I used gcc) and compile it like  
this: 
 
 gcc -o OPTi83C931 OPTi83C931.c 
 
and then run it.  
 
 OPTi82C931 0 0x07 1 0x07 3 0x09 4 0x14 5 0x3E 6 0x92 
 
Here's the output from this program: 
 
MCR0 <- 07 MCR1 <- 07 MCR3 <- 09 MCR4 <- 14 MCR5 <- 3E MCR6 <- 92  
 
Update: I just learned how to setup different I/O ports, IRQs and DMAs.  
Here's how it works. Notice how the command line 
args to the OPTi82C931 program come in pairs. For instance "0x07 1" sends  
0x07 to MCR 1. In this case 0x07 corresponds 
to WSS I/O 0x530. Here's a table of the corresponding values. I still don't  
know what the first MCR 0, 4, and 5 do, so just 
set them to the values that I use for now. Don't forget to recompile your  
sound module with the appropriate values!  
 
          MCR 1 (WSS I/O) 
            I/O    args 
           0x530   0x07 
           0xE80   0x17 
           0xF40   0x27 
           0x640   0x37 
            
        MCR 3 (WSS IRQ/DMA) 
           IRQ/DMA  args 
             5/0    0x29 
             5/1    0x2A 
             5/3    0x2B 
             7/0    0x09 
             7/1    0x0A 
             7/3    0x0B 
             9/0    0x11 
             9/1    0x12 
             9/3    0x13 
            10/0    0x19 
            10/1    0x1A 
            10/3    0x1B 
            11/0    0x21 
            11/1    0x22 
            11/3    0x23 
 
        MCR 6 (MPU401 I/O/IRQ) 
           I/O/IRQ  args 
           300/5    0xF2 
           300/7    0xFA 
           300/9    0xE2 
           300/10   0xEA 
           310/5    0xD2 
           310/7    0xDA 
           310/9    0xC2 
           310/10   0xCA 
           320/5    0xB2 
           320/7    0xBA 
           320/9    0xA2 
           320/10   0xAA 
           330/5    0x92 
           330/7    0x9A 
           330/9    0x82 
           330/10   0x8A 
     
 
5. Load the sound module 
 
Finally, load the sound modules by typing 'insmod sound' and you should have  
sound! View /dev/sndstat with 'cat /dev/sndstat' 
and verify that you have actually successfully loaded the sound drivers. You  
should get something similar to this.  
 
OSS/Free3.8s5-971223 (Fri Jan 9 11:39:17 PST 1998 root, 
Linux dt063n0d 2.0.33 #2 Sat Jan 3 00:13:35 PST 1998 i586 unknown) 
Load type: Driver loaded as a module. 
Kernel: Linux dt063n0d 2.0.33 #2 Sat Jan 3 00:13:35 PST 1998 i586 
Config options: 0 
 
Installed drivers:  
Type 10: MS Sound System 
Type 27: Compaq Deskpro XL 
Type 1: OPL-2/OPL-3 FM 
Type 5: Roland MPU-401 
 
Card config:  
MS Sound System at 0x530 irq 7 drq 0,1 
Roland MPU-401 at 0x330 irq 5 drq 0 
OPL-2/OPL-3 FM at 0x388 drq 0 
 
Audio devices: 
0: MSS audio codec (82C930) (DUPLEX) 
 
Synth devices: 
0: Yamaha OPL-3 
 
Midi devices: 
0: MPU-401 0.0  Midi interface #1 
 
Timers: 
0: System clock 
 
Mixers: 
0: MSS audio codec (82C930) 
 
Most importantly, you should see a device under each device. If not,  
something's gone wrong! Unfortunately, it's tough to get it 
half-way right, it's usually only all or nothing! Also note that I'm using  
the OSS Free sound drivers. I'm just about positive that 
these aren't required, but it was one of the things I tried in my search to  
get the OPTi931 working! They are included in the 
latest 2.1.XX kernels. However, if you can't get the OPTi931 working without  
them, you can find them at the OSS Free 
homepage Don't forget to email me so I can make the necessary mods to this  
page!  
 
Well, I hope this has helped. If you have problems, you can try asking me,  
but I may not be of any help. The linux-sound 
mailing list (send mail to majordomo@vger.rutgers.edu to subscribe) is a  
great resource where I found much of the information 
necessary to write this page.  
 
 David Rees 
 http://oto.dyn.ml.org/~drees  
                                                  
                                                                      
                                                                               
                 
 
 
-- 
    白马带著她一步步的回到中原。白马已经老了,只能慢慢的走, 
但终是能回到中原的。江南有杨柳、桃花,有燕子、金鱼…… 
汉人中有的是英俊勇武的少年,倜傥潇洒的少年……但这个美 
丽的姑娘就像古高昌国人那样固执: 
 
    「那都是很好很好的,可是我偏不喜欢。」  
 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.99.18.67]  

BBS水木清华站∶精华区