Για να ρυθμίσετε το Linux ώστε να υποστηρίζει ήχο ακολουθείτε τα παρακάτω βήματα:
Στα επόμενα τμήματα θα παρουσιάσουμε κάθε ένα από αυτά τα βήματα αναλυτικά.
Ακολουθήστε τις οδηγίες του κατασκευαστή για την εγκατάσταση του hardware ή ζητήστε από τον αντιπρόσωπο που αγοράσατε τη συσκευή να σας την εγκαταστήσει.
Οι παλιότερες κάρτες ήχου έχουν συνήθως διακόπτες ή jumpers για το IRQ, κανάλι DMA, κλπ. Καταγράψτε τις τιμές που χρησιμοποιήσατε. Αν δεν είσαστε σίγουροι, χρησιμοποιήστε τις προκαθορισμένες, από το εργοστάσιο, τιμές. Προσπαθήστε να αποφύγετε τα conflicts με άλλες συσκευές (π.χ. κάρτες δικτύου ethernet , κάρτες SCSI, παράλληλες και σειριακές θύρες) όσο είναι δυνατό.
Συνήθως θα πρέπει να χρησιμοποιήσετε τις ίδιες ρυθμίσεις για I/O port, IRQ, και DMA, που χρησιμοποιείτε στο DOS. Σε μερικές περιπτώσεις, παρόλα αυτά, (ειδικά για τις PnP κάρτες) ίσως χρειαστεί να χρησιμοποιήσετε διαφορετικές ρυθμίσεις για να κάνετε τα πράγματα να δουλέψουν κάτω από Linux.
Με κάθε νέα εγκατάσταση Linux έχετε συνήθως ένα precompiled πυρήνα. Αυτοί οι πυρήνες δεν υποστηρίζουν ήχο. Είναι προτιμότερο να κάνετε compile τον πυρήνα μόνοι σας ξανά με τους drivers που θέλετε. Μπορεί να θέλετε να κάνετε compile ξανά τον πυρήνα για να αναβαθμιστείτε σε μια νέα έκδοση ή να ελευθερώσετε πόρους μνήμης μικραίνοντας το μέγεθος του πυρήνα.
Θα πρέπει να συμβουλευτείτε το Linux Kernel HOWTO για τις λεπτομέρειες του χτισίματος ενός πυρήνα. Θα αναφέρω απλά μερικά θέματα που άπτονται μόνο στις κάρτες ήχου.
Αν δεν έχετε ρυθμίσει ποτέ τον πυρήνα ώστε να υποστηρίζει ήχο, είναι καλή ιδέα να διαβάσετε όλα τα
αρχεία Readme που συμπεριλαμβάνονται με τους drivers ήχου του πυρήνα, ειδικά τις πληροφορίες σχετικά
με τον τύπο της κάρτας σας.
Τα παρακάτω αρχεία τεκμηρίωσης βρίσκονται στο kernel sound driver directory,
συνήθως στο /usr/src/linux/drivers/sound
:
CHANGELOG - περιγραφή των αλλαγών κάθε έκδοσης COPYING - copying και copyright restrictions Readme - τα πιο πρόσφατα και σημαντικά νέα Readme.aedsp16 - πληροφορίες σχετικά με την κάρτα ήχου Audio Excel DSP 16 Readme.cards - παρατηρήσεις για τη ρύθμιση συγκεκριμένων καρτών Readme.linux - παρατηρήσεις για την εγκατάσταση drivers ήχου διαφορετικών εκδόσεων Readme.modules - πώς να κάνετε build ένα driver σα loadable kernel module Readme.v30 - νέα χαρακτηριστικά στην έκδοση 3.0 του driver ήχου experimental.txt - παρατηρήσεις σε πειραματικά χαρακτηριστικά
Ακολουθήστε την τυπική διαδικασία για το χτίσιμο του πυρήνα. Υπάρχουν ως τώρα 3 διαφορετικά interfaces για τη διαδικασία ρύθμισης. Γράφοντας "make xconfig", έχετε ένα γραφικό user interface που τρέχει στα X11. Με την εντολή "make menuconfig" ξεκινάτε ένα menu-based system που χρησιμοποιεί μόνο απεικόνιση menu και κειμένου. Η κλασική μέθοδος, χρησιμοποιώντας το "make config", προσφέρει ένα απλό interface μόνο με κείμενο.
Θα πρέπει να προσέξετε ιδιαίτερα όταν χρησιμοποιείτε το "make xconfig" ή το "make menuconfig". Όλες οι ΝΑΙ/ΟΧΙ ερωτήσεις πρέπει να εξεταστούν προσεκτικά. Η προεπιλεγμένη απάντηση που έχουν οι εντολές είναι πάντα ΟΧΙ, το οποίο δεν είναι το κατάλληλο για όλες τις περιπτώσεις. Συγκεκριμένα η επιλογή "/dev/dsp και /dev/audio support" (CONFIG_AUDIO) πρέπει να είναι συνήθως ΝΑΙ.
Υποθέτουμε ότι χρησιμοποιείτε την κλασσική διαδικασία για να κάνετε compile, γράφοντας "make config", αν και η διαδικασία είναι παρόμοια για κάθε περίπτωση.
Υπάρχουν επίσης δύο διαφορετικοί τρόποι για να ρυθμίσετε τον ήχο. Ο πρώτος είναι ο "παλιός" τρόπος (ο μόνος που υπήρχε πριν τους πυρήνες 2.0.0). Χρησιμοποιεί ένα standalone πρόγραμμα το οποίο είναι μέρος του driver ήχου. Αυτή η μέθοδος δουλεύει με τις περισσότερες κάρτες ήχου εκτός από ελάχιστες που απαιτούν επιπλέον drivers "χαμηλού επιπέδου" (miroSOUND, AWE32, και AEDSP16 cards).
Ο δεύτερος είναι η "νέα" και καλύτερη μέθοδος η οποία είναι ενσωματωμένη με το configuration μέσο μενού που χρησιμοποιείται και για τον υπόλοιπο πυρήνα. Αυτός ο τρόπος δε δουλεύει με κάρτες ήχου που ζητούν αρχείο firmware. Αυτό περιλαμβάνει τις κάρτες PSS, SM Wave, AudioTrix Pro και TurtleBeach Tropez/Maui. Με αυτές τις κάρτες πρέπει να χρησιμοποιηθεί η παλιά μέθοδος.
Η νέα μέθοδος χρησιμοποιείται πάντα από το "make xconfig". Όταν χρησιμοποιείτε το "make menuconfig" μπορείτε να επιλέξετε μεταξύ του "παλιού" και "νέου" τρόπου στην υποοθόνη για ήχο. Όταν τρέχετε "make config" χρησιμοποιείται αυτόματα η "παλιά" μέθοδος. Παρόλα αυτά, αν έχετε χρησιμοποιήσει τη "νέα" μέθοδο μια φορά, θα χρησιμοποιηθεί και από το "make config" επίσης. Μπορείτε να γυρίσετε στον παλιό τρόπο τρέχοντας το "make menuconfig" και επιλέγοντας τον "παλιό" τρόπο.
Ο τρόπος που προτείνουμε είναι η χρήση του "make menuconfig" μαζί με την "παλιά" μέθοδο ρύθμισης ήχου. Πολλά προβλήματα εγκατάστασης οφείλονται (τουλάχιστον σε κάποιο ποσοστό) σε λανθασμένη χρήση του νέου τρόπου.
Είναι επίσης δυνατό να φορτώσετε το driver ήχου σαν loadable module του πυρήνα. Συνιστώ αρχικά να χτίσετε το driver στον πυρήνα. Αφού ελέγξετε ότι δουλεύει, μπορείτε να πειραματιστείτε χρησιμοποιώντας την επιλογή kernel module.
Όταν τρέχετε make config
, ενεργοποιήστε την υποστήριξη ήχου απαντώντας ναι "y" στην ερώτηση
Sound card support (CONFIG_SOUND) [M/n/y/?]
Στο τέλος των ερωτήσεων για τη ρύθμιση του πυρήνα, θα γίνει compile ένα πρόγραμμα ρύθμισης ήχου, θα τρέξει, και θα σας ρωτήσει τις παραμέτρους που χρειάζονται για την κάρτα σας. Προσοχή στις απαντήσεις σας μια και αν απαντήσετε μία ερώτηση λάθος μπορεί να σας εμποδίσει να απαντήσετε σε μερικές ερωτήσεις που ακολουθούν. Για παράδειγμα, μην απαντήσετε ναι "yes" στην πρώτη ερώτηση (PAS16) αν δεν έχετε PAS16. Μην ενεργοποιείτε περισσότερες κάρτες ήχου από όσες χρειάζεστε, μια και σπαταλούν μνήμη. Επίσης μερικοί drivers (όπως ο MPU-401) μπορεί να κάνουν conflict με τον ελεγκτή SCSI και να εμποδίζουν τον πυρήνα να κάνει boot.
Παρακάτω παρουσιάζω μια σύντομη περιγραφή κάθε επιλογής. Σε κάθε ερώτηση μπορείτε να απαντήσετε "y" (ναι) ή "n" (όχι). Η προκαθορισμένη απάντηση "[Y/n/?]" σημαίνει "y" και η "[N/y/?]" σημαίνει πως η προκαθορισμένη απάντηση είναι "n". Για να διαλέξετε την προκαθορισμένη τιμή, απλά πατήστε Enter, αλλά θυμηθείτε ότι η προκαθορισμένη τιμή δεν είναι απαραίτητα και η σωστή.
Αν γράψετε ένα ερωτηματικό ("?") θα διαβάσετε μια σύντομη περιγραφή για τη συγκεκριμένη επιλογή.
Σημειώστε επίσης ότι μπορεί να μην ερωτηθείτε όλες τις ερωτήσεις. Το πρόγραμμα μπορεί να ακυρώσει μερικές ερωτήσεις οι οποίες εξαρτώνται από νωρίτερη απάντησή σας. Μπορεί επίσης να διαλέξει μερικές επιλογές για σας, αυτόματα.
Αν έχετε κάνει compile προηγουμένως τον πυρήνα με υποστήριξη ήχου, τότε η προηγούμενη σας ρύθμιση μπορεί να σωθεί. Αν θέλετε να χρησιμοποιήσετε την προηγούμενη εγκατάσταση, πατήστε ναι "y". Αν θέλετε νέα ρύθμιση ή έχετε αναβαθμιστεί σε νέο πυρήνα, θα πρέπει να απαντήσετε όχι "n" και να συνεχίσετε τη διαδικασία εγκατάστασης.
Απαντήστε ναι "y" μόνο αν έχετε a Pro Audio Spectrum 16, ProAudio Studio 16 or Logitech SoundMan 16. Μην απαντάτε 'y' αν έχετε κάποια άλλη κάρτα κατασκευασμένη από την Media Vision ή την Logitech μια που δεν είναι συμβατές με PAS16.
Απαντήστε ναι "y" αν έχετε μια γνήσια κάρτα SoundBlaster της
Creative Labs ή μια συμβατή 100% (όπως η Thunderboard ή η SM Games).
Αν η κάρτα σας είναι στην λίστα των υποστηριζόμενων καρτών κοιτάξτε τις οδηγίες για
αυτήν στο αρχείο Readme.cards
πριν απαντήσετε σε αυτή την ερώτηση.
Για μια άγνωστη κάρτα μπορείτε να απαντήσετε "y'" αν η κάρτα ισχυρίζεται πως είναι
συμβατή με SoundBlaster.
Απαντήστε "y" αν έχετε GUS ή GUS MAX. Απαντήστε "n" αν δεν έχετε GUS μια που ο driver καταναλώνει πολύ μνήμη.
Προσοχή σε αυτήν την ερώτηση. Το MPU-401 interface υποστηρίζεται από όλες σχεδόν τις κάρτες ήχου.
Παρόλα αυτά, κάποιες κάρτες που υποστηρίζονται εγγενώς (natively)έχουν τους δικούς τους drivers
για το MPU-401. Η ενεργοποίηση την επιλογή MPU-401 σε αυτές τις κάρτες θα δημιουργήσει conflict.
Επίσης, η ενεργοποίηση του MPU-401 σε ένα σύστημα που δεν έχει πραγματικά MPU-401 θα μπορούσε
να δημιουργήσει κάποια προβλήματα. Αν η κάρτα σας δεν είναι στη λίστα των υποστηριζόμενων καρτών,
κοιτάξτε τις οδηγίες για την συγκεκριμένη κάρτα στο αρχείο Readme.cards
. Είναι ασφαλές
να απαντήσετε "y" αν έχετε μια κάρτα με αληθινό MPU-401 MIDI interface.
Είναι ασφαλές να απαντήσετε "n" σε αυτήν την ερώτηση, σε κάθε περίπτωση. Το 6850 UART interface σπάνια χρησιμοποιείται.
Απαντήστε "y" μόνο αν έχετε Orchid SW32, Cardinal DSP16 ή κάποια άλλη κάρτα που βασίζεται στο PSS chipset (AD1848 codec + ADSP-2115 DSP chip + Echo ESC614 ASIC CHIP).
Απαντήστε "y" αν έχετε εγκατεστημένη την 16 bit sampling daughtercard στην GUS. Απαντήστε όχι "n" αν έχετε GUS MAX. Ενεργοποιώντας αυτή την επιλογή, απενεργοποιείται η υποστήριξη για GUS MAX.
Απαντήστε "y" μόνο αν έχετε GUS MAX.
Σκεφτείτε προσεκτικά και εδώ, πριν απαντήσετε "y" σε αυτή την ερώτηση. Είναι ασφαλές να απαντήσετε "y"
αν έχετε την γνήσια Windows Sound System card της Microsoft ή της Aztech, SG 16 Pro (ή NX16 Pro).
Επίσης μπορείτε να απαντήσετε "y" σε περίπτωση που η κάρτα σας δεν αναφέρεται
πουθενά μέχρι τώρα σε αυτό το κείμενο. Για κάρτες που υποστηρίζουν εγγενώς VoxWare, συμβουλευτείτε
τις οδηγίες τις συγκεκριμένης κάρτας στο Readme.cards
. Μερικοί drivers παρέχουν
δικιά τους υποστήριξη MSS και ενεργοποιώντας αυτήν την επιλογή θα δημιουργήσει conflict.
Απαντήστε "y" αν έχετε κάρτα ήχου βασισμένη στο chipset Ensoniq SoundScape. Τέτοιες κάρτες κατασκευάζονται τουλάχιστον από την Ensoniq, Spea και την Reveal (η Reveal κατασκευάζει επίσης και δικές της κάρτες).
Απαντήστε "y" αν έχετε την AudioTriX Pro.
Απαντήστε "y" αν η κάρτα σας διαθέτει Mozart (OAK OTI-601) ή MAD16 (OPTi 82C928 ή 82C929) τσιπ ήχου. Αυτά τα τσιπς είναι πλέον πολύ κοινά και γι' αυτό είναι δυνατόν πολλές ανώνυμες κάρτες να έχουν κάποια από τα παραπάνω τσιπς. Επιπρόσθετα, το τσιπ MAD16 χρησιμοποιείται και σε μερικές κάρτες που κατασκευάζονται από γνωστούς κατασκευαστές η Turtle Beach (Tropez), η Reveal (μερικά μοντέλα της), η Diamond (τα πιο πρόσφατα).
Απαντήστε "y" αν έχετε κάρτα βασισμένη στο chipset Crystal CS4232.
Απαντήστε "y" αν έχετε οποιαδήποτε από αυτές τις κάρτες.
Ενεργοποιήστε αυτή την επιλογή αν η κάρτα σας είναι η SoundBlaster Pro ή η SoundBlaster 16. Ενεργοποιήστε την επίσης για οποιαδήποτε συμβατή με SoundBlaster Pro. Αν απαντήσετε "n" εξοικονομείτε μνήμη, αλλά η ασφαλής απάντηση εδώ είναι "y".
Ενεργοποιήστε την επιλογή αν έχετε την SoundBlaster 16 (συμπεριλαμβάνεται και η AWE32).
Ενεργοποιήστε αυτή την επιλογή αν έχετε την κάρτα Audio Excel DSP16. Δείτε το αρχείο
Readme.aedsp16
για περισσότερες πληροφορίες.
To πρόγραμμα θα σας ρωτήσει μερικές ερωτήσεις σχετικά με την υποστήριξη κάποιων ακόμα υπηρεσιών. Σας συνιστούμε να απαντήσετε "y" σε κάθε μια από αυτές τις ερωτήσεις. Απαντήστε "n" μόνο αν γνωρίζετε ότι δε θα χρειαστείτε αυτή την επιλογή.
Αν απαντήσετε "n", απενεργοποιείτε τα /dev/dsp
και /dev/audio
,
τους μετατροπείς A/D και D/A. Απαντήστε "y".
Αν απαντήσετε "n", απενεργοποιείτε τα devices /dev/midixx
και την πρόσβαση σε
οποιεσδήποτε θύρες MIDI χρησιμοποιώντας τα /dev/sequencer
και
/dev/music
. Αυτή η επιλογή επηρεάζει επίσης οποιαδήποτε
συσκευή MPU-401 και/ή συμβατή με General MIDI.
Εδώ απαντήστε "y".
Αν απαντήσετε "n", απενεργοποιείτε τα /dev/sequencer
και /dev/music
Απαντήστε "y" αν έχετε την κάρτα ήχου Sound Galaxy NX Pro και θέλετε υποστήριξη για τις έξτρα λειτουργίες του μίκτη (extended mixer functions).
Απαντήστε "y" αν έχετε την κάρτα ήχου MV Jazz16.
Απαντήστε "y" αν έχετε την κάρτα ήχου Logitech SoundMan Games.
Μετά τις παραπάνω ερωτήσεις για κάρτες ήχου, το πρόγραμμα ζητά πληροφορίες για
τη ρύθμιση της συγκεκριμένης κάρτας. Συνήθως ζητείται η διεύθυνση I/O, οι
τιμές των IRQ και DMA. Για μερικές κάρτες, το πρόγραμμα ζητά μερικά αρχεία που
θα χρησιμοποιηθούν κατά την αρχικοποίηση της κάρτας. Αυτά χρησιμοποιούνται από κάρτες
που διαθέτουν DSP ή μικροεπεξεργαστή που πρέπει να αρχικοποιηθεί
"φορτώνοντας" ένα αρχείο (microcode) στην κάρτα. Σε κάποιες περιπτώσεις
το αρχείο αυτό γράφεται στο a .h από το πρόγραμμα ρυθμίσεων και μετά ενσωματώνεται
στον driver κατά το compile. Και εδώ, διαβάστε τις συγκεκριμένες
πληροφορίες για την κάρτα σας στο αρχείο Readme.cards
.
Στο τέλος θα ερωτηθείτε:
The sound driver is now configured.
Save copy of this configuration to /etc/soundconf [Y/n/?]
Φυσιολογικά θα απαντούσατε "y" έτσι ώστε αν μελλοντικά χρειαστεί να κάνετε ξανά compile τον πυρήνα, να έχετε την επιλογή να χρησιμοποιήσετε το ίδιο αρχείο ρυθμίσεων για τον driver ήχου.
Εάν αναβαθμίζετε τον παλιό σας driver ήχου, σιγουρευτείτε ότι τα αρχεία
/usr/include/sys/soundcard.h
και /usr/include/sys/ultrasound.h
είναι συμβολικά links στα αντίστοιχα αρχεία στο /usr/include/linux
,
ή απλά ότι περιέχουν τις γραμμές
#include <linux/soundcard.h>
και #include <linux/ultrasound.h>
,
αντίστοιχα.
Είστε τώρα έτοιμοι να κάνετε compile και να στήσετε το νέο πυρήνα.
Για σωστή λειτουργία, πρέπει να δημιουργηθούν device file entries για τα sound devices. Αυτά κανονικά δημιουργούνται για σας κατά την εγκατάσταση του συστήματος Linux. Ένας σύντομος έλεγχος μπορεί να γίνει χρησιμοποιώντας την εντολή που φαίνεται παρακάτω. Αν το αποτέλεσμα είναι αυτό που φαίνεται παρακάτω (η ημερομηνία θα διαφέρει), τότε τα device files είναι σχεδόν σίγουρα εντάξει.
% ls -l /dev/sndstat
crw-rw-rw- 1 root root 14, 6 Apr 25 1995 /dev/sndstat
Σημειώστε ότι το να έχετε τα σωστά device files δεν εγγυάται τίποτα από μόνο του. Ο driver του πυρήνα πρέπει επίσης να φορτωθεί ή να γίνει compile πριν να δουλέψουν τα devices (περισσότερα γι' αυτό παρακάτω).
Σε σπάνιες περιπτώσεις, αν πιστεύετε ότι είναι λάθος τα device files,
μπορείτε να τα ξαναδημιουργήσετε χρησιμοποιώντας το μικρό shell script που
βρίσκεται στο τέλος του αρχείου Readme.linux
στο directory
/usr/src/linux/drivers/sound
, τρέχοντάς το σα χρήστης root.
Εναλλακτικά, οι περισσότερες διανομές Linux έχουν ένα script
/dev/MAKEDEV το οποίο μπορεί να χρησιμοποιηθεί γι' αυτό το σκοπό.
Αν χρησιμοποιείτε το PC speaker sound driver, διαβάστε την τεκμηρίωση που έρχεται μαζί με το πακέτο ώστε να αποφασίσετε αν πρέπει να δημιουργηθούν τίποτα device files.
Θα πρέπει τώρα να είστε έτοιμοι να ξεκινήσετε το νέο πυρήνα και να ελέγξετε τους drivers ήχου. Ακολουθήστε τη συνηθισμένη διαδικασία εγκατάστασης και επανεκκίνησης του νέου πυρήνα (κρατήστε φυσικά κάπου τον παλιό πυρήνα για τυχόν προβλήματα).
Κατά την εκκίνηση, ελέγξτε για μήνυμα σαν το παρακάτω on powerup
(αν τα μυνήματα εμφανίζονται πολύ γρήγορα και δεν προλαβαίνετε να
τα διαβάσετε, μπορείτε να τα δείτε γράφοντας την εντολή dmesg
):
Sound initialization started
<Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5
<Sound Blaster 16> at 0x330 irq 5 dma 0
<Yamaha OPL3 FM> at 0x388
Sound initialization complete
Αυτό θα πρέπει να ταιριάζει με τον τύπο της κάρτας ήχου σας και τα jumper settings (αν υπάρχουν).
Σημειώστε ότι τα παραπάνω μηνύματα δεν εμφανίζονται όταν χρησιμοποιείτε loadable sound driver module (εκτός και αν το ενεργοποιήσετε, π.χ. χρησιμοποιώντας το "insmod sound trace_init=1).
Όταν ο driver ήχου γίνεται link στον πυρήνα, πρέπει να εμφανιστούν τα μηνύματα "Sound initialization started" και "Sound initialization complete". Αν δεν τυπώνονται, σημαίνει ότι δεν υπάρχει driver ήχου στον πυρήνα. Σε αυτή την περίπτωση, θα πρέπει να ελέγξετε ότι χρησιμοποιείτε πράγματι τον πυρήνα που κάνατε compile όταν ενεργοποιήσατε το driver ήχου.
Αν δεν τυπώνεται τίποτα μεταξύ των γραμμών "Sound initialization started" και "Sound initialization complete", σημαίνει ότι δεν ανιχνεύθηκαν συσκευές ήχου. Πολύ πιθανά, αυτό σημαίνει ότι δεν έχετε ενεργοποιήσει το σωστό driver, η κάρτα δεν υποστηρίζεται, το I/O port is bad ή ότι έχετε κάρτα PnP η οποία δεν ρυθμίστηκε σωστά.
Ο driver μπορεί επίσης να εμφανίσει μερικά μηνύματα λάθους και προειδοποιήσεις (warnings) κατά την εκκίνηση (boot). Προσέξτε για τέτοια μηνύματα όταν ξεκινά το σύστημα για πρώτη φορά μετά τη ρύθμιση του driver ήχου.
Το επόμενο βήμα είναι να ελέγξετε το device file /dev/sndstat
.
Αν διαβάσετε το status device file του driver ήχου θα σας δώσει επιπλέον πληροφορίες
για το αν ο driver της κάρτας ήχου έχει αρχικοποιηθεί σωστά. Ένα τυπικό αποτέλεσμα θα
φαίνεται όπως το παρακάτω:
% cat /dev/sndstat
Sound Driver:3.5.4-960630 (Sat Jan 4 23:56:57 EST 1997 root,
Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586)
Kernel: Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586
Config options: 0
Installed drivers:
Type 1: OPL-2/OPL-3 FM
Type 2: Sound Blaster
Type 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
Midi devices:
0: Sound Blaster 16
Timers:
0: System clock
Mixers:
0: Sound Blaster
Η παραπάνω εντολή μπορεί να αναφέρει μερικά μηνύματα λάθους. Το "No such file or directory" δείχνει ότι πρέπει να δημιουργήσετε τα device files (δείτε το τμήμα 4.3). Το "No such device" σημαίνει ότι ο driver ήχου δεν είναι φορτωμένος ή δεν έχει γίνει link στον πυρήνα. Επιστρέψτε στο τμήμα 4.2 για να το διορθώσετε.
Αν οι γραμμές στο "Card config:" για το /dev/sndstat βρίσκονται εντός παρένθεσης (όπως: "(SoundBlaster at 0x220 irq 5 drq 1,5)"), σημαίνει πως η συσκευή αυτή παρόλο που ρυθμίστηκε, δεν εντοπίστηκε από το σύστημα.
Τώρα θα πρέπει να είσαστε έτοιμοι να παίξετε ένα απλό αρχείο ήχου. Βρείτε ένα τέτοιο αρχείο και στείλτε το στην κάρτα, σαν ένα βασικό τεστ της δυνατότητας παραγωγής ήχου, π.χ.:
% cat endoftheworld >/dev/dsp
% cat crash.au >/dev/audio
(Σιγουρευτείτε πως δεν παραλείψατε το ">" στις παραπάνω εντολές).
Σημειώστε πως γενικά, η χρήση του cat
δεν είναι ο κατάλληλος τρόπος
να παίζετε αρχεία ήχου, αλλά απλά ένα γρήγορο τεστ. Θα χρειαστεί να βρείτε
ένα πραγματικό πρόγραμμα ήχου (θα περιγραφούν αργότερα) που θα κάνει καλύτερη δουλειά.
Αυτή η εντολή θα δουλέψει μόνο αν υπάρχει τουλάχιστον μια συσκευή στο τμήμα με τα audio devices του /dev/sndstat. Αν το τμήμα των audio devices είναι άδειο, πρέπει να ελέγξετε γιατί η συσκευή δεν εντοπίστηκε.
Αν οι παραπάνω εντολές επιστρέφουν "I/O error", θα πρέπει να κοιτάξετε στο τέλος των μηνυμάτων του πυρήνα που εμφανίζονται με την εντολή "dmesg". Είναι πολύ πιθανό ένα μήνυμα λάθους να εμφανίζεται εκεί. Πολύ συχνά το μήνυμα είναι "Sound: DMA (output) timed out - IRQ/DRQ config error;". Το παραπάνω μήνυμα σημαίνει ότι ο driver δεν έλαβε το αναμενόμενο interrupt από την κάρτα ήχου. Στις περισσότερες περιπτώσεις αυτό σημαίνει ότι το IRQ ή το κανάλι DMA που ρυθμίστηκε στον driver δε δουλεύει. Ο καλύτερος τρόπος να το κάνετε να δουλέψει είναι να δοκιμάστε όλα τα πιθανά DMAs και IRQs που υποστηρίζονται από τη συσκευή.
Άλλος πιθανός λόγος είναι ότι η συσκευή δεν είναι συμβατή με τη συσκευή για την οποία ρυθμίστηκε ο driver. Αυτή είναι σχεδόν πάντα η περίπτωση όταν μια υποτιθέμενη "συμβατή με SoundBlaster (Pro/16)" κάρτα ήχου δε δουλεύει με το driver για SoundBlaster. Σε αυτή την περίπτωση, δοκιμάστε να βρείτε τη συσκευή με την οποία η κάρτα ήχου σας είναι συμβατή (στέλνοντας, για παράδειγμα, μήνυμα στο newsgroup comp.os.linux.hardware).
Μερικά δείγματα αρχείων ήχου θα βρείτε στο url="ftp://tsx-11.mit.edu/pub/linux/packages/sound/snd-data-0.1.tar.Z">
Τώρα μπορείτε να ελέγξετε την ηχογράφηση ήχου. Αν έχετε δυνατότητα για είσοδο ήχου (sound input), μπορείτε να κάνετε ένα γρήγορο τεστ χρησιμοποιώντας τις εντολές:
# ηχογραφεί 4 δευτ/πτα ήχου από το μικρόφωνο
EDT% dd bs=8k count=4 </dev/audio >sample.au
4+0 records in
4+0 records out
# play back sound
% cat sample.au >/dev/audio
Φυσικά για να δουλέψει κάτι τέτοιο, χρειάζεστε ένα μικρόφωνο συνδεδεμένο στην κάρτα ήχου σας και θα πρέπει να μιλήσετε σ' αυτό. Μπορεί να χρειαστείτε ένα πρόγραμμα mixer για να θέσετε το μικρόφωνο ως την πηγή εισόδου και να ρυθμίσετε την ένταση της ηχογράφησης.
Αν τα τεστ αυτά ολοκληρωθούν επιτυχώς, μπορείτε να είσαστε ήσυχοι, σε λογικά πλαίσια βέβαια, πως τα D/A και A/D hardware και software δουλεύουν. Αν αντιμετωπίσετε προβλήματα, διαβάστε το επόμενο τμήμα αυτού του κειμένου.
Αν ακόμα αντιμετωπίζετε προβλήματα παρόλο που ακολουθήσατε τις οδηγίες του HOWTO, εδώ υπάρχουν μερικά πράγματα που μπορείτε να ελέγξετε. Οι έλεγχοι αναγράφονται με αύξουσα σειρά πολυπλοκότητας. Αν ένας έλεγχος αποτύχει, λύστε το πρόβλημα πριν προχωρήσετε στο επόμενο βήμα.
Μπορείτε να ελέγξετε το date stamp του πυρήνα για να δείτε ότι
χρησιμοποιείτε αυτόν που κάνατε compile με υποστήριξη ήχου.
Αυτό μπορείτε να το κάνετε με την εντολή uname
:
% uname -a
Linux fizzbin 2.0.0 #1 Tue Jun 4 16:57:55 EDT 1996 i386
ή κοιτώντας το αρχείο /proc/version
:
% cat /proc/version
Linux version 2.0.0 (root@fizzbin) (gcc version 2.7.0) #1 Tue Jun 4 16:57:55 EDT 1996
Αν το date stamp δεν ταιριάζει με την ημερομηνία που κάνατε
compile τον πυρήνα, τότε τρέχετε έναν παλιό πυρήνα. Κάνατε reboot;
Αν χρησιμοποιείτε LILO το ξαναεγκαταστήσατε (τυπικά τρέχοντας
/etc/lilo/install
); Αν ξεκινήσετε από δισκέτα, δημιουργήσατε νέα boot δισκέτα
και αν ναι, την χρησιμοποιήσατε κατά την εκκίνηση;
Ο απλούστερος τρόπος για αυτό, είναι να ελέγξετε την έξοδο του "dev/sndstat" όπως περιγράφηκε νωρίτερα. Αν η έξοδος δεν είναι η αναμενόμενη τότε κάτι πήγε λάθος με τις ρυθμίσεις του πυρήνα ή τo build του. Αρχίστε ξανά την διαδικασία εγκατάστασης, ξεκινώντας από το configuration και to χτίσιμο του πυρήνα.
Βεβαιωθείτε πως η κάρτα ήχου εντοπίστηκε από τον πυρήνα κατά την εκκίνηση.
Θα πρέπει να είδατε κάποιο μήνυμα κατά την εκκίνηση. Αν τα μηνύματα κάνανε
scroll έξω από την οθόνη σας, μπορείτε να τα ξαναδείτε με την εντολή dmesg
:
% dmesg
ή
% tail /var/adm/messages
Αν η κάρτα ήχου σας δεν βρέθηκε τότε κάτι πάει λάθος. Βεβαιωθείτε πως έχει αληθινά εγκατασταθεί. Αν η κάρτα ήχου δουλεύει σε DOS τότε μπορείτε να είσαστε σχετικά σίγουροι πως το hardware δουλεύει, και άρα πρόκειται για πρόβλημα στις ρυθμίσεις του πυρήνα. Ή δηλώσατε την κάρτα σας ως λάθος τύπο, ή με λάθος παραμέτρους, ή η κάρτα ήχου σας δεν είναι συμβατή με κανέναν driver κάρτας ήχου του πυρήνα του Linux.
Μία πιθανότητα είναι ότι η κάρτα ήχου σας είναι μια από τις "συμβατού" τύπου που
χρειάζεται αρχικοποίηση από το DOS driver. Δοκιμάστε να εκκινήσετε DOS και να φορτώσετε
το driver που παρέχεται από τον πωλητή της κάρτα ήχου. Μετά επανεκκινήστε (soft boot)
σε Linux πατώντας Control-Alt-Delete
. Σιγουρευτείτε ότι η διεύθυνση I/O
της κάρτας ήχου, οι ρυθμίσεις DMA και IRQ στο Linux είναι ίδιες όπως και στο DOS.
Διαβάστε το αρχείο Readme.cards
από τη διανομή του πηγαίου κώδικα
του driver της κάρτας ήχου για τυχόν υποδείξεις για τη ρύθμιση κάρτας ήχου αυτού του τύπου.
Αν η κάρτα ήχου σας δε συμπεριλαμβάνεται σε αυτό το κείμενο, είναι πιθανό ότι οι Linux drivers δεν την υποστηρίζουν. Μπορείτε να το ελέγξετε με κάποιες από τις παραπομπές που βρίσκονται για βοήθεια στο τέλος του κειμένου.
Προσπαθήστε να διαβάσετε από τη συσκευή /dev/audio
χρησιμοποιώντας την εντολή
dd
που παρουσιάστηκε νωρίτερα σε αυτό το κείμενο.
Η εντολή πρέπει να τρέχει χωρίς λάθη.
Αν δε δουλεύει, τότε το πιθανότερο είναι πως το πρόβλημα είναι IRQ ή DMA conflict ή κάποιο είδος ασυμβατότητας σε επίπεδο hardware (η συσκευή δεν υποστηρίζεται από το Linux ή ο driver έχει ρυθμιστεί για λάθος συσκευή).
Μια μικρή πιθανότητα είναι η ύπαρξη ελαττωματικού hardware. Δοκιμάστε να ελέγξετε την κάρτα ήχου στο DOS, αν είναι δυνατό, ώστε να εξαλείψετε αυτή την πιθανότητα.
.
Αν εξακολουθείτε να έχετε προβλήματα, δείτε παρακάτω μερικές τελικές προτάσεις για το τι μπορείτε να δοκιμάσετε:
comp.os.linux
ή κάποιο άλλο
Usenet newsgroup (το comp.os.linux.hardware είναι μια καλή επιλογή.
Εξαιτίας του μεγάλου φόρτου σε αυτά τα γκρουπ βοηθάει να βάλετε τη λέξη "sound"
στην επικεφαλίδα του subject του μηνύματος έτσι ώστε να το δουν οι κατάλληλοι ειδικοί)Esc-x doctor
:-)Παρουσιάζω εδώ ένα δείγμα του τύπου των εφαρμογών που πιθανά θα θέλετε αν έχετε εγκαταστήσει κάρτα ήχου σε Linux. Μπορείτε να ελέγξετε το Linux Software Map, τα Internet archive sites, και/ή τα αρχεία στο Linux CD-ROM που έχετε για πιο πρόσφατες πληροφορίες .
Πολύ πιθανά θα θέλετε να αποκτήσετε τουλάχιστον τις παρακάτω εφαρμογές :
Sox
)aumix
ή xmix
)play
ή wavplay
)tracker
)playmidi
)Υπάρχουν text-based αλλά και GUI-based εκδόσεις για τα περισσότερα από αυτά τα εργαλεία. Υπάρχουν επίσης μερικές περισσότερο esoteric εφαρμογές (π.χ. αναγνώριση και σύνθεση φωνής) που ίσως θέλετε να δοκιμάσετε.