+++
title = 'ΕΛΛΗΝΙΚΟ OPTi931 Mini-HOWTO'
date = '1999-02-01T00:00:00Z'
description = ''
author = 'Παύλος Παρίσσης'
issue = ['Magaz 12']
issue_weight = 4
+++

----------------------------------------------------------------------------------------------------------------------------------------------------------------

*Το κείμενο αυτό περιγράφει την υποστήριξη του Linux για ήχο με την κάρτα ήχου OPTi82C931.*

----------------------------------------------------------------------------------------------------------------------------------------------------------------

Τα παρακάτω βήματα είναι αυτά που χρειάστηκαν να γίνουν ώστε η OPTi82C931 να δούλεψη κάτω από Linux.

**1. Ο εύκολος τρόπος:**
-----------------------------------------------

**2. Ρυθμίζοντας τον Πυρήνα:**
-----------------------------------------------------

**3. OPTi82C931 και kernel 2.0.x ή 2.1.Χ**
-----------------------------------------------------------------

**4. Tips**
----------------------------------

kernel, τρέχτε τον οδηγό και θα έχετε ήχο. Αυτή είναι μια πολύ εύκολη λύση αλλά κοστίζει \$20. Υπάρχει και μια δοκιμαστική έκδοση αυτού του οδηγού που είχα
κατεβάσει και δούλεψε τέλεια αλλά είχα ήχο μόνο για 3 ώρες σε κάθε τρέξιμο του οδηγού και επιπλέον θα έπρεπε να κατεβάζω και να ξανά κατεβάζω τον οδηγό
συνεχεία!. Επειδή είναι τρελό να δώσετε \$20 για έναν οδηγό για μια κάρτα που κοστίζει \$15 διαβάστε τα παρακάτω και σε 30 λεπτά θα έχετε ήχο για πάντα, δωρεάν
και θα εμπλουτίσετε τις γνώσεις σας.


### [2. Ρυθμίζοντας τον Πυρήνα:]{#s2}

Αυτές οι οδηγίες αρμόζουν μόνο στους kernel 2.0.x για τους kernel 2.1.Χ και 2.2.X θα αναφερθώ αργότερα.\
Πρέπει να κάνετε compile τον ήχο σαν module. Θα πρέπει να έχετε και τον [OSS Free Sound Driver](../files/ossfree38s9-linux20x_tar.gz) κατεβαστέ την τελευταία
έκδοση κάντε ότι λεει το [README](../files/ossfree38s-linux20x.README) αρχείο και ξεκινήστε την διαδικασία compile με make config(menu ή xconfig) και δώστε τις
παρακάτω σαν απαντήσεις :

----------------------------------------------------------------------------------------------------------------------------------------------------------------

     
    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
     

----------------------------------------------------------------------------------------------------------------------------------------------------------------

Είναι χρήσιμο να πατε στο DOS/Windows και στον κατάλογο OPTI931 να τρέξετε sndinit /b έτσι θα δείτε τα IRQ μετά οποία είναι σεταρισμένη η κάρτα σας. Ακόμα αν
θέλετε να δείτε τα IRQ που δέχονται ή όχι οι συσκευές ανοίχτε το /etc/isapnp.conf αλλά είναι σχετικά απίθανο να έχει διαφορετικά από ότι πρέπει να δώσετε
σύμφωνα με τα παραπάνω.

Μετά κάντε τα κλασσικά βήματα make dep, make clean, make zImage, make modules και make modules\_install.

-   ISAPNPTOOLS:

    Το επόμενο βήμα είναι να κατεβάσετε εάν δεν έχετε και να τρέξετε το isapnp. Μπορείτε να το κατεβάσετε τα [από εδώ](../files/isapnptools-1.17-0.1.i386.rpm).
    Μόλις τελειώσετε με το setup των tools τρέχτε isapnp και έτσι θα δημιουργηθεί ένα [/etc/isapnp.conf](../files/isapnp.conf) αρχείο μετά τρέχτε pnpdump \>
    isapnp.conf.

    Σε αυτό το σημείο θέλει μεγάλη προσοχή, πρέπει να τροποποιήσετε το isapnp.conf ώστε να ταιριάζει με τις τιμές που δώσατε στο compile. \'Εχω διαθέσιμο το
    δικό μου isapnp.conf(κάνε το link το αρχείο) ώστε να το έχετε σαν οδηγώ. Το πιο σημαντικό από όλα είναι να προσθέστε την παρακάτω γραμμή στο isapnp.conf :

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

        (CSN 1 (LD 0 (REG 2 (POKE 4))))

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

    Αυτή η γραμμή απενεργοποιεί το PnP της κάρτας ώστε να μπορούμε να την ρυθμίσουμε έτσι όπως θέλουμε. Μετά τρέχτε isapnp /etc/isapnp.conf και θα πάρετε τα
    παρακάτω

        Board 1 has Identity 74 ff ff ff ff 31 09 14 3e:  OPT0931 Serial No
        42949672.................

-   Γράφοντας τις ρυθμίσεις στην OPTi931 :

    Πρέπει να κάνουμε compile και να τρέξουμε ένα [μικρό πρόγραμμα](../files/OPTi82C931.c). Ένα μεγάλο ευχαριστώ στον [Donald
    MBurns](mailto:donald@sequel.demon.co.uk).\
    Επισκεφθείτε την [σελίδα του](http://www.sequel.demon.co.uk/opti.html) του για να μάθετε περισσότερα για το πρόγραμμα και την OPTi931. Αυτό που κάνει το
    πρόγραμμα είναι να γράφει τις ρυθμίσεις της OPTi931. Εδώ είναι και η γραμμή εντολής που θέτει την OPTi931 στις ρυθμίσεις που περιγράψαμε νωρίτερα

        (MSS io-530, irq-7, dma-0, MPU-401 io-330, irq-5).

    Για να κάνετε compile το πρόγραμμα χρησιμοποιήστε τον gcc compiler ή οποίον άλλον θέλετε, εγώ χρησιμοποιώ τον gcc και κάντε compile έτσι:

        gcc -O3 OPTi82C931.c -o OPTi82C931 

    και μετά τρέχτε το :

        ./OPTi82C931 0 0x07 1 0x07 3 0x09 4 0x14 5 0x3E** 0x92

    και θα πρέπει να δείτε τα παρακάτω :

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

        MCR0 <- 07 
        MCR1 <- 07 
        MCR3 <- 09 
        MCR4 <- 14 
        MCR5 <- 3E 
        MCR6 <- 92

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

    \*\* Στο /usr/src/linux/Documentation/sound/Opti διάβασα ότι ο IO3 base πρέπει να είναι 0x0E0C και όχι 0x0E0E αλλά και τα δύο δουλεύουν! εγώ έχω C εάν
    βάλετε E πρέπει να πάτε και στο /etc/isapnp.conf και εκεί που λεει (IO 3 (BASE 0x0E0C)) να βάλτε (IO 3 (BASE 0x0E0E)) καθώς και στην εντολή ./OPTi82C931 να
    είναι E αντί C.

-   Φόρτωμα του sound module :

    Είμαστε ένα βήμα πριν να ακούσουμε μουσική, πρέπει να φορτώσουμε το module δίνοντας insmod sound και εάν έχετε ανοιχτά τα ηχεία σας θα ακούσετε ένα μικρό
    ήχο.

    Δείτε το /den/sndstat με την εντολή cat /dev/sndstat \| more και επιβεβαιώστε ότι έχετε επιτυχώς φορτώσει την module. Η έξοδος θα πρέπει να είναι η παρακάτω

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

        OSS/Free3.8s9-980302 (Mon Jan 25 14:08:59 GMT 1999 root,
        Linux localhost.localdomain 2.0.36 #1 Sat Jan 23 00:14:33 GMT 1999 i586 unknown)
        Load type: Driver loaded as a module.
        Kernel: Linux localhost.localdomain 2.0.36 #1 Tue Jan 26 17:05:59 GMT 1999 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)

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

    Το πιο σημαντικό είναι να έχετε ένα device κάτω από κάθε device εάν όχι κάτι δεν έγινε σωστά.

-   Το τελευταίο βήμα

    Όσοι από εσάς κάνατε reset μετά τα παραπάνω δεν θα έχετε ήχο! Και αυτό διότι κάτι λάθος γίνετε στο /etc/rc.d/rc.sysinit. Για αυτό ανοίξτε το και σε κάποιο
    σημείο θα λέει τα παρακάτω :

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

        # load sound modules
        if ! grep -i nomodules /proc/cmdline >/dev/null ; then
            if [ -n "$USEMODULES" ]; then
                if grep -s "alias sound" /etc/conf.modules > /dev/null ; then
                    modprobe sound
                    if grep -s "alias midi" /etc/conf.modules > /dev/null ; then
                        modprobe midi
                    fi
                fi
            fi
        fi                                       

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

    εσείς θα πρέπει να κάνετε τις παρακατω αλλαγές ωστε να έχετε για πάντα ήχο, κρατήστε και ένα backup κάπου για καλό και για κακό :

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

        # load sound modules
        if ! grep -i nomodules /proc/cmdline >/dev/null ; then
            if [ -n "$USEMODULES" ]; then
        #        if grep -s "alias sound" /etc/conf.modules > /dev/null ; then
        #           modprobe sound
                        OPTi82C931 0 0x07 1 0x07 3 0x09 4 0x14 5 0x3E** 0x92
                        insmod sound
        #         if grep -s "alias midi" /etc/conf.modules > /dev/null ; then
        #              modprobe midi
        #           fi
        #       fi
            fi
        fi                                    

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

    Μην ξεχάσετε να αντιγράψετε το OPTi82C931, όχι το OPTi82C931.c, στον κατάλογο /bin

    Αυτός ο τρόπος δούλεψε μετά απο πολύ ταλαιπωρία στο RedHat 5.1 που έχω αλλά προφανώς δουλεύει σε όλα τα άλλα. Ελπίζω με αυτό το κείμενο να γλίτωσα μερικούς
    απο την ταλαιπωρία. Τελειώσαμε και καλές μουσικές αναζητήσεις:)


### [3. OPTi82C931 και kernel 2.0.x ή 2.1.Χ]{#s3}

Για αυτούς που έχουν τους παραπάνω kernels δεν θα χρειάζεται να κάνουν τίποτα απο τα παραπάνω διότι η OPTi82C931 υποστηρίζετε απο αυτους. Το μόνο που πρέπει να
κάνουν είναι να διαβάσουν το Opti.txt που βρίσκετε στον κατάλογο με τα docs.


### [4. Tips]{#s4}

1.  Για να ακούσετε midi file με το Κmid πρέπει να πάτε στα options και midi setup και να επιλέξετε σαν midi device το Yamaha OPL-3-FM και όχι το MPU-401 0.0
    Midi interface \#1- External Midi port
2.  Εάν κάτι δεν γίνει σωστά πρέπει πρώτα να κάνετε compile τον kernel χωρίς sound support και μετά πάλι από την αρχή, είναι ο πιο κουραστικός δρόμος αλλά και ο
    πιο σωστός. Μην ξεχάσετε να σβήσετε το /etc/isapnp.conf και να το ξανά δημιουργήσετε με την εντολή isapnp.
3.  Θέλει μεγάλη προσοχή στο τη δώσατε όταν κάνατε compile και τη έχετε στο isapnp.conf. Εάν δεν συμβαδίζουν οι ρυθμίσεις μην περίμενε να ακούσετε ήχο

Σε αυτό το σημείο θέλω να ευχαριστήσω τον [David Rees](mailto:drees@spoke.nols.com) που με το δικό του κείμενο άκουσα ήχο στο PC μου. Το OPTi931 Mini-HOWTO που
έχει γράψει θα το βρείτε [εδώ](http://spoke.nols.com/~drees) καθώς και τα απαραίτητα αρχεία.

