ในส่วนนี้จะตอบคำถามที่ถูกถามบ่อยๆในกลุ่มข่าว Usenet และใน mailing list
คำถามอื่นๆยังสามารถหาอ่านได้จากเว็บของไดรเวอร์ OSS
ส่วนใหญ่คือชื่อดีไวซ์ไฟล์มาตรฐานแต่ในบางดิสตริบิวชั่นอาจจะใช้ชื่อที่ต่างไปเล็กน้อย
โดยปรกติจะลิ้งค์ไปยัง /dev/audio0
ดีไวซ์ออดิโอที่ compatible กับ Sun workstation (เป็นการ implement แบบบางส่วนเท่านั้นไม่สนับนุนอินเตอร์เฟส Sun ioctl แค่ u-law encoding เท่านั้น)
ดีไวซ์ออดิโออันที่สอง (ถ้าสนับสนุนโดยการ์ด หรือมีการ์ดมากกว่าหนึ่งอันติดตั้งอยู่)
โดยปรกติลิ้งค์ไปยัง /dev/dsp0
digital sampling device ตัวแรก
digital sampling device ตัวที่สอง
ปรกติลิ้งค์ไปยัง /dev/mixer0
sound mixer ตัวแรก
sound mixer ตัวที่สอง
high-level sequencer interface
low level MIDI, FM, และ GUS access
ปรกติลิ้งค์ไปยัง /dev/music
MIDI port แถวที่ 1
MIDI port แถวที่ 2
MIDI port แถวที่ 3
MIDI port แถวที่ 4
แสดงสถานะของไดรเวอร์เมื่อทำการอ่าน (หรืออยู่ใน /proc/sound แต่ถูกเอาออกไปในเคอเนลเวอร์ชั่น 2.4 )
ไดรเวอร์ PC speaker จะให้ดีไวซ์ดังต่อไปนี้:
เทียบเคียงกับ /dev/audio
เทียบเคียงกับ /dev/dsp
เทียบเคียงกับ /dev/mixer
ไฟล์เสียง Sun workstation (.au) สามารถเล่นได้โดยการส่งมันเข้าไปในดีไวซ์ /dev/audio ส่วน raw samples สามารถส่งไปยัง /dev/dsp แต่มักจะให้ผลที่ค่อนข้างแย่และมักนิยมใช้โปรแกรมอย่าง play มากกว่าเนื่องจากมันรู้จักชนิดของไฟล์ส่วนใหญ่และตั้งค่าการ์ดให้มี sampling rate และอื่นๆ ได้ถูกต้อง
ถ้าคุณใช้เดสทอปกราฟฟิคอย่าง KDE หรือ GNOME ก็จะมีโปรแกรมเล่นไฟล์เสียงแบบกราฟฟิคมาให้แล้ว
โปรแกรมอย่าง wavplay หรือ vplay (ในแพ็คเกจ snd-util )จะให้ผลการเล่นดีที่สุดสำหรับไฟล์ WAV แต่จะไม่รู้จัก ไฟล์ Microsoft ADPCM compressed WAV นอกจากนี้โปรแกรม play เวอร์ชั่นเก่า(จากแพ็คเกจ Lsox )ก็จะใช้งานได้ไม่ดีกับ ไฟล์ 16 bit WAV
คำสั่ง splay ซึ่งอยู่ในแพ็คเกจ snd-util สามารถใช้เล่นไฟล์เสียงส่วนใหญ่ได้หากใส่พารามีเตอร์ที่เหมาะสมในคอมมานไลน์
การอ่าน /dev/audio หรือ /dev/dsp จะส่งคืนข้อมูลแซมเปิลซึ่งสามารถส่งไปยังไฟล์ได้ โปรแกรมอย่าง vrec ช่วยให้สามารถควบคุม sampling rate, ระยะเวลา และอื่นๆ ได้ง่ายขึ้นคุณยังต้องมี โปรแกรม mixer สำหรับเลือกอุปกรณ์อินพุทที่เหมาะสมด้วย
ด้วยไดรเวอร์ในปัจจุบัน เป็นไปได้ที่จะมีการ์ด SoundBlaster, SoundBlaster/Pro, SoundBlaster16, MPU-401 หรือ MSS ติดตั้ง มากกว่าหนึ่งในระบบ การติดตั้ง SoundBlasters สองอันนั้นเป็นไปได้แต่จำเป็นต้องมีการนิยาม macros SB2_BASE, SB2_IRQ, SB2_DMA และ (ในบางกรณี) SB2_DMA2 โดยการแก้ไขไฟล์ไฟล์ local.h ด้วยมือ และยังเป็นไปได้ที่จะมี SoundBlaster พร้อมกับ PAS16
ในเคอเนลเวอร์ชั่น 2 เป็นต้นมา การคอนฟิกระบบเสียงจะใช้การ make config แทน local.h คุณจำเป็นต้องแก้ไขไฟล์ /usr/include/linux/autoconf.h ในส่วนหลังจากที่มีบรรทัดต่อไปนี้:
#define SBC_BASE 0x220 #define SBC_IRQ (5) #define SBC_DMA (1) #define SB_DMA2 (5) #define SB_MPU_BASE 0x0 #define SB_MPU_IRQ (-1)
เพิ่มบรรทัดต่อไปนี้เข้าไป(ด้วยค่าที่เหมาะสมกับระบบของคุณ):
#define SB2_BASE 0x330 #define SB2_IRQ (7) #define SB2_DMA (2) #define SB2_DMA2 (2)
ไดรเวอร์ต่อไปนี้ไม่อนุญาตให้มีหลายการ์ดในเวลาเดียวกัน:
GUS (driver limitation)
MAD16 (hardware limitation)
AudioTrix Pro (hardware limitation)
CS4232 (hardware limitation)
คุณจำเป็นต้องสร้างดีไวซ์ไฟล์สำหรับเสียง ดูเอกสารส่วนการสร้างดีไวซ์ไฟล์ ถ้าคุณมีดีไวซ์ไฟล์อยู่แล้วตรวจให้แน่ใจว่า มันมี major และ minor device numbers ถูกต้อง(ในดินตริบิวชั่นเก่าๆ อาจจะสร้างดีไวซ์ไฟล์ไม่ถูกต้องในระหว่างการติดตั้ง)
คุณไม่ได้บูตเข้าด้วยเคอเนลที่มีไดรเวอร์หรือการคอนฟิก I/O address ไม่ตรงกับฮาร์ดแวร์ที่มีอยู่ ตรวจว่าคุณกำลังใช้เคอเนลที่คอมไพล์ใหม่หรือตรวจดูค่าที่ตั้งในตอนคอนฟิกว่าตรงกับฮาร์ดแวร์
เกิดขึ้นได้เมื่อคุณพยายามบันทึุกข้อมูลลงสู่ /dev/audio หรือ /dev/dsp โดยไม่ได้สร้างดีไวซ์ไฟล์ที่จเป็นก่อน ทำให้ดีไวซ์เป็นแค่ไฟล์ธรรมดาและกำลังทำให้ดิสค์เต็ม คุณจำเป็นต้องเรียกสคริปท์ตามที่อธิบายในเอกสารส่วน การสร้างดีไวซ์ไฟล์
นอกจากนี้ยังเกิดได้ในลินุกส์เคอเนล 2.0 เป็นต้นมาหากว่าในระบบไม่มี RAM เหลือเพียงพอในขณะที่ทำการเปิดดีไวซ์นั้น ไดรเวอร์ต้องการ RAM อย่างน้อย 8k สำหรับแต่ละ DMA channel จะเกิดปัญหานี้ในเครื่องที่มี RAM น้อยกว่า 16M หรือใ้ช้งานมาเป็นเวลานาน คุณสามารถตั้ง preallocate ค่า DMA buffers เมื่อไดรเวอร์ถูกโหลด ได้โดยการใช้เคอเนลอ็อปชั่น "dma_buf=1"
อุปกรณ์เสียงสามารถเปิดโดยโปรเซสเพียงหนึ่งอันในแ่ละครั้ง ข้อความดังกล่าวหมายความว่ามีโปรเซสอื่นกำลังใช้อุปกรณ์อยู่ วิธีการหนึ่งที่จะตรวจสอบคือการใช้คำสั่ง fuser :
% fuser -v /dev/dsp
/dev/dsp: USER PID ACCESS COMMAND
tranter 265 f.... trackerในตัวอย่างข้างบนคำสั่ง fuser แสดงให้เห็นว่าโปรเซสหมายเลข 265 กำลังใช้อุปกรณ์นี้อยู่ คุณอาจจะต้องรอให้โปรเซสนั้นเสร็จก่อนหรือทำการ kill มันเพื่อให้สามารถเข้าใช้ดีไวซ์เสียง คุณจะต้องใช้คำสั่ง fuser ในขณะเป็น root เพื่อที่จะแสดงการใช้ของผู้ใช้อื่น
บนเดสทอป KDE นั้น artsd sound server มักจะควบคุมดีไวซ์เสียงอยู่ และแอ็พพลิเคชั่น จะต้องร้องขอไปที่ server เพื่อเล่นเสียงหรือจะต้องทำการหยุด sound server เช่นเดียวกันกับใน GNOME ซึ่งจะมี esd sound
จากข้อมูลจาก Brian Gough สำหรับการ์ด SoundBlaster ที่ใช้ DMA channel 1 นั้นมีโอกาสที่จะชนกับไดรเวอร์ QIC-02 tape driver ซึ่งใช้ DMA 1 เช่นกัน ทำให้เกิดข้อความ "device busy" ถ้าคุณมีใช้ FTAPE คุณอาจจะมีไดรเวอร์นี้อยู่ จากเอกสาร FTAPE-HOWTO นั้นตัวไดรเวอร์ QIC-02 นั้นไม่จำเป็นสำหรับการใช้ FTAPE แค่ไดรเวอร์ QIC-117 เท่านั้นที่จำเป็น ให้ทำการคอนฟิกเคอเนลให้ใช้ QIC-117 แต่ไม่ใช้ QIC-02 เพื่อให้ใช้ได้ทั้ง FTAPE และไดรเวอร์การ์ดเสียง
อาการนี้มันจะอยู่ในลักษณะว่าเล่นไฟล์ได้แค่เพียงวินาทีเดียวแล้วก็หยุดและมีข้อความผิดพลาดเกี่ยวกับ"missing IRQ" หรือ "DMA timeout" เป็นไปได้มากว่าคุณมีการตั้ง IRQ หรือ DMA channel ผิด ให้ทำการตรวจสอบค่าคอนฟิกของเคอเนลให้ตรงกับการเซ็ตจั้มเปอร์ของการ์ดและไ่ม่มีการชนกับการ์อื่น
อีกอาการคือมีการเล่นเสียงวนซำ้ไปมา อันนี้มักจะเกิดจากการชนกันของ IRQ
การเล่นไฟล์ MOD นั้นต้องการพลัง CPU ค่อนข้างมาก คุณอาจจะมีหลายโปรเซสทำงานอยู่หรือคอมพิวเตอร์ของคุณช้าเกินไปที่จะเล่นในลักษณะ real time คุณมีทางเลือกคือ:
เล่นที่ sampling rate ต่ำลงหรือในโหมด mono
ปิดโปรเซสอื่น
ซื้อคอมพิวเตอร์ที่เร็วขึ้น
ซื้อการ์ดที่มีประสิทธิภาพสูง (เช่น Gravis UltraSound)
ถ้าคุณมีการ์ด Gravis UltraSound คุณควรจะมีโปรแกรมเล่นไฟล์ mod เฉพาะสำหรับ GUS (e.g. gmod).
ไดรเวอร์เวอร์ชั่น 1.0c หรือที่เก่ากว่านั้นจะมี ioctl() scheme ที่แตกต่างและไม่ compatible ให้คุณหาซอร์สและทำการปรับเพื่อให้มันเข้ากับไดร์เวอร์เวอร์ชั่นใหม่ ให้อ่านไฟล์Readme ของไดรเวอร์เสียงสำหรับรายละเอียด
ตรวจดูว่าคุณใช้ไฟล์ soundcard.h และultrasound.h เวอร์ชั่นล่าสุดในการคอมไพล์ตัวแอ็พพลิเคชั่น
อาจจะเป็นปัญหาเดียวกับคำถามก่อนหน้านี้
ให้ดูไฟล์ที่มากับซอร์สของไดร์เวอร์
ในปัจจุบันนอกเหนือไปจากซอร์ดโค้ดเองแล้วเอกสารที่ดีที่สุดอยู่ที่เว็บของ 4Front Technologies, http://www.opensound.com. อีกแหล่งข้อมูลคือเอกสาร Linux Multimedia Guide ที่กล่าวถึงในส่วนเอกสารอ้างอิง
คำถามนี้ไม่มีคำตอบง่ายๆ ให้เนื่องจากมันขึ้นกับ:
ใช้ PCM sampling หรือ FM synthesis
sampling rate และ sample size
แอ็พพลิเคชั่นที่ใช้
ตัวการ์ด
อัตรา disk I/O rate ความเร็ว CPU ขนาด cache และอื่นๆ
โดยทั่วไปเครื่อง 386 หรือดีกว่า สามารถเล่นเสียงแซมเปิลหรือ FM synthesized music บนการ์ด 8 bit ได้โดยไม่มีปัญหา
แต่การเล่นไฟล์ MOD จะต้องการทรัพยากร CPU ค่อนข้างมาก จากการทดลองพบว่าการเล่น 44kHz ต้องการมากกว่า 40% ของเครื่อง 486/50 และเครื่อง 386/25 นั้นเล่นที่ความเร็วมากกว่า 22 kHz ได้ยากมาก(ด้วยการ์ด 8 bit อย่าง SoundBlaster) การ์ดอย่าง the Gravis UltraSound มีการทำงานบนฮาร์ดแวร์มากกว่าและทำให้ต้องการ CPU น้อยกว่า
ซึ่งอันนี้คือผลเมื่อเครื่องไม่ได้ทำงานหนักอื่นๆเลย
การแปลงไฟล์หรือการใส่เอ็ฟเฟ็คด้วยยูทิลิตี้อย่าง sox ก็จะเร็วขึ้นมากหากมี math coprocessor (หรือ CPU ที่มี FPU) ไดรเวอร์เองไม่ได้ทำการคำนวณใดๆ
(อฺธิบายโดย [email protected])
ลินุกส์จะเห็น 1542 ที่ address 330 (default) หรือ 334 เท่านั้นและการ์ด PAS จะยอมให้ MPU-401 emulation ที่ 330 เท่านั้นถึงแม้คุณทำการปิด MPU-401 ด้วยซอฟต์แวร์ก็ยงคงเกิดการชนกัน หากมันใช้ค่า address ที่เป็นค่า default ให้คุณย้าย 1542 ไปยัง 334
นอกจากนี้ทั้ง 1542 และ PAS-16 นั้นใช้ 16-bit DMA ดังนั้นถ้าคุณทำการแซมเปิลที่ 16-bit 44 KHz stereo และเซฟไฟล์ ไปยังไดร์ฟ SCSI ที่อยู่บน 1542 คุณก็จะเจอปัญหาเนื่องจากเกิด DMAs overlap และไม่มีเวลาเพียงพอให้ RAM ทำการ refresh คุณก็จะเอจ ข้อความ``PARITY ERROR - SYSTEM HALTED'' และที่แย่ไปกว่านั้นคือมีผู้จัดจำหน่ายพร้อมไดร์ฟ QIC-117 tape drive บางที่แนะนำ ให้ตั้งค่า bus on/off times ที่ทำให้ 1542 นั้นทำงานนานกว่าปรกติ ใ้หคุณเอาโปรแกรม SCSISEL.EXE จาก Adaptec's BBS หรือ จากที่อื่นๆ บนอินเตอรเน็ตและทำากรลดเวลา BUS ON time หรือเพิ่มเวลา BUS OFF time จนกระทั้งปัญหาหมดไป แล้วก็ขยับค่าไปมากกว่านั้นอีกนิด โปรแกรม SCSISEL จะไปเปลี่ยนค่าของ EEPROM settings ดังนั้นมันจะให้ผมถาวรมากกว่าการแก้ไขไดร์เวอร์ของ DOS ใน CONFIG.SYS และใช้งานถ้าเมื่อคุณบูตตรงเข้าสู่ลินุกส์เลย
ปัญหาสุดท้าย ในชิปเซ็ต Symphony เก่าๆ นั้นจะลดเวลาของรอบ I/O cycles เพื่อเพิ่มความเร็วในการเข้าถึง bus ผู้เขียนไม่เคยเจอปัญหากับการลด timing ยกเว้นกับ PAS-16 บน BBS ของ Media Vision จะมีโปรแกรม SYMPFIX.EXE อาจจะแก้ปัญหาได้แต่รับรองไม่ได้ คุณอาจจะต้อง
เปลี่ยน bus ship ของเมนบอร์ด
เปลี่ยนเมนบอร์ดหรือ
เปลี่ยนการ์ดเสียง
บริษัท Young Microsystems จะอัพเกรดบอร์ดที่นำเข้าในราคาประมาณ $30 (US); ผู้จัดจำหน่ายรายอื่นก็อาจจะทำเช่นเดียวกันถ้าคุณสามารถหาได้ว่าใครผลิตหรือนำเข้าเมนบอร์ดนั้น
ไดรเวอร์สำหรับบางการ์ดจะสนับสนุน full duplex mode ให้คุณดูเอกสารจาก 4Front Technologies สำหรับข้อมูลการใช้
บนเครื่อง 286 เป็นต้นมา IRQ 2 interrupt จะ cascaed ไปยัง second interrupt controller และมีค่าเท่ากับ IRQ 9
ปัญหานี้เกิดหลังจากการทำ soft reboot ไปยัง DOS บางครั้งข้อความ error จะทำให้เข้าใจผิดว่าเกิดจากไฟล์ CONFIG.SYS
ในปัจจุบันการ์ดส่วนใหญ่จะมีการตั้งIRQ และ DMA ด้วยซอฟต์แวร์ ถ้าคุณใช้ค่าที่ไม่เหมือนกันในลินุกส์กับ MS-DOS/Windows ก็อาจจะทำให้เกิดปัญหานี้ได้ การ์ดบางตัวไม่สามารถรับค่าใหม่ได้โดยไม่ทำการ reset โดยสมบูรณ์ (นั่นคือทำการปิดเปิดไฟฟ้าหรือใช้ปุ่ม reset ของเครื่อง)
การแก้ปัญหาอย่างง่ายคือการใช้การ reboot แบบสมบูรณ์โดยปุ่ม reset หรือ power แทนการทำ soft reboot (เช่น Ctrl-Alt-Del)
การแก้ปัญหาที่ถูกต้องคือการใช้ค่า IRQ และ DMA ให้เหมือนกันทั้งบน MS-DOS และ Linux (หรือไม่ใช้ DOS :-)
สำหรับผู้เล่นเกม DOOM ของ ID software บน Linux อาจจะสนใจตรงนี้
เพื่อให้ได้เอ้าพุทถูกต้องคุณต้องใช้ไดรเวอร์เวอร์ชั่น 2.9 หรือใหม่กว่า เพราะมันมีการสนับสนุนสำหรับ real-time DOOM mode.
sound samples จะเป็น 16-bit ถ้าคุณมีการ์ดแบบ 8-bit คุณยังสามารถใช้โปรแกรมช่วยได้ ftp://www.ibiblio.org/pub/Linux/games/doom.
ถ้าคุณภาพของ DOOM นั้นแย่บนเครื่องของคุณ ให้เปิดเสียง(โดยการเปลี่ยนชื่อไฟล์ sndserver) อาจจะช่วยให้ดีขึ้นได้
โดยดีฟ้อลท์แล้ว DOOM ไม่สนับสนุนเสียงดนตรี (เหมือนในเวอร์ชั่นสำหรับ DOS ) แต่โปรแกรม musserver จะเพิ่มการสนับสนุนเสียงดนตรีให้ DOOM บนลินุกส์ได้ ftp://pandora.st.hmc.edu/pub/linux/musserver.tgz.
ใช้เคเบิลที่มีการหุ้มอย่างดีและลองการด์บนสล็อตอื่นอาจจะช่วยลด noiseได้ หากการ์ดคุณมีปุ่ม volume comtrol อาจจะลองปรับดู (ค่าสูงสุดอาจจะให้ผลดีที่สุด) การโปรแกรม mixer เพื่อปรับให้อินพุตที่ไม่ได้ใช้ เช่นไมโครโฟรมีค่าเป็นศูนย์
Philipp Braunbeck รายงานว่าบนการ์ด ESS-1868 ของเขามีจั้มเป้อร์ที่สามารถปิดตัวแอมปริไฟเออร์ภายในได้ซึ่งช่วยลด noise เมื่อใช้มัน
บนเครื่อง 386 ผู้เขียนพบว่าตัวอ็อปชั่นสำหรับเคอเนลคือ no-hlt ช่วยลดระดับ noise ได้ โดยอ็อปชั่นนี้จะบอกให้เคอเนลไม่ใช้ halt instruction เมื่อเรียกใช้ idle process loop คุณสามารถลองได้ในขณะบูตหรือใส่ค่า append="no-hlt" ในไฟล์คอนฟิกของ LILO
การ์ดบางตัวมีการออกแบบการป้องกันและการทำกราวด์ไม่ดีและก็จะเกิด noise ได้ง่าย
หากคุณสามารถเล่นไฟล์เสียงได้แต่บันทึกเสียงไม่ได้ ให้ลอง:
ใช้โปรแกรม mixer เลือกดีไวซ์สำหรับอินพุตที่เหมาะสม เช่นไมโครโฟน
ใช้ mixer ตั้งค่าระดับอินพุตสูงสุด
ถ้าเป็นไปได้ลองทดสอบอัดเสียงบน DOS เพื่อดูว่าฮาร์ดแวร์ยังใช้ได้
ในบางครั้งการบันทึกเสียงจะใช้ DMA channel ต่างกันเวลาเล่น ในกรณีนี้ก็เป็นไปได้ที่ค่าที่ตั้งสำหรับการบันทึกไม่ถูกต้อง
ในกรณีส่วนใหญ่การ์ดที่เป็น "SoundBlaster compatible" จะทำงานได้ดีกว่าเมื่อทำการคอนฟิกโดยใช้ไดรเวอร์อื่นที่ไม่ใช่ SoundBlaster การด์ส่วนใหญ่อ้างว่า compatible (เช่น "16 bit SB Pro compatible" or "SB compatible 16 bit") แต่โหมด SoundBlaster นี้ได้แก้ไขให้เข้ากันได้สำหรับเกมบน DOS เท่านั้น
สำหรับการ์ดรุ่นเก่าบางรุ่นเท่านั้นที่จำเป็นจะต้องพยายามใช้มันใน SoundBlaster mode การ์ดรุ่นใหม่ที่เป็นข้อยกเว้นคือการ์ดพวก Mwave-based
การ์ด 16-bit ที่เป็น SoundBlaster compatible นั้นจริงๆ แล้วจะ compatible กับ 8-bit SoundBlaster Pro เดิมจะมี 16-bit mode ที่ไม่ compatible กับ SoundBlaster 16 และไม่ compatible กับไดรเวอร์ขอวเคอเนล
คุณอาจจะสามารถใช้มันได้ใน 16-bit mode ด้วยไดรเวอร์ MAD16 หรือ MSS/WSS
ไซต์สำหรับค้นหาแอ็พพลิเคชั่น
นอกจากนี้ดูส่วนเอกสารอ้างอิงของเอกสารนี้ด้วย
ในเคอเนลใหม่ๆไดรเวอร์จะอยู่ในรูป loadable modules
ให้ดูไฟล์ใน/usr/src/linux/Documentation/sound, โดยเฉพาะไฟล์ Introduction และ README.modules.
ลองโปรแกรม oplbeep จาก ftp://www.ibiblio.org/pub/Linux/apps/sound/oplbeep-2.3.tar.gz
หรือ beepจาก ftp://www.ibiblio.org/pub/Linux/kernel/patches/misc/modreq_beep.tgz
แพ็คเกจ modutils จะมีตัวอย่างของโปรแกรมและ patch สำหรับเคอเนลที่สนับสนุนการเรียกโปรแกรมจากภายนอกเพื่อให้สร้าง เสียงเมื่อมีการเรียกจากเคอเนล
ใน KDE เวอชั่น 2 .0 เป็นต้นมา จะยอมให้มีการเล่นไฟล์เสียงสำหรับ console beep ในแอ็พพลิเคชั่นของ KDE เช่น konsole
หรืออีกทางคือในบางการ์ดนั้นจะสามารถต่อ PC speaker output ไปยังการ์ดเสียงได้ทำให้ทุกเสียงออกมาจากลำโพงของการ์ดเสียง
ไดรเวอร์การ์ดเสียงเชิงการค้าของ 4Front Technologies นั้นรู้จักในชื่ออีกชื่อว่าVoxWare USS (Unix Sound System) และ TASD (Temporarily Anonymous Sound Driver) แต่ในปัจจุบันจะจำหน่ายในชื่อ OSS (Open Sound System) เวอชั่นที่อยู่ในเคอเนลของลินุกส์บางครั้งจึงเรียกว่า OSS/Free.
สำหรับข้อมูลเพิ่มเติม http://www.opensound.com/. ผู้เขียนได้เขียนเกีี่ยวกับ OSS/Linux ใน Linux Journal ฉบับ June 1997
การเปลี่ยนแปลงในไดรเวอร์เวอชั่น 1.3.67 ทำให้โปรแกรมเข้าใจว่าผลที่ได้จาก SNDCTL_DSP_GETBLKSIZE ioctl ม่ีค่ามากกว่า 4096 ในไดรเวอร์ตัวล่าสุดนั้นได้รับการแก้ไขแล้ว
คุณสามารถ build ไดรเวอร์เป็น loadable module และใช้ kerneld เพื่อโหลดและอันโหลดอัตโนมัติ ซึ่งสามารถทำให้เกิดปัญหาได้อย่างหนึ่งคือเมื่อทำการโหลด โมดูลตัว mixer จะกลับไปอยู่ที่ค่าดีฟ้อลท์ ในบางการ์ดอาจจะปรับเสียงไปดังเกินไป (เช่น SoundBlaster16) หรือเบาเกินไป Markus Gutschke ([email protected]) พบวิธีแก้ปัญหาโดยการแก้ไขไฟล์ /etc/conf.modules ตามนี้:
options sound dma_buffsize=65536 post-install sound /usr/bin/setmixer igain 0 ogain 0 vol 75
ซึ่งจะทำให้โปรแกรม mixer (ในกรณีนี้คือ setmixer) จะทำงานทันทีที่ไดรเวอร์ถูกโหลดขึ้นมา ค่า dma_buffsize เป็นค่าปลอมที่ตั้งขึ้นมาเนื่องจากคำสั่ง option ต้องการให้มีค่าหนึ่งอยู่ ให้คุณทำการแก้ไขบรรทัดดังกล่าวให้ตรงกับโปรแกรม mixer ของคุณและค่าความดัง
ถ้าคุณคอมไพล์ไดรเวอร์เข้าไปในเคอเนลและต้องการตั้งระดับของ mixer เวลาบูตคุณสามารถเรียกโปรแกรม mixer ได้ในไฟล์สำหรับ system startup เช่น /etc/rc.d/rc.local
โดยดีฟ้อลท์แล้วตัวสคริปท์ใน Readme.linux ซึ่งสร้างดีไวซ์ไฟล์สำหรับเสียงจะอนุญาตให้ดีไวซ์นั้นใ้ช้ได้โดย root เท่านั้น อันนี้เป็นจุดที่เป็นช่องโหว่ทางความปลอดภัยได้ ในเน็ตเวอร์คผู้ใช้ภายนอกสามารถทำการล็อกอินเข้าเครื่องรีโมตที่มีการ์ดเสียงและไมโครโฟนด้วยการแอบฟัง หากคุณไม่กังวลในเรื่องนี้คุณสามารถเปลี่ยนสิทธิ์ที่ใช้ในสคริปท์ได้
ด้วยการติดตั้งแบบดีฟ้อลท์นั้นผู้ใช้อื่นๆสามารถเล่นไฟล์เสียงได้
ข้อมูลเกี่ยวกับการใช้การ์ดเสียง mwave บน IBM ThinkPad สามารถดูได้จาไฟล์ /usr/src/linux/Documentation/sound/mwave ซึ่งเป็นส่วนหนึ่งของเคอเนลซอร์ส (แต่ไม่ใช่ทุกรุ่นของ IBM ThinkPads ที่ใช้ชิปของ MWAVE )
การ์ด 8-bit SoundBlaster เก่าๆ บางรุ่นไม่มีวงจร mixer แอ็พพลิเคชั่นบางอันที่สามารถเปิด mixer device แต่ล้มเหลวกับการ์ดนี้ Jens Werner ([email protected]) รายการวิธีการแก้ปัญหานี้โดยการทำลิ้งค์จาก /dev/mixer ไปยัง /dev/null
จาก Scott Manley ([email protected]):
เป็นการแบบใหม่ของ Soundblaster ขายในชื่อ SB16 - และมี Model no. บนการ์ดเป็น CT4170 แต่การ์ดพวกนี้มี เพียงหนึ่ง DMA channel ดังนั้นเมื่อคุณพยายามเซ็ตมันเคอเนลจะมีปัญหาในการเข้าถึง 16 bit DMA วิธีการแก้ปัญหาคือ การตั้ง second DMA เป็น 1 แล้วการ์ดก็จะทำงานได้อย่างที่โฆษณา
จาก Kim G. S. OEyhus ([email protected]):
ผู้เขียนค้นหาจากอินเตอเน็ตและเอกสารหาสิ่งที่ง่ายๆ อย่างการต่อ MIDI output จาก master keyboard ไปยัง MIDI input บนการ์ดเสียง แต่ไม่พบเลย ปัญหาคือทั้งสองตัวใช้ดีไวซ์เดียวกัน /dev/midi อย่างน้อยเมื่อใช้ OSS ผู้เขียนพบวิธีแล้วต้องการแชร์ให้คนอื่น วิธีนี้ใช้ได้กับ synthesizer แบบง่ายๆ ที่สนับสนุน MIDI อย่างสมบูรณ์
ต่อ MIDI MASTER-KEYBOARD เข้าโดยตรงกับการ์ดเสียง
MIDI master-keyboard คือคีย์บอร์ดที่ไม่มี synthesizer และมีเพียง MIDI-out เท่านั้นซึ่งมันสามารถต่อกับ 15-pin D-SUB port บนการ์ดเสียงส่วนใหญ่ได้ด้วยเคเบิลที่เหมาะสม
คีย์บอร์ดดังกล่าวสามารถใช้ควบคุม MIDI synthesizer device สำหรับการ์ดดังนั้นจึงทำเป็น keyboard controlled synthesizer อย่างง่ายๆ ได้
ทำการคอมไพล์โปรแกรมต่อไปนี้ อย่างเช่นด้ว 'gcc -o prog prog.c' แล้วเรียกใช้:
#include <fcntl.h>
main()
{
int fil, a;
char b[256];
fil=open("/dev/midi", O_RDWR);
for(;;)
{
a=read(fil, b, 256);
write(fil, b, a);
}
}
จาก Matthew Inger ([email protected]):
ข้อมูลเกี่ยวกับวิธีการทำให้การ์ด Ensoniq PCI 128 ใช้งานได้
ปัญหาที่ที่เกิดคือการ์ดนี้จะพยายามใช้ interrupt 15 โดยดีฟ้อลท์ (Plug and Pray เป็นสาเหตุของปัญหา) ซึ่ง interrupt นี้จะใช้โดย secondary ide controller และไม่สามารถแชร์กับอุปกรณ์อื่นได้ คุณจำเป็นต้องหาวิธีบังคับให้ es1370 ไปยัง interrupt อื่น (ควรจะใช้ interrupt 11 เหมือนในวินโดว์)
ผมพบวิธีการด้วยตัวเอง คุณเช่ื่อหรือไม่
สิ่งที่ผมทำคือ
a) ใน BIOS คุณต้องบอกให้คอมพิวเตอร์ว่าคุณไม่มี Plug and Play OS ซึ่งอยู่ใน advanced option ใน BIOS
b) ใน PCI settings ใน BIOS บอกคอมพิวเตอร์ให้จอง interrupt 15 สำหรับ legacy ISA devices ใน bios ของผมภายใต้ advanced options จะมีส่วนสำหรับ PCI settings ในนี้จะมีส่วน Resource Exclusion และนี่แหล่ะที่คุณต้องเซ็ต
เมื่อทำการ reboot เข้าลินุกส์คุณจะสามารถใช้เสียงได้ ผมได้ลองสั่ง sndconfig อีกครั้งและมันเล่นไฟล์ทดสอบ ซึ่งเสียงไม่ดีนัก แต่เมื่อทำการเล่นแผ่น CD ผลออกมายอดเยี่ยม
ไม่ต้องเป็นห่วงวินโดว์ ผมได้สองทั้งสองการ์ดคือ ISA Modem,และการ์ดเสียง ทั้งสองใช้งานได้ไม่มีปัญหา
BIOS ของคุณอาจจะแตกต่างไปจากที่ผมมีอยู่ คุณก็แค่หาว่าจะทำการต้งสองสิ่งที่กล่าวไปแล้วยังไง
SoftOSS เป็น software-based wavetable synthesizer ที่อยู่ในไดรเวอร์เคอเนลที่ compatible กับการ์ด Gravis Utrasound ในการใช้ไดรเวอร์คุณต้องมีไฟล์ GUS compatible MIDI patch ในเอกสารได้กล่าวถึง "public domain MIDIA patchset available from several ftp sites" แต่ SoftOSS ไม่ได้อยู่ในเคอเนล 2.4 แล้ว
ตามที่อธิบายในเว็บของ 4Front Technologies http://www.opensound.com/softoss.html สามารถดาวโหลดได้จาก ftp://archive.cs.umbc.edu/pub/midia/instruments.tar.gz.