วิธีทำให้ Raspberry Pi ใช้การ์ดเสียง USB ภายนอกเป็นค่าเริ่มต้น


17

ไม่มีใครรู้วิธีเปลี่ยนลำดับความสำคัญในการบูตการ์ดเสียงหรือไม่

บทเรียนทั้งหมดจะบอกให้ฉันแก้ไข/etc/modprobe.d/alsa-base.confแต่ไฟล์จะหายไปในRaspbian เจส


โหวตขึ้นสำหรับการลงทะเบียนใน Google - มิถุนายน 2018
SDsolar

คำตอบ:


10

/usr/share/alsa/alsa.confไฟล์ของคุณมองหาอยู่ใน มันไม่ได้เรียกalsa-base.confเพียงแค่alsa.conf

ข้อความที่เกี่ยวข้องทั้งหมดอยู่ในไฟล์นั้นเพียงแค่เรียกใช้sudo nano /usr/share/alsa/alsa.confเปลี่ยนการ์ดเสียงเริ่มต้นเป็น 1 หรืออะไรก็ตามที่คุณต้องการชัดแจ้ง 0 เป็นค่าเริ่มต้นดังนั้นไม่ใช่ว่าฉันจะลบ # ออกจากบรรทัดที่ระบุว่า ... load card-specific configuration files(ตามคำขอ) และตอนนี้ฉัน มีเสียงที่มาจากการ์ดเสียงขนของฉันใช้ debian 8 เจสซีบน ras pi2


1
ฉันทำการแก้ไขการจัดรูปแบบด่วนบางอย่างแล้ว บางทีสำเนาของส่วนที่เกี่ยวข้องของไฟล์กำหนดค่า alsa อาจทำให้คำตอบของคุณดียิ่งขึ้น
Journeyman Geek

2
ไม่ใช่ "ไฟล์การตั้งค่าเฉพาะโหลดการ์ด (ตามคำขอ)" เป็นความคิดเห็นใช่ไหม
SILENT

แน่นอนมันเป็นเพียงความคิดเห็นเพื่ออธิบายบล็อคโค้ดด้านล่าง
PTS

อ๋อ คำตอบบางส่วน มีข้อมูลไม่เพียงพอที่นี่สำหรับฉันในการตัดสินใจ upvoting ... และบรรทัดนั้นเป็นความคิดเห็นที่ไม่สามารถเรียกใช้งานได้ และบล็อกตัวเองไม่ได้ออกความเห็น
SDsolar

13

สิ่งนี้ใช้ได้กับฉันใน Raspbian Jessie

หากคุณไม่ต้องการชิปเสียงออนบอร์ด (เช่นเอาต์พุตอะนาล็อกหรือเสียง hdmi) ให้ปิดการใช้งานจากนั้นอุปกรณ์เสียง USB จะกลายเป็นอุปกรณ์หลัก:

  1. ปิดใช้งานเสียงออนบอร์ด
    • เปิดและเพิ่ม/etc/modprobe.d/raspi-blacklist.confblacklist snd_bcm2835
  2. อนุญาตให้อุปกรณ์เสียง USB เป็นอุปกรณ์เริ่มต้น
    • เปิด/lib/modprobe.d/aliases.confและแสดงความคิดเห็นบรรทัดoptions snd-usb-audio index=-2
  3. Reboot
    • sudo reboot
  4. ทดสอบมันออกมา
    • $ aplay /usr/share/sounds/alsa/Front_Center.wav

ฉันอัปเดตคำตอบเพื่อใช้กลยุทธ์ที่แตกต่างกันสำหรับการปิดใช้งานเสียงออนบอร์ด วิธีนี้ดีกว่าเพราะไม่ทำลายแอปเพล็ตเสียงบนเดสก์ท็อป
leif81

ขั้นตอนแรกนั้นสำคัญมาก แต่ฉันไม่พบที่อื่นเลย upvote ที่เหลือล้าสมัยแล้ว มิถุนายน 2018: รู้แล้วว่าจะเข้าไป/usr/share/alsa/alsa.confและเปลี่ยนเพื่อพูดทั้งสองdefault.ctl.card 1และdefault.pcm.card 1หลังจากนั้นทั้งหมดให้รีบูทและลองalsa -lดูเฉพาะการแสดง USB และเป็นการ์ด # 1 ฉันติดตั้งmplayerสำหรับการทดสอบและมันยอดเยี่ยม พวกเขาล็อคคำถามนี้เพื่อตอบคำถามตรงนี้
SDsolar

@SDsolar ดีใจที่ได้ช่วย แม้ว่าฉันจะไม่คิดว่าขั้นตอนที่ 2 ล้าสมัยแล้วหรือ คุณมีวิธีอื่นในการตั้งค่าอุปกรณ์ให้เป็นค่าเริ่มต้น ดีแล้วที่รู้.
leif81

มันอาจเป็นปัญหารุ่น ตัวอย่างเช่นระบบ 16.04 LTS ของฉันทั้งคู่ได้รับการอัพเกรดทันทีจากซีดีติดตั้ง 14.04 ดังนั้นจึงมีร่องรอยของทั้งสองวิธีในการทำสิ่งต่าง ๆ โดยเฉพาะอย่างยิ่งสิ่งที่เกี่ยวข้องกับกระบวนการบูตที่เปลี่ยนแปลงภายใต้ v15 ในกรณีของฉันไฟล์ modprobe.d มีอยู่ แต่ไฟล์ทั้งหมดนั้นว่างเปล่า ดังนั้นในที่สุดมันก็ดีที่คำตอบนี้แสดงทั้งสองวิธีถ้าคุณรวมความคิดเห็นของฉัน -> คุณแก้ไขปัญหาที่ใหญ่ที่สุดของฉันด้วยการalsamixerขึ้นบัญชีดำ bcm2835 ฉันค้นหาสูงและต่ำและมีเพียงคำตอบของคุณเท่านั้นที่มีปริศนาชิ้นสุดท้าย TNX MCH
SDsolar

3

ฉันมีปัญหากับสิ่งนี้ใน Raspbian (Jessie) รุ่นล่าสุด

มีไฟล์ที่เรียกว่าเป็นaliases.confในที่มีเส้น/lib/modprobe.d options snd-usb-audio index=-2บรรทัดนั้นจะแทนที่/etc/modprobe.d/ไฟล์ดังนั้นคุณต้องเปลี่ยนไฟล์นั้น แสดงความคิดเห็นด้วย # บรรทัดoptions snd-usb-audio index=-2

ใน/usr/share/alsa/alsa.confฉันยกเลิกการแสดงความคิดเห็น“ ไฟล์การตั้งค่าเฉพาะการ์ดโหลด (ตามคำขอ)” และฉันยังแทนที่เนื้อหา.asoundrcซึ่งเป็นไฟล์ที่ซ่อนอยู่ในโฟลเดอร์บ้านของคุณด้วย

pcm.!default plughw:Device
ctl.!default plughw:Device

ข้อเสียของโซลูชันนี้คือแอปเพล็ตเสียงเดสก์ท็อปจะไม่ปรากฏขึ้น ดังนั้นในการควบคุมระดับเสียงให้ใช้alsamixerแอพพลิเคชั่นหรือปุ่มระดับเสียงจริงบนดองเกิลเสียง USB

การอ้างอิงสำหรับสิ่งนี้:

  1. https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=124016&p=857433&hilit=usb+audio#p857433
  2. http://alsa.opensrc.org/Asoundrc#Default_PCM_device

2

วิธีการอธิบายที่นี่ที่Raspberry Pi StackExchangeทำงานให้ฉัน ฉันกำลังใช้ Raspian Jessie

ข้อมูลใหม่คือฉันต้องสร้าง.confไฟล์ใหม่และไม่แก้ไข/usr/share/alsa/alsa.conf:

ในการจัดลำดับการ์ดของฉันใหม่ฉันสร้างไฟล์ชื่อ/etc/modprobe.d/alsa base.conf. มันสามารถตั้งชื่อสิ่งที่คุณต้องการตราบใดที่มันลงท้ายด้วย. config ฉันเพิ่มต่อไปนี้แล้ว:

# This sets the index value of the cards but doesn't reorder.
options snd_usb_audio index=0   
options snd_bcm2835 index=1

# Does the reordering.
options snd slots=snd_usb_audio,snd_bcm2835

2

ฉันไม่พอใจกับคำตอบก่อนหน้านี้ที่ให้คำแนะนำที่คลุมเครือเล็กน้อยดังนั้นฉันจึงคิดว่าฉันจะบันทึกคำตอบที่ชัดเจนยิ่งขึ้น

โพสต์ที่ดีที่นี่จะแสดงวิธีทดสอบอุปกรณ์และการ์ดที่คุณต้องการใช้

ค้นหาหมายเลขอุปกรณ์ฮาร์ดแวร์และหมายเลขบัตรของคุณโดยใช้aplay -lก่อนและหลังปลั๊กอินอุปกรณ์ usb ของคุณ

สำหรับระบบของฉันอุปกรณ์ usb จะแสดงรายการเป็น card 1: CODEC [USB Audio CODEC], device 0 ...

คุณสามารถยืนยันว่าอุปกรณ์ใช้งานได้

aplay -D hw:1,0 InsertYourWavFileHere.wav

ตรวจสอบให้แน่ใจว่าได้คัดลอกไฟล์เสียง wav ที่ถูกต้องไปยังไดเรกทอรีปัจจุบันของคุณและเปลี่ยนชื่ออย่างเหมาะสม หากใช้งานได้คุณสามารถฮาร์ดโค้ดค่าเหล่านี้เพื่อให้พวกเขากลายเป็นค่าเริ่มต้นสำหรับการเล่นท่ามกลางเสียงอื่น ๆ ที่ alsa จัดการ (กรณีส่วนใหญ่)

หากต้องการแก้ไขค่าเริ่มต้นคุณจะต้องตั้งค่าไฟล์ตามที่คนอื่นระบุ

sudo nano /usr/share/alsa/alsa.conf

บรรทัดเฉพาะที่คุณต้องการเปลี่ยนมีไม่กี่หน้า คุณสามารถค้นหาด้วย Cntl + W หรือเพียงเลื่อนลง

เปลี่ยนแปลง:

defaults.pcm.card 0 defaults.pcm.device 0

ถึง:

defaults.pcm.card 1 defaults.pcm.device 0

บันทึกไฟล์กำหนดค่าโดยกดปุ่มควบคุม + x จากนั้นนาโนจะขอให้คุณยืนยันการแก้ไขของคุณแล้วกด Y และ Enter


คุณช่วยอธิบายสิ่งที่คุณกำลังพูดถึงเมื่อพูดว่า“ คัดลอกไฟล์เสียง wav ที่ถูกต้องไปยังไดเรกทอรีปัจจุบันของคุณและเปลี่ยนชื่ออย่างเหมาะสม”? สิ่งนี้อ้างถึงaplayคำสั่งเพื่อ“ ยืนยันว่าอุปกรณ์ใช้งานได้” หรือไม่? มันไม่ดีพอที่จะระบุไฟล์เสียง wav ที่ถูกต้องตามชื่อปัจจุบันและเส้นทางแบบเต็มหรือไม่?
G-Man กล่าวว่า 'Reinstate Monica'

@ G-man ใช่การระบุไฟล์เสียง wav ใด ๆ โดยใช้พา ธ เต็มหรือพา ธ ที่ถูกต้องน่าจะใช้ได้ ในตัวอย่างเฉพาะของฉันฉันใช้InsertYourWavFileHere.wavแต่สิ่งนี้อาจถูกแทนที่ได้อย่างง่ายดาย./audio/test.wavหากคุณมีไฟล์ wav ในไดเรกทอรีย่อยเสียงชื่อ test.wav ตัวอย่างเช่น หากเป็นเช่นนั้น aplay -D hw:1,0 ./audio/test.wav ควรทำงานเช่นกัน
topher217

0

หลังจากเปลี่ยนแปลง alsa.conf ( defaults.ctl.card 1 defaults.pcm.card 1) และ ( load card-specific configuration files (on request)) คุณต้องแก้ไขไฟล์ asoundrc ของคุณและใส่ใน:

pcm.!default { type hw card 0 }
pcm.default.card 1.

มันจะโอเค


0

ฉันได้รับการเขียนเต็มรูปแบบที่นี่ที่ครอบคลุมทั้งหมดข้างต้นและอีกมากมาย รวมถึงการล้างความเข้าใจผิดและข้อผิดพลาดบางอย่างในไฟล์กำหนดค่า ALSA

สิ่งสำคัญที่เกี่ยวข้องคือการปิดการใช้งานโมดูลเสียงของ Broadcom ที่เรียกว่าsnd_bcm2835และตรวจสอบให้แน่ใจว่าsnd_usb_audioมีการโหลดกำปั้นเท่านั้น สามารถทำได้ทั้งสองวิธี

  • ในส่วนของ/boot/config.txtไฟล์
  • ในไฟล์บัญชีดำของโมดูล

จากนั้นตั้งค่า ALSA ให้คุณชี้ไปที่snd_usb_audioดัชนี


-1

ฉันลองใช้คำแนะนำของผู้คนจำนวนมากสำหรับการเปลี่ยนแปลงการกำหนดค่า Kodi ยังคงนำเสียงออกมาเป็น hdmi อย่างต่อเนื่อง ในที่สุดฉันก็พบว่า Kodi มีการตั้งค่าในระบบ | เสียงที่ให้คุณเลือกการ์ดเสียงที่ต้องการส่งออก! ชัดเจนมากเมื่อคุณเห็นมัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.