Magaz, The Greek Linux Magazine
Magaz Logo

Επόμενο  Προηγούμενο  Περιεχόμενα

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

Αυτές οι οδηγίες αρμόζουν μόνο στους kernel 2.0.x για τους kernel 2.1.Χ και 2.2.X θα αναφερθώ αργότερα.
Πρέπει να κάνετε compile τον ήχο σαν module. Θα πρέπει να έχετε και τον OSS Free Sound Driver κατεβαστέ την τελευταία έκδοση κάντε ότι λεει το 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. Μπορείτε να το κατεβάσετε τα από εδώ. Μόλις τελειώσετε με το setup των tools τρέχτε isapnp και έτσι θα δημιουργηθεί ένα /etc/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 και να τρέξουμε ένα μικρό πρόγραμμα. Ένα μεγάλο ευχαριστώ στον Donald MBurns.
    Επισκεφθείτε την σελίδα του του για να μάθετε περισσότερα για το πρόγραμμα και την 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 που έχω αλλά προφανώς δουλεύει σε όλα τα άλλα. Ελπίζω με αυτό το κείμενο να γλίτωσα μερικούς απο την ταλαιπωρία. Τελειώσαμε και καλές μουσικές αναζητήσεις:)

Επόμενο  Προηγούμενο  Περιεχόμενα

Valid HTML 4.01!   Valid CSS!