PulseAudio'da her ses kartının kendisiyle ilişkilendirilmiş bir profil seti vardır. Bir profil seti birden çok profil içerir ve bunlar kartları listelerken (veya çeşitli PulseAudio GUI'lerine bakarken gördüğünüz profillerdir).
default
Öncelikle analog ses çıkışı için yararlı şeyler içeren bir profil vardır . extra-hdmi
Bazı HDMI çıkışlarına otomatik olarak uygulanan bir profil de vardır ve 5.1'e kadar seçenek sunar. Bu profillerin ikisi de maalesef var /usr/share/pulseaudio/alsa-mixer/profile-sets
ve bu yüzden onları gerçekten düzenleyemezsiniz ( Bu konuda hata ayıklama hatası 736708 dosyaladım .) Belgelere göre, udev tabanlı otomatik keşfi devre dışı bırakabilir ve her şeyi manuel olarak yapılandırabilirsiniz; bir profilin tam yolu. Ancak, belgelenmediği halde, udev'in de tam bir yol belirleyebileceği ortaya çıkıyor.
Profil kümesi atamak için bir udev kuralı ayarlama
PULSE_PROFILE_SET
Udev ortam değişkenini ayarlayarak udev kuralında ayarlanmış bir profil atarsınız . Sadece yukarıda belirtilen /usr
alt dizinde bir dosya almak için belgelenmiştir , ancak tam bir yol da çalışır. Benim durumumda, bu kuralı oluşturdum:
# cat /etc/udev/rules.d/95-local-pulseaudio.rules
ATTRS{vendor}=="0x8086", ATTRS{device}=="0x1c20", ENV{PULSE_PROFILE_SET}="/etc/pulse/my-hdmi.conf"
Kolayca alabileceğiniz uygun PCI satıcısını ve aygıt numaralarını kullanmanız gerekecektir lspci -nn
.
Udev kuralını oluşturduktan sonra hemen ile uygulayabilirsiniz udevadm trigger -ssound
. Muhtemelen initramf'lerinizi de yeniden oluşturmak isteyeceksiniz ( update-initramfs -u
)
Udev kuralının geçerli olduğunu doğrulayın udevadm info --query=all --path /sys/class/sound/card0
(elbette uygun kart numarasını kullanın). E: PULSE_PROFILE_SET=/etc/pulse/my-hdmi.conf
Çıktıda görmelisiniz . Değilse, devam etmeyin. Çalışmaz. Udev kurallarınızla ilgili bir sorun var (ya da belki onları tetiklemediniz - her zaman yeniden başlatmayı deneyebilirsiniz).
/Etc/pulse/my-hdmi.conf dosyasını oluşturun
Not: Kanal haritası görünüşte sisteme özeldir. Sisteminize uygun hale getirmek için denemeniz gerekir. Şanslıydım, 7.1 düzenim sadece 5.1, 4.0, vb. İnşa etmek için son eşyaları düşürmeyi içeriyor. Talimatlar aşağıdadır.
Bu çoğunlukla kopyala ve yapıştır. Her bölüm (a) ad, (b) açıklama, (c) kanal haritası, (d) [isteğe bağlı] önceliğe göre farklılık gösterir.
[General]
auto-profiles = yes
[Mapping hdmi-stereo]
device-strings = hdmi:%f
channel-map = front-left,front-right
description = Digital Stereo (HDMI)
priority = 4
direction = output
paths-output = hdmi-output-0
[Mapping hdmi-surround-40]
device-strings = hdmi:%f
channel-map = front-left,front-right,rear-left,rear-right
description = Digital Quadrophonic (HDMI)
priority = 1
direction = output
paths-output = hdmi-output-0
[Mapping hdmi-surround-51]
device-strings = hdmi:%f
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
description = Digital Surround 5.1 (HDMI)
priority = 2
direction = output
paths-output = hdmi-output-0
[Mapping hdmi-surround-71]
description = Digital Surround 7.1 (HDMI)
device-strings = hdmi:%f
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
priority = 3
direction = output
paths-output = hdmi-output-0
Şimdi, bunu test etmek için:
- PulseAudio'yu yeniden başlatın:
pulseaudio -k
normal kullanıcı olarak kullanıcı başına arka plan programı (varsayılan) kullandığınızı varsayarsak. Tekrar başlatın, basit bir aplay -l
iş bile işe yarayacaktır.
- 7.1 profiline geçin. Şahsen
pactl set-card-profile 0 "output:hdmi-surround-71"
bunu yapardım, ama bir GUI de mükemmel bir şekilde çalışacaktır.
- Koş
speaker-test -c 8 -t w
. Konuşmacı isimlerini duyurmaya başlamalıdır, umarım her konuşmacının doğru adı. İsimler doğru konuşmacıdan gelmiyorsa, doğru yapmak için kanal haritasını değiştirmeniz gerekir. Her kanal haritası değişikliğinden sonra PulseAudio'yu yeniden başlatmanız gerekir.
Bonus! Daha kullanışlı ayarlar
İçinde /etc/pulse/daemon.conf
, değiştirmek isteyebileceğiniz birkaç ayar vardır:
enable-remixing
- Bu açıksa, bir stereo sinyal sol kanalının üç sol hoparlöründen ve sağ kanalının sağ hoparlörlerinizden çalınmasını sağlar. Eğer kapalıysa, sadece ön iki dışarı çıkar. Ayrıca profili stereo olarak da değiştirebileceğinizi unutmayın (yalnızca HDMI bağlantı noktasından stereo ses göndermek ve alıcınızın hoparlörlerle nasıl eşleştirileceğine karar vermek için).
enable-lfe-remixing
- Benzer, ancak LFE (subwoofer) kanalına yeniden karıştırmak için.
default-sample-format
- HDMI kurulumunuz 16 bit sesden daha fazlasını destekliyorsa, bunu s32le
(varsayılandan s16le
) yükseltmek isteyebilirsiniz .
default-sample-rate
, alternate-sample-rate
- Çoğunlukla genellikle 48KHz olan DVD-kaynak malzeme kullanıyorsanız bunları değiştirebilirsiniz (ve hatta 44.1KHz'i tamamen devre dışı bırakabilirsiniz). Veya, HDMI alıcınız destekliyorsa, 192KHz'e kadar gidebilirsiniz. 176KHz'in hem 44.1 hem de 48KHz'in katları olma özelliği var. Alıcınızın neleri desteklediğini nasıl belirleyeceğiniz için aşağıya bakın
default-sample-channels
- Gerçekten önemli değil. Profil büyük olasılıkla geçersiz kılar ...
Doğal olarak, bu dosyayı değiştirdikten sonra PulseAudio'yu yeniden başlatmanız gerekir.
Tekrar Bonus! Alıcınızın Neleri Desteklediğini Görme
HDMI bağlantısının diğer ucunun desteklediğini iddia ettiği eld.*
dosyalar vardır /proc/asound
. Örneğin:
# cat /proc/asound/card0/eld#3.0
monitor_present 1
eld_valid 1
monitor_name TX-SR606
connection_type HDMI
eld_version [0x2] CEA-861D or below
edid_version [0x3] CEA-861-B, C or D
manufacture_id 0xcb3d
product_id 0x863
port_id 0x0
support_hdcp 0
support_ai 1
audio_sync_delay 0
speakers [0x4f] FL/FR LFE FC RL/RR RLC/RRC
sad_count 8
sad0_coding_type [0x1] LPCM
sad0_channels 2
sad0_rates [0x1ee0] 32000 44100 48000 88200 96000 176400 192000
sad0_bits [0xe0000] 16 20 24
sad1_coding_type [0x1] LPCM
sad1_channels 8
sad1_rates [0x1ee0] 32000 44100 48000 88200 96000 176400 192000
sad1_bits [0xe0000] 16 20 24
sad2_coding_type [0x2] AC-3
sad2_channels 8
sad2_rates [0xe0] 32000 44100 48000
sad2_max_bitrate 640000
sad3_coding_type [0x7] DTS
sad3_channels 8
sad3_rates [0xc0] 44100 48000
sad3_max_bitrate 1536000
sad4_coding_type [0x9] DSD (One Bit Audio)
sad4_channels 6
sad4_rates [0x40] 44100
sad5_coding_type [0xa] E-AC-3/DD+ (Dolby Digital Plus)
sad5_channels 8
sad5_rates [0xc0] 44100 48000
sad6_coding_type [0xb] DTS-HD
sad6_channels 8
sad6_rates [0x1ec0] 44100 48000 88200 96000 176400 192000
sad7_coding_type [0xc] MLP (Dolby TrueHD)
sad7_channels 8
sad7_rates [0x1480] 48000 96000 192000
Böylece alıcımın 8 kanala, 192KHz, 24-bit sese kadar LPCM'yi (Doğrusal PCM, yani sıkıştırılmamış ses) desteklediğini görebilirsiniz. Ayrıca AC3, DTS, DSD, DD +, DTS-HD ve Dolby TrueHD'yi de destekler. Eğer bunlarda kodlanmış dosyalar varsa, bu formatları geçebilirim (medya yürütücüm destekliyorsa, elbette. mpv
Muhtemelen).