Next Previous Contents

5. Απαντήσεις σε Συχνά Διατυπωμένες Ερωτήσεις

Αυτό το τμήμα απαντά σε ερωτήσεις που γίνονται συχνά στα Usenet news groups και τις mailing lists.

Απαντήσεις σε περισσότερες ερωτήσεις θα βρείτε στη web σελίδα του OSS driver ήχου.

5.1 Τι είναι τα sound device files;

Αυτά είναι πιο "στάνταρ" ονόματα των device files, μερικές διανομές Linux μπορεί να χρησιμοποιήσουν λίγο διαφορετικά ονόματα.

/dev/audio

κανονικά ένα link στο /dev/audio0

/dev/audio0

audio device συμβατό με Sun workstation (μερική μόνο υλοποίηση, δεν υποστηρίζει Sun ioctl interface, μόνο κωδικοποίηση u-law)

/dev/audio1

δεύτερο audio device (αν υποστηρίζεται από την κάρτα ήχου ή αν έχουν εγκαταστηθεί περισσότερες από μία κάρτες ήχου)

/dev/dsp

κανονικά ένα link στο /dev/dsp0

/dev/dsp0

πρώτη συσκευή ψηφιακής δειγματοληψίας (digital sampling)

/dev/dsp1

δεύτερη συσκευή ψηφιακής δειγματοληψίας (digital sampling)

/dev/mixer

κανονικά ένα link στο /dev/mixer0

/dev/mixer0

πρώτος μίκτης (mixer) ήχου

/dev/mixer1

δεύτερο μίκτης (mixer) ήχου

/dev/music

high-level sequencer interface

/dev/sequencer

low level MIDI, FM, και GUS access

/dev/sequencer2/

κανονικά ένα link στο /dev/music

/dev/midi00

πρώτη θύρα raw MIDΙ

/dev/midi01

δεύτερη θύρα MIDI

/dev/midi02

τρίτη θύρα MIDI

/dev/midi03

τέταρτη θύρα MIDI

/dev/sndstat

εμφανίζει την κατάσταση του driver ήχου όταν διαβαστεί

Ο PC speaker driver παρέχει τα παρακάτω devices :

/dev/pcaudio

ισοδύναμο με το /dev/audio

/dev/pcsp

ισοδύναμο με το /dev/dsp

/dev/pcmixer

ισοδύναμο με το /dev/mixer

5.2 Πώς μπορώ να παίξω έναν ήχο ;

Τα 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.

5.3 Πώς μπορώ να ηχογραφήσω έναν ήχο ;

Αν διαβάσετε το /dev/audio ή το /dev/dsp θα σας επιστρέψει sampled data τα οποία μπορούν να σταλούν σε ένα αρχείο. Ένα πρόγραμμα σαν το vrec κάνει ευκολότερο τον έλεγχο του ρυθμού δειγματοληψίας, της διάρκειας, κλπ. Μπορεί να χρειαστείτε επίσης ένα πρόγραμμα μίκτη (mixer) για να επιλέγετε την κατάλληλη συσκευή εισόδου.

5.4 Μπορώ να έχω περισσότερες από μία κάρτες ;

Με τον τρέχ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:

5.5 Error: No such file or directory for sound devices

Χρειάζεται να δημιουργήσετε τα device files του driver ήχου. Δείτε το τμήμα σχετικά με τη δημιουργία device files. Αν έχετε device files, σιγουρευτείτε ότι έχουν το σωστό μέγιστο και ελάχιστο αριθμό συσκευής (device) (μερικές παλιότερες διανομές CD-ROM Linux μπορεί να μη δημιουργούν τα σωστά device files κατά την εγκατάσταση).

5.6 Error: No such device for sound devices

Δεν έχετε ξεκινήσει με πυρήνα που περιέχει τον driver ήχου ή η ρύθμιση της I/O διεύθυνσης δεν ταιριάζει με το hardware. Ελέγξτε ότι τρέχετε τον πυρήνα που μόλις κάνατε compile και επιβεβαιώστε ότι οι ρυθμίσεις που δώσατε κατά τη ρύθμιση του driver ήχου συμφωνούν με το hardware setup.

5.7 Error: No space left on device for sound devices

Αυτό μπορεί να συμβεί αν προσπαθήσατε να ηχογραφήσετε ήχο στο /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);
}

5.8 Error: Device busy for sound devices

Μόνο μία διαδικασία μπορεί να ανοίξει μία δοσμένη συσκευή ήχου την ίδια στιγμή. Πολύ πιθανά μερικές άλλες διεργασίες χρησιμοποιούν τη συσκευή για την οποία γίνεται λόγος. Ένας τρόπος να βεβαιωθείτε είναι να χρησιμοποιήσετε την εντολή fuser :

% fuser -v /dev/dsp
/dev/dsp:             USER       PID ACCESS COMMAND
                      tranter    265 f....  tracker

Στο παραπάνω παράδειγμα, η εντολή fuser έδειξε ότι η διαδικασία (process) 265 είχε τη συσκευή ανοικτή. Αν περιμένετε τη διαδικασία να ολοκληρωθεί ή τη σκοτώσετε θα μπορείτε μετά να έχετε ξανά πρόσβαση στη συσκευή ήχου. Θα πρέπει να τρέξετε την εντολή fuser σα root έτσι ώστε να αναφέρεται η χρήση και από άλλους χρήστες εκτός από εσάς.

5.9 Εξακολουθώ να βλέπω device busy errors!

Σύμφωνα με τον 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 ήχου θα μπορούν να συνυπάρχουν.

5.10 Μερική εκτέλεση του (Partial playback) ψηφιοποιημένου ήχου

Το σύμπτωμα είναι συνήθως ότι ένα δείγμα ήχου (sound sample) παίζει περίπου για ένα δευτερόλεπτο και μετά σταματά τελείως ή αναφέρει κάπoιο μήνυμα λάθους όπως "missing IRQ" ή "DMA timeout". Πολύ πιθανά δεν έχετε σωστές ρυθμίσεις IRQ ή στο κανάλι DMA. Βεβαιωθείτε ότι οι ρυθμίσεις του πυρήνα συμφωνούν με τα jumper settings της κάρτας ήχου και ότι δε δημιουργείται κάποιο conflict με άλλη κάρτα.

Άλλο σύμπτωμα είναι δείγματα ήχου (sound samples) που επαναλαμβάνονται συνέχεια ("loop"). Αυτό συνήθως οφείλεται σε IRQ conflict.

5.11 Υπάρχουν διακοπές όταν παίζω MOD αρχεία

Για να παίξετε αρχεία MOD files απαιτείται σημαντική CPU power. Μπορεί να τρέχετε πολλές διαδικασίες ή ο υπολογιστής σας να είναι πολύ αργός για να παίξει σε πραγματικό χρόνο (real time). Οι επιλογές που έχτε είναι :

Αν έχετε κάρτα Gravis UltraSound, θα πρέπει να χρησιμοποιείτε έναν από τους mod file players που έχουν γραφτεί ειδικά για κάρτες GUS (π.χ. gmod).

5.12 Λάθη compile κατά το compilation εφαρμογών ήχου

Η έκδοση 1.0c και παλιότερες του driver ήχου χρησιμοποιούσαν ένα διαφορετικό και ασύμβατο ioctl() σχήμα. Αποκτήστε ένα πιο πρόσφατο πηγαίο κώδικα ή κάντε τις απαραίτητες αλλαγές και προσαρμόστε τις στο νέο driver ήχου. Δείτε toReadme αρχείο του driver ήχου για περισσότερες λεπτομέρειες.

Επίσης σιγουρευτείτε ότι χρησιμοποιήσατε την πιο πρόσφατη έκδοση του soundcard.h και ultrasound.h όταν κάνατε compile την εφαρμογή. Δείτε τις οδηγίες εγκατάστασης στην αρχή αυτού του κειμένου.

5.13 SEGV όταν τρέχω εκτελέσιμα αρχεία ήχου τα οποία δούλευαν παλιότερα

Αυτό το πρόβλημα είναι πιθανώς το ίδιο με αυτό που περιγράψαμε στην προηγούμενη ερώτηση.

5.14 Ποια bugs ή περιορισμοί είναι μέχρι τώρα γνωστά στους drivers ήχου;

Δείτε το αρχείο Readme και τα αρχεία CHANGELOG που περιλαμβάνονται στον πηγαίο κώδικα του driver ήχου.

5.15 Πού βρίσκεται η τεκμηρίωση των sound driver ioctls() κλπ. ;

Αυτά έχουν τεκμηριωθεί μερικά στο 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, το οποίο περιγράφεται στο τμήμα "Παραπομπών".

5.16 Τι CPU resources απαιτούνται ώστε να παίζω ή να ηχογραφώ ήχους χωρίς διακοπές;

Δεν υπάρχει απάντηση σε αυτή την ερώτηση, καθώς εξαρτάται από το:

Γενικά, οποιαδήποτε μηχανή 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 του πυρήνα από μόνος του δεν κάνει υπολογισμούς κινητής υποδιαστολής.

5.17 Προβλήματα με τον PAS16 και τον Adaptec 1542 SCSI host adaptor

(η παρακάτω εξήγηση δόθηκε από το 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, μια που δεν ξέρουν καλά ούτε καν το δικό τους.

5.18 Είναι δυνατό να διαβάζω και να γράφω δείγματα (samples) ταυτόχρονα;

Λόγω περιορισμών hardware, αυτό δεν είναι δυνατό με τις περισσότερες κάρτες ήχου. Μερικές νεότερες κάρτες το υποστηρίζουν. Δείτε το τμήμα "bidirectional mode" στο Hacker's Guide to Voxware για περισσότερες πληροφορίες.

5.19 Η SB16 μου έχει IRQ 2, αλλά το configure δεν επιτρέπει αυτή την τιμή

Στις μηχανές '286 και αργότερα, το interrupt IRQ 2 δίνεται στον δεύτερο interrupt controller. Ισοδυναμεί με το IRQ 9.

5.20 Υποστηρίζεται η "SoundBlaster AWE32" ή η "SoundBlaster16 ASP";

Παλιότερα, η Creative Labs δεν ήταν πρόθυμη να δημοσιοποιήσει πληροφορίες γι' αυτές τις κάρτες. Σήμερα έχουν αλλάξει πολιτική και o AWE driver περιλαμβάνεται στους Linux πυρήνες 2.1.x.

5.21 Αν τρέξω Linux και μετά ξεκινήσω με DOS, παίρνω λάθη και/ή οι εφαρμογές ήχου που έχω δεν δουλεύουν σωστά

Αυτό συμβαίνει μετά από ένα 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 :-).

5.22 Προβλήματα με το DOOM κάτω από Linux

Οι χρήστες της μεταφοράς του παιχνιδιού 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">.

5.23 Πώς μπορώ να μειώσω το θόρυβο που κάνει η κάρτα ήχου μου;

Χρησιμοποιώντας καλής ποιότητας μονωμένα καλώδια και δοκιμάζοντας την κάρτα ήχου σε διαφορετικά slots μπορεί να σας βοηθήσει στη μείωση του θορύβου. Αν η κάρτα ήχου έχει ρυθμιστή έντασης ήχου, μπορείτε να δοκιμάσετε διαφορετικές ρυθμίσεις (το μέγιστο είναι μάλλον το καλύτερο).

Χρησιμοποιώντας ένα πρόγραμμα μίξης μπορείτε να σιγουρευτείτε ότι οι ανεπιθύμητες είσοδοι (π.χ. μικρόφωνο) έχουν μηδενική ενίσχυση.

Μερικές κάρτες ήχου απλά δεν έχουν κατασκευαστεί με καλή μόνωση και γείωση και είναι επιρρεπείς σε θορύβους.

Τέλος, βρήκα ότι στο σύστημά μου η kernel command line option no-hlt ελαττώνει το θόρυβο. Αυτή η εντολή λέει στον πυρήνα να μη χρησιμοποιήσει την εντολή halt όταν τρέχει το idle process loop. Μπορείτε να το δοκιμάσετε χειροκίνητα όταν ξεκινάτε το σύστημα, ή να το θέσετε χρησιμοποιώντας την εντολή append="no-hlt" στο αρχείο LILO configuration.

5.24 Μπορώ να παίξω ήχους, αλλά όχι να ηχογραφήσω

Αν μπορείτε να παίξετε ήχο αλλά όχι να ηχογραφήσετε, δοκιμάστε τα ακόλουθα βήματα:

5.25 Η "συμβατή" κάρτα ήχου μου δουλεύει μόνο αν την αρχικοποιήσω πρώτα στο MS-DOS.

Στις περισσότερες περιπτώσεις μια κάρτα "συμβατή με 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.

5.26 Η κάρτα ήχου μου, η οποία είναι συμβατή με την 16-bit SoundBlaster, δουλεύει μόνο σε 8-bit mode κάτω από Linux.

Οι 16-bit κάρτες ήχου που περιγράφονται σα συμβατές με SoundBlaster είναι πραγματικά συμβατές μόνο με την 8-bit SoundBlaster Pro. Έχουν τυπικά ένα 16-bit mode που δεν είναι συμβατό με την SoundBlaster 16 και τον driver ήχου του Linux.

Μπορεί να κάνετε την κάρτα να δουλέψει σε 16-bit mode χρησιμοποιώντας το driver για MAD16 ή MSS/WSS.

5.27 Πού μπορώ να βρω εφαρμογές ήχου για Linux ;

Εδώ θα βρείτε μερικά καλά sites για να ψάξετε εφαρμογές για Linux ειδικά για ήχο:

5.28 Μπορώ να κάνω compile το driver της κάρτας ήχου ώστε να φορτώνεται σα module;

Με τους πρόσφατους πυρήνες o driver ήχου υποστηρίζεται σαν kernel loadable module.

Διαβάστε τα αρχεία /usr/src/linux/drivers/sound/Readme.modules και /usr/src/linux/Documentation/modules.txt/usr/src/linux/README) για περισσότερες λεπτομέρειες.

5.29 Μπορώ να χρησιμοποιήσω την κάρτα ήχου για να αντικαταστήσω το μπιπ της κονσόλας του συστήματος;

Δοκιμάστε το πρόγραμμα 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 για τον πυρήνα που υποστηρίζει την κλήση ενός τυχαίου εξωτερικού προγράμματος για την παραγωγή ήχων αν ζητηθεί από τον πυρήνα.

Εναλλακτικά, με μερικές κάρτες ήχου μπορείτε να συνδέσετε την έξοδο των ηχείων του υπολογιστή στην κάρτα ήχου έτσι ώστε όλοι οι ήχοι να έρχονται από τα ηχεία της κάρτα ήχου.

5.30 Tι είναι το VoxWare

;

Οι 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.

5.31 Υποστηρίζονται Plug and Play κάρτες ήχου;

Πλήρης υποστήριξη για 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.

5.32 Το Sox/Play/Vplay βγάζει μήνυμα "invalid block size 1024"

Μια αλλαγή στον driver ήχου στην έκδοση 1.3.67 κρεμάει μερικά προγράμματα εκτέλεσης ήχων που (λανθασμένα) έλεγξαν πως το αποτέλεσμα της SNDCTL_DSP_GETBLKSIZE ioctl ήταν μεγαλύτερο από 4096. Τα προγράμματα αυτά που περιλαμβάνονται στο πρόσφατο πακέτο snd-util-3.x.tar.gz (στο ftp://ftp.4front-tech.com/ossfree.) τώρα πια το αντιμετωπίζουν σωστά. Η πιο πρόσφατη έκδοση driver ήχου έχει επίσης διορθωθεί ώστε να αποφεύγει να εκχωρεί κομμάτια μικρότερα από 4096 bytes πράγμα που λύνει το πρόβλημα με τις παλιές εκδόσεις αυτών των προγραμμάτων.

5.33 Γιατί ο driver ήχου έχει το δικό του πρόγραμμα για σετάρισμα;>

Έτσι. O driver ήχου υποστηρίζει πολλές διαφορετικές παραμέτρους ρύθμισης. To πρόγραμμα configure που περιλαμβάνεται με τον driver ήχου ελέγχει για πολλές εξαρτήσεις (dependencies) μεταξύ παραμέτρων. Τα εργαλεία που χρησιμοποιούνται για τη ρύθμιση του πυρήνα δεν υποστηρίζουν αυτό το επίπεδο λειτουργίας.

Τελικά: οι πρόσφατοι πυρήνες πράγματι επιτρέπουν κατ' επιλογή να χρησιμοποιούνται τα κλασσικά εργαλεία ρύθμισης του πυρήνα με τον driver ήχου (δείτε το προηγούμενο τμήμα στο "Σετάρισμα του πυρήνα".

5.34 Οι ρυθμίσεις του mixer αρχικοποιούνται κάθε φορά που φορτώνω το module του 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.

5.35 Μόνο ο χρήστης root μπορεί να ηχογραφήσει ήχο

Το script που δημιουργεί τα sound device files και βρίσκεται στο αρχείο Readme.linux, από default επιτρέπει στα devices να διαβάζονται από τον root. Αυτό συμβαίνει για να αποφευχθεί μια πιθανή τρύπα ασφάλειας. Σε ένα δικτυακό περιβάλλον, εξωτερικοί χρήστες θα μπορούσαν κακόβουλα να κάνουν log in απο μακριά σε ένα Linux PC με μια κάρτα ήχου και μικρόφωνο και να κρυφακούσουν. Αν δεν ανησυχείτε για κάτι τέτοιο, μπορείτε να αλλάξετε τα permissions που χρησιμοποιούνται στο script.

Με τη default εγκατάσταση, οι χρήστες μπορoύν να παίξουν αρχεία ήχου. Αυτό δεν αποτελεί κίνδυνο ασφάλειας αλλά είναι πιθανή πηγή ανοησιών.

5.36 Υποστηρίζεται ήχος στο IBM ThinkPad;

Θα βρείτε πληροφορίες για το πώς να χρησιμοποιήσετε την κάρτα ήχου mwave σε ένα IBM ThinkPad laptop computer κάτω από Linux στο http://www.screamin.demon.co.uk/.


Next Previous Contents