Sound Blaster AWE 32/64 HOWTO από τον Marcus Brinkmann v1.2, 11 Ιανουαρίου 1998 Το κείμενο αυτό περιγράφει την εγκατάσταση και ρύθμιση μιας κάρτας Sound Blaster 32 (SB AWE 32, SB AWE 64) της Creative Labs σε ένα σύστημα Linux, χρησιμοποιώντας το AWE Sound Driver Extension από τον Takashi Iwai. Επίσης, καλύπτει μερικά ειδικά εργαλεία και προγράμματα εκτέλεσης ήχων (playres) για την σειρά SB AWE. Το σύστημα αναφοράς είναι ένα Debian GNU/Linux, αλλά θα πρέπει να δουλεύει και για οποιαδήποτε άλλη διανομή Linux. ______________________________________________________________________ Table of Contents 1. Εισαγωγή 1.1 Ευχαριστίες 1.2 Ιστορία Αναθεωρήσεων 1.3 Νέες εκδόσεις αυτού του κειμένου 1.4 Feedback 1.5 Πολιτική Διανομής 2. Πριν αρχίσετε 2.1 Εισαγωγή 2.2 Μερικές γενικές σημειώσεις για τις κάρτες SB AWE 2.3 Μερικές γενικές σημειώσεις για τις Plug and Play κάρτες 2.4 Μερικές γενικές σημειώσεις για τα loadable kernel modules 2.5 Μερικές γενικές σημειώσεις για τον driver ήχου του πυρήνα 3. Πως να εγκαταστήσετε την υποστήριξη ήχου για SB AWE 3.1 Πράγματα που θα χρειαστείτε 3.2 Αρχίζοντας 3.3 Compile του πυρήνα 3.4 Επανεκκίνηση 4. Έλεγχος του Driver Ήχου 4.1 /proc/devices, /dev/sndstat 4.2 Έξοδος - The Raw Audio Device 4.3 Έξοδος - Σύνθεση OPL-2/OPL-3 4.4 Εξοδος - Σύνθεση με πίνακα κυματομορφών (Wave Table Synthesis) 4.5 Μίξη 4.6 Είσοδος - Δειγματοληψία με το Raw Audio Device 4.7 Η Θύρα MIDI 5. Λογισμικό του AWE Driver 5.1 sfxload 5.2 drvmidi 6. Παράρτημα 6.1 Επιπλέον Πληροφορίες 6.2 Πηγές 6.3 Πρότυπο - Δείγμα ______________________________________________________________________ 1. Εισαγωγή Αυτό είναι το Sound Blaster AWE HOWTO. Σας δίνει μια λεπτομερή πληροφόρηση για το πως θα εκμεταλλευτείτε στο έπακρο την Sound Blaster 32 σας ή και καλύτερες αυτής, συμπεριλαμβανομένης και της Σύνθεσης με Πίνακα Κυματομορφών (Wave Table synthesis). Το κείμενο αυτό καλύπτει όλες τις κάρτες SB, αρχίζοντας από την SB 32 και πάνω. Η σειρά Sound Blaster είναι πολύ γνωστή στην κοινότητα των χρηστών DOS και Windows, και πολλοί χρήστες Linux θέλουν να χρησιμοποιήσουν αυτήν την κάρτα ήχου και κάτω από Linux επίσης. Δυστυχώς, η Creative Labs παρέχει οδηγό ήχου μόνο για τα Windows και το DOS, και έτσι δεν είναι τετριμμένη η εγκατάσταση και χρήση της κάρτας SB στο Linux. Αυτό το κείμενο προσπαθεί να περιγράψει πως μπορεί κανείς να χρησιμοποιήσει τις δυνατότητες της σειράς SB AWE κάτω από περιβάλλον Linux. 1.1. Ευχαριστίες Το κείμενο αυτό περιέχει πληροφορίες που πήρα από το AWE Driver FAQ και το ISA PnP FAQ. Δείτε το τμήμα ``Sources'' για τους συγγραφείς και τις διευθύνσεις των κειμένων αυτών. Χάρη στους συγγραφείς αυτούς, είναι δυνατή η υποστήριξη της SB AWE. Αρκετή αναγκαία δουλειά έχει γίνει από τον Hannu Savolainen , που ανέπτυξε τον driver ήχου που έρχεται με τον πυρήνα του Linux kernel. Σε ευχαριστούμε! Θέλω να ευχαριστήσω τον Nicola Bernardelli για ελέγχους που έκανε στα της AWE64. Χωρίς αυτόν, πολλά λάθη θα έμεναν ανεντόπιστα. Χάρη στο πακέτο SGML Tools SGML Tools , αυτό το HOWTO είναι διαθέσιμο σε διάφορα format, που όλα δημιουργήθηκαν από το ίδιο πηγαίο αρχείο. 1.2. Ιστορία Αναθεωρήσεων Έκδοση 1.0 πρώτη έκδοση Έκδοση 1.1 διορθωμένη ορθογραφία (ευχαριστώ Curt!), προσθήκη απαιτήσεων έκδοσης για isapnp, διαθέσιμο πλέον στο sunsite και σε πολλά mirrors Έκδοση 1.2 Διαθέσιμη η Γαλλική έκδοση!, μικροδιορθώσεις, αρκετά ορθογραφικά διορθωμένα (χάρη στο ispell) 1.3. Νέες εκδόσεις αυτού του κειμένου Για σχόλια, παρατηρήσεις, διορθώσεις, ενημερώσεις περί της Ελληνικής μετάφρασης αυτού του HOWTO, στείλτε email στην Βούλα Σανιδά : voulariba@hellug.gr ή στον Ευριπίδη Παπακώστα : evris@hellug.gr και εναλλακτικά : ep@rocketmail.com Η νεότερη έκδοση μπορεί να βρεθεί στην Home Page μου , Sound Blaster AWE HOWTO . Νέες εκδόσεις αυτού του κειμένου θα γίνονται upload σε διάφορα anonymous ftp sites που αρχειοθετούν τέτοιες πληροφορίες that archive, συμπεριλαμβανομένου και του . Εκδόσεις σε Hypertext αυτού και άλλων Linux HOWTOs είναι διαθέσιμες σε πολλά World-Wide-Web sites, και στο . Οι περισσότερες διανομές σε CD-ROM του Linux συμπεριλαμβάνουν τα HOWTOs, συχνά κάτω από το directory /usr/doc. Χάρη στον Arnaud Launay zoro@lsol.tm.fr, μια Γαλλική έκδοση αυτού του κειμένου είναι πλέον διαθέσιμη! Η τελευταία έκδοση μπορεί να βρεθεί μεσώ http ή anonymous ftp . Αν κάνετε μια μετάφραση αυτού του κειμένου σε μια άλλη γλώσσα, ειδοποιήστε με και θα συμπεριλάβω μια αναφορά σε αυτήν εδώ. 1.4. Feedback Βασίζομαι σε εσάς, τον αναγνώστη, να κάνετε χρήσιμο αυτό το HOWTO. Αν έχετε οποιαδήποτε πρόταση, διόρθωση, ή σχόλιο, παρακαλώ στείλτε τα σε μένα, Marcus.Brinkmann@ruhr-uni-bochum.de, και θα προσπαθήσω να τα ενσωματώσω στην επόμενη αναθεώρηση. Καλωσορίζω ιδιαίτερα πληροφορίες σχετικά με την διαδικασία εκκίνησης (boot scripts κλπ.) άλλων γνωστών διανομών Linux, π.χ. Red Hat ή SuSE Linux. Αν εκδώσετε αυτό το κείμενο σε CD-ROM ή σε έντυπη μορφή, θα εκτιμούσα την αποστολή ενός αντιγράφου. Γράψτε μου για τον ταχυδρομικό μου κώδικα. Επίσης αναλογισθείτε την περίπτωση δωρεάς προς το Linux Documentation Project για να στηρίξετε την υποστήριξη της δωρεάν τεκμηρίωσης. Επικοινωνήστε με τον συντονιστή του Linux HOWTO, linux- howto@sunsite.unc.edu, για περισσότερες πληροφορίες. 1.5. Πολιτική Διανομής Copyright 1997 Marcus Brinkmann. Αυτό το HOWTO είναι μια δωρεάν διανομή; μπορείτε να το επαναδιανείμετε και/ή τροποποιήσετε σύμφωνα με την GNU General Public License όπως αυτή δημοσιεύεται από το Free Software Foundation, ή σύμφωνα με την Έκδοση 2 της άδειας, ή (κατά την γνώμη σας) σύμφωνα με οποιαδήποτε μετέπειτα έκδοση της άδειας. Αυτό το κείμενο διανέμεται με την ελπίδα πως θα φανεί χρήσιμο, αλλά χωρίς καμία εγγύηση. Χωρίς ούτε καν να υπονοείται εγγύηση χρήσης ή καταλληλότητας για κάποιον συγκεκριμένο σκοπό. Δείτε την άδεια GNU General Public License για περισσότερες λεπτομέρειες. Mπορείτε να αποκτήσετε αντίγραφο της ’δειας GNU General Public License γράφοντας στο Free Software Foundation Free Software Foundation ,Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 2. Πριν αρχίσετε 2.1. Εισαγωγή Αυτό το κείμενο προσπαθεί να σας βοηθήσει να εγκαταστήσετε την Sound Blaster ΑWE 32 ή την Sound Blaster AWE 64 της Creative Labs στο Linux σύστημά σας. Το σύστημα αναφοράς είναι ένα GNU/Linux Debian GNU/Linux σε πλατφόρμα Intel i586 , αλλά θα πρέπει να δουλεύει και για κάθεbut άλλη διανομή Linux καθώς και πλατφόρμα που υποστηρίζεται από τον driver ήχου του Linux (οι διαφορές αναφέρονται όπου και αν υπάρχουν). Βεβαιωθείτε πως διαβάσατε το Linux Sound HOWTO (δες ``Επιπλέον Πληροφορίες'') προσεκτικά. Θεωρώ το κείμενό μου ως συμπληρωματικό του Sound HOWTO, και συχνά θα βρείτε εκεί, περισσότερες πληροφορίες για πράγματα που έχω αφήσει εκτός. 2.2. Μερικές γενικές σημειώσεις για τις κάρτες SB AWE Η κάρτα ήχου SB AWE 32 παρέχει ένα raw audio device, κλασσικό σύνθεση OPL-2/OPL-3 ,μια θύρα MPU-401 MIDI και 32 φωνές EMU 8000 με Σύνθεση Πίνακα Κυματομορφών (για μια εξήγηση πάνω σε αυτούς αλλά και άλλους όρους δείτε το Linux Sound HOWTO). Ένας από τους σκοπούς αυτού του κειμένου είναι να σας βοηθήσει ώστε να κάνετε όλα αυτά τα χαρακτηριστικά να δουλεύουν σωστά. Η SB AWE 64 έχει τις δυνατότητες της SB AWE 32 και επιπλέον την σύνθεση Wave Guide για την οποία η Creative Labs είναι περήφανη. Το πρόβλημα για τους χρήστες τουLinux είναι, πως οι επιπλέον 32 φωνές δημιουργούνται από λογισμικό και δίνουν έξοδο μέσω των raw wave devices. Επειδή η Creative Labs δεν βλέπει εμπορικό ενδιαφέρον για Linux drivers, ο driver ήχου Wave Guide synthesis είναι διαθέσιμος μόνο για τα Windows 3.1 και τα Windows 95. Αυτό σημαίνει πως, από την σκοπιά του χρήστη Linux, η SB AWE 32 και η SB AWE 64 είναι σχεδόν ισοδύναμες. Από τώρα και στο εξής, θα αναφέρομαι μόνο στην SB AWE γενικά και θα αναφέρω μόνο διαφορές όπου εμφανίζονται (αν υπάρχουν). 2.3. Μερικές γενικές σημειώσεις για τις Plug and Play κάρτες Οι περισσότερες μοντέρνες κάρτες για την πλατφόρμα της Intel είναι ISA PnP κάρτες, που είναι η σύντμηση για το``Plug and Play''. Αυτό σημαίνει, πως η κάρτα πρέπει να ρυθμιστεί από το λειτουργικό σύστημα, και πως αυτό πρέπει να γίνει μέσω μιας διαδικασίας αρχικοποίησης κατά την εκκίνηση. Γενικά, υπάρχουν τουλάχιστον τρεις δυνατοί τρόποι να γίνει αυτό: 1. Διαθέτετε ένα PnP Bios, πράγμα που σημαίνει πως το Bios σας είναι ενήμερο για τις PnP κάρτες και μπορεί να τις ρυθμίσει. Αν νομίζετε πως μπορείτε να χρησιμοποιήσετε όλα τα χαρακτηριστικά της SB AWE PnP σας,, απλά και μόνο επειδή έχετε ένα PnP Bios, είστε άτυχοι. Ακόμα και αν το Bios ισχυρίζεται πως υποστηρίζει κάρτες PnP αρχικοποιεί μόνο ένα υποσύνολο των θυρών και διευθύνσεων που χρησιμοποιούνται από την κάρτα ήχου σας. Το πιο πιθανό είναι πως θα μπορείτε να παίζετε δεδομένα raw wave, αλλά δεν θα μπορείτε να παίζετε μουσική MIDI, για παράδειγμα. Για αυτό το λόγο, ένα PnP Bios δεν είναι η επιλογή σας. 2. Διαθέτετε λειτουργικό σύστημα που υποστηρίζει κάρτες PnP. Ο τρέχων σταθερός πυρήνας Linux kernel (2.0.x) δεν είναι ένα τέτοιο λειτουργικό οπότε θα πρέπει να περιμένουμε μελλοντικές εκδόσεις του πυρήνα, ,που θα υποστηρίζουν συσκευές PnP. 3. Διαθέτετε κάποιο ειδικό πρόγραμμα, που ξεκινάει κατά την εκκίνηση, και αρχικοποιεί τις κάρτες PnP. Αυτός είναι ο τρόπος που το κάνουμε. Το συχνότερα χρησιμοποιούμενο λογισμικό αρχικοποίησης PnP καρτών σε Linux είναι τα ``isapnptools'' (δες τμήμα ``Πηγές'' και τμήμα ``Αρχίζοντας''). Παρέχουν έναν καθορισμένο τρόπο ρύθμισης όλων των καρτών ISA PnP στην μηχανή σας, και όχι μόνο της κάρτας ήχου. 2.4. Μερικές γενικές σημειώσεις για τα loadable kernel modules Μερικοί device drivers μπορούν να χτιστούν σαν modules αντί να γίνουν compile στον πυρήνα. Μπορείτε να βρείτε περισσότερες πληροφορίες για modules στο Kernel HOWTO και το Module HOWTO (δες τμήμα ``Επιπλέον Πληροφορίες''). Αν έχετε μια PnP κάρτα, πρέπει να εγκαταστήσετε την υποστήριξη ήχου σαν ένα loadable kernel module. Αυτό σημαίνει πως δεν μπορείτε να χτίσετε τον driver ήχου στον πυρήνα, αλλά θα πρέπει να το χτίσετε ως module που μπορεί να φορτωθεί από τον πυρήνα κατά την εκτέλεση. Αυτό γίνεται επειδή ο πυρήνας πρέπει να φορτωθεί πριν οι ISA PnP ρυθμιστούν , και ο driver ήχου πρέπει να φορτωθεί αφού ρυθμιστεί η ISA PnP κάρτα. Το module ήχου μπορεί να φορτωθεί χειροκίνητα με insmod sound ή modprobe -a sound ή το κατάλληλο script εκκίνησης του Linux (στο Debian, αρκεί να προσθέσετε μόνο μια γραμμή που να γράφει sound στο /etc/modules). Μια άλλη προσέγγιση είναι να σηκώσετε το kerneld, ένα δαίμονα που εγκαθιστά και απεγκαθιστά modules πυρήνα. Σημειώστε πως ο kerneld μπορεί να μην είναι η καταλληλότερη λύση για το module ήχου της AWE, επειδή παίρνει χρόνο να φορτώσει το module στον πυρήνα, ειδικά αν θέλετε να χρησιμοποιήσετε σύνθεση Wave Table και να φορτώσετε μεγάλες τράπεζες δειγμάτων ήχων, πράγμα το οποίο θα πρέπει να κάνετε κάθε φορά αφού σηκώσετε το module. Επειδή ο kerneld διώχνει τα αχρησιμοποίητα modules μετά από ένα λεπτό από default, είναι ίσως καλύτερο να εισάγετε το module ήχου χειροκίνητα ή κατά την εκκίνηση. Σημειώστε πως εισάγοντας το module ήχου χειροκίνητα ή κατά την εκκίνηση απαγορεύει στον πυρήνα να το απομακρύνει όταν αυτό είναι ανενεργό. Παρεμπιπτόντως: Μπορείτε χειροκίνητα να εισάγετε το module ήχου και να χρησιμοποιήσετε τον kerneld ταυτόχρονα. Αυτές οι δύο μέθοδοι δεν συγκρούονται, αλλά απλά ο kerneld δεν νοιάζεται πλέον για το module του ήχου. Αυτό είναι πολύ χρήσιμο αν οι ρυθμίσεις του mixer σας χαλάνε μετά την απομάκρυνση και επανεισαγωγή του module. Μια λύση για αυτό το πρόβλημα θα δοθεί στο τμήμα ``Μίξη'' (εκεί περιγράφεται πως μπορείτε να αρχίσετε τον mixer σας αυτόματα όταν το module ήχου εισάγεται). Παρόλα αυτά, παίρνει χρόνο στον kerneld να φορτώσει το module, τις τράπεζες ήχων και να αρχίσει τον mixer, και γι'αυτό και άλλους λόγους είναι καλύτερο να εισάγετε το module ήχου κατά την εκκίνηση και να μην αφήνετε τον kerneld να το απομακρύνει. 2.5. Μερικές γενικές σημειώσεις για τον driver ήχου του πυρήνα Μπορείτε να εγκαταστήσετε υποστήριξη ήχου ενσωματωμένη στον πυρήνα ή σαν loadable module. Αν έχετε μια κάρτα PnP card,θα πρέπει να εγκαταστήσετε την υποστήριξη σαν module, επειδή η κάρτα PnP χρειάζεται να αρχικοποιηθεί με τα isapnptools πριν το module εγκατασταθεί.. Όπως μπορείτε να φανταστείτε, θα πρέπει να κάνετε ξανά compile τον πυρήνα. Θα σας δώσω μερικές συμβουλές γι' αυτό παρακάτω. Προς το παρόν, ας μιλήσουμε για την υποστήριξη ήχου στον κώδικα του πυρήνα. Ο πυρήνας έρχεται με την Δωρεάν Lite Έκδοση του OSS (USS) driver ήχου. Η τρέχουσα έκδοση αυτού του driver (3.5.4) δεν υποστηρίζει πλήρως την SB AWE, αλλά το SB 16 κομμάτι της. Έτσι, μπορείτε να έχετε raw audio device και σύνθεση OPL-2/OPL-3 αν την χρησιμοποιείτε, αλλά δεν θα είσαστε σε θέση να παίζετε MIDI με σύνθεση Wave Table. Αν θέλετε να χρησιμοποιήσετε το Wave Table device, μπορείτε ή να αγοράσετε τον εμπορικό driver ήχου από την 4Front Technologies (κάποιος ας μου επιβεβαιώσει πως όντως δουλεύει, παρακαλώ), ή να κάνετε patch τον πυρήνα σας με το AWE 32 Sound Driver Extension του Takashi Iwai. Το πρώτο είναι έξω από τους σκοπούς του κειμένου και υποθέτω πως θα θελήσετε να χρησιμοποιήσετε το δεύτερο. Το AWE32 Sound Driver Extension (δες ενότητα ```Πηγές'') βγαίνει κάτω από άδεια χρήσης GNU και έρχεται με ένα πλήθος εργαλείων για να κάνει χρήση της σύνθεσης EMU 8000 των καρτών SB AWE. Το λογισμικό awedrv ήδη συμπεριλαμβάνεται στα δέντρα κώδικα των νεότερων πυρήνων (αρχίζοντας από κάποιους πυρήνες 2.1.x) αλλά ίσως θα θέλετε να αναβαθμίσετε τον κώδικά του παλιού σας πυρήνα που μπορεί να είναι παλιό. 3. Πως να εγκαταστήσετε την υποστήριξη ήχου για SB AWE 3.1. Πράγματα που θα χρειαστείτε Αυτές είναι οι απαιτήσεις για υποστήριξη SB AWE κάτω από Linux: · ένα σύστημα Linux εν λειτουργία (π.χ. την διανομή Debian GNU/Linux ), · μια SB AWE 32 ή συμβατή κάρτα (π.χ.. SB32, SB32 PnP, SB AWE64, ...), · τον πηγαίο κώδικα του πυρήνα του Linux, και των οδηγών ήχου OSS/Free (λογικά συμπεριλαμβάνεται, κοιτάξτε στο /usr/src/Linux/drivers/sound/Readme), · Τα AWE 32 sound driver extensions. Αν έχετε μια κάρτα PnP, θα χρειαστείτε επίσης: · το πακέτο λογισμικού isapnptools. Δείτε στο τμήμα ``Πηγές'' για πληροφορίες σχετικά με το από που μπορείτε να το αποκτήσετε. Αν έχετε ένα σύστημα Debian GNU/Linux , σημαίνει πως θα χρειαστείτε και τα πακέτα kernel-source-, awe-drv και ίσως το πακέτο isapnptools. Θα θελήσετε και μερικά από τα άλλα awe-* πακέτα παρόλο που δεν είναι αναγκαία. Συστήνω το kernel-package για εύκολο compile και εγκατάσταση του πυρήνα. 3.2. Αρχίζοντας Ας υποθέσουμε πως έχετε καταστήσει κανονικά την κάρτα στην υποδοχή της στην μητρική και πως πιθανά ήδη την δοκιμάσατε σε περιβάλλον DOS ή Windows. Το επόμενο βήμα είναι να αρχικοποιήσετε την κάρτα κατά την εκκίνηση αν και μόνο αν είναι μια κάρτα PnP. Ακολουθήστε την τεκμηρίωση στο πακέτο του source για να κάνετε compile και να εγκαταστήσετε τα isapnptools (ή απλά χρησιμοποιήστε το Debian binary πακέτο), και κάντε: # pnpdump > /etc/isapnp.conf σαν root. Αυτό θα δημιουργήσει ένα κατ' ελπίδα καλό αρχείο ρυθμίσεων για τις PnP κάρτες σας, αλλά με όλα τα devices σε σχόλια. Παρακαλώ διορθώστε το αρχείο αυτό προσεκτικά, και συγκρίνετε τις τιμές για τα κανάλια DMA, IO και interrupts με τις ρυθμίσεις τις κάρτας σας κάτω από περιβάλλον DOS ή Windows αν αυτό είναι δυνατόν (με τα Win95, κοιτάξτε τα resources που χρησιμοποιούνται από την κάρτα, κάτω από το resources στον device manager). Αν έχετε προβλήματα διαβάστε προσεκτικά την τεκμηρίωση που έρχεται μαζί με τα isapnptools. ΠΡΟΣΟΧΗ: τα isapnptools συχνά αποτυγχάνουν να εντοπίσουν και τις τρεις θύρες I/O της συσκευής SB AWE Wave Table . Συγκρίνετε προσεκτικά την εγγραφή σχετικά με WaveTable στο isapnp.conf σας με το παράδειγμα στο τέλος αυτού του HOWTO. Αν είναι αναγκαίο τροποποιήστε τις I/O base διευθύνσεις. ΠΡΟΣΟΧΗ: Σύμφωνα με το isapnp-faq, μερικές φορές τα isapnp αποτυγχάνουν να προγραμματίσουν τον αριθμό της λογικής συσκευής (logical device). Αν αντιμετωπίσετε μηνύματα λάθους όπως το ακόλουθο: Error occurred executing request 'LD 2' on or around line... τότε προσπαθήστε να προσθέσετε (VERIFYLD N) στην αρχή του isapnp.conf. Θα πρέπει να χρησιμοποιήσετε τουλάχιστον την έκδοση1.10 για να δουλέψει αυτό. Αν δεν μπορείτε να χρησιμοποιήσετε έκδοση 1.10 ή νεώτερη, μπορείτε επίσης να κάνετε POKE τους αριθμούς του logical device απευθείας. Αναφερθείτε στο isapnp-faq για περισσότερες πληροφορίες σχετικά με αυτή την προσέγγιση. Αν δεν σας δουλέψει, επικοινωνήστε μαζί μου (θεωρώ πως και οι άνθρωποι των isapnp θα ενδιαφέρονται επίσης). ΠΡΟΣΟΧΗ: Βεβαιωθείτε πως η τελευταία γραμμή είναι (WAITFORKEY), η οποία μπορεί να παραλείπεται σε μερικές παλιότερες εκδόσεις του pnpdump. Ένα δείγμα isapnp.conf για μόνο μια κάρτα PnP (την κάρτα ήχου) βρίσκεται στο τέλος αυτού του κειμένου (δες τμήμα ``Πρότυπο - Δείγμα isapnp.conf''). Αν έχετε ένα σύστημα Debian, δεν χρειάζονται επιπλέον ρυθμίσεις. Τα isapnp θα αρχίσουν κατά την εκκίνηση στο /etc/init.d/boot με αυτό το κομματάκι κώδικα, που μάλλον θα θέλατε να συμπεριλάβετε στα scripts εκκίνησής σας: ______________________________________________________________________ # Configure the isa plug and play boards before loading # modules. Need to do this before loading modules to get # a chance of configuring and starting PnP boards before # the drivers mess all this up. # if [ -x /etc/init.d/isapnp ] then /etc/init.d/isapnp start fi ______________________________________________________________________ όπου το /etc/init.d/isapnp είναι ______________________________________________________________________ #! /bin/sh # /etc/init.d/isapnp: configure Plug and Play boards test -x /sbin/isapnp || exit 0 /sbin/isapnp /etc/isapnp.conf exit 0 ______________________________________________________________________ Αν έχετε κάποια άλλη διανομή Linux, είσαστε μόνοι σας. Δεν ξέρω τι να κάνω (κανείς πρόθυμος να υποβάλλει πιο συγκεκριμένες πληροφορίες?). Μόνο βεβαιωθείτε πως τα isapnp αρχίζουν πριν τα modules φορτωθούν(δες παρακάτω). 3.3. Compile του πυρήνα Πριν αρχίσετε να κάνετε ξανά compile τον πυρήνα θα πρέπει να εφαρμόσετε το AWE Driver Extension patch στον driver ήχου. Ακόμα και αν το δέντρο κώδικα του πυρήνα σας περιέχει το awedrv extension (για να το δείτε αυτό τσεκάρετε το /drivers/sound/lowlevel/ ), μπορεί να θελήσετε να αναβαθμίσετε το λογισμικό του awedrv . Ακολουθήστε τις οδηγίες εγκατάστασης directory του κώδικα του awedrv. Εν συντομία, θα πρέπει να τρέξετε ένα script εγκατάστασης που εφαρμόζει τα patches στον κώδικα του πυρήνα. Να είσαστε προσεκτικός για το αν πράγματι έχετε αναβαθμίσει τον πυρήνα αφού τρέξατε το script εγκατάστασης. Το script ελέγχει απλά αν κάποιο αρχείο υπάρχει και αν ναι, δεν εφαρμόζει το απαιτούμενο patch. Σας συμβουλεύω να απομακρύνετε το αρχείο drivers/sound/lowlevel/awe_wav.c πριν τρέξετε το script αφού αναβαθμίσετε τον κώδικα του πυρήνα. Μετά θα πρέπει να ρυθμίσετε τον πυρήνα για υποστήριξη ήχου. Ελπίζω να γνωρίζετε τα βασικά για το compile του πυρήνα, δείτε το Sound HOWTO και το Kernel HOWTO για λεπτομέρειες. Προχωρήστε στο directory του κώδικα του πυρήνα σας (/usr/src/linux για παράδειγμα), και κάντε: # make config ή make menuconfig ή make xconfig. Μετά έχετε να ρυθμίσετε τον πυρήνα σας με τον γνωστό τρόπο. Εκμεταλλευτείτε αυτήν την ευκαιρία για να κάνετε ένα μικρό και ισχυρό πυρήνα, ειδικά σχεδιασμένο για το σύστημά σας. Βεβαιωθείτε πως απαντήσατε στο Enable loadable module support με Y, αν θέλετε να εγκαταστήσετε τον driver ήχου σαν loadable module (αναγκαστικό αν έχετε κάρτα PnP), αλλά είμαι σίγουρος πως έτσι και αλλιώς θα θελήσετε να το κάνετε αυτό. Σε κάποιο σημείο, θα ερωτηθείτε για το αν θέλετε υποστήριξη καρτών ήχου. Απαντήστε με Y ή με M αν δεν έχετε κάρτα PnP. Πρέπει να απαντήσετε με M, για module, αν έχετε κάρτα PnP. Θα πρέπει να κάνετε compile την υποστήριξη ήχου σαν module αν έχετε κάρτα PnP γιατί η κάρτα PnP πρέπει να αρχικοποιηθεί πριν το module φορτωθεί. Οι ακόλουθες ερωτήσεις θα πρέπει να απαντηθούν με Y , όλες οι άλλες με N : ______________________________________________________________________ Sound Blaster (SB, SBPro, SB16, clones) support (CONFIG_SB) [Y/n/?] Generic OPL2/OPL3 FM synthesizer support (CONFIG_ADLIB) [Y/n/?] /dev/dsp and /dev/audio support (CONFIG_AUDIO) [Y/n/?] MIDI interface support (CONFIG_MIDI) [Y/n/?] FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812) [Y/n/?] lowlevel sound driver support [Y/n/?] AWE32 support (CONFIG_AWE32_SYNTH) [Y/n/?] ______________________________________________________________________ Μόνο η τελευταία είναι πραγματικά για την σύνθεση Wave Table. Οι υπόλοιπες είναι επιλογές για SB 16 από τον driver ήχου του OSS/Free. Επιπλέον, πρέπει να ρυθμίσετε θύρα I/O της κάρτας. Κοιτάξτε στο αρχείο isapnp.conf για συμβουλές, αν βέβαια έχετε. Για μένα , οι παρακάτω default τιμές, αρκούν. Σημειώστε πως οι προκαθορισμένες τιμές του ρύθμισης του πυρήνα μπορεί να είναι λάθος (ειδικά για οι τιμές SBC_IRQ και SB_MPU_BASE φαίνεται να είναι λάθος για τις περισσότερες κάρτες ______________________________________________________________________ I/O base for SB Check from manual of the card (SBC_BASE) [220] Sound Blaster IRQ Check from manual of the card (SBC_IRQ) [5] Sound Blaster DMA 0, 1 or 3 (SBC_DMA) [1] Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW) 5, 6 or 7 (use 1 for 8 bit cards) (SB_DMA2) [5] MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card (SB_MPU_BASE) [330] SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with SB16 (SB_MPU_IRQ) [-1] ______________________________________________________________________ Τώρα κάντε ξανά compile τον πυρήνα. Οι χρήστες Debian θα πρέπει να χρησιμοποιήσουν το πακέτο kernel-package. Αυτό το πακέτο κάνει το compile όσο εύκολο όσο και την εγκατάσταση ενός πακέτου για debian. Κοιτάξτε στην τεκμηρίωση στο /usr/doc/kernel-package/. Ακολουθεί μια συμβουλή: # make-kpkg clean # make-kpkg -revision custom.1.0 kernel_image και μετά dpkg -i /usr/src/kernel-image-2.0.29_custom.1.0_i386.deb. Αν έχετε κάποια άλλη διανομή Linux, ακολουθείστε τον κλασσικό τρόπο για το compile ενός νέου πυρήνα. Μην ξεχάσετε να κάνετε make modules και make modules_install. Κοιτάξτε στο Sound HOWTO ίσως και στο Kernel HOWTO για περισσότερες πληροφορίες. 3.4. Επανεκκίνηση Αφού εγκαταστήσετε τον νέο πυρήνα, θα πρέπει να κάνετε επανεκκίνηση (βεβαιωθείτε πως έχετε πρόχειρη μια δισκέτα επανεκκίνησης που δουλεύει). Και προσευχηθείτε. Αν έχετε μια κάρτα PnP βεβαιωθείτε πως ξεκινάτε τα isapnp είτε στα script εκκίνησης (όπως περιγράφτηκε παραπάνω), είτε χειροκίνητα: # /sbin/isapnp /etc/isapnp.conf Board 1 has Identity 74 00 00 e3 10 48 00 8c 0e: CTL0048 Serial No 58128 [checksum 74] Τώρα μπορείτε να εγκαταστήσετε τον driver ήχου, αν τον έχετε κάνει compiled σαν module: # modprobe -a sound AWE32 Sound Driver v0.3.3e (DRAM 2048k) Αν νομίζετε πως ο εντοπισμός της μνήμης δεν ήταν σωστός (έχω μια αναφορά κάποιου που είχε μια AWE64 με 4096k, και ``εντοπισμένα'' ήταν 28672k), δοκιμάστε είτε να αναβαθμίσετε το λογισμικό awedrv ή να καθορίσετε το ποσό της μνήμης στο αρχείο /usr/src/linux/drivers/sound/lowlevel/awe_config.h, για παράδειγμα: #define AWE_DEFAULT_MEM_SIZE 4096 /* kbytes */ Λυπάμαι, αλλά πρέπει να κάνετε ξανά compile τον πυρήνα (ίσως μόνο τα modules αρκεί, αλλά δεν είμαι σίγουρος). Αν δουλέψει, ίσως να θέλετε να φορτώνετε το module ήχου αυτόματα. Μπορείτε να χρησιμοποιήσετε τον kerneld (το γιατί αυτό είναι άσχημη ιδέα εξηγήθηκε στο τμήμα1.4) ή να εισάγετε μια μόνο γραμμή στο που περιέχει τη λέξη sound σto /etc/modules σας (σε Debian) ή προσθέστε /sbin/modprobe -a sound στο script εκκίνησής σας. 4. Έλεγχος του Driver Ήχου 4.1. /proc/devices, /dev/sndstat Aν έχετε ενσωματωμένη υποστήριξη ήχου, θα δείτε κάποιες χρήσιμες πληροφορίες κατά την εκκίνηση. Αν έχετε την υποστήριξη ήχου ως loadable module, θα πάρετε τις ίδιες πληροφορίες (ίσως αφού απομακρύνετε το module ήχου με την modprobe -r sound πρώτα) με # modprobe -a sound trace_init=1 Sound initialization started at 0x220 irq 5 dma 1,5 at 0x330 irq 5 dma 0 at 0x388 Sound initialization complete AWE32 Sound Driver v0.3.3e (DRAM 2048k) Αν έχετε ένα εικονικό σύστημα αρχείων /proc, μπορείτε να κοιτάξετε το αρχείο με # cat /proc/devices Character devices: [...] 14 sound [...] Μετά σιγουρευτείτε πως έχετε τα σωστά devices εγκατεστημένα στο /dev/. Κοιτάξτε στο Sound HOWTO για λεπτομέρειες. Μετά δείτε το /dev/sndstat για την κατάσταση του module του ήχου: # cat /dev/sndstat Sound Driver:3.5.4-960630 (Sat Oct 11 19:35:14 CEST 1997 root, Linux flora 2.0.29 #1 Sat Oct 11 19:12:56 CEST 1997 i586 unknown) Kernel: Linux flora 2.0.29 #1 Sat Oct 11 19:36:23 CEST 1997 i586 Config options: 0 Installed drivers: Type 1: OPL-2/OPL-3 FM Type 2: Sound Blaster Τype 7: SB MPU-401 Card config: Sound Blaster at 0x220 irq 5 drq 1,5 SB MPU-401 at 0x330 irq 5 drq 0 OPL-2/OPL-3 FM at 0x388 drq 0 Audio devices: 0: Sound Blaster 16 (4.13) Synth devices: 0: Yamaha OPL-3 1: AWE32 Driver v0.3.3e (DRAM 2048k) Midi devices: 0: Sound Blaster 16 Timers: 0: System clock Mixers: 0: Sound Blaster 1: AWE32 Equalizer Αν δεν δείτε κάτι σαν και αυτό, ίσως υπάρχει λάθος με τις ρυθμίσεις σας. Προχωρήστε και δείτε τι δε δουλεύει, μετά επιστρέψτε στο βήμα ``Αρχίζοντας'', ελέγχοντας τα πάντα. 4.2. Έξοδος - The Raw Audio Device Προσπαθήστε να βρείτε ένα αρχείο .au (Sun workstation) ή ένα αρχείο raw file, και κάντε # cat bell.au > /dev/audio αντίστοιχα. # cat sample > /dev/dsp Θα πρέπει να ακούσετε τα περιεχόμενα του αρχείου μέσω του Audio Device 0: Sound Blaster 16 (4.3). 4.3. Έξοδος - Σύνθεση OPL-2/OPL-3 Αν θέλετε να χρησιμοποιήσετε την σύνθεση OPL-2/OPL-3 FM για να παίξετε αρχεία MIDI από την κάρτα ήχου σας, δοκιμάστε το πρόγραμμα playmidi (δες Appendix B). Αρχίστε το με # playmidi -f dance.mid ή # playmidi -4 dance.mid Το πρώτο θα σας δώσει OPL-2, το τελευταίο OPL-3 μουσική MIDI . Αν ο ήχος είναι χάλια, μην κατηγορείτε το playmidi: Είναι η σύνθεση FM που ακούγεται άσχημα. Φανταστείτε πως θα είχατε μόνο τον Driver Ήχου της OSS/Free Sound Driver: Λοιπόν αυτή είναι η ποιότητα μουσικής MIDI που θα επιτύχετε (εκτός της σύνθεσης μέσω λογισμικού). Ευτυχώς, έχετε μια SB AWE, και μπορείτε να χρησιμοποιείτε τις δυνατότητες για Wave Table με το AWE Sound Driver Extension. 4.4. Εξοδος - Σύνθεση με πίνακα κυματομορφών (Wave Table Synthesis) Το AWE Driver Extension έρχεται με κάποια ειδικά εργαλεία (awesfx) για να κάνετε χρήση της σύνθεσης του EMU 8000 Wave Table. Πρώτα, πρέπει να φορτώσετε μια Τράπεζα Δειγμάτων Ήχων στην κάρτα σας - ακόμα και αν σκοπεύετε να ακούσετε τα δείγματα που υπάρχουν στην ROM ! Μπορείτε να πάρετε τα αρχεία από τα Windows - κοιτάξτε για αρχεία με καταλήξεις *.sfb ή *.sf2. Τα δείγματα της ROM μπορούν να φορτωθούν με SYNTHGM.SBK, αληθινά δείγματα είναι στο SYNTHGS.SBK και στο SYNTHMT.SBK, καθώς επίσης και στο SAMPLE.SBK. Μπορείτε να πάρετε κι άλλες Τράπεζες Δειγμάτων Ήχων μέσω ftp ή www. Δοκιμάστε την EMU Homepage, το web site της Creative Labs, και κοιτάξτε και τα δείγματα του Chaos, είναι αληθινά πολύ καλά (να τσεκάρετε σίγουρα και το site της AWE Driver). Προσπαθήστε να φορτώσετε το στάνταρτ GM (ROM) με # sfxload -i synthgm.sbk και μετά παίξτε ένα αρχείο midi που έρχεται μαζί με την SB AWE σας: # drvmidi dance.mid 4.5. Μίξη Πάρτε το αγαπημένο σας πρόγραμμα μίξης και αρχίστε το. Ξεκινήστε ένα δείγμα raw audio και δύο αρχεία MIDI ταυτόχρονα, και δοκιμάστε τις ρυθμίσεις του mixer. Παίξτε για λίγο, θα πρέπει να είναι πολύ εύκολο. Να η λίστα με τα devices και πως λέγονται: Yamaha OPL-3 Synth or FM AWE32 Driver Synth or FM (does anyone know a mixer were the last two are separated from each other?) Sound Blaster 16 (4.13) PCM or DSP PC Speaker (still alive) Spkr Άλλες ρυθμίσεις του μίκτη αναφέρονται στο CD ROM, που είναι πιθανά συνδεδεμένο με τη κάρτα ήχου, την Κύρια Ένταση Ήχου, Μπάσα, Πρίμα, και ευαισθησία ηχογράφησης των διαφόρων γραμμών εισόδου. Μπορείτε να προσδιορίσετε ποιες είσοδοι θα ηχογραφούνται. 4.6. Είσοδος - Δειγματοληψία με το Raw Audio Device Μπορείτε να ηχογραφήσετε από διαφορετικές πηγές: ένα συνδεδεμένο CD ROM, ένα μικρόφωνο στο mic, και οτιδήποτε μπορεί να συνδεθεί στο line in. Βάλτε τον μίκτη στην κατάλληλη θέση. Παίξτε έναν ήχο και ηχογραφήστε σε κάποιο αρχείο, διαβάζοντας από το Raw Audio Device, για παράδειγμα: # cdplay # dd bs=8k count=5 music.au 5+0 records in 5+0 records out # cat music.au >/dev/dsp ηχογραφεί και παίζει πέντε δευτερόλεπτα ήχου από τη συσκευή εισόδου. 4.7. Η Θύρα MIDI Λυπάμαι, δεν υπάρχουν πληροφορίες για τη θύρα MIDI ακόμα! 5. Λογισμικό του AWE Driver 5.1. sfxload Μπορείτε να φορτώσετε δείγματα στην DRAM της κάρτας ήχου σας με το εργαλείο sfxload. Σημειώστε πως μπορείτε να φορτώσετε μόνο ένα αρχείο-δείγμα ανά τράπεζα (bank), με την bank 0 ως default. Έτσι, μετά το sfxload synthgs.sbk, τα μόνα δείγματα στην κάρτα σας είναι τα GS. Αν θέλετε να φορτώσετε επιπλέον Τράπεζες Δειγμάτων Ήχου (Sound Font Banks), θα πρέπει να χρησιμοποιήσετε την επιλογή -b, για παράδειγμα: # sfxload synthgs.sbk # sfxload -b1 sample.sbk # drvmidi sfx.mid Μπορείτε να φορτώσετε μια default Sound Font Bank αυτόματα εγκαθιστώντας το module. Απλά προσθέστε μια γραμμή όπως η: post-install sound /usr/bin/sfxload synthgm.sbk στο αρχείο σας /etc/conf.modules. Για περισσότερες πληροφορίες δείτε την τεκμηρίωση για το sfxload. 5.2. drvmidi Με το πρόγραμμα drvmidi, μπορείτε να χρησιμοποιείτε τον AWE Driver σας για να παίζετε αρχεία MIDI. Απλά καθορίστε το όνομα του midi αρχείου σας μετά την εντολή: # drvmidi waltz.mid Για περισσότερες πληροφορίες δείτε την τεκμηρίωση για το drvmidi. 6. Παράρτημα 6.1. Επιπλέον Πληροφορίες Το Linux Sound HOWTO Συγγραφέας: Jeff Tranter, Τελευταία έκδοση: v1.17, 4 Αυγούστου 1997 Παρακαλώ κοιτάξτε προσεκτικά το Sound HOWTO (διαθέσιμο στο sunsite.unc.edu και άλλα sites). Περιέχει πολλά στοιχεία για το compile του πυρήνα με υποστήριξη ήχου, και εξηγεί πολλά για ταsound devices, τις εφαρμογές κλπ. Θεωρώ αυτό το HOWTO ως συμπληρωματικό του Sound HOWTO. Το Linux Sound Playing HOWTO Συγγραφέας: Yoo C. Chung, Τελευταία έκδοση: v1.4, 13 Μαΐου 1997 Θα πρέπει επίσης να κοιτάξετε το Sound Playing HOWTO. Σας λέει για διάφορα formats ήχου και εφαρμογές που τα εκτελούν. Το AWE Driver FAQ Συγγραφέας: Takashi Iwai Πηγή: Αν έχετε προβλήματα στην εγκατάσταση του AWE Driver ή χρησιμοποιείτε σύνθεση Wave Table στην Sound Blaster σας, τότε κοιτάξτε το. Το ISA PnP FAQ Συγγραφέας: Peter Fox Πηγή: Αν έχετε προβλήματα στην ρύθμιση των ISA PnP καρτών σας, τότε αυτό είναι η βίβλος σας. 6.2. Πηγές isapnptools Συγγραφέας: Peter Fox Τελευταία έκδοση: 1.11 Πηγή: Αν στείλετε patches, αναφορές bugs ή σχόλια, γράψτε κάπου μέσα στο θέμα 'isapnp' και στείλτε το στο isapnp@roestock.demon.co.uk. awedrv Συγγραφέας: Τελευταία έκδοση: 0.4.2c Πηγή: Linux kernel Συγγραφέας: Linus Torvald και πολλοί άλλοι Τελευταία έκδοση: Προς το παρόν, θα πρέπει να χρησιμοποιείτε την 2.0.29 Πηγή: παντού, από όπου μπορείς να βρεις Linux :) OSS/Free Συγγραφέας: Hannu Savolainen (Παρακαλώ κοιτάξτε το ). Τελευταία έκδοση: Έχω την 3.5.5-beta1 Πηγή: με το πακέτο του κώδικα του πυρήνα του Linux Πληροφορίες: ή το Ευρωπαΐκό mirror . 6.3. Πρότυπο - Δείγμα isapnp.conf Στο αρχείο ρυθμίσεων για ISA PnP που δημιούργησε το pnpdump, τα devices των καρτών PnP σας εμφανίζονται ως τμήματα. Στο παρακάτω, μια κάρτα εντοπίστηκε (η κάρτα ήχου), με τέσσερα λογικά devices: · LD 0: Audio Device · LD 1: IDE Device · LD 2: WaveTable Device · LD 3: Gameport Device Άφησα το LD 1 αρρύθμιστο, επειδή δεν έχω CD ROM ενωμένο με την θύρα IDE της κάρτας ήχου μου. Αν δεν έχετε θύρα IDE στην SB σας, τότε η LD 1 θα είναι το Gameport Device και το LD 3 δεν θα εμφανίζεται. Παρακαλώ, αναφερθείτε στο τμήμα ``Αρχίζοντας'' για περαιτέρω (σημαντικές!) πληροφορίες σχετικά με αυτό το αρχείο. ______________________________________________________________________ # $Id: pnpdump.c,v 1.9 1997/06/10 21:37:32 fox Exp $ # This is free software, see the sources for details. # This software has NO WARRANTY, use at your OWN RISK # # For details of this file format, see isapnp.conf(5) # # For latest information on isapnp and pnpdump see: # http://www.roestock.demon.co.uk/isapnptools/ # # Compiler flags: -DREALTIME -DNEEDSETSCHEDULER (READPORT 0x0203) (ISOLATE) (IDENTIFY *) # Try the following if you get error messages like # Error occurred executing request 'LD 2' on or around line... #(VERIFYLD N) # ANSI string -->Creative SB32 PnP<-- (CONFIGURE CTL0048/58128 (LD 0 # ANSI string -->Audio<-- (INT 0 (IRQ 5 (MODE +E))) (DMA 0 (CHANNEL 1)) (DMA 1 (CHANNEL 5)) (IO 0 (BASE 0x0220)) (IO 1 (BASE 0x0330)) (IO 2 (BASE 0x0388)) (ACT Y) )) (CONFIGURE CTL0048/58128 (LD 1 # ANSI string -->IDE<-- # (INT 0 (IRQ 10 (MODE +E))) # (IO 0 (BASE 0x0168)) # (IO 1 (BASE 0x036e)) # (ACT Y) )) (CONFIGURE CTL0048/58128 (LD 2 # ANSI string -->WaveTable<-- (IO 0 (BASE 0x0620)) (IO 1 (BASE 0x0A20)) (IO 2 (BASE 0x0E20)) (ACT Y) )) (CONFIGURE CTL0048/58128 (LD 3 # ANSI string -->Game<-- (IO 0 (BASE 0x0200)) (ACT Y) )) # Returns all cards to the "Wait for Key" state (WAITFORKEY) ______________________________________________________________________