Artikel ini dapat dilihat juga pada situs KPLI Semarang

Instalasi Sound Card dalam Linux OS

Oleh : Iwan Setiawan
http://www.duniasemu.org/writings

Pada masa sekarang kebanyakan komputer standar sudah memiliki teknologi multimedia yang mencukupi, yaitu dengan adanya kehadiran sound card sebagai salah satu komponen multimedia untuk sound device. Dalam sistem operasi winblows mungkin sound card anda akan cepat terdeteksi atau memang sudah ada driver bawaan dari sound card untuk lingkungan winblows, dan memang jarang produsen yang menyediakan driver untuk sistem operasi linux dalam paket produksi sound cardnya, walaupun sekarang sudah banyak driver-driver sound card karya para linuxer-linuxer seluruh dunia yang sudah kompatibel dengan sound card-sound card populer (umum digunakan) juga arsitektur kernel linux. Mungkin ada dari para linuxer yang punya masalah sound sistem nggak bisa nge-bunyi di linux boxnya gara-gara sound card yang nggak disupport linux.

Pada artikel ini saya hanya ingin bertukar pengalaman sedikit mengenai setup sound card, karena kebetulan sound card yamaha YMF724 DS-XG saya nggak disupport linux, tetapi akhirnya berbunyi juga..he..he dan sampai detik ini saya menulis dengan ditemani Gqmpeg yang membunyikan gedombrang Bio Hazard-Break Down. Setahu saya kernel 2.0.x dan 2.2.x (2.2.14), belum support beberapa sound card seperti Yamaha YMF 72x (punyaku YMF724 oi..) dan laen-laen lihat daftar dibawah, dan untuk kernel 2.2.16 keatas sudah support ke soundcard-soundcard yang sebelumnya nggak disupport itu dengan berbagai catatan (lihat dokumentasinya), tetapi kernel default/precompiled harus dikompile lagi dengan memasukkan sound card support dan modul sound card yang diperlukan.

I. Instalasi

Dalam bagian ini saya asumsikan anda sudah dapat memasang sound card ke motherboard dengan baik.

1.1. Konfigurasi Plug and Play/PnP

Kebanyakan sound card yang baru menggunakan Plug and Play protokol untuk mengkonfigurasi seting untuk alamat i/o, interrupt, dan channel DMA.
Pada saat boot bila kernel anda sound card support maka akan ditampilkan pesan bahwa kernel linux menemukan soundcard anda. Jika anda menggunakan distro redhat, dalam paket standarnya terdapat utiliti yang dapat mendeteksi sound card dan membuat semua konfigurasi untuk me-load driver yang sesuai dengan sound card anda yaitu 'sndconfig'. Coba, jika berhasil maka selesailah perjalanan anda dalam artikel ini.
Jika 'sndconfig' gagal, anda pasti menggunakan distro lain atau kernel anda tidak memiliki sound card support secara built-in di dalam kernel dan modul driver sound card anda belum terkompile.
Solusi lain dengan menggunakan isapnp (Tool untuk menkonfigurasi device berbasis ISA Plug and Play). Tool ini terdapat di masing-masing paket standar tiap distro linux.

Tahap-tahap penggunaan isapnp:

Beberapa driver sound card menyertakan software atau konfigurasi khusus untuk menginisialisasi Plug and Play. Cek dokumentasi driver kartu anda untuk lebih jelasnya.
Informasi tentang sound card yang disupport kernel dan feature-featurenya bisa dilihat dalam file pada source code kernel linux, biasanya ditempatkan dalam direktori /usr/src/linux/Documentation/sound.

1.2. Konfigurasi dan kompile kernel untuk mensupport sound.

Ketika anda menginstal linux dan sampai saat ini belum pernah mencompile kernel, anda pasti menggunakan precompiled kernel. Kernel precompiled tersebut sering belum memberikan sound support. Anda harus me-recompile kernel tersebut dengan sound card support yang built-in pada kernel dan membuat modul driver yang anda perlukan (yang sesuai dengan hardware anda, dalam hal ini sound card) atau membuat driver anda built-in pada kernel (jika memungkinkan).
Untuk lebih jelas mengenai bagaimana mengkompile kernel, lihat The Linux Kernel HOWTO atau dokumentasi yang berhubungan kompile kernel linux.

1.3. Membuat file device

File device biasanya sudah dibuat selama proses instalasi linux. Cara cepat untuk mengecek file device sound dapat dilakukan dengan menggunakan perintah:

root@5leaps:~#ls -l /dev/sndstat
       crw-rw-rw-   1 root     root      14,   6 Apr 30  14:50 /dev/sndstat

Jika keluarannya seperti di atas (waktunya bisa bervariasi) maka file device sound anda sudah sebagaimana mestinya.

Catatan jika anda sudah mempunyai file device, itu tidak menjamin semuanya dapat berjalan lancar. Driver kernel harus juga di-load atau dikompile sebelum device bekerja.

Jika anda yakin bahwa file device anda salah, anda dapat membuatnya kembali dengan perintah skrip /dev/MAKEDEV.

1.4. Booting linux dan tes instalasinya

Booting sistem anda dengan kernel baru dan modul driver soundnya (Jika anda membuat modul untuk driver anda). Saya asumsikan anda sudah dapat mengkompile kernel dan segala prosedurnya

Selama booting, cek pesan inisialisasi seperti di bawah ini (jika memang terlalu cepat menggulungnya, anda dapat melihat pesan tersebut dengan perintah dmesg). Contoh pesan inisialisasinya:

       	Sound initialization started
	<Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5
       	<Sound Blaster 16> at 0x330 irq 5 dma 0
       	<Yamaha OPL3 FM> at 0x388
       	Sound initialization complete

Contoh inisialisasi dari sound card saya melalui modul driver sound card (ymf_sb.o)yang di-load pada waktu boot:

	Soundblaster audio driver Copyright (C) by Hannu Savolainen 1993-1996
	ymf_sb: found YMF724 at 0xdf800000
	Yamaha PCI mode.
	YMPCI selected
	SB 3.01 detected OK (220)
	ymf_sb: YMF7xx Legacy Audio driver 0.0.4 loaded

Sesuaikan pesan di atas dengan tipe sound card anda dan seting jumper (jika ada). Catatan, pesan diatas tidak akan ditampilkan ketika anda menggunakan modul driver sound yang di-load (dengan /sbin/modprobe [modul driver yang akan diload] yang dimasukkan dalam skrip, yaitu rc.modules).

Ketika driver sound di-link ke dalam kernel, pesan inisialisasi sound seharusnya ditampilkan. Jika tidak, berarti nggak ada driver sound di dalam kernel anda. Untuk masalah ini anda seharusnya mengecek bahwa anda telah mengenable sound support dan driver sound pada kernel yang anda kompile, kartu anda nggak disupport, I/O portnya rusak atau anda mempunyai kartu PnP yang belum dikonfigurasi.

Selanjutnya anda harus mengecek file device /dev/sndstat. Lihat status file driver sound yang seharusnya memberikan tambahan informasi apakah driver sound card terinisialisai dengan benar. Contoh keluarannya seperti dibawah ini:

       	Sound Driver:3.5.4-960630 Sat Jan 4 23:56:57 JAVT 2000 root,
       	Linux 5leaps 2.2.16 #48 Thu Dec 5 18:24:45 JAVT 2000 i686)
       	Kernel: Linux 5leaps 2.2.16 #48 Thu Dec 5 18:24:45 JAVT 2000 i686
       	Config options: 0

       	Installed drivers:
       	Type 1: OPL-2/OPL-3 FM
       	Type 2: Sound Blaster
       	Type 7: SB MPU-401

       	Card config:
       	Sound Blaster at 0x220 irq 5 drq 1,5
       	SB MPU-401 at 0x330 irq 5 drq 0
       	OPL-2/OPL-3 FM at 0x388 drq 0

       	Audio devices:
       	0: Sound Blaster 16 (4.13)

       	Synth devices:
       	0: Yamaha OPL-3

       	Midi devices:
       	0: Sound Blaster 16

       	Timers:
       	0: System clock

       	Mixers:
       	0: Sound Blaster

Contoh keluaran /dev/sndstat saya dengan modul driver sound card yang di-load pada waktu boot:

	root@5leaps:~#cat /dev/sndstat
	OSS/Free:3.8s2++-971130
	Load type: Driver loaded as a module
	Kernel: Linux 5leaps 2.2.16 #5 Mon Apr 30 14:23:17 JAVT 2001 i686
	Config options: 0

	Installed drivers: 

	Card config: 

	Audio devices:
	0: YMF7xx Legacy Audio driver 0.0.4 (3.01)

	Synth devices:

	Midi devices:
	0: Sound Blaster

	Timers:
	0: System clock

	Mixers:
	0: Sound Blaster

Perintah di atas dapat memberikan pesan kesalahan/error. "No such file or directory" mengindikasikan bahwa anda perlu membuat file device (lihat 1.3). "No such device" berarti driver sound belum di-load atau belum di-link ke dalam kernel (lihat 1.2).

Jika baris dalam bagian "Card config:" dalam /dev/sndstat di dalam tanda kurung (seperti "(SoundBlaster at 0x220 irq 5 drq 1,5)"), berarti device anda sudah dikonfigurasi tapi tidak terdeteksi.

Semua sudah beres?, sekarang anda dapat memainkan file sound/audio. Mainkan sampel sound (File sample sound dapat dicari di ftp://tsx-11.mit.edu/pub/linux/packages/sound/snd-data-0.1.tar.Z) dengan mengirimkannya ke device sound sebagai cek output, misal:

       root@5leaps:~#cat singasong >/dev/dsp
       root@5leaps:~#cat asik.au >/dev/audio

Catatan:

  1. Jika anda mempunyai sound card Yamaha YMF7xx (YMF724), berdasarkan pengalaman saya pada kernel 2.2.16, penggunaan modul ymf_sb.o (pada kernel 2.2.16 berversi alfa dan dikompile sebagai modul) akan menghasilkan hang pada sistem saya bila menjalankan mp3 dengan frekuensi lebih dari 22 Khz (semua file mp3 saya berfrekuensi 44 Khz). Bila sedikit dijelaskan, driver ini memungkinkan anda untuk menggunakan sound card YMF724[A-F], YMF740[A-C], YMF744, YMF754 berlaku seperti kompatibel "SoundBlaster Pro" yang hanya dapat memainkan sampel 22.05kHz / 8bit / Stereo, port control external MIDI jika di-load.
    Saya menyarankan untuk memakai driver sound card dari Alsa (atau OSS) karena telah terbukti bagus (saya sudah mencobanya sampai detik ini). Untuk mengetahui lebih lanjut mengenai modul driver ymf_sb.o dan driver sound card lain yang didukung kernel lihat dokumentasi pada direktori /usr/src/linux/Documentation/sound/.
  2. Secara umum menggunakan 'cat' adalah tidak tepat untuk memainkan file audio, ini hanya untuk sekedar cek. Anda dapat memainkan audio file seperti MP3 dengan program sound player atau MP3 player seperti Gqmpeg, xmms, freeamp, musicjukebox, dan lain-lain. Jika berhasil maka cobalah untuk merekam sound, misalnya dari microphone dengan program-program sound player yang menyediakan fasilitas merekam.

1.5. Driver sound card alternatif.

Kalau dua cara diatas tidak merubah hidup anda terutama jika kernel anda belum mempunyai support dan modul driver untuk sound card anda, silakan mencoba driver sound card alternatif baik yang komersial maupun yang open source dan gratis.
Ada beberapa pilihan alternatif untuk driver sound card:

Disini saya menggunakan alsa-driver karena beberapa alasan yaitu driver ini merupakan free software di bawah GNU GPL, opensource, mensupport banyak sound card yang populer (umum), 'full duplex', 'fully modularized', dan kompatibel dengan arsitektur sound dalam kernel.
Alsa driver yang saya punyai versi 0.5.8b dengan ukuran file kurang lebih 753 Kb, dan yang saya tahu alsa driver udah versi 0.5.10. Catatan: alsa-driver versi 0.5.8b tidak support kernel 2.0.x.

1.5.1 Sound Card yang disupport ALSA driver.

  1. ESS Audio Drive ES-1688 dan ES-688
  2. ESS Audio Drive ES-18xx
  3. Gravis UltraSound Classic
  4. Gravis UltraSound Extreme
  5. Gravis UltraSound MAX
  6. Gravis UltraSound PnP
  7. DynaSonic 3D
  8. STB Sound Rage 32
  9. Sound card dengan basis chip AMD Interwave (tm)
  10. UltraSound 32-Pro
  11. Sound card dengan basis chip AMD Interwave dengan TEA6330T
  12. Sound Blaster 8 bit:
  13. Sound Blaster 16 bit:
  14. Yamaha OPL3-SA2/SA3
  15. OAK Mozart
  16. OPTi 82c92x dengan analog devices AD1848 chip
  17. OPTi 82c92x dengan Crystal CS4231 chip
  18. OPTi 82c93x chip
  19. S3 SonicVibes PCI
  20. Ensoniq AudioPCI ES1370 PCI
  21. AD1848/AD1847/CS4248 chip
  22. Aztech System AZT2320 chip (PnP only)
  23. CS4321 chip
  24. CS4232/CS4232A chip
  25. CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239 chip
  26. PCI Sound Card berbasis CS4610/CS4612/CS4614/CS4615/CS4280
  27. UART16550A serial midi port
  28. Trident 4DWave DX/NX
  29. ForteMedia FM801 basis PCI Sound Card
  30. Sound Card basis ESS ES968 chip (PnP only)
  31. Avance Logic ALS100
  32. Sound Card basis ESS Solo-1 (ES1938,ES1946) chip
  33. ESS Maestro-1/2/2E (ES1968/ES1978) chip
  34. Sound Card basis C-Media CMI8330 chip
  35. EMU10K1 basis PCI Sound Card
  36. Envy24 (ICE1712) basis PCI Sound Card
  37. Sound Card basis Analog Devices AD1816A/AD1815 chip
  38. AC'97 Motherboard dari intel --> Intel i810/i810E, i820, i830, i840, MX440
  39. AC'97 Motherboard basis VIA 82C686A (south) bridge
  40. C-Media CMI8338 dan 8738 PCI
  41. Yamaha PCI chip (YMF72x, YMF74x dan YMF75x)

1.5.2. Penginstalan ALSA driver.

Langkah-langkahnya:

  1. Download alsa-driver-0.5.8b.tar.bz2 (atau yang lebih baru) dari http://www.alsa-project.org/
  2. Akses sebagai root.
  3. Buka alsa-driver-0.5.8b.tar.bz2 dengan menggunakan bzip2 dengan option -d atau dengan bunzip2:

       root@5leaps :~#bzip2 -d alsa-driver-0.5.8b.tar.bz2

    atau

       root@5leaps:~#bunzip2 alsa-driver-0.5.8b.tar.bz2

    lalu teruskan dengan membuka tarball-nya:

       root@5leaps :~#tar xvf alsa-driver-0.5.8b.tar
  4. Pindah ke direktori alsa-driver-0.5.8b

       root@5leaps :~/alsa-driver-0.5.8b#cd alsa-driver-0.5.8b/
  5. Jalankan konfigurasi alsa driver dan sistem anda dengan perintah

       root@5leaps :~/alsa-driver-0.5.8b#./configure
  6. Kompilasi source code-nya dengan perintah

       root@5leaps :~/alsa-driver-0.5.8b# make
  7. Setelah kompilasi sukses, instal binary driver hasil kompilasi dengan perintah

       root@5leaps :~/alsa-driver-0.5.8b#make install
  8. Buat file sound device baru untuk sistem Linux yang akan ditempatkan pada direktori /dev dengan perintah

       root@5leaps :~/alsa-driver-0.5.8b#./snddevices
  9. Modifikasi/edit konfigurasi modprobe yang terdapat pada conf.modules atau modules.conf pada direktori /etc dengan text editor kegemaran anda (saya suka sekali dengan editor vi, simpel n' ringan sih) tambahkan baris-baris baru (modprobe/kmod support) yang dapat dilihat pada dokumentasi dari paket ALSA driver, sesuaikan dengan merek dan chip sound card anda.

    Contoh modules.conf punyaku:

    # ALSA driver support
    # Thanks!
    # Now, my linuxbox is singing at me..
    # Yeah !
    alias char-major-116 snd  
    options snd snd_major=116 snd_cards_limit=1
    alias snd-card-0 snd-card-ymfpci
    options snd-card-interwave snd_index=0 snd_id="YMF724"
    
    # OSS driver atau OSS/Free setup
    alias char-major-14 soundcore
    alias sound-slot-0 snd-card-0
    alias sound-service-0-0 snd-mixer-oss
    alias sound-service-0-1 snd-seq-oss
    alias sound-service-0-3 snd-pcm-oss
    alias sound-service-0-8 snd-seq-oss
    alias sound-service-0-12 snd-pcm-oss
  10. Lakukan perintah modprobe untuk me-load module sound card anda

       root@5leaps :~#modprobe [modul sound card anda]

    misalnya:

       root@5leaps :~#modprobe snd-ymfpci

Bila anda masih belum jelas, mohon membaca dokumentasi dari alsa driver yang sudah terdapat dalam paketnya.

Catatan:
Untuk informasi terakhir tentang sound card yang disupport dan feature-featurenya lihat file yang terdapat pada source code kernel linux, biasanya ditempatkan dalam direktori /usr/src/linux/Documentation/sound.

II. Penutup

Bila sound sangat penting bagi kita terutama sebagai teman setia yang menemani ketika kita melakukan pekerjaan, ngoprek komputer, seting/konfigurasi komputer, dan berbagai aktivitas di dalam komputer, maka seharusnya kita dapat mensetup dan mengkonfigurasi sound device baik driver sound card, dan file konfigurasi yang lain atau jika anda memang sudah ahli dan jago membuat device driver, nggak ada salahnya kalau membuat device driver untuk anda sendiri syukur-syukur bisa berguna, dimanfaatkan orang lain dengan bentuk open source dan free tentunya. Saya berharap semoga artikel ini berguna dan terakhir saya hanya manusia yang selalu punya kesalahan maka dari itu saya siap menerima berbagai macam kritik, saran, dan laen-laen (konsumsi..hi..hi..;P).

III. Referensi