Αυτό το τμήμα απαντά σε ερωτήσεις που γίνονται συχνά στα Usenet news groups και τις mailing lists.
Απαντήσεις σε περισσότερες ερωτήσεις θα βρείτε στη web σελίδα του OSS driver ήχου.
Αυτά είναι πιο "στάνταρ" ονόματα των device files, μερικές διανομές Linux μπορεί να χρησιμοποιήσουν λίγο διαφορετικά ονόματα.
κανονικά ένα link στο /dev/audio0
audio device συμβατό με Sun workstation (μερική μόνο υλοποίηση, δεν υποστηρίζει Sun ioctl interface, μόνο κωδικοποίηση u-law)
δεύτερο audio device (αν υποστηρίζεται από την κάρτα ήχου ή αν έχουν εγκαταστηθεί περισσότερες από μία κάρτες ήχου)
κανονικά ένα link στο /dev/dsp0
πρώτη συσκευή ψηφιακής δειγματοληψίας (digital sampling)
δεύτερη συσκευή ψηφιακής δειγματοληψίας (digital sampling)
κανονικά ένα link στο /dev/mixer0
πρώτος μίκτης (mixer) ήχου
δεύτερο μίκτης (mixer) ήχου
high-level sequencer interface
low level MIDI, FM, και GUS access
κανονικά ένα link στο /dev/music
πρώτη θύρα raw MIDΙ
δεύτερη θύρα MIDI
τρίτη θύρα MIDI
τέταρτη θύρα MIDI
εμφανίζει την κατάσταση του driver ήχου όταν διαβαστεί
Ο PC speaker driver παρέχει τα παρακάτω devices :
ισοδύναμο με το /dev/audio
ισοδύναμο με το /dev/dsp
ισοδύναμο με το /dev/mixer
Τα Sun workstation (.au) αρχεία ήχου μπορούν να παιχτούν στέλνοντάς τα στο
/dev/audio
device. Τα raw samples μπορούν να σταλούν στο
/dev/dsp
. Όμως, αυτό θα δώσει γενικά φτωχό αποτέλεσμα, και η χρήση ενός
προγράμματος όπως το play
είναι προτιμότερη, μια και θα αναγνωρίσει τους
περισσότερους τύπους αρχείων και θα θέσει την κάρτα ήχου στο σωστό ρυθμό δειγματοληψίας, κλπ.
Προγράμματα όπως το wavplay ή το vplay (μέσα στο πακέτο snd-util) θα δώσουν καλύτερα αποτελέσματα με τα αρχεία WAV files. Παρόλαυτά, δεν αναγνωρίζουν τα WAV αρχεία με συμπίεση Microsoft ADPCM. Επίσης, παλιότερες εκδόσεις του play (από το πακέτο Lsox) δε δουλεύουν καλά με WAV αρχεία 16 bit.
Η εντολή splay που περιλαμβάνεται στο πακέτο snd-util μπορεί να χρησιμοποιηθεί για να παίξετε τα περισσότερα αρχεία ήχου αν δοθούν οι κατάλληλοι παράμετροι με το χέρι σε command line.
Αν διαβάσετε το /dev/audio
ή το /dev/dsp
θα σας επιστρέψει
sampled data τα οποία μπορούν να σταλούν σε ένα αρχείο. Ένα πρόγραμμα σαν το
vrec κάνει ευκολότερο τον έλεγχο του ρυθμού δειγματοληψίας, της διάρκειας, κλπ.
Μπορεί να χρειαστείτε επίσης ένα πρόγραμμα μίκτη (mixer) για να επιλέγετε την κατάλληλη συσκευή εισόδου.
Με τον τρέχoντα driver ήχου είναι δυνατό να έχετε την ίδια στιγμή
στο σύστημα διάφορες κάρτες όπως SoundBlaster, SoundBlaster/Pro, SoundBlaster16,
MPU-401 ή MSS. Η εγκατάσταση δύο καρτών SoundBlaster είναι δυνατή αλλά απαιτεί να
ορίσετε χειροκίνητα τα macros SB2_BASE, SB2_IRQ, SB2_DMA και (σε μερικές περιπτώσεις)
SB2_DMA2 ανοίγοντας σε έναν editοr το local.h
. Είναι επίσης δυνατό να
έχετε μια SoundBlaster την ίδια στιγμή με ένα PAS16.
Με τους νέους πυρήνες 2.0.x που ρυθμίζουν τον ήχο με την εντολή make config, αντί να
γράψετε στο αρχείο local.h
, πρέπει να ανοίξετε το αρχείο
/usr/include/linux/autoconf.h
. Μετά το τμήμα που έχει τις
παρακάτω γραμμές :
#define SBC_BASE 0x220
#define SBC_IRQ (5)
#define SBC_DMA (1)
#define SB_DMA2 (5)
#define SB_MPU_BASE 0x0
#define SB_MPU_IRQ (-1)
προσθέστε αυτές τις γραμμές (με τις κατάλληλες τιμές για το σύστημά σας):
#define SB2_BASE 0x330
#define SB2_IRQ (7)
#define SB2_DMA (2)
#define SB2_DMA2 (2)
Οι παρακάτω drivers δεν επιτρέπουν πολλαπλά instances:
Χρειάζεται να δημιουργήσετε τα device files του driver ήχου. Δείτε το τμήμα σχετικά με τη δημιουργία device files. Αν έχετε device files, σιγουρευτείτε ότι έχουν το σωστό μέγιστο και ελάχιστο αριθμό συσκευής (device) (μερικές παλιότερες διανομές CD-ROM Linux μπορεί να μη δημιουργούν τα σωστά device files κατά την εγκατάσταση).
Δεν έχετε ξεκινήσει με πυρήνα που περιέχει τον driver ήχου ή η ρύθμιση της I/O διεύθυνσης δεν ταιριάζει με το hardware. Ελέγξτε ότι τρέχετε τον πυρήνα που μόλις κάνατε compile και επιβεβαιώστε ότι οι ρυθμίσεις που δώσατε κατά τη ρύθμιση του driver ήχου συμφωνούν με το hardware setup.
Αυτό μπορεί να συμβεί αν προσπαθήσατε να ηχογραφήσετε ήχο στο /dev/audio
ή /dev/dsp
χωρίς να έχετε πρώτα δημιουργήσει τα απαραίτητα device files.
Η συσκευή ήχου είναι τώρα ένα κανονικό αρχείο, και έχει γεμίσει το partition του σκληρού σας
δίσκου. Θα πρέπει να τρέξετε το script που περιγράφεται στο τμήμα "Δημιουργία των Device files"
αυτού του κειμένου.
Αυτό μπορεί να συμβεί επίσης με το Linux 2.0 και μεγαλύτερο αν δεν υπάρχει αρκετή ελεύθερη μνήμη (RAM) στο σύστημα όταν ανοίγει η device. O driver ήχου απαιτεί τουλάχιστον δύο σελίδες (8k) φυσικής συνεχόμενης RAM για κάθε κανάλι DMA. Αυτό συμβαίνει μερικές φορές σε μηχανές με λιγότερη από 16M μνήμη ή που τρέχουν για μεγάλο χρονικό διάστημα. Είναι δυνατό να ελευθερώσετε λίγη μνήμη κάνοντας compile και τρέχοντας το παρακάτω C πρόγραμμα πριν να προσπαθήσετε να ανοίξετε ξανά το device :
main() {
int i;
char mem[500000];
for (i = 0; i < 500000; i++)
mem[i] = 0;
exit(0);
}
Μόνο μία διαδικασία μπορεί να ανοίξει μία δοσμένη συσκευή ήχου την ίδια στιγμή. Πολύ πιθανά μερικές άλλες διεργασίες χρησιμοποιούν τη συσκευή για την οποία γίνεται λόγος. Ένας τρόπος να βεβαιωθείτε είναι να χρησιμοποιήσετε την εντολή fuser :
% fuser -v /dev/dsp
/dev/dsp: USER PID ACCESS COMMAND
tranter 265 f.... tracker
Στο παραπάνω παράδειγμα, η εντολή fuser
έδειξε ότι η διαδικασία (process) 265
είχε τη συσκευή ανοικτή. Αν περιμένετε τη διαδικασία να ολοκληρωθεί ή τη σκοτώσετε θα
μπορείτε μετά να έχετε ξανά πρόσβαση στη συσκευή ήχου. Θα πρέπει να τρέξετε την εντολή
fuser σα root έτσι ώστε να αναφέρεται η χρήση και από άλλους χρήστες εκτός από εσάς.
Σύμφωνα με τον Brian Gough, για τις κάρτες SoundBlaster που χρησιμοποιούν το DMA κανάλι 1 υπάρχει μια πιθανή potential σύγκρουση (conflict) με τον tape driver QIC-02, που χρησιμοποιεί επίσης το DMA 1, προκαλώντας λάθη "device busy". Αν χρησιμοποιείτε FTAPE, μπορεί να έχετε ενεργοποιήσει αυτό το driver. Σύμφωνα με το FTAPE-HOWTO ο driver QIC-02 δεν είναι απαραίτητος για τη χρήση του FTAPE; μόνο ο driver QIC-117 απαιτείται. Αν ρυθμίσετε ξανά τον πυρήνα ώστε να χρησιμοποιεί τον QIC-117 και όχι τον QIC-02, το FTAPE και o driver ήχου θα μπορούν να συνυπάρχουν.
Το σύμπτωμα είναι συνήθως ότι ένα δείγμα ήχου (sound sample) παίζει περίπου για ένα δευτερόλεπτο και μετά σταματά τελείως ή αναφέρει κάπoιο μήνυμα λάθους όπως "missing IRQ" ή "DMA timeout". Πολύ πιθανά δεν έχετε σωστές ρυθμίσεις IRQ ή στο κανάλι DMA. Βεβαιωθείτε ότι οι ρυθμίσεις του πυρήνα συμφωνούν με τα jumper settings της κάρτας ήχου και ότι δε δημιουργείται κάποιο conflict με άλλη κάρτα.
Άλλο σύμπτωμα είναι δείγματα ήχου (sound samples) που επαναλαμβάνονται συνέχεια ("loop"). Αυτό συνήθως οφείλεται σε IRQ conflict.
Για να παίξετε αρχεία MOD files απαιτείται σημαντική CPU power. Μπορεί να τρέχετε πολλές διαδικασίες ή ο υπολογιστής σας να είναι πολύ αργός για να παίξει σε πραγματικό χρόνο (real time). Οι επιλογές που έχτε είναι :
Αν έχετε κάρτα Gravis UltraSound, θα πρέπει να χρησιμοποιείτε έναν από τους mod file players
που έχουν γραφτεί ειδικά για κάρτες GUS (π.χ. gmod
).
Η έκδοση 1.0c και παλιότερες του driver ήχου χρησιμοποιούσαν ένα διαφορετικό και
ασύμβατο ioctl()
σχήμα. Αποκτήστε ένα πιο πρόσφατο πηγαίο κώδικα ή κάντε τις
απαραίτητες αλλαγές και προσαρμόστε τις στο νέο driver ήχου. Δείτε toReadme
αρχείο του
driver ήχου για περισσότερες λεπτομέρειες.
Επίσης σιγουρευτείτε ότι χρησιμοποιήσατε την πιο πρόσφατη έκδοση του
soundcard.h
και ultrasound.h
όταν κάνατε compile την εφαρμογή.
Δείτε τις οδηγίες εγκατάστασης στην αρχή αυτού του κειμένου.
Αυτό το πρόβλημα είναι πιθανώς το ίδιο με αυτό που περιγράψαμε στην προηγούμενη ερώτηση.
Δείτε το αρχείο Readme
και τα αρχεία CHANGELOG
που περιλαμβάνονται
στον πηγαίο κώδικα του driver ήχου.
Αυτά έχουν τεκμηριωθεί μερικά στο Hacker's Guide to VoxWare, τα οποία είναι διαθέσιμα σε draft μορφή. H πιο πρόσφατη έκδοση είναι το draft 2, και μπορείτε να τη βρείτε στο ftp://nic.funet.fi/pub/Linux/ALPHA/sound/. Σημειώστε ότι το directory είναι "κρυφό" και δε θα εμφανιστεί στα περιεχόμενα του directory. Αν κάνετε "cd" σε αυτό το directory και χρησιμοποιήσετε την FTP εντολή "dir", τα αρχεία είναι εκεί.
Το διάστημα που γράφεται αυτό το κείμενο, ένα νέο κείμενο τεκμηρίωσης είναι διαθέσιμο στο Web site της 4Front Technologies.
Άλλη πηγή πληροφορίας είναι το Linux Multimedia Guide, το οποίο περιγράφεται στο τμήμα "Παραπομπών".
Δεν υπάρχει απάντηση σε αυτή την ερώτηση, καθώς εξαρτάται από το:
Γενικά, οποιαδήποτε μηχανή 386 θα πρέπει να μπορεί να παίζει με ευκολία ήχους ή μουσική FM synthesized με μία 8 bit κάρτα ήχου. Το να παίξετε, όμως, MOD αρχεία απαιτεί μεγάλη υπολογιστική ισχύ. Μερικές πειραματικές μετρήσεις έδειξαν ότι το να παίζεις στα 44kHz απαιτεί περισσότερο από 40% της ταχύτητας ενός 486/50 και ένας 386/25 μπορεί να παίζει με τα βίας γρηγορότερα από 22 kHz (με κάρτα ήχου 8 bit όπως μια SoundBlaster). Μια κάρτα σαν την Gravis UltraSound εκτελεί περισσότερες λειτουργίες στο hardware, και θα απαιτεί λιγότερη υπολογιστική ισχύ.
Για τα παραπάνω υποθέτουμε ότι ο υπολογιστής δεν εκτελεί άλλες υπολογιστικά κοπιαστικές λειτουργίες.
Η μετατροπή αρχείων ήχου ή η προσθήκη εφφέ χρησιμοποιώντας μια βοηθητική εφαρμογή
όπως το sox
είναι επίσης πολύ πιο γρήγορη αν έχετε μαθηματικό συνεπεξεργαστή
(ή CPU με on board FPU). Ο driver του πυρήνα από μόνος του δεν κάνει υπολογισμούς κινητής υποδιαστολής.
(η παρακάτω εξήγηση δόθηκε από το seeker@indirect.com
)
To Linux μόνο αναγνωρίζει τον 1542 στη διεύθυνση 330 (default) ή 334, και ο PAS επιτρέπει την προσομοίωση MPU-401 μόνο στο 330. Ακόμη κι αν απενεργοποιήσετε το MPU-401 από το software, κάτι εξακολουθεί να κάνει conflict με τον 1542 αν έχει την default διεύθυνση. Αλλάξτε τη διεύθυνση του 1542 σε 334 και θα λειτουργούν όλα μια χαρά
.
Επιπλέον, και ο 1542 και o PAS-16 κάνουν 16-bit DMA, γι' αυτό αν δειματοληπτήσετε (sample) στα 16-bit 44 KHz stereo και αποθηκεύσετε το αρχείο στο SCSI drive που κρέμεται από τον 1542, θα έχετε προβλήματα. Τα DMAs επικαλύπτονται και δεν υπάρχει αρκετός χρόνος για RAM refresh, έτσι θα πάρετε το dread μήνυμα ``PARITY ERROR - SYSTEM HALTED'', χωρίς να έχετε ιδέα τι το προκάλεσε. Το θέμα γίνεται ακόμα χειρότερο μια που μερικοί δευτερογενείς προμηθευτές QIC-117 tape drives συνιστούν να θέτετε τους χρόνους on/off του διαύλου (bus) ώστε ο 1542 να μένει σε on ακόμα περισσότερο από το κανονικό. Πάρτε το πρόγραμμα SCSISEL.EXE από τη BBS της Adaptec ή από κάπου στο internet, και μειώστε το χρόνο BUS ON ή αυξήστε το χρόνο BUS OFF μέχρι ότου να εξαφανιστεί το πρόβλημα, μετά αυξήστε τον κατά μια κλίμακα ή και περισσότερες. Το SCSISEL αλλάζει τις ρυθμίσεις της EEPROM, γι' αυτό είναι περισσότερο μόνιμο απ' ότι ένα patch στη γραμμή του DOS driver στο CONFIG.SYS, και θα δουλέψει αν ξεκινήσετε σωστά σε Linux (αντίθετα με το DOS patch).
Τελευταίο πρόβλημα - τα παλιότερα Symphony chipsets μείωσαν δραματικά το χρονισμό των κύκλων I/O , ώστε να επιταχύνουν τους χρόνους πρόσβασης στο δίαυλο. Κανένα από τα διάφορα boards με τα οποία έχω παίξει δεν είχε πρόβλημα με το μειωμένο χρονισμό εκτός από το PAS-16. Η Media Vision's BBS δίνει το SYMPFIX.EXE το οποίο υποτίθεται ότι διορθώνει το πρόβλημα αντιστρέφοντας ένα bit που χρησιμοποιείται για διαγνωστικούς λόγους στον ελεγκτή διαύλου του Symphony, αλλά δεν είναι και σίγουρη εγγύηση. Μπορεί να χρειαστεί να :
Η Young Microsystems θα αναβαθμίσει τα boards που εισάγει για περίπου $30 (US). Άλλοι προμηθευτές μπορεί να κάνουν παρομοίως αν μπορούν να εντοπίσουν ποιος κατασκεύασε ή εισήγαγε τις μητρικές (καλή τύχη). Απ' ότι γνωρίζω το πρόβλημα είναι στο ProAudio's bus interface chip. Κανείς δεν αγοράζει μια κάρτα ήχου $120 και την κολλάει σε ένα 6MHz AT. Οι περισσότεροι παίζουν με 25-40MHz 386/486, και θα πρέπει λογικά να μπορούν να αντιμετωπίσουν ταχύτητες διαύλου των 12MHz αν τα τσιπάκια είναι σχεδιασμένα σωστά.
Το πρώτο πρόβλημα εξαρτάται από το chipset που χρησιμοποιεί το motherboard σας, την ταχύτητα διαύλου και άλλες ρυθμίσεις του BIOS, και την φάση του φεγγαριού. Το δεύτερο πρόβλημα εξαρτάται από την τιμή της επιλογής refresh (hidden ή synchronous), το ρυθμό του 1542 DMA και (πιθανώς) το ρυθμό του διαύλου I/O. Το τρίτο μπορεί να καθοριστεί επικοινωνώντας με την Media Vision και ρωτώντας ποια έκδοση του τσιπ Symphony δεν είναι συμβατό με τον αργή υλοποίησή τους. Σας προειδοποιώ, παρόλαυτα- 3 ή 4 τεχνικοί με τους οποίους μίλησα είχαν εγκεφαλικές βλάβες. Θα ήμουν φιλύποπτος σχετικά με ο,τιδήποτε πουν για κάποιου άλλου το hardware, μια που δεν ξέρουν καλά ούτε καν το δικό τους.
Λόγω περιορισμών hardware, αυτό δεν είναι δυνατό με τις περισσότερες κάρτες ήχου. Μερικές νεότερες κάρτες το υποστηρίζουν. Δείτε το τμήμα "bidirectional mode" στο Hacker's Guide to Voxware για περισσότερες πληροφορίες.
Στις μηχανές '286 και αργότερα, το interrupt IRQ 2 δίνεται στον δεύτερο interrupt controller. Ισοδυναμεί με το IRQ 9.
Παλιότερα, η Creative Labs δεν ήταν πρόθυμη να δημοσιοποιήσει πληροφορίες γι' αυτές τις κάρτες. Σήμερα έχουν αλλάξει πολιτική και o AWE driver περιλαμβάνεται στους Linux πυρήνες 2.1.x.
Αυτό συμβαίνει μετά από ένα soft reboot στο DOS. Μερικές φορές το μήνυμα
λάθους παραπλανητικά αναφέρεται σε κακό, λανθασμένο αρχείο CONFIG.SYS
.
Οι περισσότερες σύγχρονες κάρτες ήχου έχουν προγραμματιζόμενες από software ρυθμίσεις IRQ και DMA. Aν χρησιμοποιείτε διαφορετικές ρυθμίσεις μεταξύ Linux και MS-DOS/Windows, μπορεί να σας δημιουργήσει προβλήματα. Μερικές κάρτες ήχου δε δέχονται νέες παραμέτρους χωρίς πλήρη επανεκκίνηση (π.χ. κλείστε το ρεύμα ή χρησιμοποιήστε το κουμπί hardware reset).
Μια γρήγορη λύση σε αυτό το πρόβλημα είναι να κάνετε μια πλήρη επανεκκίνηση χρησιμοποιώντας το κουμπί reset ή το διακόπτη ρεύματος αντί μια μαλακή επανεκκίνηση (π.χ. Ctrl-Alt-Del).
H σωστή λύση είναι να βεβαιωθείτε ότι χρησιμοποιείτε τις ίδιες ρυθμίσεις IRQ και DMA και στο MS-DOS και στο Linux (ή μη χρησιμοποιήσετε DOS :-).
Οι χρήστες της μεταφοράς του παιχνιδιού DOOM της ID για Linux μπορεί να ενδιαφέρονται για τις παρακάτω σημειώσεις.
Για σωστή έξοδο ήχου χρειάζεστε το driver ήχου με έκδοση 2.90 ή νεότερη. Υποστηρίζει real-time "DOOM mode".
Τα δείγματα ήχου είναι 16-bit. Αν έχετε 8-bit κάρτα ήχου μπορείτε να την κάνετε να παίξει χρησιμοποιώντας τα διάφορα προγράμματα που είναι διαθέσιμα στο ftp://sunsite.unc.edu/pub/Linux/games/doom.
Αν η απόδοση στο DOOM είναι μικρή στο σύστημά σας, η απενεργοποίηση του ήχου
(αλλάζοντας το όνομα του αρχείου sndserver
) μπορεί να φέρει βελτίωση.
Από default το DOOM δεν υποστηρίζει ήχο (όπως στην έκδοση για DOS). Το
πρόγραμμα musserver
θα προσθέσει υποστήριξη για ήχο στο DOOM κάτω από Linux.
Θα το βρείτε στο url="ftp://pandora.st.hmc.edu/pub/linux/musserver.tgz">.
Χρησιμοποιώντας καλής ποιότητας μονωμένα καλώδια και δοκιμάζοντας την κάρτα ήχου σε διαφορετικά slots μπορεί να σας βοηθήσει στη μείωση του θορύβου. Αν η κάρτα ήχου έχει ρυθμιστή έντασης ήχου, μπορείτε να δοκιμάσετε διαφορετικές ρυθμίσεις (το μέγιστο είναι μάλλον το καλύτερο).
Χρησιμοποιώντας ένα πρόγραμμα μίξης μπορείτε να σιγουρευτείτε ότι οι ανεπιθύμητες είσοδοι (π.χ. μικρόφωνο) έχουν μηδενική ενίσχυση.
Μερικές κάρτες ήχου απλά δεν έχουν κατασκευαστεί με καλή μόνωση και γείωση και είναι επιρρεπείς σε θορύβους.
Τέλος, βρήκα ότι στο σύστημά μου η kernel command line option no-hlt
ελαττώνει
το θόρυβο. Αυτή η εντολή λέει στον πυρήνα να μη χρησιμοποιήσει την εντολή halt όταν τρέχει
το idle process loop. Μπορείτε να το δοκιμάσετε χειροκίνητα όταν ξεκινάτε το σύστημα, ή να
το θέσετε χρησιμοποιώντας την εντολή append="no-hlt"
στο αρχείο LILO configuration.
Αν μπορείτε να παίξετε ήχο αλλά όχι να ηχογραφήσετε, δοκιμάστε τα ακόλουθα βήματα:
Στις περισσότερες περιπτώσεις μια κάρτα "συμβατή με SoundBlaster" θα λειτουργεί καλύτερα κάτω από Linux αν ρυθμιστεί με ένα διαφορετικό driver από της SoundBlaster. Οι περισσότερες κάρτες ήχου ισχυρίζονται ότι είναι συμβατές (π.χ. "16 bit SB Pro compatible" ή "SB compatible 16 bit") αλλά συνήθως το SoundBlaster mode είναι απλά ένα "hack" που δίνεται για συμβατότητα με DOS παιχνίδια. Οι περισσότερες κάρτες έχουν 16 bit native mode το οποίο υποστηρίζεται πιθανά από πρόσφατης έκδοσης πυρήνες Linux (2.0.1 και μετά).
Μόνο με μερικές κάρτες (συνήθως παλιές) είναι απαραίτητο να δοκιμάσετε να δουλέψουν σε SoundBlaster mode. Οι μόνες νέες κάρτες που αποτελούν εξαίρεση σε αυτόν τον κανόνα είναι οι βασιζόμενες σε τσιπ Mwave.
Οι 16-bit κάρτες ήχου που περιγράφονται σα συμβατές με SoundBlaster είναι πραγματικά συμβατές μόνο με την 8-bit SoundBlaster Pro. Έχουν τυπικά ένα 16-bit mode που δεν είναι συμβατό με την SoundBlaster 16 και τον driver ήχου του Linux.
Μπορεί να κάνετε την κάρτα να δουλέψει σε 16-bit mode χρησιμοποιώντας το driver για MAD16 ή MSS/WSS.
Εδώ θα βρείτε μερικά καλά sites για να ψάξετε εφαρμογές για Linux ειδικά για ήχο:
Με τους πρόσφατους πυρήνες o driver ήχου υποστηρίζεται σαν kernel loadable module.
Διαβάστε τα αρχεία /usr/src/linux/drivers/sound/Readme.modules
και
/usr/src/linux/Documentation/modules.txt
(ή /usr/src/linux/README
) για περισσότερες λεπτομέρειες.
Δοκιμάστε το πρόγραμμα oplbeep
, θα το βρείτε στο
ftp://sunsite.unc.edu/pub/Linux/apps/sound/oplbeep-alpha.tar.gz
Άλλη επιλογή είναι το πρόγραμμα beep
, θα το βρείτε στο
url="ftp://sunsite.unc.edu/pub/Linux/kernel/patches/misc/modreq_beep.tgz">
Το πακέτο modutils
έχει ένα πρόγραμμα - παράδειγμα και ένα patch για τον
πυρήνα που υποστηρίζει την κλήση ενός τυχαίου εξωτερικού προγράμματος για την
παραγωγή ήχων αν ζητηθεί από τον πυρήνα.
Εναλλακτικά, με μερικές κάρτες ήχου μπορείτε να συνδέσετε την έξοδο των ηχείων του υπολογιστή στην κάρτα ήχου έτσι ώστε όλοι οι ήχοι να έρχονται από τα ηχεία της κάρτα ήχου.
;
Οι drivers ήχου του πυρήνα υποστηρίζουν αρκετά διαφορετικά λειτουργικά συστήματα Unix βασισμένα σε Intel, και μπορείτε να τα αποκτήσετε σαν ένα πακέτο διαφορετικό από τον πυρήνα του Linux. Μέχρι το Φεβρουάριο 1996 ο συγγραφέας είχε αποκαλέσει το λογισμικό "VoxWare". Δυστυχώς αυτό το όνομα έχει ήδη χρησιμοποιηθεί από τη VoxWare Incorporated, και πρέπει να υπάρξει άλλη ονομασία. Το νέο όνομα του driver είναι OSS/Free.
O Open Sound System (OSS) είναι ένας εμπορικά διαθέσιμος driver ήχου για τον πυρήνα διαφόρων συστημάτων Unix, και πωλείται από την 4Front Technologies. Η δωρεάν έκδοση, γνωστή ως OSS/Free θα συνεχίσει να διατίθεται δωρεάν για συστήματα Linux.
Άλλα ονόματα που μπορεί να συναντήσετε και έχουν χρησιμοποιηθεί στο παρελθόν για να αναφερθούν στον ίδιο driver ήχου είναι το TASD (Temporarily Anonymous Sound Driver) και USS (Unix Sound System).
Για περισσότερες πληροφορίες δείτε τη Web σελίδα της 4Front Technologies στο http://www.4front-tech.com/. Έχω γράψει ένα review του OSS/Linux στο τεύχος Ιουνίου 1997 του Linux Journal.
Πλήρης υποστήριξη για Plug and Play πρέπει να υπάρχει στην Linux έκδοση 2.1. Στο μεταξύ, υπάρχει πληθώρα παρακάμψεων, τεχνασμάτων για να κάνετε να δουλέψουν οι κάρτες ήχου Plug and Play. Aν έχετε ένα νέο Pentium σύστημα με Plug and Play BIOS, θα πρέπει να αναλάβει μόνο του να ρυθμίσει την κάρτα. Βεβαιωθείτε ότι έχετε ρυθμίσει τον Linux driver ήχου έτσι ώστε να χρησιμοποιεί την ίδια I/O διεύθυνση, τις παραμέτρους IRQ, και του καναλιού DMA όπως και το BIOS.
Υπάρχει ένα πακέτο με εργαλεία Plug and Play για Linux τα οποία μπορεί να χρησιμεύσουν στην εγκατάσταση της κάρτας. Μπορείτε να το βρείτε στο Web site της Red Hat στο http://www.redhat.com/ (μπορεί επίσης να συμπεριλαμβάνεται στη διανομή Linux που έχετε).
Αν χρησιμοποιείτε την κάρτα σε Windows95, μπορείτε να χρησιμοποιήσετε το device manager για να εγκαταστήσετε την κάρτα, μετά επανεκκινήστε με soft boot σε Linux χρησιμοποιώντας το πρόγραμμα LOADLIN. Σιγουρευτείτε ότι τα Windows95 και το Linux χρησιμοποιούν τις ίδιες παραμέτρους εγκατάστασης.
Αν χρησιμοποιείτε την κάρτα σε DOS, μπορείτε να χρησιμοποιήσετε το icu
utility
που έρχεται με τις κάρτες SoundBlaster16 PnP ώστε να τη ρυθμίσετε σε DOS,
μετά επανεκκινήστε με soft boot σε Linux χρησιμοποιώντας το πρόγραμμα LOADLIN.
Πάλι, σιγουρευτείτε ότι το DOS και το Linux χρησιμοποιούν τις ίδιες παραμέτρους εγκατάστασης.
Ο εμπορικός OSS driver ήχου υποστηρίζει την κάρτα ήχου SoundBlaster16 PnP. Μπορείτε να αγοράσετε τον driver από την 4Front Technologies.
Μια αλλαγή στον driver ήχου στην έκδοση 1.3.67 κρεμάει μερικά προγράμματα εκτέλεσης ήχων που (λανθασμένα) έλεγξαν πως το αποτέλεσμα της SNDCTL_DSP_GETBLKSIZE ioctl ήταν μεγαλύτερο από 4096. Τα προγράμματα αυτά που περιλαμβάνονται στο πρόσφατο πακέτο snd-util-3.x.tar.gz (στο ftp://ftp.4front-tech.com/ossfree.) τώρα πια το αντιμετωπίζουν σωστά. Η πιο πρόσφατη έκδοση driver ήχου έχει επίσης διορθωθεί ώστε να αποφεύγει να εκχωρεί κομμάτια μικρότερα από 4096 bytes πράγμα που λύνει το πρόβλημα με τις παλιές εκδόσεις αυτών των προγραμμάτων.
Έτσι. O driver ήχου υποστηρίζει πολλές διαφορετικές παραμέτρους ρύθμισης.
To πρόγραμμα configure
που περιλαμβάνεται με τον driver ήχου ελέγχει για πολλές εξαρτήσεις
(dependencies) μεταξύ παραμέτρων. Τα εργαλεία που χρησιμοποιούνται για τη ρύθμιση
του πυρήνα δεν υποστηρίζουν αυτό το επίπεδο λειτουργίας.
Τελικά: οι πρόσφατοι πυρήνες πράγματι επιτρέπουν κατ' επιλογή να χρησιμοποιούνται τα κλασσικά εργαλεία ρύθμισης του πυρήνα με τον driver ήχου (δείτε το προηγούμενο τμήμα στο "Σετάρισμα του πυρήνα".
Μπορείτε να φορτώσετε τον driver ήχου σα loadable module και να χρησιμοποιήσετε
τον kerneld
για να το φορτώνετε και να το ξεφορτώνετε αυτόματα. Αυτό μπορεί
να παρουσιάσει ένα πρόβλημα - κάθε φορά που φορτώνεται το module, οι
ρυθμίσεις του mixer επιστρέφουν στις default τιμές τους. Για μερικές
κάρτες ήχου αυτό μπορεί να είναι πολύ δυνατά(π.χ. SoundBlaster16) ή πολύ σιγά.
Ο Markus Gutschke ((gutschk@uni-muenster.de
) βρήκε αυτή τη λύση. Χρησιμοποιήστε μια γραμμή στο αρχείο
/etc/conf.modules
όπως η παρακάτω:
options sound dma_buffsize=65536 && /usr/bin/setmixer igain 0 ogain 0 vol 75
Αυτό προκαλεί την εκτέλεση του προγράμματος μίξης (σε αυτή την περίπτωση το setmixer) αμέσως μετά το φόρτωμα του driver ήχου. Η παράμετρος dma_buffsize είναι απλά μια εικονική (dummy) τιμή που χρειάζεται επειδή η εντολή option απαιτεί μια τιμή στη γραμμή εντολής. Αλλάξτε τη γραμμή όπως απαιτεί το πρόγραμμα mixer και οι τιμές ενίσχυσης/ευαισθησίας.
Αν έχετε κάνει compile τον driver ήχου στον πυρήνα και θέλετε να θέσετε τις τιμές του
mixer κατά την εκκίνηση μπορείτε να καλέσετε το mixer πρόγραμμα σε ένα αρχείο
που εκτελείται κατά την εκκίνηση του συστήματος όπως το /etc/rc.d/rc.local
.
Το script που δημιουργεί τα sound device files και βρίσκεται στο αρχείο Readme.linux,
από default επιτρέπει στα devices να διαβάζονται από τον root
. Αυτό συμβαίνει για να
αποφευχθεί μια πιθανή τρύπα ασφάλειας. Σε ένα δικτυακό περιβάλλον, εξωτερικοί χρήστες
θα μπορούσαν κακόβουλα να κάνουν log in απο μακριά σε ένα Linux PC με μια κάρτα ήχου και
μικρόφωνο και να κρυφακούσουν. Αν δεν ανησυχείτε για κάτι τέτοιο, μπορείτε να αλλάξετε
τα permissions που χρησιμοποιούνται στο script.
Με τη default εγκατάσταση, οι χρήστες μπορoύν να παίξουν αρχεία ήχου. Αυτό δεν αποτελεί κίνδυνο ασφάλειας αλλά είναι πιθανή πηγή ανοησιών.
Θα βρείτε πληροφορίες για το πώς να χρησιμοποιήσετε την κάρτα ήχου mwave σε ένα IBM ThinkPad laptop computer κάτω από Linux στο http://www.screamin.demon.co.uk/.