Gentoo Logo

Gentoo Linux ALSA Guide

Indhold:

1.  Den avancerede Linux lyd-arkitektur

Hvad er ALSA?

ALSA betyder Advanced Linux Sound Architecture, et projekt dedikeret til at udvikle et høj kvalitets Linux lyd-undersystem. Det har udskiftet Open Sound System (OSS), som standard lyd-systemet i 2.6-kernen.

ALSA understøtter alle typer af audio-grænseflader, det er fuldt modulariseret, er SMP- og thread-sikkert og leverer et højkvalitets brugerrumsbibliotek kaldet alsa-lib for at gøre applikationsprogrammering enklere. Det leverer også bagudrettet kompatibilitet til OSS.

ALSA på Gentoo

En af Gentoo's store styrker består i at give brugeren maksimal kontrol med, hvordan et system er installeret og konfigureret. ALSA på Gentoo følger det samme princip. Der er to måder at få ALSA understøttelse til at virke på. Vi ser nærmere på dem begge i næste kapitel.

2.  Installation af ALSA

Valgmuligheder

Advarsel: De nedenfor viste metoder udelukker hinanden. Du kan ikke både have ALSA kompileret ind i kernen og bruge media-sound/alsa-driver. It will gå galt.

De to muligheder er:

  1. Brug ALSA som det leveres af din kerne. Dette er den foretrukne / anbefalede metode.
  2. Brug Gentoo's media-sound/alsa-driver pakke.

Vi tager et kig på dem begge før vi i sidste ende træffer en afgørelse.

Hvis du vælger ALSA som din kerne leverer det, så har det følgende fordele og ulemper:

Kernel ALSA Fordele og ulemper
+ Rimeligt stabil da driverne er en integreret del af kernen.
+ Een operation, du skal ikke gentagne gang køre emerge.
- Kan være lidt ældre end alsa-driver.

Og, hvis du vælger alsa-driver:

alsa-driver Fordele og ulemper
+ De sidste nye drivere fra ALSA projektet.
- Hver gang du kompilerer kernen skal du også køre emerge alsa-driver.
- Har brug for at visse kerne-optioner er dektiveret for at det fungerer korrekt.

Såhh ...

Den afgørende forskel mellem alsa-driver og ALSA som bliveret med kernen er at alsa-driver generelt er lidt mere aktuel end kerne-versionen. Eftersom det normalt har nogen stor betydning så bør du bruge ALSA i kernen af hensyn til den enkle ibrugtagning. Før du rapporterer nogen lyd-relatere problemer til Gentoo Bugzilla, så prøv at genskabe dem med alsa-driver og send fejl rapporten lige gyldig hvad den test giver af resultat.

Før du fortsætter

Ligegyldigt hvilken metode du i sidste ende vælger, så er du nødt til at vide, hvilke drivere dit lydkort er afhængigt af. Nutildags er lydkort (både onboard og tilkøbte) PCI-baseret og lspci kan hjælpe dig med at fiske de rigtige informationer frem. Kør derfor emerge sys-apps/pciutils for at installere lspci hvis du ikke allerede har det installeret. Hvis du har et USB lydkort, så udfør lsusb fra pakken sys-apps/usbutils, det kan måske hjælpe. Ved ISA kort kan du prøve sys-apps/isapnptools. De efterfølgende websider kan måske også hjælpe dig hvis du har et ISA-lydkort.

Bemærk: For ikke at gøre denne guide for uoverskuelig vil vi fremover antage at du har et PCI-baseret lydkort.

Lad os finde nærmere detaljer om dit kort.

Kode oversigt 2.1: Lydkort detaljer

# lspci -v | grep -i audio
0000:00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 06)

Nu ved vi at lydkortet i computeren er et Sound Blaster Live! og at det er produceret af Creative Labs. Gå over på ALSA Lydkort listen og vælg Creative Labs fra foldemenuen. Du vil blive sendt videre til deres sektion på siden hvor du se at SB Live! bruger emu10k1 modulet. Det er alt hvad vi behøver vide lige nu. Hvis du er interesseret i mere detaljerede informationer, kan du klikke på linket ved siden af "Details" for at komme til emu10k1-siden.

ALSA leveret af din kerne

Hvis du ligesom jeg godt kan lide at holde tingene enkle, så er det her vejen frem.

Bemærk: Siden 2005.0-udgaven har Gentoo Linux som standard benyttet kerne 2.6. Medmindre du specifikt vælger 2.4 profilen, så vil gentoo-sources være en 2.6 kerne på de fleste arkitekturer. Undersøg for en god ordens skyld om din kerne er version 2.6. Denne metode fungerer ikke på version 2.4.

Lad os konfigurere kernen for aktivere ALSA.

Vigtigt: genkernel brugere bør nu udføre genkernel --menuconfig all og følge instruktionerne på Kerne optioner til ALSA.

Kode oversigt 2.2: Konfiguration af kernen

# cd /usr/src/linux
# make menuconfig

Bemærk: Eksemplet ovenfor forudsætter at /usr/src/linux symlink'en peger på de kerne-kilder som du vil benytte. Kontroller dette før du fortsætter.

Lad os se på nogle af de valgmuligheder vi skal aktivere i version 2.6 kernen for at garantere fornuftig ALSA understøttelse for dit lydkort.

Vær opmærksom på at vi af hensyn til simpliciteten sætter alle ALSA modulerne op som moduler. Det kan kun anbefales at gøre det samme, da det tillader brugen af alsaconf hvilket er meget nyttigt til konfigurationen af dit kort. Vær venlig, ikke at springe over konfigurationsafsnittet i dette dokument. Hvis du stadig foretrækker at have optionerne kompileret fast ind, så vær du sikker på at ændrer konfigurationen derefter.

Kode oversigt 2.3: Kerne optioner til ALSA

Device Drivers  --->
Sound  --->

(Den skal aktiveres.)
<M> Sound card support

(Forvis dig om at OSS er deaktiveret.)
Open Sound System   --->
< > Open Sound System (DEPRECATED)

(Hop et trin tilbage og aktiver ALSA.)
Advanced Linux Sound Architecture  --->
<M> Advanced Linux Sound Architecture
(Vælg dette hvis du vil have MIDI sequencing og routing.)
<M> Sequencer support
(Understøttelse for gammeldags /dev/mixer* og /dev/dsp* enheder. Anbefales.)
<M> OSS Mixer API
<M> OSS PCM (digital audio) API 

(Du kan nu vælge mellem flere enheder som du vil aktivere understøttelse
for. Generelt har en computer kun een type lydkort. Hvis du mere end et, så aktiver
dem alle her.)

(Hovedsagligt til test- og udviklingsformål, normalt ikke nødvendigt
medmindre du ved, hvad du har gang i.)
Generic devices  --->

(For ISA lydkort)
ISA devices   --->
(HVIS du har et Gravis, så ville du aktivere dette)
<M> Gravis UltraSound Extreme

(Hop et niveau tilbage og ind i PCI-afsnittet. De fleste lydkort nutildags
er PCI enheder.)
PCI devices   --->
(Her vælger vi emu10k1 driveren til vores kort.)
<M> Emu10k1 (SB Live!, Audigy, E-mu APS)
(Eller et Intel kort, hvis du har et.)
<M> Intel/SiS/nVidia/AMD/ALi AC97 Controller
(Eller hvis du har et VIA-chipsæt med indbygget lyd.)
<M> VIA 82C686A/B, 8233/8235 AC97 Controller

(Hop et niveau tilbage og herind hvis du har et USB lydkort.)
USB Devices   --->

Nu hvor dine optioner er valgt, kan du (gen)kompilere din kerne og du vil have ALSA understøttelse såsnart du genstarter med din nye kerne. Glem ikke at opdatere din GRUB opsætning for at bruge den nye kerne. Du kan nu fortsætte til ALSA Utilities og se om alt virker som det skal.

ALSA driver pakken

Okay. Så du har valgt at bruge alsa-driver. Så lad os da komme igang. Der er lige nogle små ting der skal ordnes før driverne bliver kompileret. Også selvom det i bund og grund ikke er nødvendigt, så skærer det ned på mængden af drivere der bliver kompileret.

Hvis du ikke ved hvilke drivere dit lydkort har brug for, så kig på lspci afsnittet i i denne guide. Såsnart du ved hvilken driver du har brug for (emu10k1 i vores eksempel), så skal du redigere /etc/make.conf og tilføjer variable ALSA_CARDS.

Kode oversigt 2.4: ALSA_CARDS tilføjes til make.conf

(Ved et lydkort)
ALSA_CARDS="emu10k1"
(Ved mere end eet adskilles navnene med mellemrum)
ALSA_CARDS="emu10k1 via82xx"

Hvis du har kompileret den kerne og vil benyttet alsa-driver, så undersøg dette før du fortsætter, ellers vil alsa-driver med stor sandsynlighed slå fejl. I det næste kode-ekstrakt kan du se en måde at foretage undersøgelserne på.

Bemærk: genkernel brugere kan fortsætte med Installation af alsa-driver da deres konfiguration er identisk med den nedenstående.

  1. CONFIG_SOUND er aktiveret. (Basal lydunderstøttelse er aktiveret.)
  2. CONFIG_SOUND_PRIME er ikke aktiveret. (Indbygget OSS understøttelse er deaktiveret.)
  3. CONFIG_SND er ikke aktiveret. (Indbygget ALSA understøttelse er deaktiveret.)
  4. /usr/src/linux peger på den kerne som du vil kompilere ALSA til.

Kode oversigt 2.5: .config undersøgelse

(Vi antager at linux-symlinket peger på den rette kerne.)
# cd /usr/src/linux
# grep SOUND .config
(nr. 1 er sand)
CONFIG_SOUND=y
(nr. 2 er sand)
CONFIG_SOUND_PRIME is not set
# grep SND .config
(og nr. 3 er sand)
CONFIG_SND is not set

Nu skal du kun taste de magiske ord - og nej, de er ikke abrakadabra.

Kode oversigt 2.6: Installation af alsa-driver

# emerge alsa-driver

Vigtigt: Vær opmærksom på at du skal udføre emerge alsa-driver hver gang du har (gen)kompileret en kern, eftersom de tidligere moduler bliver slettet.

3.  Konfiguration/Test af ALSA

ALSA Utilities

alsa-utils er en vigtig del af ALSA da den har masser af nyttige programmer, inklusive ALSA opstartscriptene. Derfor kan vi på det varmeste anbefale at du installerer alsa-utils

Kode oversigt 3.1: Installation af alsa-utils

# emerge alsa-utils

Bemærk: Hvis du aktiverede ALSA i din kerne og ikke kompilerede ALSA som moduler, så fortsæt venligst med ALSA Opstartscript afsnittet. I alle andre tilfælde skal du først konfigurere ALSA. Det er meget enkelt, takket være alsaconf-programmet fra alsa-utils-pakken.

Konfiguration

Bemærk: Luk alle programmer der kunne finde på at bruge lydkortet mens du udfører alsaconf.

Den nemmeste måde at konfigurere dit lydkort på er ved at udføre alsaconf. Start blot alsaconf i en kommandoprompt som root.

Kode oversigt 3.2: Udførsel af alsaconf

# alsaconf

Du vil nu bliver præsenteret med et fikst menustyret program som automatisk vil undersøge dine enheder og prøve at finde dit lydkort. Du vil blive bedt om at vælge dit lydkort fra en liste. Såsnart det er gjort vil programmet spørge om tilladelse til automatisk at foretage de nødvendige ændringer i /etc/modules.d/alsa. Derefter vil det justere din lydstyrke til optimale niveauer, udføre modules-update og starte /etc/init.d/alsasound servicen. Efter alsaconf er færdig kan du fortsætte med at konfigurere ALSA opstartscriptet.

ALSA Opstartscript

På dette tidspunkt er du næsten færdig. Ligegyldigt hvilken metode du har valgt for at installere ALSA, så er du nødt til, på en eller anden måde at lade alle dine moduler eller starte ALSA og gendanne lydstyrke-indstillingerne når du tænder computeren. ALSA opstartscriptet tager sig af alt dette og hedder alsasound. Tilføj til boot runlevel'en.

Kode oversigt 3.3: Tilføjelse af ALSA til boot runlevel'en

# rc-update add alsasound boot
* alsasound added to runlevel boot
* rc-update complete.

Kontroller derpå /etc/conf.d/alsasound filen og forvis dig om at SAVE_ON_STOP variablen er sat til "yes". Den indikerer at lydstyrken skal gemmes når du slukker computeren.

Audio gruppen

Før vi kan foretage nogle tests er der en sidste vigtig ting der skal indstilles. En god tommelfingerregel i *nix operativsystemer hedder: Brug ikke root brugeren medmindre det er nødvendigt. Det gælder også i denne situation. Hvordan? Normalt bør du være logget på som en normal bruger og vil lytte til musik eller på anden vis bruge dit lydkort. For at det skal kunne lade sig gøre, er du nødt til at være medlem af gruppen "audio". Vi vil derfor tilføje nogle brugere til denne gruppe, så de ikke får problemer med at benytte lyd-enheder. Vi benytter gpasswd og du skal være logget ind som root for at kunne gøre det.

Kode oversigt 3.4: Tilføjelse af brugere til audio gruppen

(Erstat <username> med din bruger)
# gpasswd -a <username> audio 
Adding user <username> to group audio

Volume Check!

We har foretaget alle indstillinger og opfyldt alle betingelser, så lad os starte ALSA. Hvis du udfører alsaconf, kan du springe dette afsnit over, eftersom alsaconf allerede gør alt for dig.

Kode oversigt 3.5: Start servicerne

(ALSA som moduler)
# /etc/init.d/alsasound start
* Loading ALSA modules ...
* Loading: snd-card-0 ...        [ ok ]
* Loading: snd-pcm-oss ...       [ ok ]
* Loading: snd-seq ...           [ ok ]
* Loading: snd-emu10k1-synth ... [ ok ]
* Loading: snd-seq-midi ...      [ ok ]
* Restoring Mixer Levels ...     [ ok ]
(ALSA fast kompileret i kernen)
# /etc/init.d/alsasound start
* Loading ALSA modules ...
* Restoring Mixer Levels ...     [ ok ]

Nu da alle de nødvendige ting er gjort, skal vi undersøge lydstyrken, da den i nogle tilfælde er helt i bund eller kanalen er stum. Vi benytter alsamixer til det formål.

Kode oversigt 3.6: Opstart af alsamixer

(Starter et konsol program. Kun de nødvendige indstillinger bliver vist.)
# alsamixer

Vigtigt: Hvis du får problemer med at starte alsamixer og får fejl såsom "alsamixer: function snd_ctl_open failed for default: No such file or directory.", så hænger det typisk sammen med en problem med udev som konfigurerer enhederne. Udfør killall udevd; udevstart for at indlæse /dev enhederne påny og start alsamixer. Det burde løse problemerne.

Sådan kan ALSA Mixer se ud første gang du starter den. Læg mærke til Master og PCM kanalerne som begge har "MM" stående i bunden. Det betyder at de begge er stumme (muted). Hvis du forsøger at afspille noget med alsamixer på den måde, vil du ikke høre noget.


Figur 3.1: Alsa Mixer hovedvinduet, stumt

Fig. 1: AlsaMixer Muted

Lad os tænde for de kanaler og indstille lydstyrken sådan som vi vil have den.

Advarsel: Både Master og PCM skal være tændt og sat til hørbare lydstyrker for at du kan høre noget.

  • For at bevæge dig mellem kanalerne kan du bruge venstre og højre pileknap. (<- og ->)
  • Gå hen på kanalen du vil tænde og tryk på m på tastaturet.
  • For at hæve og sænke lydstyrken skal du trykke på pil op og ned knapperne.

Bemærk: Vær forsigtig når du indstiller Bass og Treble værdierne. 50 er normalt en god værdi for dem begge. Særdeles høje værdier på Bass kanalen kan medføre kraftig forvrængning som højttalerne ikke er beregnet til at kunne klare.

Når alt det er gjort så skulle din ALSA Mixer se nogenlunder sådan ud. Læg mærke til at der står 00 istedet for MM og at lydstyrken er sat på et optimalt niveau.


Figur 3.2: Alsa Mixer klar til arbejde

Fig. 2: AlsaMixer Unmuted

Sound Check!

Endelig. Musik. Hvis alt andet er gået godt, skulle du nu kunne lytte til noget musik. En hurtig måde at teste det på er med et konsolprogram som media-sound/madplay. Du kan også bruge et af de mere kendte såsom mpg123 eller xmms. Hvis du er ogg fann kan du bruge ogg123 som stilles til rådighed af media-sound/vorbis-tools. Brug den afspiller du bedst kan lide. Som altid er emerge din ven.

Kode oversigt 3.7: Hente softwaren

(Installer de programmer du vil bruge)
# emerge madplay mpg123 xmms
(For at afspille .ogg filer)
# emerge vorbis-tools

Og afspil så dit yndlingsnummer ...

Kode oversigt 3.8: Afspilning af noget musik

# madplay -v /mnt/shyam/Music/Paul\ Oakenfold\ -\ Dread\ Rock.mp3
MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
Title: Dread Rock
Artist: Paul Oakenfold
Album: Matrix Reloaded
Year: 2003
Genre: Soundtrack
Soundtrack
00:04:19 Layer III, 160 kbps, 44100 Hz, joint stereo (MS), no CRC

# ogg123 Paul\ Oakenfold\ -\ Dread\ Rock.ogg
Audio Device:   Advanced Linux Sound Architecture (ALSA) output

Playing: Paul Oakenfold - Dread Rock.ogg
Ogg Vorbis stream: 2 channel, 44100 Hz
Genre: Soundtrack
Transcoded: mp3;160
Title: Dread Rock
Artist: Paul Oakenfold
Date: 2003
Album: Matrix Reloaded
Time: 00:11.31 [04:28.75] of 04:40.06  (200.6 kbps)  Output Buffer  96.9%

ALSA og USE

Du kan nu tilføje alsa USE flaget til /etc/make.conf for at dine applikationer bliver kompileret med ALSA understøttelse. Nogle arkitekturer såsom x86 og amd64 har automatisk det flag sat.

Problemer?

Hvis du af en eller anden grund ikke kan høre nogen lyd, så undersøg først dine alsamixer indstillinger. 80% af problemerne hænger sammen med slukkede eller dæmpede kanaler. Kontroller også din vinduestyring's lydmodul (KDE bruger eksempelvis kmixer) og kontroller at lyden er til hørbare niveauer.

/proc er din ven. Og i dette tilfælde er /proc/asound din bedste ven. Vi tager et lille kig på hvor meget vi kan finde ud af ad den vej.

Kode oversigt 3.9: Sjov med /proc/asound

(Hvis /proc/asound/cards viser dit kort så har ALSA valgt det korrekte.)
# cat /proc/asound/cards
0 [Live           ]: EMU10K1 - Sound Blaster Live!
Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11

(Hvis du har ALSA i kernen ligesom jeg og overvejer hvor langt bagude du
er i forhold til alsa-driver, så viser dette den pt. aktive ALSA version.)
# cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.8 (Thu Jan 13 09:39:32 2005 UTC).

(ALSA OSS emulation detaljer)
# cat /proc/asound/oss/sndstat
Sound Driver:3.8.1a-980706 (ALSA v1.0.8 emulation code)
Kernel: Linux airwolf.zion 2.6.11ac1 #2 Wed May 4 00:35:08 IST 2005 i686
Config options: 0

Installed drivers:
Type 10: ALSA emulation

Card config:
Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11

Audio devices:
0: EMU10K1 (DUPLEX)

Synth devices: NOT ENABLED IN CONFIG

Midi devices:
0: EMU10K1 MPU-401 (UART)

Timers:
7: system timer

Mixers:
0: SigmaTel STAC9721/23

Det næst-hyppigste problem er den frygtede "Unknown symbol in module" fejl. Et eksempel derpå er vist nedenfor.

Kode oversigt 3.10: Unknown Symbol in module error

# /etc/init.d/alsasound start
* Loading ALSA modules ...
*   Loading: snd-card-0 ...                                              [ ok ]
*   Loading: snd-pcm-oss ...
WARNING: Error inserting snd_mixer_oss (/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-mixer-oss.ko): Unknown
symbol in module, or unknown parameter (see dmesg) FATAL: Error inserting snd_pcm_oss
(/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-pcm-oss.ko): Unknown
symbol in module, or unknown parameter (see dmesg)                             [ !! ]
*   Loading: snd-mixer-oss ...
FATAL: Error inserting snd_mixer_oss (/lib/modules/2.6.12-gentoo-r6/kernel/sound/core/oss/snd-mixer-oss.ko): Unknown
symbol in module, or unknown parameter (see dmesg)                             [ !! ]
*   Loading: snd-seq ...                                                 [ ok ]
*   Loading: snd-emu10k1-synth ...                                       [ ok ]
*   Loading: snd-seq-midi ...                                            [ ok ]
* Restoring Mixer Levels ...                                             [ ok ]

Og hvis du tager et kig på dmesg som foreslået, så ser du formodentlig:

Kode oversigt 3.11: dmesg output

(Kun de relevante dele er vist)
# dmesg | less
ACPI: PCI Interrupt 0000:02:06.0[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 209
snd_mixer_oss: Unknown symbol snd_unregister_oss_device
snd_mixer_oss: Unknown symbol snd_register_oss_device
snd_mixer_oss: Unknown symbol snd_mixer_oss_notify_callback
snd_mixer_oss: Unknown symbol snd_oss_info_register
snd_pcm_oss: Unknown symbol snd_unregister_oss_device
snd_pcm_oss: Unknown symbol snd_register_oss_device
snd_pcm_oss: Unknown symbol snd_mixer_oss_ioctl_card
snd_pcm_oss: Unknown symbol snd_oss_info_register
snd_mixer_oss: Unknown symbol snd_unregister_oss_device
snd_mixer_oss: Unknown symbol snd_register_oss_device
snd_mixer_oss: Unknown symbol snd_mixer_oss_notify_callback
snd_mixer_oss: Unknown symbol snd_oss_info_register

Det ovenstående problem opstår når du skifter fra alsa-driver til kerne- integreret ALSA. Når du afinstallerer alsa-driver med unmerge så bliver modulerne beskyttet og derfor ikke fjernet. Når du derpå skifter til kernens egne drivere og udfører modprobe får du en blanding af alsa-driver og kernemoduler. Det medfører den ovenstående fejl.

Løsningen er meget enkel. Du skal blot manuelt fjerne problem-biblioteket efter du har afinstalleret alsa-driver. Husk at fjerne den korrekte version og lade den aktuelle være!

Kode oversigt 3.12: alsa-driver modulerne fjernes

# rm -rf /lib/modules/$(uname -r)/alsa-driver

En anden årsag til fejlmeldingen af lignende slags kan være en fil i /etc/modules.d som leverer en device_mode parameter selvom denne ikke er påkrævet. Undersøg om det er tilfældet og find ud af hvilken fil det drejer sig om.

Kode oversigt 3.13: Jagten på device_mode

(Kontroller dmesg for at få bekræftet mistanken.)
# dmesg | grep device_mode
snd: Unknown parameter `device_mode'
(Find synderen.)
# grep device_mode /etc/modules.d/*

Det er typisk en fil ved navn alsa som indeholder linien options snd device_mode=0666. Fjern den linie og genstart alsasound servicen for at løse problemet.

4.  Andre ting omkring ALSA

Opsætning af MIDI understøttelse

Hvis dit lydkort er et af dem med indbygget MIDI synthesizer og du gerne vil lytte til .mid filer, så har du brug for awesfx hvilket i bund og grund er en samling programmer til at styre AWE32 driveren med. Først en gang skal pakken installeres. Hvis du ikke har en hardware synthesizer, kan du bruge en virtuel en. Se afsnittet om virtuelle synthesizer for flere informationer.

Kode oversigt 4.1: Installation af awesfx

# emerge awesfx

Bemærk: Du skal have kopieret SoundFont (SF2) filer fra dit lydkorts driver CD eller Windows installation til /usr/share/sounds/sf2/. En sound font fil til Creative SBLive! kunne eksempelvis være 8MBGMSFX.SF2.

Efter at have kopieret SoundFont filerne kan du afspille en midi fil som vist. du kan også tilføje asfxload kommandoen til /etc/conf.d/local.start, sådan at soundfonten automatisk indlæses hver gang computeren tændes.

Bemærk: /mnt stierne nævnt nedenfor behøver ikke være indentiske med dem på din maskine. De er blot anvendt rent eksemplarisk. Vær derfor opmærksom på at du erstatter dem med de korrekte stier.

Kode oversigt 4.2: Indlæsning af Soundfonts

(Kopier soundfonten)
# cp /mnt/win2k/Program\ Files/CreativeSBLive2k/SFBank/8MBGMSFX.SF2 /usr/share/sounds/sf2/ 
(Eller hent den fra din SoundBlaster CD)
# cp /mnt/cdrom/AUDIO/ENGLISH/SFBANK/8MBGMSFX.SF2 /usr/share/sounds/sf2/
(Vi indlæser en specifik soundfont)
# asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2

Du kan nu afspille midi filer med et program som aplaymidi. Kør aplaymidi -l for at se en liste med alle tilgængelige porte og vælg en til at afspille filen på.

Kode oversigt 4.3: Afspilning af MIDI

(Find åbne porte)
# aplaymidi -l
Port    Client name                      Port name
64:0    EMU10K1 MPU-401 (UART)           EMU10K1 MPU-401 (UART)
65:0    Emu10k1 WaveTable                Emu10k1 Port 0
65:1    Emu10k1 WaveTable                Emu10k1 Port 1
65:2    Emu10k1 WaveTable                Emu10k1 Port 2
65:3    Emu10k1 WaveTable                Emu10k1 Port 3
(Vælg en port, og afspil en mid file)
#  aplaymidi --port=65:0 /mnt/shyam/music/midi/mi2.mid

Virtuelle synthesizere

Hvis dit lydkort ikke har nogen hardware synthesizer kan du bruge en virtuel såsom timidity++. Installationen er meget simpel.

Kode oversigt 4.4: Installation af timidity++

# emerge timidity++

For at timidity kan afspille lyde skal den have en sound font. Hvis du ikke har nogen kan du installere timidity-eawpatches eller timidity-shompatches som vil give dig nogle sound fonts. Du kan have flere sound font konfigurationer installeret og du kan placere dine egne i /usr/share/timidity/. For at skifte mellem forskellige timidity konfiguration bør du bruge timidity-update programmet som følger med timidity++ pakken.

Kode oversigt 4.5: Installation af sound fonts

# emerge timidity-eawpatches
# timidity-update -g -s eawpatches

(eller)

# emerge timidity-shompatches
# timidity-update -g -s shompatches

Glem ikke at tilføje timidity til default runlevel'en.

Kode oversigt 4.6: Tilføjelse af timidity til default runlevel'en

# rc-update add timidity default
# /etc/init.d/timidity start

Nu kan du prøve at afspille MIDI filer.

Tools og firmware

Nogle lydkort kan drage nytte af visse tools som følger med i alsa-tools og alsa-firmware pakkerne. Hvis du har brug for alsa-tools, så husk også at definere ALSA_TOOLS variablen i /etc/make.conf så den indeholder de tools du har brug for. Eksempelvis kan det være:

Kode oversigt 4.7: Udvalg af ALSA Tools i /etc/make.conf

ALSA_TOOLS="as10k1 ac3dec"

Hvis ALSA_TOOLS variablen ikke er sat vil alle tilgængelige tools blive installeret. Installer herefter alsa-tools (og / eller alsa-firmware) pakken:

Kode oversigt 4.8: Installation af ALSA Tools

# emerge alsa-tools

En stor tak til ...

Alle der har hjulpet med den tidligere ALSA guide: Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy Huddleston, John P. Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft, Erwin, Arne Mejlholm and Jesper Brodersen.

Referencer



Udskriv

Opdateret 6. juli 2006

The original version of this document was last updated August 5, 2009

Opsummering: Denne vejledning hjælper en bruger med at sætte ALSA op på Gentoo Linux.

Shyam Mani
Forfatter

Thomas Skyt
Oversættelse

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.