Çözüm Fuxi H6 Pro Linux'ta ses seviyesini düşürünce ses kesilmesi

Bu konu bir çözümü açıklamaktadır. Herhangi bir çözüm açıklanmadığını düşünüyorsanız konuyu rapor edebilirsiniz.

Zyrtek

Yetkin
Katılım
21 Ocak 2024
Mesajlar
323
Çözümler
3
Beğeniler
197
Yer
Kocaeli

Konu Başlıkları Gizle

  1. 1 Uygulama
  2. 2 Kontrol
  3. 3 Kaldırma
Fedora'da Fuxi H6 Pro kulaklığımı kullanırken garip bir ses sorunu yaşıyordum. Ses %100'deyken sorunsuz çalışıyor, ancak KDE üzerinden sesi biraz kıstığımda ya aşırı düşüyor ya da tamamen kesiliyordu.

Biraz araştırdıktan sonra sorunun PipeWire/KDE'den değil, kulaklığın USB Audio Mixer'ının Linux'a bildirdiği ses seviyesi değerlerinden kaynaklandığını fark ettim. Sorun yaşanırken PipeWire tarafında ses seviyesi normal şekilde kademeli olarak (örneğin %100 → %99 → %90) değişirken, ALSA tarafında bu değer 100 → 34 → 0 gibi aniden düşüyordu.


Kernel logları şöyleydi:

Sticky Mixer values (0/100/1 => 80), disabling
Warning! Unlikely small volume range (=100), linear volume or Custom curve?

Snd_usb_audio içindeki Quirk'leri denediğimde MIXER_PLAYBACK_LINEAR_VOL sorunu çözdü.

Kullandığım quirk:
040b:0897:0x08000000
Bunu uyguladıktan sonra ALSA'daki ses değerleri düzgün ve kademeli değişmeye başladı ve %100'ün altına inince sesin kaybolması sorunu ortadan kalktı.

Ayrıca MIXER_GET_CUR_BROKEN (0x40000000) Quirk'ini de ayrı olarak denedim. İkisini birlikte 0x48000000 olarak uyguladığımda kernel her ikisini de aktif ediyordu, ancak bu sefer sol/sağ kanal ses dengesi bozuluyordu.

Bu yüzden şu anda yalnızca 0x08000000 kullanıyorum.


Bu cihaz (040b: 0897) için ALSA/kernel tarafında daha önce de düzeltme çalışmaları yapılmış. Özellikle MIXER_GET_CUR_BROKEN ile ilgili bir quirk Upstream'e eklenmiş durumda.

Ancak kullandığım Fedora 44 7.1.13-200.FC44.X86_64 kernelinin kaynaklarında 040b: 0897 için bu quirk atamasını göremedim.

Burada ayrıca belirtmek gerekirse, MIXER_PLAYBACK_LINEAR_VOL (0x08000000) çözümü yapılan testler sonucunda bulundu. Upstream'deki MIXER_GET_CUR_BROKEN çalışması ise ayrı bir düzeltme.


Bu sorunu çözmek için yaklaşık 2-3 saat Claude ile uğraştım ve sonunda bu çözüme ulaştıö. Sorunu düzeltecek bir Sh dosyası hazırladım ihtiyacı olan kullanabilir.

İndirme Linki:

fuxi-h6-pro-fix.sh

Dosyayı indirdikten sonra SHA-256 değeri şu şekilde kontrol edilebilir:

sha256sum fuxi-h6-pro-fix.sh

İlk olarak dosyaya çalıştırma izni verilir:

chmod +x fuxi-h6-pro-fix.sh

Workaround'u uygulamak için:

./fuxi-h6-pro-fix.sh apply

İşlem tamamlandıktan sonra sistem yeniden başlatılır:

sudo reboot

Yeniden başlatma sonrasında kontrol etmek için:

./fuxi-h6-pro-fix.sh check

Workaround'u kaldırmak için:
./fuxi-h6-pro-fix.sh remove/

Script'in check modu aşağıdaki kontrolleri otomatik olarak sırayla yapıyor. İstenirse aynı adımlar elle de tekrarlanabilir.

Öncelikle cihazın USB kimliği kontrol edilir. Benim cihazımın USB ID'si 040b:0897:

lsusb | grep -i '040b:0897'
Mevcut modprobe. D ayarı ve çalışan snd_usb_audio quirk değeri:

Kod:
cat /etc/modprobe.d/fuxi-h6-pro.conf
cat /sys/module/snd_usb_audio/parameters/quirk_flags

ALSA tarafındaki bilgisayarım ses seviyesi:

amixer -c Pro get PCM
Sorun mevcutken bu değerin PipeWire'daki kademeli değişimin aksine 100 → 34 → 0 gibi aniden düştüğü gözlemlenebilir.

Kernel tarafındaki ilgili mesajlar şu filtreyle taranır:

sudo dmesg | grep -iE '040b|0897|linear volume|broken mixer|sticky mixer|quirk'

Uygulama​

Script root yetkisiyle çalışıp aşağıdaki içeriği /etc/modprobe.d/fuxi-h6-pro.conf dosyasına yazar:

options snd_usb_audio quirk_flags=040b:0897:0x08000000
Ardından Initramfs'i yeniler:

dracut --force
Ve sistemin yeniden başlatılmasını ister.

Bilinçli olarak yalnızca MIXER_PLAYBACK_LINEAR_VOL (0x08000000) uygulanır. MIXER_GET_CUR_BROKEN (0x40000000) eklenmez, çünkü yapılan testlerde ikisi birlikte kullanıldığında sol/sağ kanal ses dengesi bozuldu.

Kontrol​

Check modu modprobe.d içeriğini, çalışan quirk_flags değerini, USB cihaz durumunu, ALSA bilgisayarın seviyesini ve ilgili kernel loglarını tek seferde kontrol edip özetler.

Beklenen ana kernel satırı:

applying playback linear volume quirk
Yeniden başlatma sonrasında aktif quirk şu komutla ayrıca doğrulanabilir:

cat /sys/module/snd_usb_audio/parameters/quirk_flags
Beklenen değer:

040b:0897:0x08000000

Kaldırma​

remove modu /etc/modprobe.d/fuxi-h6-pro.conf dosyasını siler ve Initramfs'i yeniden oluşturur.

Değişikliğin tamamen etkisizleşmesi için sistem yeniden başlatılır:

sudo reboot



Not: Bu workaround USB ID'si 040b: 0897 olan cihaz için hazırlandı. Farklı bir cihazda uygulamadan önce lsusb ile VID: PID değerinin kontrol etmenizi tavsiye ederim.
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…