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