Ubuntu 16.04 Tidak Ada Suara dari Pembicara, hanya headphone yang berfungsi

8

Saya pada akhir kecerdasan saya dengan masalah ini. Saya tahu saya telah melihat masalah ini jutaan kali, tetapi tidak ada solusi yang berhasil.

Saya memiliki laptop ASUS yang di-boot dengan Windows 8.1, saya meningkatkan versi 15.10 menjadi 16.04 dan kehilangan penggunaan speaker; Soundcard terus-menerus berpikir headphone terpasang, seperti dibuktikan oleh screenshot ini.

alsamixer

pavucontrol

Ini bukan masalah perangkat keras karena 1) suara bekerja di Windows 8.1 2) Saya bisa membuat speaker berfungsi dengan menonaktifkan jack headphone menggunakan hdajackretask (pengaturan override dan kemudian atur di "Not Connected") tetapi kemudian tidak dapat menggunakan tombol cepat untuk mengubah volume

Saya telah mencoba memuat ulang alsa dan juga membersihkan alsa dan menginstal ulang.

Saya berencana untuk benar-benar menghapus partisi Windows 8 saya. Saya melihat di sini: Tidak ada suara dari speaker laptop di Ubuntu 14.04 setelah boot ke Windows 8.1 bahwa Windows mungkin menyebabkan masalah. Apakah menghapus partisi akan membantu masalah?

Sunting: Saya telah menonaktifkan Boot Hybrid seperti yang disarankan dalam pertanyaan itu.

jutch
sumber
Saya pasti akan mencoba jawaban yang diterima sebelum yang lain.
Maaf, saya tidak menyebutkan bahwa boot hybrid / boot cepat sudah dinonaktifkan seperti yang disarankan dalam jawaban. Mengedit pertanyaan sekarang.
jhutch

Jawaban:

9

Saya juga mengalami masalah ini ketika memutakhirkan Xubuntu 14.04 saya ke Xubuntu 16.04 (headphone menghasilkan suara, tetapi bukan speakernya). Saya memiliki kartu suara Intel HD dengan chip Realtek ALC259. Masalahnya tetap ada saat boot dengan berbagai kernel dari 3.13.X hingga 4.10.X.

Namun, SAYA PUNYA TETAP, dan inilah caranya:

Penting untuk dipahami bahwa Pulseaudio (PA) adalah sistem kontrol suara default untuk Ubuntu dan sebagian besar (semua?) Varian itu. PA pada dasarnya dan overlay di atas sistem suara ALSA inti. Jadi, untuk setiap tindakan yang dilakukan dalam PA, ada reaksi selanjutnya dalam ALSA. Untuk setiap output (alias port) yang ditentukan dalam PA, ada penyesuaian yang ditentukan untuk sistem ALSA. Penyesuaian ini dikenal sebagai "jalur pencampuran".

!!! PENTING !!!

Sebelum Anda melanjutkan, sekarang adalah waktu yang tepat untuk memverifikasi bahwa ini sebenarnya masalah Anda dan tidak ada alasan lain mengapa speaker Anda tidak berfungsi. Anda dapat melakukannya dengan sangat mudah dengan melakukan tes berikut. (Jika Anda telah mengutak-atik sistem suara Anda, Anda mungkin ingin mengembalikannya ke pengaturan default sebelum pengujian):

  1. Cabut headphone atau perangkat suara lainnya KECUALI speaker yang TIDAK berfungsi.
  2. Mulai mainkan file audio yang biasanya menghasilkan suara dari speaker Anda, meskipun saat ini tidak. Kemudian,
  3. Buka terminal Anda dan jalankan perintah:

    alsamixer
    

Anda harus melihat yang berikut ini:

alsamixer Karena perbedaan antara kartu suara, perangkat Anda menjadi sedikit berbeda dari yang ada pada gambar. Dalam kasus saya, dan sebelum memperbaiki masalah, alsamixer saya tampak seperti gambar di atas.

  1. Suarakan perangkat apa pun yang saat ini dinonaktifkan (gunakan tombol 'm' untuk beralih bisu). Kemudian naikkan penggeser volume pada perangkat apa pun yang tidak 100%.

Jika Anda dapat mendengar suara dari speaker Anda, perbaikan ini adalah untuk Anda!

Jika Anda tidak mendengar suara apa pun, kembali ke "Google" dan terus mencari. Metode kehendak ini TIDAK akan membantu Anda.


Jika Anda berhasil mendapatkan suara dari tes di atas, yang perlu kita lakukan sekarang adalah bermain dengan pengaturan alsamixer untuk menentukan:

  1. Kontrol volume perangkat mana yang sebenarnya mengontrol volume speaker Anda, dan
  2. Perangkat mana yang perlu dibisukan agar speaker berfungsi. Beberapa perangkat mungkin harus dibisukan.

Setelah kami mengetahui pengaturan ALSA di mana speaker akan bekerja, kami dapat menggunakan informasi ini untuk membuat perubahan yang diperlukan pada jalur mixer PA kami.

Dalam kasus saya, saya menemukan bahwa headphone dan speaker saya terhubung dalam ALSA dengan cara berikut:

  1. Volume Headphone Saya dikendalikan oleh perangkat "Headphone".
  2. Mendapatkan suara dari headphone saya mengharuskan perangkat "Master" dan "Headphone" dibisukan.
  3. Volume Pembicara Saya JUGA dikontrol oleh perangkat "Headphone". (Pengaturan volume speaker ALSA secara mengejutkan tidak berpengaruh pada volume speaker saya.)
  4. Untuk mendapatkan suara dari speaker saya, perangkat "Master" dan "Speaker" harus dibisukan.

Jalur mixer default speaker dalam PulseAudio (PA) mengasumsikan bahwa speaker saya independen dari headphone saya. Yang, seperti yang ditunjukkan di atas oleh pengamatan 3, tidak demikian. Selanjutnya, jalur mixer default dalam PA untuk speaker saya membuat perubahan bermasalah berikut dalam ALSA setiap kali output speaker dipilih dalam PA:

  1. Turunkan volume headphone ke 0.
  2. Atur perangkat pengeras suara sebagai kontrol volume.

Mengingat bagaimana saya telah mengamati keterkaitan ALSA terhadap speaker dan headphone saya seperti yang dijelaskan sebelumnya, perubahan pada ALSA ini akan mencegah suara keluar dari speaker saya.

Jadi, solusi untuk masalah ini diperoleh dengan memodifikasi jalur mixer pembicara.

File jalur mixer PA terletak di:

/ usr / share / pulseaudio / alsa-mixer / paths /

Untuk menentukan file jalur mixer mana yang mengontrol speaker Anda, Anda perlu:

  1. Pastikan output speaker Anda dipilih dalam PA (yaitu bukan headphone Anda). masukkan deskripsi gambar di sini

  2. Buka terminal dan jalankan perintah berikut:

    pactl list | grep 'Active Port.*output.*'
    
  3. Seharusnya menampilkan sesuatu yang terlihat seperti ini:

    Active Port: perangkat audiotype -output-

yaitu

masukkan deskripsi gambar di sini

"Port aktif" adalah port PA yang saat ini mengendalikan pengaturan ALSA. Karena Anda sudah memilih speaker Anda sebagai output PA, output ini dari perintah terminal memberitahu Anda bahwa Anda perlu mengedit file jalur mixer audiotype -output- device .conf . Dalam kasus saya, file jalur mixer adalah analog-output-speaker.conf.

Sekarang kita memiliki file path mixer yang benar, kita perlu melakukan perubahan.

CATATAN: Di dalam folder path mixer ini, ada file bernama 'analog-output.conf.common'. Isi file ini menjelaskan bagaimana file path mixer diinterpretasikan. Jika Anda ingin memahami perubahan berikut, saya sangat menyarankan melihat file ini sebelum mengedit jalur mixer Anda!

Setiap file jalur mixer berisi banyak "Elemen". Idealnya, ada elemen yang mewakili setiap perangkat ALSA di komputer Anda dalam setiap file. Mungkin ada elemen yang tidak Anda miliki juga. Ini normal.

Dalam kasus saya, saya perlu mengubah elemen Headphone dan Speaker dalam jalur mixer untuk analog-output-speaker.conf dengan cara berikut:

  1. Izinkan volume PA untuk menyesuaikan volume ALSA headphone.

Asli:

[Element Headphone]
switch = off
volume = off

Diedit:

[Element Headphone]
switch = off
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
  1. (Opsional) Setel volume speaker ke mati dan mencegah volume PA mempengaruhi volume ALSA. (Jika Anda tidak melakukan ini, suara Anda masih akan berfungsi, tetapi pengaturan speaker dalam ALSA akan memantul dengan tidak wajar.)

Asli:

[Element Speaker]
required-any = any
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right

Diedit:

[Element Speaker]
required-any = any
switch = mute
volume = off

Kemudian, restart PA dengan menjalankan:

pulseaudio -k && pulseaudio --start

Voa!

notorious.dds
sumber