NASIL Gentoo Linux ALSA Rehberi

From Lapis Wiki

Jump to: navigation, search
Bu makale NASIL bölümü serisinin bir parçasıdır
MasaÜstü Donanım Dağıtımlar
Tarayıcılar Programlama Linux ve Oyunlar

Konu başlıkları

Giriş

ALSA Nedir?

Gelişmiş Linux Ses Mimarisi (Advanced Linux Sound Architecture ) anlamına gelen ALSA, Linux işletim sistemine işitsel ve MIDI (Musical Instrument Digital Interface-Müzik Gereçleri Sayısal Arabirimi) işlevselliği sağlar. ALSA, 2.4 kernelde varsayılan ses sistemi olan OSS'nin Open Sound System-Açık Ses Sistemi) yerini alarak 2.6 kernelde varsayılan ses sistemi olmuştur.

ALSA'nın temel özelliklerinin arasında son kullanıcı ses kartlarından profesyonel olanlara kadar bir çok ses araçlarına hızlı ve verimli destek sağlamak, tümüyle modüle edilmiş sürücüler, SMP ve thread güvenliği, OSS ile geriye dönüş uyum desteği ve uygulama geliştirmeyi çok kolaylaştıran alsa-lib kullanıcı kütüphanesi vardır.

Gentoo'da ALSA

Gentoo'nun en büyük gücü, bir sistemi nasıl kurup, ayarlanacağı konusunda kullanıcıya azami kontrol sağlamasından geliyor. Gentoo'da ALSA aynı ilke ile çalışır. ALSA desteği almak ve sisteminizde kullanmak için iki seçeneğiniz var. Buna detaylı bir şekilde aşağıda değineceğiz.

ALSA Kurulumu

Tercihler


Uyarı: Uyarı: Aşağıdaki yöntemler genele açıktır. Kernelde ALSA desteği ile beraber media-sound/alsa-driver'ı kullanamazsınız. Çalışmayacaktır!

İşte 2 seçenek:

  1. Kernelinizdeki ALSA desteğini kullanın. Bu tercih/tavsiye edilen yöntemdir.
  2. Gentoo'nun media-sound/alsa-driver paketini kullanın.

Hangisi olacağına karar vermeden önce olaya biraz daha derin bakalım.

  • Önce kernelle gelen desteği kullandığınızda olacaklar:
Kernel ALSA  	Avantaj ve Dezavantjlar

+	        Kernele eklendiği için çok kararlı sürücüler
+	        Bir kerede çözüm, tekrar eden emerge gerekmez
-	        alsa-driver'dan çok az daha eski sürüm olabilir.
  • Eğer alsa-driver kullanırsanız:
alsa-driver  	Avantaj ve Dezavantjlar

+	        ALSA Projesinden en son sürücüler.
-	        Her kernel derlemenizde, yeniden alsa-driver emerge edersiniz.
-	        Doğru çalışması için belli kernel ayarlarının kapatılması gerekir.

Yani:

Kernelle gelen ALSA desteği ile alsa-driver kullanmak arasındaki en büyük fark, alsa-driver'ın genelde kernel sürümünden daha güncel olmasıdır. Bu da çok büyük bir fark yapmayacağı için kernelle beraber gelen ALSA desteği kullanma konusunda karar kılabilirsiniz. Gentoo Bugzilla'ya sesle ilgili bir problem bildirmeden önce, lütfen hatayı alsa-driver ile tekrar almaya çalışın ve hata ne ise iletin.

Devam Etmeden Önce

Hangi yolu kullanırsanız kullanın, ses kartınızın hangi sürücüyü kullandığını bilmelisiniz.Genelde ses kartları (yerleşik-onboard veya diğerleri) PCI tabanlıdır ve lspci komutu gerekli bilgiyi almanızı sağlar. Eğer yoksa lütfen lspci için

emerge sys-apps/pciutils

komutu ile gerekli paketleri kurun. USB tabanlı bir karta sahip olmanız durumunda lsusb için sys-apps/usbutils paketini kurun. ISA kartlar için lütfen sys-apps/ispnptools isimli paketi kurun. Ayrıca aşağıdaki sayfalar da ISA tabanlı kartlar için yararlı olabilir:

http://www.roestock.demon.co.uk/isapnptools/

http://www2.linuxjournal.com/article/3269

http://www.tldp.org/HOWTO/Sound-HOWTO/x320.html



Not: Daha kolay kullanım/anlatım için bu makalenin geri kalanında kullanıcının PCI tabanlı bir karta sahip olduğunu varsaydık.


Şimdi kart hakkında bilgi almayla devam edelim:

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

Şimdi makinedeki ses kartının bir Sound Blaster Live! olduğunu biliyoruz ve bu kartın üreticisi Creative Labs. ALSA Soundcard Matrix sayfasına gidin ve açılan menüden Creative Labs'ı seçin. Bundan sonra Creative Labs sayfasına yönlendirileceksiniz ve burada kartın emu10k1 modülünü kullandığını göreceksiniz. Şimdilik ihtiyacımız olan bilgi bu. Eğer daha fazla detayı merak ediyorsanız, "Detaylar" bağına tıklayarak emu10k1 modülünün kendi sayfasına gidebilirsiniz.

Evet şimdi iki türlü ALSA'yı nasıl kullanacağımızı anlatalım.


  • Kernelinizin sağladığı ALSA desteğini kullanmak

Eğer sizde meseleleri benim gibi basitçe yapmayı seven biriyseniz aşağıdaki yol gitmeniz gereken yol.


Not: 2005.0 sürümünden beri Gentoo 2.6 kerneli kullanmakta.Özellikle 2.4 kerneli kullanmadığınız sürece, gentoo-sources birçok mimari yapıda 2.6 kernel olacaktır. Lütfen kernelinizin bir 2.6 serisi olduğundan emin olun, aksi taktirde bu yöntem 2.4 kernel serisinde çalışmayacaktır.


Şimdi ALSA'yı seçilir kılmak için kerneli yapılandıralım.


Not: genkernel kullanıcıları şu an
genkernel --menuconfig all 

komutunu kullanmalılar. Daha sonra da Kernel Options for ALSA sayfasındaki yönergeleri takip etmeliler.

Kernel yapılandırması için gerekli yere gidip, komutumuzu veriyoruz:

cd /usr/src/linux
make menuconfig


Not: Yukarıdaki örnek kullandığınız kernel kaynak dizininin /usr/src/linux olduğunu varsaymakta. Devam etmeden önce böyle olduğuna emin olun.

Şimdi doğru ALSA desteğini sağlamak için 2.6 kernelde yapacağımız değişiklikler için bir kaç seçeneğe bakacağız.


Linux Kernel Ayarları: 2.6
Device Drivers  --->
   Sound  --->
  

(Bu seçilmiş olmalı)

<M> Sound card support

(OSS'nin SEÇİLMEMİŞ olduğuna dikkat edin.)

Open Sound System   --->
   < > Open Sound System (DEPRECATED)

(Bir adım geriye gidin ve ALSA'ya girin)

Advanced Linux Sound Architecture  --->
   <M> Advanced Linux Sound Architecture
  

(Eğer MIDI zincirlemesi ve rotalaması istiyorsanız bunu seçin)

   <M> Sequencer support
  

(Eski tarz /dev/mixer* ve /dev/dsp* desteği. Önerilir)

   <M> OSS Mixer API
   <M> OSS PCM (digital audio) API 


(Şimdi seçili hale getirmek için bir aygıt listeniz var.Genellikle bir tür aygıta sahip olursunuz, diğeri olmaz.Ancak eğer siz iki tanesine de sahipseniz, ikisini de seçin.)

(Daha çok test ve geliştirme içindir, normal kullanıcılar ne yaptıklarını bilmeden bunu işaretlemesinler)

Generic devices  --->
  

(ISA Ses kartları için)

ISA devices   --->
(

(Eğer Gravis'e sahipseniz işaretleyin)

  <M> Gravis UltraSound Extreme

(Bir adım geriye PCI aygıtlara gidin.Günümüzde bir çok aygıt PCIdır)

  PCI devices   --->
  

(Kartımız için emu10k1 sürücüsünü seçiyoruz)

  <M> Emu10k1 (SB Live!, Audigy, E-mu APS)

(Veya bir Intel kart olabilir)

  <M> Intel/SiS/nVidia/AMD/ALi AC97 Controller

(Veya bir VIA kartınız olabilir)

  <M> VIA 82C686A/B, 8233/8235 AC97 Controller

(Bir USB ses kartınız olması durumunda bir adım geriye gidin ve seçin)

  USB Devices   --->

Ayarlamaları yaptıktan sonra kernelinizi yeniden derleyebilirsiniz, böylece kartınız için ALSA desteği kullanılabilir halde olacaktır. Bunu yeni kernel ile sistemi başlatarak sağlayabilirsiniz. Yeni kernelinizi kullanabilmek için GRUB (veya LILO)'yu yeni kernel için güncellemeyi untmayın. Artık Alsa Araçları bölümünden devam edip her şeyin olması gerektiği gibi çalıştığını görebilirsiniz.

  • ALSA sürücü paketini kullanmak

Evet diyelim ki alsa-driver yolunu seçtiniz. O zaman devam edelim. Yapılması gereken az bir iş var, öncelikle sadece sizin ses kartınızın sürücülerinin derleneceğine emin olun. Aslında bu çok gerekli olmamasına rağmen, diğer fuzuli sürücülerin de derlenmesini engelleyecektir.

Ses kartınızın ne tür bir sürücü kullandığını bilmiyorsanız lütfen bu makalenin lspci bölümüne bakın. Sürücü ismini öğrendikten sonra (örneğimizde emu10k1 ) /etc/make.conf dosyanızı düzenleyin ve ALSA_CARDS değişkenini ekleyin.

(Sadece bir ses kartı için)
ALSA_CARDS="emu10k1"

(Birden fazla için, boşluklarla ayırın)
ALSA_CARDS="emu10k1 via82xx"


Eğer kernelinizi derlediniz ve alsa-driver'ı kullanmak istiyorsanız, devam etmeden önce şuna dikkat edin, yoksa alsa-driver çalışmayacaktır. Aşağıdaki kod listesi size kontrol etmenin bir yolunu gösteriyor.


Not: genkernel kullanıcıları alsa-driver Kurulumu ile devam edebilirler zira ayarları öntanımlı olarak sync içinde vardır.
  1. CONFI_SOUND açık olmalı. (Temel Ses desteği açık)
  2. CONFI_SOUND_PRIME açık OLMAMALI (İç OSS desteği kapalı)
  3. CONFI_SND açık OLMAMALI (İç ALSA desteği kapalı)
  4. /usr/src/linux ALSA için çalışmak istediğiniz kerneli göstermeli.
(Linux sembolik bağının doğru yere işaret ettiğini varsayarak)
 # cd /usr/src/linux
 # grep SOUND .config
(1. doğru)
 CONFIG_SOUND=y yani açık
(2. doğru/açık)
 CONFIG_SOUND_PRIME açık değil
 # grep SND .config
(ve 3. doğru)
CONFIG_SND açık değil


Şimdi tek yapmanız gereken sihirli sözleri yazmanız...hayır, abrakadabra değil.

emerge alsa-driver


Uyarı: Kerneli her yeni derlemenizde, eski sürücüler silindiğinden emerge alsa-driver komutunu vermelisiniz.

ALSA'yı Yapılandırmak/Test Etmek

Alsa Araçları

alsa-utils ALSA'nın bir iç parçasını oluşturur ve ALSA başlangıç-betiklerini de içeren bir kamyon dolusu kullanışlı program içerir. Bu yüzden kesinlikle alsa-utils'i kurmanızı tavsiye ediyoruz.

emerge alsa-utils


Not: Eğer kernelinizde ALSA'yı aktif hale getirdiniz ve ALSA'yı modül olarak derlemediyseniz, lütfen ALSA-Başlangıç-betikleri bölümünden devam edin. Bunun haricindekiler ALSA'yı yapılandırmalıdır. Bu da alsa-utils'in sağladığı alsaconf komutu ile kolaylıkla yapılabilir.


Yapılandırma


Not: alsaconfu çalıştırırken lütfen ses kartını kullanabilecek programların tümünü kapatın


Ses kartınızı yapılandırmanın en kolay yolu alsaconf komutunu çalıştırmaktır. Sadece terminalde root olarak alsaconf yazın.

alsaconf

Şimdi ses kartlarını arayan ve sizin ses kartınızı buna göre ayarlamaya çalışan, temiz bir menüyle karşılaşacaksınız. Listeden ses kartınızı seçmenizi isteyecektir. Bu yapıldıktan sonra, /etc/modules.d/alsa'da gereken değişiklikleri yapmak için sizden izin isteyecektir. Daha sonra en uygun ses ayarlarını yapacak, modules-update komutunu çalıştıracak ve /etc/init.d/alsasound servisini çalıştıracaktır. alsaconf çıkış yaptığında, ALSA Başlangıç-betiğini ayarlamayla devam edebilirsiniz.

ALSA Başlangıç-Betiği

Neredeyse tüm kurulumu yaptık. Hangi yöntemi kullanırsanız kullanın, modüllerinizi yüklemek, ALSA'yı başlatmak ve sistem açılışında ses ayarlarınızın yüklenmesi için bir şeylere ihtiyacınız var. ALSA Açılış-betiği bunu sizin için yapar ve alsasound olarak isimlendirilir. Bunu başlangıç açılış seviyenize ekleyin.

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


Sonra, /etc/conf.d/alsasound dosyasını kontrol edin ve SAVE_ON_TOP değişkeninin evet olarak işaretlendiğine emin olun. Bu sistemi kapattığınız zaman ses ayarlarınızı kaydetmeye yarar.

Audio Grubu

Test etmeye başlamadan önce, ayarlanmak için son olarak önemli bir nokta kaldı.Bir *nix OS'da baş parmak kuralı: gerekmedikçe root olarak çalıştırma. İşte nasıl olacağı. Çoğu zaman, normal kullanıcı olarak giriş yaptığınızda müzik dinlemek veya ses kartınıza ulaşma hakkınızın olmasını istersiniz. Bunun olabilmesi için audio grubunda bulunmanı gerekir. Bu noktada, kullanıcıları bu gruba ekleyeceğiz, böylece ses aygıtı konusunda problemleri kalmayacak. Bunun için gpasswd komutunu kullanacağız ve bunu kullanabilmeniz için root hakları gerekmekte.

(<username> ile sizin kullanıcı isminizi değiştirin)

# gpasswd -a <username> audio 
Adding user <username> to group audio

Volume(Ses) Kontrolü!

Tüm kurulum ve ayarlamaları yaptık, şimdi ALSA'yı ateşlemenin zamanı geldi. Eğer alsaconf komutunu kullandıysanız bu adımı geçebilirsiniz zira alsaconf bunu sizin için zaten yaptı.

(Modül olarak ALSA)
# /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 ]
(Derlenmiş ALSA)
# /etc/init.d/alsasound start
 * Loading ALSA modules ...
 * Restoring Mixer Levels ...     [ ok ]

Şimdi halledilmesi gerekenler halledildi, ses ayarını kontrol etmeliyi, normal şartlarda ses kısılmıştır. Bunun için alsamixer komutunu kullanacağız.

alsamixer


Uyarı: Eğer alsamixer aracını çalıştırmakta problem yaşıyorsanız ve şöyle hatalar alıyorsanız:function snd_ctl_open failed for default: No such file or directory, bu genellikle aygıtları ayarlayan udev ile ilgili bir durumdur. /dev girişlerini yeniden yüklemek ve alsamixer aracını çalıştırmak için killall udevd; udevstart komutunu kullanın. Problemi çözmeli.


Bunun ALSA Mixer aracını ilk çalıştırdığınızda karşınıza gelecek menüye benzemesi lazım. Master ve PCM kanallarının altında birer tane MM olduğuna dikkat edin. Bu şu anlama gelir: bu kanallar mute (sesleri kapalı) durumda. Eğer alsamixer bu durumdaysa bir şeyler çalmaya çalıştığınızda hoparlörlerden ses gelmeyecektir.


Şimdi, sesi açmalı ve gerektiği kadar ayarlamalıyız.


Uyarı: Eğer hoparlörlerinizden ses almak istiyorsanız Master ve PCM kanallarının beraber açık olması lazım, yoksa ses alamazsınız.


  • Kanallar arasında gezinmek için sağ ve sol ok tuşlarını kullanın (<- ve ->)
  • Mute'u değiştirmek için (sesi açmak) istediğiniz kanala gidin, örneğin Master, klavyedeki m tuşuna basın.
  • Ses seviyesini arttırmak ve azaltmak için yukarı ve aşağı tuşlarını kullanın.


Not: Bas ve Tiz değerlerinizi ayarlarken dikkatli olun. Genelde ikisi için de 50 iyi bir değerdir. Bas için çok aşırı değerler hoparlörlerin baş edemeyeceği sinir bozucu seslere neden olabilir.


Bunları yaptıktan sonra, ALSA Mixer'inizin şu şekle benzemesi lazım. MM yerine 00 değerinin olduğuna ve uygun ayarlar için bazı değerlere dikkat edin.



Ses(Sound) Kontrolü!

Ses kartınızı kontrol etmenin sinin bozucu yolu hoparlörlerden statik duyup duyamadığınızdır. Bu kesinlikle eğlenceli değil, ancak size ses kartınızın çalışıp/ayarlandığını bildirir.

cat /dev/urandom > /dev/dsp


Not: /dev/dsp /dev/sound/dsp 'ye bir sembolik bağdır ve kendiliğinden oluşturulur. Eğer "No such file or directory" gibi bir hata alırsanız bunu /dev/sound/dsp ile tekrar deneyin.

Statik (cızırtılı olur) bir ses duymanız lazım. Durdurmak için CTRL + C yapın. Eğer hiç bir şey duymuyorsanız, geriye dönüp problemin nerede olduğunu bulma ve düzeltme vakti.

Son olarak, biraz müzik. Eğer yukarıdaki her şey mükemmel ise, şimdi güzel bir müzik dinleyebilmeniz lazım. Bunun çabuk bir yolu media-sound/madplay gibi konsol tabanlı uygulama kullanmaktır. Aynı zamanda daha çok bilinen mpg123 veya xmms gibi uygulamaları da kullanabilirsiniz. Eğer bir OGG fanatiği iseniz, media-sound/vorbis-tools ile sağlanan ogg123 gibi bir uygulamayı da deneyebilirsiniz. Rahat edeceğiniz bir tanesini kullanın. Her zaman olduğu gibi ihtiyacınız olan emerge.

emerge madplay mpg123 xmms
emerge vorbis-tools

Ve artık sevdiğiniz bir parçayı çalabilirsiniz..

# 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 ve USE

Artık uygulamalarınızın ALSA desteği ile gelmesi için alsa use bayrağını(flag) /etc/make.conf dosyanıza ekleyebilirsiniz. x86 ve amd64 gibi bazı mimariler öntanımlı olarak sahiptirler.

Problemler?

Eğer herhangi bir sebepten ötürü ses duymuyorsanız, ilk yapacağınız iş alsamixer ayarlarınızı kontrol etmenizdir. Problemlerin %80'i ses kanallarının kısık ya da düşük olmasından kaynaklanmakta. Aynı zamanda Pencere Yöneticinizin ses aracını kontrol edin ve gerekli ayarları yapın.

/proc sizin dostunuzdur. Bu durumda, /proc/asound sizin en iyi dostunuzdur. Burada bizim için ne kadar bilgi olduğuna kısaca bakacağız.

İlk ve başta gelen, eğer /proc/asound/cards sizin kartınızı gösteriyorsa, ALSA ses kartını bulmuş demektir.

 # cat /proc/asound/cards
0 [Live           ]: EMU10K1 - Sound Blaster Live!
                     Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11


Eğer siz de benim gibi kernel destekli ALSA'yı kullandınız ve alsa-driver dan ne kadar uzak olduğunuzu merak ediyorsanız:

# cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.8 (Thu Jan 13 09:39:32 2005 UTC).

Alsa OSS emülasyon detayları:

# 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


Diğer bir genel olarak kullanıcıların karşılaştığı problem korku oluşturan "Unknown symbol in module" hatasıdır. Bunun bir örneği aşağıdadır:

# /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 ]


Tavsiye edildiği üzere dmesg çıktısına baktığınızda: (Sadece ilgili kısım gösterilmektedir)

# 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

Yukarıdaki problem alsa-driver'dan kernel-destekli ALSA'ya geçtiğinizde olur. Bunun nedeni alsa-driver'ı unmerge ettiğinizde, modül ayar dosyaları korumalı olduğundan geride kalırlar.Böylece, kernel-destekli sürücülere geçtiğinizde, modprobe size bir alsa-driver ve kernel-destekli ALSA karışımı verecektir. Bu yukarıdaki hataya neden olur.

Çözümü oldukça basittir. alsa-driver'ı enmerge ettikten sonra problem çıkartan dizini elle sileceğiz. Doğru kernel sürümünü sildiğinizden emin olun, şu an kullanılanı değil!

KERNELVER kısmını sizin kernel sürümünüzle değiştirin.

# rm -rf /lib/modules/KERNELVER/alsa-driver


Diğer ALSA Mevzuları

MIDI desteğini ayarlama

Eğer ses kartınız yerleşik MIDI sentezleyici ile gelenlerden ve siz .mid dosyalarını dinleyebilmek istiyorsanız, AWE32 sürücülerini kontrol etmeye yarayan temel araçlardan oluşan awesfx paketini kurmak zorundasınız. İlk olarak bunu kurmalıyız. Eğer bir donanım sentezleyiciniz yoksa sanal bir tane kullanabilirsiniz. Daha fazla bilgi için lütfen Sanal Sentezleyiciler bölümüne bakın.

emerge awesfx


Not: SoundFont(SF2) dosyalarınızı ses kartınızın CDsinden veya bir Windows kurulumundan /usr/share/sound/sf2/ dizinine kopyalamanız gerekli. Örneğin Creative SBLive! için bu 8MBGMSFX.SF2 dosyası olabilir.


Soundfont dosyalarını kopyaladıktan sonra, midi dosyasını aşağıdaki gibi çalabiliriz. Ayrıca asfxload komutunu /etc/conf.d/local.start dosyanıza ekleyerek, her başlangıçta ses fontlarının yüklenmesini sağlayabilirsiniz.


Not: Aşağıdaki kod listesinde geçen /mnt dizini sizinkiyle aynı değildir. Bunlar sadece birer örnek. Lütfen yolu sizinki gibi değiştirmeyi unutmayın.


Önce, SoundFont'u kopyalayın:

# cp /mnt/win2k/Program\ Files/CreativeSBLive2k/SFBank/8MBGMSFX.SF2 /usr/share/sounds/sf2/ 

Veya SoundBlaster CD'sinden edinin:

# cp /mnt/cdrom/AUDIO/ENGLISH/SFBANK/8MBGMSFX.SF2 /usr/share/sounds/sf2/

Belirli olan SoundFont'u kopyaladık:

# asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2


Şimdi artık midi dosyalarını aplaymidi gibi bir programla dinleyebilirsiniz. Uygun olan portların listesini almak için aplaymidi -l komutunu kullanın ve bir port seçin:

(Açık portları kontrol edin)
# 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
(Bir port seçin ve midi dosyasını çalın)
#  aplaymidi --port=65:0 /mnt/shyam/music/midi/mi2.mid


Sanal Sentezleyiciler

Eğer ses kartınızda donanımsal bir sentezleyici yoksa, timidity++ gibi bir tane sanal sentezleyici kullanabilirsiniz. Kurulum çok kolaydır.

emerge timidity++


Timidity'nin sesleri çalması için, bir tane ses fontuna ihtiyaç duyar. Eğer sizde yoksa, timidity-eawpatches veya timidity-shompatches paketlerini kurun. Bunlar siz bazı ses fontları sağlayacaklardır. Birden fazla kurulu ses fontu yapılandırmasına sahip olabilirsiniz, siz kendinizin olanı, /usr/share/timidity dizinine kopyalayabilirsiniz. Farklı timidity yapılandırması arasında geçiş yapmak için, timidity-update komutunu kullanmalısınız.

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

(veya)

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


Timidity'i öntanımlı çalışma seviyesine eklemeyi unutmayın:

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

Şimdi MIDI dosyalarını çalabilirsiniz.

Araçlar ve Firmware

Bazı belirli ses kartları alsa-tools ve alsa-firmware paketlerinin sağladığı bazı araçlardan yararlanabilirler. Eğer alsa-tools paketine ihtiyacınız varsa, /etc/make.conf dosyanızda ALSA_TOOLS değişkenini gerekli araçlar için tanımlamayı unutmayın. Örneğin:

ALSA_TOOLS="as10k1 ac3dec"

Eğer ALSA_TOOLS değişkeni tanımlanmazsa, tüm araçlar kurulacaktır. Şimdi alsa-tools'u (ve/veya alsa-firmware) paketlerini kurun:

emerge alsa-tools


Büyük Bir Teşekkür

Daha önceki ALSA Makalesine katıkada bulunan: Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy Huddleston, John P. Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft and Erwin.

Türkçeye Çeviri: Serkan "heartsmagic" Çalış

Kaynaklar

The Alsa Project Linux Sound/MIDI Software


Bu makalenin içeriği Creative Commons-Attribution/Share Alike lisansı altındadır.


Belgenin aslı ve çevrilmemiş adresi: http://www.gentoo.org/doc/en/alsa-guide.xml