240 γραμμές
15 KiB
Markdown
240 γραμμές
15 KiB
Markdown
+++
|
||
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) καθώς και τα απαραίτητα αρχεία.
|
||
|