คุณได้ติดตั้ง Steam ใน Linux จากนั้นบางเกมจากห้องสมุดของคุณ และไปสนุกกับเกม คุณเปิดเกมโปรด เปิดลำโพงหรือสวมหูฟัง แล้วรีบปิดเสียงเพราะเสียงแตกที่น่ารำคาญ นั่นคือประสบการณ์ของคุณกับเกม Steam สำหรับ Windows ที่เล่นภายใต้ Linux หรือไม่
สาเหตุของปัญหาคือพารามิเตอร์ที่กำหนดค่าไม่ถูกต้องใน Pulseaudio และสามารถแสดงในลีนุกซ์รุ่นใดก็ได้ โชคดีที่มีวิธีแก้ไขที่ง่าย อ่านต่อไปเพื่อค้นหาวิธีแก้ไขปัญหาเสียงแคร็กของเกม Steam ใน Linux ด้วยการปรับแต่งง่ายๆ
ปรับแต่ง PulseAudio Daemon
การแก้ไขปัญหาของเราเป็นกระบวนการสองส่วน โดยมีความเป็นไปได้ที่จะแก้ไขปัญหาในภายหลังเพื่อการวัดผลที่ดี มาเริ่มด้วยการปรับแต่ง daemon ของ PulseAudio
เปิดเครื่องเทอร์มินัลที่คุณชื่นชอบแล้วป้อน:
sudo nano /etc/pulse/daemon.conf
ค้นหาพารามิเตอร์ "default-fragments" และ "default-fragment-size-msec" ทั้งสองควรมีอยู่แล้ว แต่ถ้าไม่มี คุณสามารถเพิ่มด้วยตนเองได้ ตั้งค่าเป็น 2 และ 4 ตามลำดับ ควรมีลักษณะดังนี้:
default-fragments = 2 default-fragment-size-msec = 4
บันทึกไฟล์ที่อัปเดตแล้วรีสตาร์ท PulseAudio เพื่อใช้การเปลี่ยนแปลง คุณสามารถทำได้ด้วย:
pulseaudio -k
นั่นเป็นการสรุปส่วนแรกของการปรับแต่งของเรา ไม่ต้องกังวล เพราะอันที่ตามมาง่ายกว่า!
ปรับแต่งเซิร์ฟเวอร์เสียง
เปิดตัวแก้ไขข้อความที่คุณชื่นชอบอีกครั้ง แต่คราวนี้แก้ไขไฟล์ที่กำหนดว่าเซิร์ฟเวอร์เสียง PulseAudio ควรเริ่มต้นอย่างไร ด้วย:
sudo nano /etc/pulse/default.pa
ค้นหาส่วนที่บอกให้ PulseAudio โหลดโมดูลไดรเวอร์โดยใช้ udev มันจะมีลักษณะดังนี้:
### Automatically load driver modules depending on the hardware available .ifexists module-udev-detect.so load-module module-udev-detect .else ### Use the static hardware detection module (for systems that lack udev support) load-module module-detect .endif
อัปเดตโดยเพิ่ม tsched=0
ที่ส่วนท้ายของ "load-module module-udev-detect" เพื่อให้เวอร์ชันใหม่อ่านดังนี้:
### Automatically load driver modules depending on the hardware available .ifexists module-udev-detect.so load-module module-udev-detect tsched=0 .else ### Use the static hardware detection module (for systems that lack udev support) load-module module-detect .endif
บันทึกการเปลี่ยนแปลงและรีสตาร์ท PulseAudio อีกครั้งด้วย:
pulseaudio -k
เท่านี้ก็เรียบร้อย หวังว่าปัญหาจะหมดไป
แก้ปัญหา
หากการเพิ่มประสิทธิภาพข้างต้นทำให้สถานการณ์ของคุณดีขึ้น แต่ยังไม่ได้รับการแก้ไขอย่างสมบูรณ์ ให้แก้ไขไฟล์แรกอีกครั้งและเพิ่มค่าของพารามิเตอร์ "default-fragments" และ "default-fragment-size-msec" ลองใช้ค่าต่างๆ เช่น "3" และ "5" หรือ "4" และ "8" ตามลำดับ อย่าคลั่งไคล้การเดินทาง แต่เพิ่มมูลค่าไปเรื่อย ๆ จนกว่าปัญหาจะหมดไป
ในทางกลับกัน หากการปรับแต่งเหล่านั้นทำให้ปัญหาแย่ลง ก็ควรเปลี่ยนทางกลับกัน ลดค่าสำหรับพารามิเตอร์ทั้งสอง จากนั้นกลับไปที่ไฟล์ที่สองและแก้ไข tweak ของคุณเป็น tsched=1
.
รีสตาร์ท PulseAudio อีกครั้งและตรวจสอบว่าปัญหาของคุณได้รับการแก้ไขแล้วหรือไม่ หากไม่เป็นเช่นนั้น ให้กลับไปที่ทั้งสองไฟล์และเลิกทำการเปลี่ยนแปลงใดๆ ขออภัย ในกรณีนี้ แหล่งที่มาของปัญหาอยู่ที่อื่น
คุณควรลองใช้ไดรเวอร์ต่างๆ สำหรับระบบย่อยเสียงของคุณ แต่เนื่องจากไดรเวอร์เหล่านี้มักจะรวมอยู่ในเคอร์เนล จึงหมายถึงการสลับเคอร์เนลของการแจกจ่ายของคุณเป็นอย่างอื่น ตรวจสอบว่ามีรุ่นที่ใหม่กว่าหรือไม่ หากไม่เป็นเช่นนั้น ให้เปลี่ยนกลับเป็นเคอร์เนลก่อนหน้าหรือติดตั้งเคอร์เนลสำรอง เช่น Liquorix
ไดรเวอร์ บัฟเฟอร์ กำหนดการ
คุณอาจสงสัยว่าทำไมพารามิเตอร์เหล่านั้น (อาจ) แก้ไขปัญหาของคุณได้ ทั้งหมดนี้เกี่ยวข้องกับฮาร์ดแวร์ของระบบย่อยด้านเสียง ไดรเวอร์ และวิธีที่ PulseAudio ใช้งาน
พารามิเตอร์สองตัวแรกที่เราเปลี่ยนจะแบ่งบัฟเฟอร์ของอุปกรณ์เสียงออกเป็นชิ้นเล็กชิ้นน้อย ขึ้นอยู่กับระบบย่อยเสียงของคุณ วิธีนี้อาจช่วยให้ระบบปฏิบัติการสตรีมข้อมูลไปยังระบบย่อยเสียงของคุณ ซึ่งจะกลายเป็นเสียง
พารามิเตอร์ที่สองเปลี่ยนวิธีการจัดตารางเวลาของ PulseAudio ตั้งแต่เวอร์ชัน 0.9.11 PulseAudio จะใช้โมเดลที่อิงตามตัวจับเวลาระบบ อย่างไรก็ตาม สิ่งนี้ต้องการให้ฮาร์ดแวร์และไดรเวอร์ของคุณส่งคืนข้อมูลเวลาที่ถูกต้อง บางอย่างก็เหมือนกับโซลูชันของ Intel ถือเป็นแนวทางที่ทันสมัยและดีกว่า บางอย่างก็ไม่ใช่การ์ดเสียงของ Creative หลายๆ ตัว ขึ้นอยู่กับฮาร์ดแวร์และไดรเวอร์ของคุณ การหมุนตัวตั้งเวลา (tsched
พารามิเตอร์ที่เราแนะนำ) เปิดหรือปิด (ค่า 1 หรือ 0) สามารถสร้างโลกแห่งความแตกต่างได้
หากคุณมีปัญหาเรื่องเสียงใน Ubuntu แทน นี่คือวิธีแก้ไข