💾 Archived View for magaz.hellug.gr › 12 › 04_opti › index.gmi captured on 2024-08-31 at 12:11:43. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2024-02-05)
-=-=-=-=-=-=-
Παύλος Παρίσσης Φεβ 1999
Το κείμενο αυτό περιγράφει την υποστήριξη του Linux για ήχο με την κάρτα ήχου OPTi82C931.
Τα παρακάτω βήματα είναι αυτά που χρειάστηκαν να γίνουν ώστε η OPTi82C931 να δούλεψη κάτω από Linux.
1. Ο εύκολος τρόπος:
2. Ρυθμίζοντας τον Πυρήνα:
3. OPTi82C931 και kernel 2.0.x ή 2.1.Χ
4. Tips
kernel, τρέχτε τον οδηγό και θα έχετε ήχο. Αυτή είναι μια πολύ εύκολη λύση αλλά κοστίζει $20. Υπάρχει και μια δοκιμαστική έκδοση αυτού του οδηγού που είχα κατεβάσει και δούλεψε τέλεια αλλά είχα ήχο μόνο για 3 ώρες σε κάθε τρέξιμο του οδηγού και επιπλέον θα έπρεπε να κατεβάζω και να ξανά κατεβάζω τον οδηγό συνεχεία!. Επειδή είναι τρελό να δώσετε $20 για έναν οδηγό για μια κάρτα που κοστίζει $15 διαβάστε τα παρακάτω και σε 30 λεπτά θα έχετε ήχο για πάντα, δωρεάν και θα εμπλουτίσετε τις γνώσεις σας.
Αυτές οι οδηγίες αρμόζουν μόνο στους kernel 2.0.x για τους kernel 2.1.Χ και 2.2.X θα αναφερθώ αργότερα.
Πρέπει να κάνετε compile τον ήχο σαν module. Θα πρέπει να έχετε και τον OSS Free Sound Driver[1] κατεβαστέ την τελευταία έκδοση κάντε ότι λεει το README[2] αρχείο και ξεκινήστε την διαδικασία compile με make config(menu ή xconfig) και δώστε τις παρακάτω σαν απαντήσεις :
1: ../files/ossfree38s9-linux20x_tar.gz
2: ../files/ossfree38s-linux20x.README
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. Μπορείτε να το κατεβάσετε τα από εδώ[3]. Μόλις τελειώσετε με το setup των tools τρέχτε isapnp και έτσι θα δημιουργηθεί ένα /etc/isapnp.conf[4] αρχείο μετά τρέχτε pnpdump > isapnp.conf.
3: ../files/isapnptools-1.17-0.1.i386.rpm
Σε αυτό το σημείο θέλει μεγάλη προσοχή, πρέπει να τροποποιήσετε το 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 και να τρέξουμε ένα μικρό πρόγραμμα[5]. Ένα μεγάλο ευχαριστώ στον Donald MBurns[6].
Επισκεφθείτε την σελίδα του[7] του για να μάθετε περισσότερα για το πρόγραμμα και την OPTi931. Αυτό που κάνει το πρόγραμμα είναι να γράφει τις ρυθμίσεις της OPTi931. Εδώ είναι και η γραμμή εντολής που θέτει την OPTi931 στις ρυθμίσεις που περιγράψαμε νωρίτερα
6: mailto:donald@sequel.demon.co.uk
7: http://www.sequel.demon.co.uk/opti.html
(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 που έχω αλλά προφανώς δουλεύει σε όλα τα άλλα. Ελπίζω με αυτό το κείμενο να γλίτωσα μερικούς απο την ταλαιπωρία. Τελειώσαμε και καλές μουσικές αναζητήσεις:)
Για αυτούς που έχουν τους παραπάνω kernels δεν θα χρειάζεται να κάνουν τίποτα απο τα παραπάνω διότι η OPTi82C931 υποστηρίζετε απο αυτους. Το μόνο που πρέπει να κάνουν είναι να διαβάσουν το Opti.txt που βρίσκετε στον κατάλογο με τα docs.
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[8] που με το δικό του κείμενο άκουσα ήχο στο PC μου. Το OPTi931 Mini-HOWTO που έχει γράψει θα το βρείτε εδώ[9] καθώς και τα απαραίτητα αρχεία.
8: mailto:drees@spoke.nols.com