Score:2

อาจเป็นวิธีแก้ปัญหาเสียงใน Acer Swift 3 [Realtek ALC256]?

ธง il
mcp

เป็นที่ทราบกันว่า Acer Swift 3 และอุปกรณ์ทั่วไปที่ใช้การ์ดเสียง Realtek ALC 256 มีปัญหากับลำโพง หูฟัง และไมโครโฟนภายใน

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

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

สิ่งต่าง ๆ ในแล็ปท็อปของฉันแตกต่างไปจากเดิมอย่างสิ้นเชิง: ในตอนแรกฉันมีเพียง 'Dummy Output' เป็นอุปกรณ์เอาต์พุตและมีพื้นที่ว่างเป็นอุปกรณ์อินพุต จากนั้นเพิ่ม ตัวเลือกรุ่น snd-hda-intel = ทั่วไป และ ตัวเลือก snd-hda-intel dmic_detected = 0 ในที่สุดฉันก็สามารถมองเห็น Seaker หูฟัง และไมโครโฟนภายในได้ แต่ไม่มีอะไรทำงาน ฉันสามารถได้ยินเสียงจากอุปกรณ์บลูทูธเท่านั้น แต่ลำโพงภายใน แจ็คหูฟัง และไมโครโฟนภายในไม่ทำงาน! แน่นอนฉันพยายามหลายอย่างกับ อัลซามิกเซอร์, พาวูคอนโทรล หรือ hdajackretask อย่างน้อยก็เพื่อให้ลำโพงทำงานได้ แต่ก็ไม่สำเร็จ

เราทั้งคู่ใช้ Ubuntu 20

ฉันไม่ใช่ผู้เชี่ยวชาญ Linux แต่ฉันพยายามค้นหาความแตกต่างระหว่างอุปกรณ์ทั้งสองนี้ ฉันพบความแตกต่างใน บัตรรายการ pacmd เอาต์พุตและในอัลซามิกเซอร์ด้วย เอ็น

บนอุปกรณ์การทำงานที่ส่งออก บัตรรายการ pacmd เป็น

    ดัชนี: 0
    ชื่อ: <alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic>
    ไดรเวอร์: <module-alsa-card.c>
    โมดูลเจ้าของ: 23
    คุณสมบัติ:
        alsa.card = "0"
        alsa.card_name = "sof-hda-dsp"
        alsa.long_card_name = "sof-hda-dsp"
        alsa.driver_name = "snd_soc_skl_hda_dsp"
        device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic"
        sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0"
        device.bus = "pci"
        device.vendor.id = "8086"
        device.vendor.name = "บริษัท อินเทล"
        อุปกรณ์.product.id = "9dc8"
        device.product.name = "ตัวควบคุมเสียงความคมชัดสูง Cannon Point-LP"
        อุปกรณ์.string = "0"
        device.description = "ตัวควบคุมเสียงความคมชัดสูง Cannon Point-LP"
        โมดูล udev-detect.discovered = "1"
        device.icon_name = "การ์ดเสียง-pci"
    โปรไฟล์:
        ไฮไฟ: เล่นเพลงคุณภาพไฮไฟ (ลำดับความสำคัญ 40768 พร้อมใช้งาน: ไม่ทราบ)
        ปิด: Spento (ลำดับความสำคัญ 0 ใช้ได้: ไม่ทราบ)
    โปรไฟล์ที่ใช้งานอยู่: <ไฮไฟ>
    อ่างล้างมือ:
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_5__sink/#1: Cannon Point-LP High Definition Audio Controller เอาต์พุต HDMI3/DP3
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_4__sink/#2: Cannon Point-LP High Definition Audio Controller เอาต์พุต HDMI2/DP2
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_3__sink/#3: Cannon Point-LP High Definition Audio Controller เอาต์พุต HDMI1/DP1
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink/#4: ลำโพงควบคุมเสียงความละเอียดสูง Cannon Point-LP + หูฟัง
    แหล่งที่มา:
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_5__sink.monitor/#1: มอนิเตอร์ของ Cannon Point-LP High Definition Audio Controller เอาต์พุต HDMI3/DP3
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_4__sink.monitor/#2: มอนิเตอร์ของ Cannon Point-LP High Definition Audio Controller เอาต์พุต HDMI2/DP2
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_3__sink.monitor/#3: มอนิเตอร์ของ Cannon Point-LP High Definition Audio Controller เอาต์พุต HDMI1/DP1
        alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink.monitor/#4: จอภาพของลำโพงควบคุมเสียงความละเอียดสูง Cannon Point-LP + หูฟัง
        alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__source/#5: Cannon Point-LP High Definition Audio Controller หูฟัง ไมโครโฟนสเตอริโอ
        alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_6__source/#6: Cannon Point-LP High Definition Audio Controller ไมโครโฟนดิจิตอล
    พอร์ต:
        [ออก] HDMI3: เอาต์พุต HDMI3/DP3 (ลำดับความสำคัญ 700, latency offset 0 usec, ใช้ได้: ไม่มี)
            คุณสมบัติ:
                
        [ออก] HDMI2: เอาต์พุต HDMI2/DP2 (ลำดับความสำคัญ 600, ค่าชดเชยเวลาแฝง 0 usec, ใช้ได้: ไม่มี)
            คุณสมบัติ:
                
        [ออก] HDMI1: เอาต์พุต HDMI1/DP1 (ลำดับความสำคัญ 500, ค่าชดเชยเวลาแฝง 0 usec, ใช้ได้: ไม่มี)
            คุณสมบัติ:
                
        [ออก] ลำโพง: ลำโพง (ลำดับความสำคัญ 100, เวลาแฝงชดเชย 0 usec, พร้อมใช้งาน: ไม่ทราบ)
            คุณสมบัติ:
                
        [ออก] หูฟัง: หูฟัง (ลำดับความสำคัญ 200, latency offset 0 usec, พร้อมใช้งาน: ไม่ทราบ)
            คุณสมบัติ:
                
        [ใน] Mic2: ไมโครโฟนสเตอริโอหูฟัง (ลำดับความสำคัญ 200, เวลาแฝงชดเชย 0 usec, พร้อมใช้งาน: ไม่ทราบ)
            คุณสมบัติ:
                
        [ใน] Mic1: ไมโครโฟนดิจิตอล (ลำดับความสำคัญ 100, เวลาแฝงชดเชย 0 usec, พร้อมใช้งาน: ไม่ทราบ)
            คุณสมบัติ:

ขณะที่อยู่ในอุปกรณ์ที่ไม่ทำงาน เอาต์พุตดังกล่าวคือ:

    ดัชนี: 0
    ชื่อ: <alsa_card.pci-0000_00_1f.3>
    ไดรเวอร์: <module-alsa-card.c>
    โมดูลเจ้าของ: 23
    คุณสมบัติ:
        alsa.card = "0"
        alsa.card_name = "HDA Intel PCH"
        alsa.long_card_name = "HDA Intel PCH ที่ 0xb1128000 irq 129"
        alsa.driver_name = "snd_hda_intel"
        device.bus_path = "pci-0000:00:1f.3"
        sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
        device.bus = "pci"
        device.vendor.id = "8086"
        device.vendor.name = "บริษัท อินเทล"
        อุปกรณ์.product.id = "9d71"
        device.product.name = "เสียงพระอาทิตย์ขึ้น-LP HD"
        device.form_factor = "ภายใน"
        อุปกรณ์.string = "0"
        device.description = "เสียงในตัว"
        โมดูล udev-detect.discovered = "1"
        device.icon_name = "การ์ดเสียง-pci"
    โปรไฟล์:
        อินพุต: สเตอริโออะนาล็อก: อินพุตสเตอริโออะนาล็อก (ลำดับความสำคัญ 32833, พร้อมใช้งาน: ไม่ทราบ)
        เอาต์พุต: สเตอริโออะนาล็อก: เอาต์พุตสเตอริโออะนาล็อก (ลำดับความสำคัญ 39268, มีให้: ไม่ทราบ)
        เอาต์พุต:อะนาล็อก-สเตอริโอ+อินพุต:อะนาล็อก-สเตอริโอ: อะนาล็อกสเตอริโอดูเพล็กซ์ (ลำดับความสำคัญ 39333 พร้อมใช้งาน: ไม่ทราบ)
        เอาต์พุต:hdmi-สเตอริโอ: เอาต์พุตสเตอริโอดิจิตอล (HDMI) (ลำดับความสำคัญ 38668 พร้อมใช้งาน: ไม่ทราบ)
        เอาต์พุต:hdmi-สเตอริโอ+อินพุต:อะนาล็อก-สเตอริโอ: เอาต์พุตสเตอริโอดิจิตอล (HDMI) + อินพุตสเตอริโออะนาล็อก (ลำดับความสำคัญ 38733, มีให้: ไม่ทราบ)
        ปิด: ปิด (ลำดับความสำคัญ 0 พร้อมใช้งาน: ไม่ทราบ)
    โปรไฟล์ที่ใช้งานอยู่: <เอาต์พุต:อะนาล็อก-สเตอริโอ+อินพุต:อะนาล็อก-สเตอริโอ>
    อ่างล้างมือ:
        alsa_output.pci-0000_00_1f.3.analog-stereo/#1: สเตอริโอแอนะล็อกเสียงในตัว
    แหล่งที่มา:
        alsa_output.pci-0000_00_1f.3.analog-stereo.monitor/#1: จอภาพของสเตอริโอแอนะล็อกเสียงในตัว
        alsa_input.pci-0000_00_1f.3.analog-stereo/#2: สเตอริโอแอนะล็อกเสียงในตัว
    พอร์ต:
        อินพุตแบบอะนาล็อก: อินพุตแบบอะนาล็อก (ลำดับความสำคัญ 10,000, ค่าชดเชยเวลาแฝง 0 usec, พร้อมใช้งาน: ไม่ทราบ)
            คุณสมบัติ:
                
        ลำโพงเอาต์พุตอะนาล็อก: ลำโพง (ลำดับความสำคัญ 10,000, ค่าชดเชยเวลาแฝง 0 usec, พร้อมใช้งาน: ไม่ทราบ)
            คุณสมบัติ:
                device.icon_name = "ลำโพงเสียง"
        หูฟังเอาต์พุตอะนาล็อก: หูฟัง (ลำดับความสำคัญ 9900, ค่าชดเชยเวลาแฝง 0 usec, มีให้: ไม่มี)
            คุณสมบัติ:
                device.icon_name = "หูฟังเสียง"
        hdmi-output-0: HDMI / DisplayPort (ลำดับความสำคัญ 5900, latency offset 0 usec, พร้อมใช้งาน: ไม่ทราบ)
            คุณสมบัติ:
                device.icon_name = "การแสดงวิดีโอ"

นอกจากนี้ บนอุปกรณ์การทำงาน อัลซามิกเซอร์ ดูเหมือนกับ นี้ขณะที่อยู่ในอุปกรณ์ที่ไม่ทำงาน อันนี้

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

หากคุณต้องการผลลัพธ์อื่น ฉันจะแก้ไขโพสต์นี้ทันที!

แก้ไข: ฉันให้ผลลัพธ์ของสองคำสั่งแก่คุณ: cat /proc/asound/โมดูล และ dmesg | เกรป snd.

1a cat /proc/asound/โมดูล บนอุปกรณ์การทำงานให้ 0 snd_soc_skl_hda_dsp

1b cat /proc/asound/โมดูล บนอุปกรณ์ที่ไม่ทำงานให้ 0 snd_hda_intel

2a dmesg | เกรป snd บนอุปกรณ์การทำงานกลับมา

[ 3.423610] snd_hda_intel 0000:00:1f.3: ตรวจพบ DSP ด้วยข้อมูลคลาส PCI/subclass/prog-if 0x040100
[ 3.423636] snd_hda_intel 0000:00:1f.3: พบไมโครโฟนดิจิทัลบนแพลตฟอร์ม Skylake+ โดยใช้ไดรเวอร์ SOF
[ 3.699005] snd_hda_codec_realtek ehdaudio0D0: autoconfig สำหรับ ALC256: line_outs=1 (0x14/0x0/0x0/0x0/0x0) ประเภท:ลำโพง
[ 3.699008] snd_hda_codec_realtek ehdaudio0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 3.699010] snd_hda_codec_realtek ehdaudio0D0: hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[ 3.699011] snd_hda_codec_realtek ehdaudio0D0: โมโน: mono_out=0x0
[ 3.699012] snd_hda_codec_realtek ehdaudio0D0: อินพุต:
[ 3.699013] snd_hda_codec_realtek ehdaudio0D0: ชุดหูฟัง Mic=0x19
[ 3.758163] snd_hda_codec_realtek ehdaudio0D0: ASoC: วิดเจ็ต sink AIF1TX เขียนทับ
[ 3.758170] snd_hda_codec_realtek ehdaudio0D0: ASoC: วิดเจ็ตซอร์ส AIF1RX เขียนทับ

2b. บนอุปกรณ์ที่ไม่ทำงาน dmesg | เกรป snd ให้

[ 5.489834] snd_hda_intel 0000:00:1f.3: ตัวเลือก dmic_detect เลิกใช้แล้ว ให้ส่งตัวเลือก snd-intel-dspcfg.dsp_driver=1 แทน
[ 5.490101] snd_hda_intel 0000:00:1f.3: ผูกพัน 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[ 5.541621] snd_hda_codec_realtek hdaudioC0D0: autoconfig สำหรับ ALC256: line_outs=1 (0x14/0x0/0x0/0x0/0x0) ประเภท:ลำโพง
[ 5.541642] snd_hda_codec_realtek hdaudioC0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 5.541645] snd_hda_codec_realtek hdaudioC0D0: hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[ 5.541647] snd_hda_codec_realtek hdaudioC0D0: โมโน: mono_out=0x0
[ 5.541649] snd_hda_codec_realtek hdaudioC0D0: อินพุต:
Score:0
ธง in

ตรวจสอบให้แน่ใจว่าได้ติดตั้งแพ็คเกจ Sound Open Firmware แล้ว (เฟิร์มแวร์ซอฟเซ็น บนเดเบียน/อูบุนตู)

หาก Linux ยังคงยืนยันที่จะใช้ไดรเวอร์ทางเลือก (snd_hda_intel) แทนไดรเวอร์ SOF (snd_soc_skl_hda_dsp) คุณสามารถขอแบบหลังได้โดยสร้างไฟล์ใน /etc/modprobe.d, เช่น /etc/modprobe.d/alsa.confโดยมีเนื้อหาดังนี้

ตัวเลือก snd-intel-dspcfg dsp_driver=3

หากไม่ได้ผลด้วยเหตุผลบางอย่าง คุณสามารถอธิบายให้ชัดเจนกว่านี้:

บัญชีดำ snd-hda-intel
ตัวเลือก snd slot=snd_soc_skl_hda_dsp

การเปลี่ยนแปลงจะมีผลในการรีบูตครั้งถัดไป มีข้อมูลการแก้ปัญหาที่ดีมากมาย หมายเหตุเพิ่มเติมเกี่ยวกับไดรเวอร์ HD-Audio จากเอกสารเคอร์เนลเช่นเดียวกับไฟล์ เอกสาร SOF.

นอกจากนี้ คุณสามารถลองปิดใช้งาน Fast Boot / Fast BIOS เพื่อให้แน่ใจว่าฮาร์ดแวร์เสียงได้รับการรีเซ็ตอย่างถูกต้องก่อนที่ Linux จะบู๊ต

mcp avatar
il flag
mcp
คุณช่วยบอกฉันให้ละเอียดกว่านี้หน่อยได้ไหมว่าฉันจะติดตั้ง `firmware-sof-signed' บนอุปกรณ์ที่ไม่ทำงานได้อย่างไร เนื่องจากดูเหมือนว่ามีเวอร์ชันของพวกเขาบนพีซีแล้ว แต่สองคำสั่งเพื่อบังคับให้ระบบใช้งานไม่ได้ช่วยอะไร (ฉันได้รับ "Dummy Output")
mcp avatar
il flag
mcp
ให้เจาะจงยิ่งขึ้น ในพาธ `/lib/firmware/intel/sof` ของอุปกรณ์ทั้งสอง ไฟล์จะเหมือนกันทุกประการ
Matt Kramer avatar
in flag
อืม ดูเหมือนว่าคุณได้ติดตั้ง `firmware-sof-signed` ไว้แล้ว; มิฉะนั้น คุณต้องการทำ `apt install firmware-sof-signed` คุณสามารถ `cat /proc/asound/modules` เพื่อยืนยันว่า ALSA ไม่ได้โหลดไดรเวอร์สำหรับการ์ดจริงๆ (เพื่อตัดปัญหาเกี่ยวกับ PulseAudio) ในกรณีนั้น คุณสามารถลองทำ `dmesg | grep snd` เพื่อค้นหาเบาะแสว่าเหตุใดจึงโหลดไดรเวอร์ไม่ถูกต้อง
mcp avatar
il flag
mcp
ฉันได้อัปเดตคำถามด้วยผลลัพธ์ของสองคำสั่ง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา