تنظیم کارت صدا در FreeBSD

تاریخچه FreeBSD

قبل از شروع کار، شما باید مدل کارت صدای خود، چیپی که استفاده می‌کند و اینکه یک کارت PCI است یا ISA را بدانید. FreeBSD از طیف وسیعی از کارت های PCI و ISA پشتیبانی می‌کند. برای اینکه بفهمید آیا کارت صدای شما پشتیبانی می‌شود یا نه این لینک را چک کنید.

برای استفاده از کارت صدای خود، باید درایور مناسب را بارگذاری کنید. این کار می‌تواند به دو طریق صورت گیرد. ساده‌ترین راه این است که به سادگی درایور مناسب را با استفاده از دستور kldload در هسته بارگذاری کنید.

# kldload snd_emu10k1

یا اینکه خط مناسب را به فایل /boot/loader.conf اضافه کنید.

snd_emu10k1_load="YES"

این تنظیمات برای یک کارت صدای ‎ Creative SoundBlaster® Live!‎ است. دیگر ماژول‌های مرتبط با صدا در فایل /boot/defaults/loader.conf لیست شده‌اند. اگر مطمئن نیستید که از کدام درایور باید استفاده کنید، می توانید از ماژول snd_driver استفاده کنید:

# kldload snd_driver

این ماژول بیشتر درایورهای رایج را به یک باره در هسته بارگذاری می‌کند. به این ترتیب سرعت جستجو برای پیدا کردن درایور مناسب افزایش می‌یابد. همین طور می‌توانید تمام درایورهای کارت های صدا را در فایل /boot/loader.conf بارگذاری کنید.

اگر می‌خواهید بدانید که snd_driver کدام درایور را برای شما انتخاب کرده است، می‌توانید فایل /dev/sndstat را چک کنید:

cat /dev/sndstat

اما در روش دوم شما باید یک هسته جدید کامپایل کرده و درایور کارت صدای خود را به صورت ثابت در آن فعال کنید.

پیکربندی یک هسته جدید با پشتیبانی از کارت صدا:

اولین کاری که باید انجام دهید، اضافه کردن درایور sound به هسته است. برای انجام این کار کافی است خط زیر را به فایل پیکربندی هسته اضافه نمایید:

device sound

در مرحله بعد، باید پشتیبانی از کارت صدای خود را در هسته فعال کنید (لطفا برای کسب اطلاعات بیشتر مقاله کامپایل هسته را ببینید). بنابراین باید بدانید که کارت صدای شما توسط کدام درایور پشتیبانی می‌شود. برای فهمیدن این موضوع کارت های صدای مورد پشتیبانی را در اینجا مشاهده کرده و درایور مناسب را تعیین کنید. برای نمونه، یک کارت صدای ‎Creative SoundBlaster Live!‎ توسط درایور snd_emu10k1 پشتیبانی می‌شود. برای فعال ساختن این درایور در هسته کافی است خط زیر را به فایل پیکربندی هسته اضافه نمایید:

device snd_emu10k1

برای اطمینان بیشتر، صفحه manual درایور مورد نظر را مطالعه کرده تا بدانید که دقیقاً باید چه خطی را به فایل پیکربندی اضافه کنید.

بعد از اینکه درایور را با موفقیت فعال کردید، کارت صدای شما باید در خروجی دستور dmesg دیده شود. چیزی شبیه به زیر:

pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <Cirrus Logic CS4205 AC97 Codec>

وضعیت کارت صدا را می‌توانید با چک کردن فایل /dev/sndstat مشاهده کنید:

# cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384
kld snd_ich (1p/2r/0v channels duplex default)

ممکن است خروجی دستور بالا در سیستم شما متفاوت باشد. اگر هیچ دستگاه pcm ای لیست نشده، به عقب برگشته و کارهایی که انجام داده‌اید را بررسی کنید. فایل پیکربندی هسته را بررسی کرده و مطمئن شوید که درایور مناسبی را انتخاب کرده‌اید.

اگر همه چیز به درستی پیش رفته باشد، کارت صدای شما باید عمل کند. اگر پین‌های صدای CD-ROM یا DVD-ROM شما به درستی به کارت صدا متصل شده باشد، می‌توانید یک CD در درون آن قرار داده و با cdcontrol به آن گوش دهید:

% cdcontrol -f /dev/acd0 play 1

همچنین برنامه‌های مختلفی نظیر audio/workman وجود دارند که ظاهر کاربرپسندانه‌تری در اختیار شما قرار می‌دهند. شاید بخواهید برنامه‌ای نظیر audio/mpg123 نصب کرده و به فایل‌های mp3 گوش دهید.

یک راه سریع دیگر برای آزمایش کارت صدا، ارسال اطلاعات به فایل /dev/dsp است. مانند زیر:

% cat filename > /dev/dsp

که filename می‌تواند هر فایل دلخواهی باشد. دستور بالا ممکن است کمی سر و صدا راه بیندازد که این کار درستی عملکرد کارت صدا را تأیید می‌کند.