Açık Ses Sistemi (OSS)

Arch Linux Türkiye Belgeleri sitesinden
Atla: kullan, ara


Konu başlıkları

OSS Nedir?

Open Sound System ya da kısaca OSS Linux, FreeBSD, Solaris ve BeOS/Haiku dahil olmak üzere UNIX benzeri ve POSIX-uyumlu sistemlerde çalışan bir ses mimarisidir.

Bu yazı Linux çekirdeğindeki eski OSS ile alakalı değildir, yeni OSS'ye ilişkindir.

Bu yazıda yeni OSS sürümleri (OSSv4 olarak adlandırılmaktadır) anlatılacaktır. OSSv4 öncesi sürümler mülki haklar doğrultusunda kapalı kodlu iken, Temmuz 2007'den itibaren GPL, BSD ve CDDL lisansları altında tekrar özgür yazılım statüsüne kavuşmuştur.

ALSA'ya kıyasla avantajları ve dezavantajları

Avantajları (kullanıcı için)

  • Kernel seviyesinde şeffaf yazılım karıştırıcısı (vmix) barındırır. Böylece birden çok uygulama ses aygıtına aynı anda sorunsuz erişebilir.
  • vmix karıştırıcısı ile her uygulamanın ses seviyesini ayrı ayrı değiştirebilirsiniz.
  • Bazı ses kartı modelleri için daha iyi destek vermektedir. (Mesela, Creative X-Fi)
  • Ses kalitesi genellikle daha iyidir.
  • OSS API'sini kullanan uygulamalar için destek vermektedir. OSS API'si geniş bir kullanım sahası içerisinde yer almaktadır ve bir çok uygulama OSS API'sini kullanmaktadır. Buna rağmen, ALSA'nın OSS API emulasyonu, genelde sorun çıkarmaktadır.

Avantajları (geliştiriciler için)

  • Karışık olmayan ve kolay kullanıma sahip API'ye sahip olması.
  • İyi bir belgelendirmeye sahip API olması.
  • userspace içerisinde ses kartlarına destek vermesi (oss_userdev).
  • Desteklenen tüm platformlarda uyumluluk sağlaması. Eğer OSS kullanan uygulama Linux altında çalışıyorsa, FreeBSD ve Solaris altında da çalışacaktır.
  • Çeşitli işletim sistemlerine taşınabilirlik sağlaması. OSS'yi yeni bir işletim sistemine uyarlamak kolay bir işlemdir.

Dezavantajları

  • USB ses aygıtları desteği Linux altında şimdilik deneysel niteliktedir.
  • Bluetooth ses aygıtları şimdilik desteklenmemektedir.
  • AC'97 ve HDAudio dialup soft-modemler (mesela Si3055) şimdilik desteklenmemektedir.
  • MIDI desteği henüz tamamlanmamıştır. Buna rağmen, timidity veya fluidsynth gibi sentezleyiciler ile MIDI kullanabilirsiniz.
  • Askıya alma (suspend) şimdilik desteklenmemektedir. Askıya almadan önce soundoff komutu ile OSS'yi durdurup, devam ettiğinizde soundon komutunu vermeniz gerekmektedir.
  • Otomatik jack algılama bazı HDAudio destekli anakartlarda şimdilik çalışmamaktadır. Bu nedenle, eğer desteklenmeyen bir anakart sahibi iseniz, kulaklık taktığınızda hoparlörlerinizi kapatmanız gerekebilir.

Kurulum

  • OSS'yi kurmak için şu komutu verin:
# pacman -S oss
  • OSS'yi çalıştırmak için şu komutu verin:
# /etc/rc.d/oss start
  • oss'yi /etc/rc.conf içerisindeki DAEMONS satırına ekleyin, böylelikle OSS bilgisayarınızı her açtığınızda çalışacaktır.

Not: Yukarıdaki kurulum yönergeleri OSS 4.1 içindir. OSS 4.0 istiyorsanız AURŞablon:Linkrot üzerindeki paketi kurabilirsiniz.

OSS'yi Test Edin

OSS ilk çalıştırıldığı zaman ses seviyesi öntanımlı %100 olduğundan çok gürültü olabilir. Test etmeden önce, ses seviyesini makul bir düzeye getirebilirsiniz.

  • Ses seviyesini azaltın:
$ ossmix vol 15
$ ossmix pcm 15
  • OSS testini başlatmak için şu komutu verin:
$ osstest

Bu komutu verdikten sonra OSS'nin test müziğini duyuyor olmalısınız. Eğer ses alamıyorsanız, yukarıda verilen ses seviyesi komutu (ossmix) ile ses seviyesini yükseltmeyi deneyin.

Karıştırıcı

Komut satırı karıştırıcısı ossmix uygulamasıdır. BSD'deki mixerctl uygulamasıyla benzer nitelikler taşımaktadır.

Ayrıca grafik arabirimine sahip ossxmix uygulaması da kullanılabilir. ossxmix'in tek bağımlılığı gtk2'dir.

ossxmix kontrolü aşağıdaki örnekle açıklanmaktadır:

  ______________________________
 / High Definition Audio ALC262 \    ----------------------------------> Her ses kartı için bir sekme bulunur
/________________________________\_______________________________
|
| [x] vmix0-enable [vmix0-rate: 48.000kHz]      vmix0-channels     \     vmix'in (sanal karıştırıcı) özel ayarları
|                                               [ Stereo [v] ]      |--> bu kısımda görünmektedir. Bu ayarlar örnekleme ayarı
|                                                                  /     ve karıştırıcı önceliklerini kapsar. OSS tarafından sağlanır.
|  __codec1______________________________________________________  
| |  _jack_______________________________________________________  \     
| | |  _int-speaker____________________  __green_________________   |
| | | |                                | |                          |    Bu ayarlar ses kartınıza has ayarlardır.
| | | |  _mode______   | |             | |  _mode______   | |       |    Buradaki her karıştırıcı kontrolü ses kartınız
| | | | [ mix   [v] ]  o o [x] [ ]mute | | [ mix   [v] ]  o o [x]   |--> tarafından sağlanan özelliklere yöneliktir. Her ses kartının kendi
| | | |                | |             | |                | |       |    spesifik ayarları bu kısımda gösterilir. Ses kartından ses kartına
| | | |________________________________| |_______________________   |    değişir.
| | |____________________________________________________________   |
| |______________________________________________________________  /
|
| ___vmix0_______________________________________________________  \
| |  __mocp___  O O   _firefox_  O O  __pcm7___  O O                |    Bu kısımda vmix karıştırıcı kontrolleri bulunmaktadır.
| | |         | O O  |         | x x |         | O O                |    Bu kontroller OSS tarafından sağlanmaktadır. Her
| | | | |     | x O  | | |     | x x | | |     | O O                |    kaydırıcı farklı bir programın ses seviyesini düzenler
| | | o o [x] | x x  | o o [x] | x x | o o [x] | O O                |--> Bir uygulama ses kartını kullandığında ismi 'pcm#' kısmında
| | | | |     | x x  | | |     | x x | | |     | O O                |    görüntülenir. Ayrıca her uygulama için ses seviyesi sayacı
| | |_________| x x  |_________| x x |_________| O O                |    bulunmaktadır.
| |______________________________________________________________   |    
|________________________________________________________________  /

Karıştırıcı ayarlarını kaydetmek ve tekrar kullanmak

Eğer ses karıştırıcı ayarlarını elle kaydetmek istiyorsanız, savemixer uygulamasını çalıştırın. Ancak yazma için /usr/lib/oss/etc/save.mixer dosyasına yazma izniniz bulunmalıdır veya '-f' parametresini kullanarak farklı bir dosyaya yazdırabilirsiniz. savemixer -L komutunu kaydettiğiniz ayarları tekrar kullanmak için verebilirsiniz. Açılış (init) betikleri bu komutları açılışta ve kapanışta kullanmaktadır.

savemixer

Uygulamaları OSS için yapılandırmak

Bir uygulamanın sadece OSS sürücüsünü kullanmasını sağlamak için en basit yöntem o uygulamayı ALSA desteği olmadan tekrar derlemektir. Bu uygulamaların çoğu alsa-lib bağımlılığına sahiptir, bu yüzden onları bulup tekrar derleyebilirsiniz.

  • alsa-lib bağımlılığına sahip paketleri bulmak için:
$ pacman -Qi alsa-lib
  • OSS'ye has uygulamalar AUR üzerinde -oss ismi ile bulunmaktadır Eğer istediğiniz bir uygulamayı bulursanız, PKGBUILD'ini indirip makepkg ile paket haline getirip kurabilirsiniz.
  • Ayrıca farklı bir yöntem olarak ABS'yi kullanabilirsiniz. İstediğiniz paketten alsa-lib bağımlılığını kaldırıp, tekrar derleyip kurabilirsiniz.

Skype

skype paketi öntanımlı olarak sadece ALSA kullanmaktadır. Eğer OSS tabanlı bir Skype kullanmak istiyorsanız, skype-ossŞablon:Linkrot paketini kurmanız gerekmektedir.

KDE Phonon

Qt Phonon öntanımlı olarak OSS'yi desteklemektedir.

Buna rağmen, eğer KDE kullanıyorsanız, ses çıktısı için Xine altyapısını kullanıyorsanız sorun yaşayabilirsiniz. Phonon altyapısını değiştirerek bu sorunu çözebilirsiniz.

~/.kde4/share/config/servicetype_profilerc dosyasını aşağıdaki gibi değiştirin:

[PhononBackend]
Entry0_Preference=2
Entry0_Service=phononbackends/gstreamer.desktop
Entry1_Preference=1
Entry1_Service=phononbackends/xine.desktop
NumberOfEntries=2

Wine

  • winecfg'yi çalıştırın.
winecfg
  • Ses (Audio) sekmesini açın.
  • OSS Sürücüsünü seçin.

Diğer Uygulamalar

Eğer bir uygulamadan ses alamıyorsanız, Configuring Applications for OSSv4 sayfasını ziyaret ediniz.

Sorun Giderme

HDAudio aygıtları için sorun giderme

Problemin çıkış nedenini araştırma

Eğer bir HDAudio ses aygıtına sahip iseniz, ses çalıştırmadan önce bazı karıştırıcı ayarlarını yapmanız gerekmektedir.

HDAudio aygıtları algılama konusunda bir çok küçük devre barındırdığı için bunlar yazılım ile kolayla ayarlanabilir ve değiştirilebilir. Mesela, kulaklık jack'i ses çıkış jack'ine kolayca dönüştürülebilir.

Buna rağmen, bazı donanım firmaları sadece resmi sürücülerini önemsedikleri için sorunlar yaşanabilir. Bu konuda donanımı üreten firmanın gerekli bilgileri paylaşmaması nedeniyle sorunlar yaşandığı gerçeği ön plana çıkmaktadır.

HDAudio aygıtlarını kullanırken, düzensiz karıştırıcı kontrolleri ile karşılaşabilirsiniz. Ses alana kadar karıştırıcı ayarları ile oynayabilirsiniz. Ön planda karıştırıcı ayarları ile uğraşırken arkaplanda kayıt ve oynatma yapan bir bir uygulama yapabilirsiniz (mesela, kayıt için ossrecord - | ossplay - veya oynatma için osstest -lV)

Çözüm

ossxmix uygulamasını çalıştırın ve orta kısımdaki karıştırıcı ayarlarını değiştirmeyi deneyin. Bu ayarlar "karıştırıcı" kısmında da belirtildiği gibi ses kartına has ayarlardır.

  • Ses seviyelerini en üst düzeye getirin.
  • Her seçenek kutusunda belirtilen seçeneği bütün kombinasyonları deneyerek değiştirmeyi deneyin.
  • Eğer cızırtı geliyorsa, cızırtının kaynağını bulana dek ses seviyesini düşürmeyi veya sesi tamamen kapatmayı deneyin.

Tekrar üzerinde durmakta fayda var; en üstteki veya en alttaki ayarları değiştirmenizin herhangi bir faydası olmaz, çünkü o ayarlar vmix yani sanal karıştırıcı ayarlarıdır. Önemli olan orta kısımdaki ayarlardır.

Diğer sorunlar

  • Eğer ses cızırtılı geliyorsa, ses seviyesini düşürmeye çalışın.
  • Öntanımlı ses kartını değiştirmek için [1] sayfasını ziyaret edin.

İpuçları

Çokluortam Tuşlarını OSS ile Kullanmak

Eğer öntanımlı olarak çokluortam tuşlarınız çalışmıyorsa Using multimedia keys with OSS sayfasını ziyaret edin.

Diğer İpuçları

ALSA Öykünümü (emulation)

ALSA Öykünümü nedir?

alsa-lib kütüphanelerinin ses çıkışı için OSS'yi olarak kullanmasını sağlayabilirsiniz. Bu yöntem ALSA öykünümü olarak adlandırılmaktadır.

Bu yöntem, seste gecikmeye yol açabileceği gibi şu an tamamlanmamış olduğu için tüm uygulamalarda çalışmayabilir.

Bu bakımdan, çoğu uygulama OSS'yi doğrudan desteklediği için bu yöntemi en son çare olarak uygulamanız tavsiye edilmektedir.

İleriki zamanlarda çeşitli öykünüm yolları da eklenenerek ALSA öykünümü kapsamı genişletilecektir. Mesela: AUR üzerindeki libsalsa güncel bir örnek olarak karşımıza çıkmaktadır.

NASIL?

  • alsa-plugins paketini kurun.
pacman -S alsa-plugins
  • /etc/asound.conf dosyasını şu şekilde düzenleyin:
pcm.oss {
    type oss
    device /dev/dsp
}

pcm.!default {
    type oss
    device /dev/dsp
}

ctl.oss {
    type oss
    device /dev/mixer
}

ctl.!default {
    type oss
    device /dev/mixer
}


Deneysel Paketler

Mercurial deposu sürümü

AUR üzerinde bulunan oss-mercurial paketiŞablon:Linkrot OSS'nin en son ve güncel geliştirme sürümünü Mercurial deposundan alarak kurmak için hazırlanmıştır.

Bu paketi OSS gelişimine destek için kurabileceğiniz gibi, daha önce desteklenmeyen ses kartınızın desteklenip desteklenmediğini görmek için kullanabilirsiniz.

Kişisel araçlar
GOOGLE
Diğer dillerde