Gentoo Logo

Panduan ALSA Gentoo Linux

Daftar Isi:

1.  Pendahuluan

Apa itu ALSA?

ALSA, yang berarti Advanced Linux Sound Architecture, menyediakan fungsionalitas audio dan MIDI (Musical Instrument Digital Interface) di sistem operasi Linux. ALSA merupakan sound subsystem default di kernel 2.6 dengan menggantikan OSS (Open Sound System) yang telah dipakai di kernel 2.4.

Fitur utama ALSA termasuk dukungan tepatguna untuk seluruh jenis antarmuka audio mulai dari kartu suara pengguna biasa sampai ke peralatan sound profesional, driver termodulasi penuh, SMP dan keamanan thread, kompatibilitas ke belakang dengan OSS dan sebuah user-space library alsa-lib untuk menjadikan pengembangan aplikasi semakin mudah.

ALSA di Gentoo

Salah satu kekuatan utama Gentoo adalah memberikan kebebasan penuh kepada penggunanya untuk mengatur bagaimana sistemnya terinstal dan terkonfigurasi. ALSA di Gentoo mengikuti prinsip yang sama. Ada dua cara bagi anda untuk mendapatkan dukungan ALSA secara penuh di sistem anda. Kita akan membicarakannya secara terinci di bagian selanjutnya.

2.  Instalasi ALSA

Pilihan-pilihan

Peringatan: Metode-metode yang dijelaskan di bawah ini saling bertolak-belakang. Anda tidak bisa mengkompilasi ALSA di kernel dan menggunakan media-sound/alsa-driver. Pasti akan gagal.

Kedua pilihan yang tersedia adalah :

  1. Menggunakan ALSA yang disediakan oleh kernel. Ini adalah metode yang diutamakan.
  2. Menggunakan paket media-sound/alsa-driver Gentoo.

Driver di dalam kernel dan paket alsa-driver agak sedikit berbeda; bisa jadi ada fitur yang dimiliki oleh salah satu driver dan tidak dimiliki oleh driver yang lain. Para pengembang pusat sudah mengetahui masalah ini, tetapi memang kedua driver dipisah dan dibedakan dengan sengaja. Anda juga harus tahu bahwa cara kerja kedua driver ini berbeda, jadi jika salah satunya tidak bisa berfungsi, cobalah driver yang lain! Kita akan mengintip kedua-duanya sebelum akhirnya memutuskan pilihan kita.

Jika anda ingin menggunakan ALSA dari kernel, berikut ini adalah kelebihan dan kekurangannya:

ALSA dari Kernel Kelebihan dan Kekurangan
+ Tidak memerlukan instalasi paket lain; driver telah diikutsertakan di dalam kernel
+ Solusi praktis. Tidak perlu melakukan emerge berkali-kali.
- Bisa jadi versinya sedikit berbeda dari alsa-driver.

Dan, jika anda ingin menggunakan alsa-driver,

alsa-driver Kelebihan dan Kekurangan
+ Kemungkinan merupakan driver terbaru dari Proyek ALSA.
+ Bermanfaat jika anda ingin mengembangkan driver suara.
- Setiap kompilasi ulang kernel memerlukan emerge ulang alsa-driver.
- Memerlukan beberapa opsi konfigurasi kernel untuk dinonaktifkan agar bisa bekerja dengan benar.

Jadi...

Perbedaan dari paket alsa-driver dan ALSA dari kernel tidak terlalu besar, seperti yang telah disebutkan di atas. Karena itu, anda dianjurkan untuk terlebih dahulu mencoba driver alsa dari kernel karena alasan kemudahan. Sebelum melaporkan masalah terkait suara ke Bugzilla Gentoo, cobalah untuk mengulangi kembali semua langkah yang telah anda lakukan dengan menggunakan alsa-driver, kemudian laporkan bug, apapun hasil yang anda dapatkan.

Sebelum anda melanjutkan

Metode manapun yang anda pilih, anda perlu mengetahui driver apa yang digunakan oleh kartu suara anda. Pada kebanyakan kasus, kartu-kartu suara (onboard dan yang lainnya) berbasis PCI dan lspci akan membantu anda untuk mencari info yang anda perlukan. Silakan emerge sys-apps/pciutils untuk mendapatkan lspci, jika anda belum menginstalnya. Jika anda memiliki kartu suara USB, lsusb dari sys-apps/usbutils mungkin bisa membantu. Untuk kartu-kartu ISA, coba gunakan sys-apps/isapnptools. Selain itu, halaman-halaman berikut ini mungkin bisa membantu anda yang menggunakan kartu suara ISA.

Catatan: Untuk memudahkan penggunaan/penjelasan, kami anggap anda menggunakan kartu suara berbasis PCI sebagai pengingat di panduan ini.

Sekarang kita lanjutkan dengan mencari informasi kartu suara.

Daftar Kode 2.1: Soundcard Details

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

Sekarang kita telah mengetahui bahwa kartu suara yang ada di komputer adalah Sound Blaster Live! dan pembuatnya adalah Creative Labs. Bukalah halaman ALSA Soundcard Matrix lalu pilih Creative Labs dari menu. Anda akan dibawa ke halaman matrix Creative Labs tempat anda bisa melihat bahwa SB Live! menggunakan modul emu10k1. Itulah informasi yang kita butuhkan untuk saat ini. Jika anda tertarik dengan info detilnya, anda dapat mengklik link di samping "Details" yang akan membawa anda ke halaman khusus emu10k1.

Jika anda ingin menggunakan MIDI, maka anda perlu menambahkan flag USE midi di /etc/make.conf sebelum meng-emerge paket ALSA apapun. Nanti pada panduan ini, kami akan menjelaskan cara menyiapkan dukungan MIDI.

Menggunakan ALSA dari kernel

Jika anda mempermudah hidup anda seperti penulis, maka inilah pilihan yang tepat untuk anda.

Catatan: Sejak rilis 2005.0, Gentoo menggunakan kernel seri 2.6 sebagai kernel default. Periksa apakah kernel anda merupakan kernel seri 2.6. Metode ini tidak dapat digunakan dengan kernel 2.4.

Mari kita konfigurasi kernel untuk mengaktifkan dukungan ALSA.

Penting: Pengguna genkernel sekarang harus menjalankan genkernel --menuconfig all lalu mengikuti petunjuk di Opsi-opsi Kernel untuk ALSA.

Daftar Kode 2.2: Menuju source kernel

# cd /usr/src/linux
# make menuconfig

Catatan: Contoh di atas menganggap bahwa symlink /usr/src/linux menunjuk ke source kernel yang ingin anda gunakan. Pastikan ini sebelum melanjutkan.

Sekarang kita akan melihat ke beberapa opsi yang harus kita aktifkan di kernel 2.6 untuk memastikan dukungan ALSA yang benar untuk kartu suara kita.

Harap dicatat bahwa demi kemudahan, seluruh contoh menunjukkan ALSA dikompilasi sebagai modul. Anda sangat dianjurkan untuk mengikutinya karena dengan begini kita dapat menggunakan alsaconf yang merupakan keuntungan ketika anda akan mengkonfigurasi kartu suara anda. Diharap untuk tidak melangkahi bagian konfigurasi pada dokumen ini. Jika anda masih ingin menjadikan opsi-opsi ini built-in, pastikan untuk melakukan perubahan yang sesuai pada konfigurasi anda.

Daftar Kode 2.3: Opsi-opsi Kernel untuk ALSA

Device Drivers  --->
   Sound  --->

(Opsi ini harus diaktifkan)
<M> Sound card support

(Pastikan OSS tidak aktif)
Open Sound System   --->
   < > Open Sound System (DEPRECATED)

(Mundur satu level lau masuk ke bagian ALSA)
Advanced Linux Sound Architecture  --->
   <M> Advanced Linux Sound Architecture
   (Pilih ini jika anda menginginkan sequencing dan routing MIDI)
   <M> Sequencer support
   (Dukungan /dev/mixer* dan /dev/dsp* model lama. Dianjurkan.)
   <M> OSS Mixer API
   <M> OSS PCM (digital audio) API

(Sekarang anda telah mendapatkan pilihan untuk mengaktifkan dukungan
bagi perangkat anda. Biasanya anda hanya punya satu jenis kartu saja, tidak
lebih. Jika anda memiliki lebih dari satu kartu suara, silahkan untuk
mengaktifkan dukungan bagi semuanya di sini.)

(Biasanya untuk tujuan percobaan dan pengembangan. Tidak diperlukan
oleh pengguna biasa, kecuali anda tahu apa yang sedang anda kerjakan.)
Generic devices  --->

(Untuk kartu suara ISA)
ISA devices   --->
(JIKA anda memiliki Gravis, anda harus memilih opsi ini.)
   <M> Gravis UltraSound Extreme

(Mundur satu level lalu masuk ke bagian perangkat PCI. Kebanyakan
kartu suara sekarang merupakan perangkat PCI.)
PCI devices   --->
   (Kita sekarang memilih driver emu10k1 untuk kartu kita)
   <M> Emu10k1 (SB Live!, Audigy, E-mu APS)
   (Atau untuk kartu suara Intel)
   <M> Intel/SiS/nVidia/AMD/ALi AC97 Controller
   (atau jika anda memiliki kartu ViA)
   <M> VIA 82C686A/B, 8233/8235 AC97 Controller

(Mundur satu level lalu pilih jika anda menggunakan kartu suara
USB)
USB Devices   --->

Sekarang pilihan anda sudah siap, anda dapat mengkompilasi (ulang) kernel dan dukungan ALSA untuk kartu suara anda akan berfungsi ketika anda reboot dengan kernel baru. Jangan lupa untuk memperbarui konfigurasi GRUB agar menggunakan kernel baru. Anda sekarang boleh melanjutkan ke Utilitas ALSA dan lihatlah apakah semuanya sudah bekerja sebagaimana mestinya.

Menggunakan Paket Driver ALSA

Kelihatannya anda telah memutuskan untuk menggunakan paket alsa-driver. Mari kita mulai. Ada beberapa hal yang harus terlaksana untuk memastikan agar hanya driver yang anda inginkanlah yang akan dikompilasi. Hal ini memang tidak terlalu penting, namun bisa mencegah kompilasi driver-driver yang tidak diinginkan.

Jika anda tidak tahu driver apa yang diperlukan oleh kartu suara anda,lihatlah bagian lspci dari panduan ini. Jika anda sudah mengetahui nama driver kartu suara anda (emu10k1 di contoh kita), edit file /etc/make.conf dan tambahkan variabel ALSA_CARDS.

Daftar Kode 2.4: Menambahkan ALSA_CARDS di make.conf

(Untuk satu kartu suara)
ALSA_CARDS="emu10k1"
(Untuk lebih dari satu, pisahkan dengan spasi)
ALSA_CARDS="emu10k1 via82xx"

Jika anda telah mengkompilasi kernel anda dan anda ingin menggunakan alsa-driver, harap pastikan hal-hal berikut sebelum melanjutkan, jika tidak, kemungkinan alsa-driver akan gagal. Daftar kode berikut ini akan memberikan anda satu cara untuk melaksanakan pemeriksaan tersebut.

Catatan: Pengguna genkernel dapat langsung melanjutkan ke Instalasi alsa-driver karena konfigurasi default genkernel sudah sesuai dengan yang tertera di bawah ini.

  1. CONFIG_SOUND telah di-set. (Dukungan suara dasar telah diaktifkan)
  2. CONFIG_SOUND_PRIME tidak diaktifkan. (Dukungan in-built OSS dinonaktifkan)
  3. CONFIG_SND tidak diaktifkan. (Dukungan built-in ALSA dinonaktifkan)
  4. /usr/src/linux menunjuk ke kernel yang ingin anda berikan dukungan ALSA.

Daftar Kode 2.5: Pemeriksaan .config

(Dengan anggapan symlink linux menunjuk ke kernel yang benar)
# cd /usr/src/linux
# grep SOUND .config
(1. benar)
CONFIG_SOUND=y
(2. benar)
CONFIG_SOUND_PRIME is not set
# grep SND .config
(dan 3. benar)
CONFIG_SND is not set

Sekarang yang harus anda lakukan adalah mengetikkan kata-kata ajaib, tetapi bukan abrakadabra.

Daftar Kode 2.6: Instalasi alsa-driver

# emerge alsa-driver

Penting: Perlu dicatat bahwa anda harus meng-emerge alsa-driver setiap kali anda mengkompilasi (ulang) kernel, karena driver yang sebelumnya telah dihapus. Agar lebih mudah, emerge saja paket module-rebuild yang akan melacak semua paket-paket modul dan menginstalnya kembali untuk anda. Pertama, jalankan module-rebuild populate untuk menciptakan daftar modul, kemudian jalankan module-rebuild rebuild dan semua modul eksternal anda akan dikompilasi ulang.

3.  Konfigurasi/Tes ALSA

Utilitas ALSA

alsa-utils membentuk bagian utuh dari ALSA karena paket ini berisi program-program yang sangat berguna, termasuk skrip init ALSA. Oleh karena itu kami sangat menganjurkan anda untuk menginstal alsa-utils.

Daftar Kode 3.1: Instalasi alsa-utils

# emerge alsa-utils

Catatan: Jika anda telah mengaktifkan ALSA di kernel dan tidak mengkompilasi ALSA sebagai modul, lanjutkan ke bagian Skrip Init ALSA. Jika belum, anda perlu mengkonfigurasi ALSA. Konfigurasi ini telah dipermudah dengan adanya utilitas alsaconf yang disediakan oleh paket alsa-utils.

Konfigurasi

Versi-versi baru udev (>=udev-103) menyediakan konfigurasi otomatis untuk kartu suara anda pada level kernel. Jika memungkinkan, coba biarkan saja kernel anda mengatur kartu suara anda secara otomatis, namun jika tidak berhasil, gunakan alsaconf untuk mengkonfigurasinya, seperti pada contoh berikut:

Catatan: Harap untuk menutup semua program yang mungkin mengakses kartu suara anda selama menjalankan alsaconf.

Cara untuk mengkonfigurasi kartu suara anda ialah dengan menggunakan alsaconf. Sebagai root, ketik alsaconf di shell.

Daftar Kode 3.2: Menjalankan alsaconf

# alsaconf

Sekarang anda akan melihat sebuah tampilan dengan menu yang rapi, yang secara otomatis akan mendeteksi perangkat anda dan mencoba untuk menemukan kartu suara anda. Anda akan diminta untuk memilih kartu suara anda dari sebuah daftar. Setelah selesai, anda akan ditanyakan apakah anda mengizinkannya untuk merubah isi /etc/modules.d/alsa secara otomatis. Kemudian volume suara akan dinaikkan sampai tingkat optimal. Jalankan update-modules dan servis /etc/init.d/alsasound. Setelah anda keluar dari alsaconf, anda dapat melanjutkan ke pengaturan skrip init ALSA.

Skrip Init ALSA

Kita hampir selesai. Metode apapun yang telah anda pilih untuk instalasi ALSA, anda perlu sesuatu untuk memuat modul anda atau menginisialisasi ALSA dan mengembalikan pengaturan volume anda ketika sistem anda dinyalakan. Skrip init ALSA dapat menangani semua ini untuk anda, dan dinamakan alsasound. Tambahkan skrip ini ke runlevel boot.

Daftar Kode 3.3: Menambahkan ALSA ke runlevel boot

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

Selanjutnya, periksalah file /etc/conf.d/alsasound untuk memastikan bahwa variabel SAVE_ON_STOP telah berisi "yes". Variabel ini akan menyimpan pengaturan volume anda ketika sistem dimatikan.

Grup Audio

Sebelum kita melanjutkan ke tahap pengujian, ada satu hal penting lagi yang harus kita siapkan. Aturan dasar di OS *nix: Jangan dijalankan sebagai root kecuali jika memang diperlukan. Aturan ini berlaku juga di sini ;) Bagaimana? Anda seharusnya login sebagai user biasa jika ingin memutar musik dan mengakses kartu suara anda. Untuk itu, anda perlu menjadi anggota grup "audio". Pada tahap ini, kita akan memasukkan user ke grup audio agar tidak mendapatkan masalah ketika ingin mengakses kartu suara. Di sini kita akan menggunakan gpasswd dan anda perlu login sebagai root untuk dapat menjalankannya.

Daftar Kode 3.4: Memasukkan user ke grup audio

(Gantikan <namauser> dengan nama user anda)
# gpasswd -a <namauser> audio 
Adding user <namauser> to group audio

Periksa Volume!

Kita telah menyelesaikan semua tahap instalasi dan pengaturan. Sekarang mari kita jalankan ALSA. Jika anda telah menjalankan alsaconf, anda boleh melangkahi tahap ini, karena alsaconf telah melakukannya untuk anda.

Daftar Kode 3.5: Menjalankan servis alsa

# /etc/init.d/alsasound start

Semua yang diperlukan sudah siap, sekarang kita perlu memeriksa volume karena biasanya volume dalam keadaan mute. Untuk ini, kita gunakan alsamixer.

Daftar Kode 3.6: Menjalankan alsamixer

(Jalankan sebuah program konsol. Hanya pengaturan penting yang akan
ditampilkan)
# alsamixer

Penting: Jika anda mendapatkan masalah ketika menjalankan alsamixer dan mendapatkan error seperti "alsamixer: function snd_ctl_open failed for default: No such file or directory", biasanya ini disebabkan oleh udev ketika menngatur perangkat. Jalankan killall udevd; udevstart untuk memuat ulang entri /dev lalu jalankan alsamixer. Langkah ini seharusnya bisa mengatasi masalah tersebut.

Mungkin inilah tampilan ALSA Mixer ketika anda pertama kali menjalankannya. Perhatikan channel Master dan PCM yang keduanya memiliki tanda MM di bawahnya. Jika anda mencoba untuk memainkan sesuatu dengan alsamixer pada tahap ini, anda tidak akan bisa mendengarkan suara apapun di speaker anda.


Gambar 3.1: Jendela Utama Alsa Mixer, Mute

Fig. 1: AlsaMixer Mute

Sekarang, kita harus meng-unmute channel-channel-nya, lalu atur level volume seperlunya.

Peringatan: Master dan PCM harus di-unmute dan volumenya harus ditetapkan ke level yang dapat didengar jika anda ingin mendengarkan output dari speaker anda.

  • Untuk pindah ke channel yang lain, gunakan tombol panah kiri dan kanan. (<- & ->)
  • Untuk meng-(un)mute, pindah ke channel tertentu, mis. Master, lalu tekan tombol m di keyboard.
  • Untuk menaikkan/menurunkan level volume, gunakan tombol panah atas dan bawah.

Catatan: Berhaiti-hatilah ketika anda mengatur level Bass dan Treble. Biasanya 50 adalah nilai yang tepat untuk keduanya. Nilai Bass yang terlalu tinggi akan menyebabkan getaran kuat di speaker yang tidak dirancang untuk mengatasinya.

Setelah anda selesai, ALSA Mixer anda akan terlihat seperti di bawah ini. Perhatikan 00 yang menggantikan MM, juga level-level volume yang telah diatur ke tingkat optimal.


Gambar 3.2: Alsa Mixer siap pakai

Fig. 2: AlsaMixer Unmute

Periksa Suara!

Akhirnya. Musik! Jika semua langkah diatas telah dijalankan dengan sempurna, anda seharusnya sudah bisa mendengarkan musik. Cara cepat untuk memeriksanya ialah dengan menggunakan utilitas baris perintah seperti media-sound/madplay. Anda juga dapat menggunakan aplikasi yang lebih terkenal seperti mpg123. Jika anda penggemar ogg, anda dapat menggunakan ogg123 yang disediakan oleh media-sound/vorbis-tools. Gunakan player apapun yang anda suka. Seperti biasa, emerge apapun yang anda butuhkan.

Daftar Kode 3.7: Mendapatkan software

(Instal aplikasi yang anda inginkan)
# emerge madplay mpg123
(Untuk memainkan file .ogg)
# emerge vorbis-tools

Dan mainkan musik favorit anda......

Daftar Kode 3.8: Memainkan 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 dan USE

Sekarang anda dapat menambahkan flag USE alsa di file /etc/make.conf untuk memastikan bahwa aplikasi anda mendapatkan dukungan ALSA ketika dikompilasi. Flag ini telah diaktifkan secara default pada beberapa arsitektur seperti x86 dan amd64.

Masalah?

Jika anda tidak bisa mendengarkan suara dari speaker, hal pertama yang harus anda lakukan ialah memeriksa kembali pengaturan alsamixer anda. 80% penyebab masalah ini adalah channel yang masih di-mute atau level volume yang rendah. Periksa juga applet suara Window Manager anda dan pastikan agar volume telah ditetapkan ke level yang dapat didengar.

/proc adalah teman anda. Pada kasus ini, /proc/asound merupakan teman terbaik anda. Kita akan melihat berapa banyak info yang tersedia untuk kita di sana.

Daftar Kode 3.9: Bersenang-senang dengan /proc/asound

(Pertama dan paling utama, jika /proc/asound/cards menampilkan kartu
anda, berarti ALSA telah menemukannya.)
# cat /proc/asound/cards
0 [Live           ]: EMU10K1 - Sound Blaster Live!
                     Sound Blaster Live! (rev.6, serial:0x80271102) at 0xb800, irq 11

(Perintah ini akan menampilkan versi ALSA yang sedang anda gunakan)
# cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.8 (Thu Jan 13 09:39:32 2005 UTC).

(Rincian emulasi OSS ALSA)
# 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

Masalah yang sering dihadapi oleh pengguna adalah masalah"Unknown symbol in module" yang cukup menakutkan, seperti yang ditampilkan di contoh berikut ini.

Daftar Kode 3.10: Masalah Unknown Symbol di modul

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

Dan ketika anda melihat tampilan dmesg seperti yang disarankan, kemungkinan besar anda akan menemukan:

Daftar Kode 3.11: Output dmesg

(Hanya bagian penting yang ditampilkan)
# 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

Masalah di atas terjadi ketika anda pindah dari alsa-driver ke driver ALSA di kernel. Karena anda meng-unmerge alsa-driver, modul dan file konfigurasi yang dilindungi masih tertinggal. Jadi, modprobe akan memberikan anda campuran dari alsa-driver dan modul dari kernel yang dapat menyebabkan masalah tersebut.

Solusinya sangat mudah. Kita hanya perlu menghapus direktori yang menyebabkan masalah ini setelah anda meng-unmerge alsa-driver. Pastikan bahwa anda menghapus versi kernel yang benar, bukan yang sedang anda gunakan!

Daftar Kode 3.12: Menghapus modul-modul alsa-driver

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

Penyebab lain dari masalah yang mirip dengan masalah tadi bisa jadi sebuah file di /etc/modules.d memberikan sebuah parameter device_mode yang tidak diperlukan. Konfirmasikan apakah ini penyebabnya lalu temukan file jahat itu.

Daftar Kode 3.13: Konfirmasi dan cari device_mode

(Periksa dmesg untuk mengkonfirmasi)
# dmesg | grep device_mode
snd: Unknown parameter `device_mode'
(Sekarang, untuk menemukan sumber masalah)
# grep device_mode /etc/modules.d/*

Biasanya file ini bernama alsa dengan baris options snd device_mode=0666. Hapus baris ini lalu restart servis alsasound, maka anda akan terbebas dari masalah ini.

4.  Hal-hal lain terkait ALSA

Menyiapkan dukungan MIDI

Jika kartu suara anda memiliki synthesizer MIDI on-board dan anda ingin mendengarkan file .mid, anda harus menginstal awesfx yang pada dasarnya merupakan kumpulan utilitas untuk mengendalikan driver AWE32. Pertama kita perlu menginstalnya. Jika anda tidak memiliki synthesizer hardware, anda dapat menggunakan synthesizer virtual. Bacalah bagian Synthesizer Virtual untuk info lebih lanjut.

Daftar Kode 4.1: Instalasi awesfx

# emerge awesfx

Catatan: Anda perlu menyalin file-file SoundFont (SF2) dari CD driver kartu suara anda, atau dari instalasi Windows ke /usr/share/sounds/sf2/. Sebagai contoh, sebuah file font suara untuk kartu Creative SBLive! adalah 8MBGMSFX.SF2.

Setelah menyalin file-file Soundfont, kita akan memainkan sebuah file midi seperti yang ditunjukkan di bawah ini. Anda juga dapat menambahkan perintah asfxload ke /etc/conf.d/local.start, agar font sound dimuat setiap kali sistem dinyalakan.

Catatan: Path /mnt yang disebutkan di baris kode berikut ini tidak akan sama dengan yang ada di komputer anda. Ini hanya contoh. Harap mengganti path dengan yang sesuai.

Daftar Kode 4.2: Load Soundfonts

(Pertama, salin Soundfont)
# cp /mnt/win2k/Program\ Files/CreativeSBLive2k/SFBank/8MBGMSFX.SF2 /usr/share/sounds/sf2/
(Atau dapatkan dari CD SoundBlaster anda)
# cp /mnt/cdrom/AUDIO/ENGLISH/SFBANK/8MBGMSFX.SF2 /usr/share/sounds/sf2/
(Muat Soundfont)
# asfxload /usr/share/sounds/sf2/8MBGMSFX.SF2

Sekarang anda bisa memainkan file midi menggunakan program seperti aplaymidi. Jalankan aplaymidi -l untuk mendapatkan daftar port yang tersedia lalu pilih salah satu untuk memainkan file di port tersebut.

Daftar Kode 4.3: Memainkan file MIDI

(Periksa port yang terbuka)
# 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
(Pilih sebuah port, dan mainkan sebuah file mid)
#  aplaymidi --port=65:0 /mnt/shyam/music/midi/mi2.mid

Synthesizer Virtual

Jika kartu suara anda tidak memiliki synthesizer hardware, anda dapat menggunakan synthesizer virtual seperti timidity++. Instalasinya mudah.

Daftar Kode 4.4: Instalasi timidity++

# emerge timidity++

Agar timidity dapat memainkan file, diperlukan sebuah soundfont. Tetapi anda tidak perlu khawatir karena ebuild timidity++ akan menginstal beberapa soundfont untuk anda. Ada beberapa paket font sound lain yang dapat anda instal dari Portage, seperti timidity-eawpatches dan timidity-shompatches yang akan memberikan anda beberapa soundfont. Anda boleh memiliki lebih dari satu konfigurasi soundfont terinstal, dan anda boleh meletakkannya di /usr/share/timidity/. Untuk pindah dari satu konfigurasi timidity ke konfigurasi lainnya, anda harus menggunakan eselect.

Daftar Kode 4.5: Mengganti konfigurasi

# eselect timidity list
# eselect timidity set eawpatches

Jangan lupa tambahkan timidity ke runlevel default.

Daftar Kode 4.6: Menambahkan timidity ke runlevel default

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

Sekarang anda boleh mencoba Memainkan file MIDI.

Tool dan Firmware

Beberapa kartu suara tertentu bisa mendapatkan keuntungan dari beberapa tool yang disediakan oleh paket alsa-tools dan alsa-firmware.Anda dapat menginstal salah satunya dengan emerge.

Daftar Kode 4.7: Instalasi Tool ALSA

# emerge alsa-tools

Lebih dari kartu suara

Jika anda memiliki lebih dari satu kartu suara di sistem pada waktu yang bersamaan, dengan catatan anda telah menginstal driver sebagai modul dari kernel (atau menginstal paket alsa-driver), anda hanya perlu menentukan kartu mana yang harus dinyalakan pertama kali di /etc/modules.d/alsa. Kartu-kartu anda akan dikenali dengan nama drivernya masing-masing di dalam file ini. 0 adalah kartu pertama, 1 adalah kartu kedua, dan seterusnya. Berikut ini contoh sistem yang memiliki dua kartu suara.

Daftar Kode 4.8: Dua kartu suara di /etc/modules.d/alsa

options snd-emu10k1 index=0
options snd-via82xx index=1

Atau, jika anda memiliki dua kartu suara yang menggunakan dua driver yang sama, tentukan keduanya pada baris yang sama, dengan menggunakan koma untuk memisahkan nomor-nomornya. Berikut ini adalah contoh sistem dengan tiga kartu suara, dua di antaranya adalah kartu Intel High Definition Audio.

Daftar Kode 4.9: Banyak kartu suara di /etc/modules.d/alsa

options snd-ymfpci index=0
options snd-hda-intel index=1,2

Plugin

Anda mungkin ingin menginstal beberapa plugin untuk mendapatkan kegunaan tambahan. alsa-plugins merupakan kumpulan plugin, yang berisi: output PulseAudio, pengubah sample rate, jack (low-latency audio server), dan encoder yang dapar anda gunakan untuk mengeluarkan suara 6-channel melalui koneksi S/PDIF digital (optical dan coaxial). Anda dapat memilih plugin yang ingin anda instal dengan menambahkan flag USE yang sesuai di /etc/portage/package.use.

Daftar Kode 4.10: Instalasi alsa-plugins

# emerge -avt alsa-plugins

Terima kasih kepada...

Semua yang telah berkontribusi di versi terdahulu dari Panduan ALSA Gentoo: Vincent Verleye, Grant Goodyear, Arcady Genkin, Jeremy Huddleston, John P. Davis, Sven Vermeulen, Benny Chuang, Tiemo Kieft dan Erwin.

Referensi



Print

Diperbarui 7 Mei 2007

Versi asli dari dokumen ini terakhir diupdate 5 Agustus 2009

Rangkuman: Dokumen ini akan membantu anda meyiapkan ALSA di sistem Gentoo Linux.

Shyam Mani
Author

Joshua Saddler
Author

Diego Petteno
Contributor

Dzikri Aziz
Translator

Donate to support our development efforts.

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