FreeBSD: kein automatisches Umschalten zwischen Ton im Lautsprecher und eingebauter Kopfhörerbuchse

FreeBSD: kein automatisches Umschalten zwischen Ton im Lautsprecher und eingebauter Kopfhörerbuchse

Ich habe ein Lenovo Ideapad 100S 14'' IBR-14'' Intel Celeron CPU N3060 @ 1,60 GHz, 32 GB SSD, 4 GB RAM, mit einem Realtek ALC269 als Chip-Sound.

Auf dem Rechner läuft FreeBSD 12.0. Ich habe es geschafft, den Ton für die internen Lautsprecher und die Kopfhörerbuchse erfolgreich einzurichten. Allerdings habe ich Probleme, automatisch zwischen ihnen umzuschalten.

Zum Umschalten führe ich aus:

So aktivieren Sie den/die Lautsprecher (auch beim Systemstart möglich):

sudo sysctl hw.snd.default_unit=1

So aktivieren Sie den Kopfhörerton:

sudo sysctl hw.snd.default_unit=0

Wenn ich die Standardeinheit nicht ändere, wird sie standardmäßig auf 0 gesetzt, was bei diesem Modell der Kopfhörerbuchse entspricht.

Ich habe gehört, dass es manchen gelungen ist, bei Bedarf automatisch von den internen Lautsprechern auf Kopfhörer umzuschalten.

Im Moment kann ich, wie gesagt, den Ton nur manuell über die internen Lautsprecher oder Kopfhörer ausgeben und die Einstellungen sind wie folgt:

/boot/loader.conf

# load sound driver
snd_hda="YES"
# load mixer
mixer_enable="YES"
sound_load="YES"
# Minimize the number of interrupts from the sound card 
hint.pcm.0.buffersize=65536 
hint.pcm.1.buffersize=65536 
hw.snd.feeder_buffersize=65536 
hw.snd.latency=7 

/etc/sysctl.conf

# Without this sound does not even work, both in speakers or headphones
dev.hdac.0.polling=1
# Sound for speakers when booting
hw.snd.default_unit=1

Ich habe auch versucht, die Umschaltung für die Kopfhörer einzurichten:

Hinzufügen zu /boot/loader.conf:

# Out : speaker + headphones 
hint.hdac.0.cad0.nid25.config="as=1 seq=15" 

Hinzufügen zu /boot/devices.hints:

hint.hdaa.0.nid20.config="as=1 seq=0 device=Speaker"
hint.hdaa.0.nid21.config="as=1 seq=15 device=Headphones"

und auch:

hint.hdaa.1.nid20.config="as=1 seq=0"
hint.hdaa.1.nid21.config="as=1 seq=15 device=Headphones"

Ich habe auch noch versucht, Folgendes hinzuzufügen /etc/sysctl.conf:

hw.snd.default_auto=1

Die Modifikationen zur Umstellung von Kopfhörern auf Lautsprecher waren nicht von Erfolg gekrönt.

Mir gehen im Moment die Ideen aus, irgendwelche Vorschläge?

PCI-Informationen

# pciconf -l | grep hda
hdac0@pci0:0:27:0:  class=0x040300 card=0x390517aa chip=0x22848086 rev=0x35 hdr=0x00

# pciconf -lVv -a hdac0
hdac0@pci0:0:27:0:  class=0x040300 card=0x390517aa chip=0x22848086 rev=0x35 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series High Definition Audio Controller'
    class      = multimedia
    subclass   = HDA

Zusätzliche DEBUG-Informationen für das System:

$ dmesg | grep pcm
pcm0: <Realtek ALC269 (Right Analog)> at nid 21 and 24 on hdaa0
pcm1: <Realtek ALC269 (Internal Analog)> at nid 20 and 18 on hdaa0
pcm2: <Intel (0x2883) (HDMI/DP 8ch)> at nid 5 on hdaa1

$ cat /dev/sndstat
Installed devices:
pcm0: <Realtek ALC269 (Right Analog)> (play/rec)
pcm1: <Realtek ALC269 (Internal Analog)> (play/rec) default
pcm2: <Intel (0x2883) (HDMI/DP 8ch)> (play)
No devices installed from userspace.

$ dmesg | grep hdac
hdac0: <Intel (0x2284) HDA Controller> mem 0x91310000-0x91313fff at device 27.0 on pci0
hdacc0: <Realtek ALC269 HDA CODEC> at cad 0 on hdac0
hdaa0: <Realtek ALC269 Audio Function Group> at nid 1 on hdacc0
hdacc1: <Intel (0x2883) HDA CODEC> at cad 2 on hdac0
hdaa1: <Intel (0x2883) Audio Function Group> at nid 1 on hdacc1

$sysctl hw | grep snd
hw.snd.maxautovchans: 16
hw.snd.default_unit: 1
hw.snd.version: 2009061500/amd64
hw.snd.default_auto: 0
hw.snd.verbose: 0
hw.snd.vpc_mixer_bypass: 1
hw.snd.feeder_rate_quality: 1
hw.snd.feeder_rate_round: 25
hw.snd.feeder_rate_max: 2016000
hw.snd.feeder_rate_min: 1
hw.snd.feeder_rate_polyphase_max: 183040
hw.snd.feeder_rate_presets: 100:8:0.85 100:36:0.92 100:164:0.97
hw.snd.feeder_eq_exact_rate: 0
hw.snd.feeder_eq_presets: PEQ:16000,0.2500,62,0.2500:-9,9,1.0:44100,48000,88200,96000,176400,192000
hw.snd.basename_clone: 1
hw.snd.compat_linux_mmap: 0
hw.snd.syncdelay: -1
hw.snd.usefrags: 0
hw.snd.vpc_reset: 0
hw.snd.vpc_0db: 45
hw.snd.vpc_autoreset: 1
hw.snd.timeout: 5
hw.snd.latency_profile: 1
hw.snd.latency: 5
hw.snd.report_soft_matrix: 1
hw.snd.report_soft_formats: 1

Relevante dmesgAusgabe beim Booten mit boot_verbose=1in /boot/loader.conf:

hdac0: <Intel (0x2284) HDA Controller> mem 0x91310000-0x91313fff at device 27.0 on pci0
hdacc0: <Realtek ALC269 HDA CODEC> at cad 0 on hdac0
hdaa0: <Realtek ALC269 Audio Function Group> at nid 1 on hdacc0
hdaa0: hdaa_audio_as_parse: Duplicate pin 0 (21) in association 1! Disabling association.
pcm0: <Realtek ALC269 (Right Analog Mic)> at nid 24 on hdaa0
pcm1: <Realtek ALC269 (Internal Analog Mic)> at nid 18 on hdaa0
hdacc1: <Intel (0x2883) HDA CODEC> at cad 2 on hdac0
hdaa1: <Intel (0x2883) Audio Function Group> at nid 1 on hdacc1
pcm2: <Intel (0x2883) (HDMI/DP 8ch)> at nid 5 on hdaa1
can't evaluate \134_SB_.PCI0.GFX0.ISP0._DCS - AE_NOT_FOUND
FreeBSD 12.0-CURRENT #0 r315864: Thu Mar 23 18:13:29 UTC 2017
CPU: Intel(R) Celeron(R) CPU  N3060  @ 1.60GHz (1600.05-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x406c4  Family=0x6  Model=0x4c  Stepping=4
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
hdac0: <Intel (0x2284) HDA Controller> mem 0x91310000-0x91313fff at device 27.0 on pci0
hdacc0: <Realtek ALC269 HDA CODEC> at cad 0 on hdac0
hdaa0: <Realtek ALC269 Audio Function Group> at nid 1 on hdacc0
pcm0: <Realtek ALC269 (Right Analog)> at nid 21 and 24 on hdaa0
pcm1: <Realtek ALC269 (Internal Analog)> at nid 20 and 18 on hdaa0
hdacc1: <Intel (0x2883) HDA CODEC> at cad 2 on hdac0
hdaa1: <Intel (0x2883) Audio Function Group> at nid 1 on hdacc1
pcm2: <Intel (0x2883) (HDMI/DP 8ch)> at nid 5 on hdaa1
info: [drm] Initialized drm 1.1.0 20060810
Calibrating TSC clock ... TSC clock: 1600051020 Hz
CPU: Intel(R) Celeron(R) CPU  N3060  @ 1.60GHz (1600.05-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x406c4  Family=0x6  Model=0x4c  Stepping=4
snd_unit_init() u=0x00ff8000 [512] d=0x00007c00 [32] c=0x000003ff [1024]
feeder_register: snd_unit=-1 snd_maxautovchans=16 latency=7 feeder_rate_min=1 feeder_rate_max=2016000 feeder_rate_round=25
ahci0: <AHCI SATA controller> port 0x1060-0x107f mem 0x9131a000-0x9131a7ff at device 19.0 on pci0
ahci0: attempting to allocate 1 MSI vectors (1 supported)
msi: routing MSI IRQ 256 to local APIC 0 vector 50
ahci0: using IRQ 256 for MSI
ahci0: AHCI v1.31 with 2 6Gbps ports, Port Multiplier not supported
ahci0: Caps: 64bit NCQ AL CLO 6Gbps PMD SSC PSC 32cmd 2ports
ahci0: Caps2: DESO SADM SDS APST
ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich0: Caps: DSP
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich1: Caps: DSP
hdac0: <Intel (0x2284) HDA Controller> mem 0x91310000-0x91313fff at device 27.0 on pci0
hdac0: PCI card vendor: 0x17aa, device: 0x3905
hdac0: HDA Driver Revision: 20120126_0002
hdac0: Config options: on=0x00000000 off=0x00000000
hdac0: attempting to allocate 1 MSI vectors (1 supported)
msi: routing MSI IRQ 258 to local APIC 0 vector 51
hdac0: using IRQ 258 for MSI
hdac0: Caps: OSS 4, ISS 4, BSS 0, NSDO 1, 64bit, CORB 256, RIRB 256
ioapic0: routing intpin 45 (PCI IRQ 45) to lapic 0 vector 52
ahcich0: AHCI reset...
hdacc0: <Realtek ALC269 HDA CODEC> at cad 0 on hdac0
hdaa0: <Realtek ALC269 Audio Function Group> at nid 1 on hdacc0
hdaa0: Subsystem ID: 0x17aa3802
hdaa0: NumGPIO=2 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=1
hdaa0:  GPIO0: disabled
hdaa0:  GPIO1: disabled
hdaa0: Original pins configuration:
hdaa0: nid   0x    as seq device       conn  jack    loc        color   misc
hdaa0: 18 90a60140 4  0  Mic           Fixed Digital Internal   Unknown 1
hdaa0: 20 90170120 2  0  Speaker       Fixed Analog  Internal   Unknown 1
hdaa0: 21 04211010 1  0  Headphones    Jack  1/8     Right      Black   0
hdaa0: 23 40000000 0  0  Line-out      None  Unknown 0x00       Unknown 0
hdaa0: 24 04a11030 3  0  Mic           Jack  1/8     Right      Black   0
hdaa0: 25 411111f0 15 0  Speaker       None  1/8     Rear       Black   1
hdaa0: 26 411111f0 15 0  Speaker       None  1/8     Rear       Black   1
hdaa0: 27 411111f0 15 0  Speaker       None  1/8     Rear       Black   1
hdaa0: 29 40f4a105 0  5  Other         None  RCA     0x00       Res.A   1
hdaa0: 30 411111f0 15 0  Speaker       None  1/8     Rear       Black   1
hdaa0: Patching widget caps nid=29 0x00400400 -> 0x00700400
hdaa0: Patched pins configuration:
hdaa0: nid   0x    as seq device       conn  jack    loc        color   misc
hdaa0: 18 90a60140 4  0  Mic           Fixed Digital Internal   Unknown 1
hdaa0: 20 90170120 2  0  Speaker       Fixed Analog  Internal   Unknown 1
hdaa0: 21 04211010 1  0  Headphones    Jack  1/8     Right      Black   0
hdaa0: 23 40000000 0  0  Line-out      None  Unknown 0x00       Unknown 0 DISA
hdaa0: 24 04a11030 3  0  Mic           Jack  1/8     Right      Black   0
hdaa0: 25 411111f0 15 0  Speaker       None  1/8     Rear       Black   1 DISA
hdaa0: 26 411111f0 15 0  Speaker       None  1/8     Rear       Black   1 DISA
hdaa0: 27 411111f0 15 0  Speaker       None  1/8     Rear       Black   1 DISA
hdaa0: 30 411111f0 15 0  Speaker       None  1/8     Rear       Black   1 DISA
hdaa0: 4 associations found:
hdaa0: Association 0 (1) out:
hdaa0:  Pin nid=21 seq=0
hdaa0: Association 1 (2) out:
hdaa0:  Pin nid=20 seq=0
hdaa0: Association 2 (3) in:
hdaa0:  Pin nid=24 seq=0
hdaa0: Association 3 (4) in:
hdaa0:  Pin nid=18 seq=0
hdaa0: Tracing association 0 (1)
hdaa0:  Pin 21 traced to DAC 2
hdaa0: Association 0 (1) trace succeeded
hdaa0: Tracing association 1 (2)
hdaa0:  Pin 20 traced to DAC 3
hdaa0: Association 1 (2) trace succeeded
hdaa0: Tracing association 2 (3)
hdaa0:  Pin 24 traced to ADC 8
hdaa0: Association 2 (3) trace succeeded
hdaa0: Tracing association 3 (4)
hdaa0:  Pin 18 traced to ADC 9
hdaa0: Association 3 (4) trace succeeded
hdaa0: Looking for additional DAC for association 0 (1)
hdaa0: Looking for additional DAC for association 1 (2)
hdaa0: Looking for additional ADC for association 2 (3)
hdaa0: Looking for additional ADC for association 3 (4)
hdaa0: Tracing input monitor
hdaa0:  Tracing nid 11 to out
hdaa0:  nid 11 is input monitor
hdaa0:  Tracing nid 34 to out
hdaa0:  Tracing nid 35 to out
hdaa0: Tracing other input monitors
hdaa0:  Tracing nid 18 to out
hdaa0:  Tracing nid 24 to out
hdaa0: Tracing beeper
hdaa0: Pin sense: nid=21 sense=0x80000000 (connected)
hdaa0: Pin sense: nid=24 sense=0x80000000 (connected)
hdaa0: FG config/quirks: forcestereo ivref50 ivref80 ivref100 ivref
pcm0: <Realtek ALC269 (Right Analog)> at nid 21 and 24 on hdaa0
pcm0: Playback:
pcm0:      Stream cap: 0x00000001 PCM
pcm0:         PCM cap: 0x000e0560 16 20 24 bits, 44 48 96 192 KHz
pcm0:             DAC: 2
pcm0: 
pcm0:     nid=21 [pin: Headphones (Black Jack)]
pcm0:       + <- nid=12 [audio mixer] [src: pcm, mix]
pcm0:              + <- nid=2 [audio output] [src: pcm]
pcm0:              + <- nid=11 [audio mixer] [src: mix]
pcm0: 
pcm0: Record:
pcm0:      Stream cap: 0x00000001 PCM
pcm0:         PCM cap: 0x000e0560 16 20 24 bits, 44 48 96 192 KHz
pcm0:             ADC: 8
pcm0: 
pcm0:     nid=8 [audio input]
pcm0:       + <- nid=35 [audio mixer] [src: speaker, mic, mix]
pcm0:              + <- nid=24 [pin: Mic (Black Jack)] [src: mic]
pcm0:              + <- nid=29 [beep widget] [src: speaker]
pcm0:              + <- nid=11 [audio mixer] [src: mix]
pcm0: 
pcm0: Input Mix:
pcm0: 
pcm0:     nid=11 [audio mixer]
pcm0:       + <- nid=24 [pin: Mic (Black Jack)] [src: mic]
pcm0:       + <- nid=29 [beep widget] [src: speaker]
pcm0: 
pcm0: Master Volume (OSS: vol): -65/0dB
pcm0:    +- ctl  1 (nid   2 out):    -65/0dB (88 steps)
pcm0:    +- ctl 10 (nid  12 in   0): mute
pcm0:    +- ctl 11 (nid  12 in   1): mute
pcm0:    +- ctl 18 (nid  21 in ):    mute
pcm0: 
pcm0: PCM Volume (OSS: pcm): -65/0dB
pcm0:    +- ctl  1 (nid   2 out):    -65/0dB (88 steps)
pcm0:    +- ctl 10 (nid  12 in   0): mute
pcm0: 
pcm0: Microphone Volume (OSS: mic): 0/30dB
pcm0:    +- ctl  5 (nid  11 in   0): -34/12dB (32 steps) + mute
pcm0:    +- ctl 21 (nid  24 out):    0/30dB (4 steps)
pcm0:    +- ctl 35 (nid  35 in   0): mute
pcm0: 
pcm0: Speaker/Beep Volume (OSS: speaker): -34/12dB
pcm0:    +- ctl  9 (nid  11 in   4): -34/12dB (32 steps) + mute
pcm0:    +- ctl 39 (nid  35 in   4): mute
pcm0: 
pcm0: Recording Level (OSS: rec): -17/30dB
pcm0:    +- ctl  3 (nid   8 in   0): -17/30dB (64 steps) + mute
pcm0:    +- ctl 35 (nid  35 in   0): mute
pcm0:    +- ctl 39 (nid  35 in   4): mute
pcm0:    +- ctl 40 (nid  35 in   5): mute
pcm0: 
pcm0: Input Mix Level (OSS: mix): -34/12dB
pcm0:    +- ctl  5 (nid  11 in   0): -34/12dB (32 steps) + mute
pcm0:    +- ctl  9 (nid  11 in   4): -34/12dB (32 steps) + mute
pcm0:    +- ctl 11 (nid  12 in   1): mute
pcm0:    +- ctl 40 (nid  35 in   5): mute
pcm0: 
pcm0: Input Monitoring Level (OSS: igain): 0/0dB
pcm0:    +- ctl 11 (nid  12 in   1): mute
pcm0: 
pcm0: Mixer "vol":
pcm0: Mixer "pcm":
pcm0: Mixer "speaker":
pcm0: Mixer "mic":
pcm0: Mixer "mix":
pcm0: Mixer "rec":
pcm0: Mixer "igain":
pcm0: Mixer "ogain":
pcm0: Playback channel set is: Front Left, Front Right, 
pcm0: Playback channel matrix is: 2.0 (connected)
pcm0: Automatically set rec source to: mic
pcm0: Recording channel set is: Front Left, Front Right, 
pcm0: Recording channel matrix is: 2.0 (connected)
random: harvesting attach, 8 bytes (4 bits) from pcm0
pcm1: <Realtek ALC269 (Internal Analog)> at nid 20 and 18 on hdaa0
pcm1: Playback:
pcm1:      Stream cap: 0x00000001 PCM
pcm1:         PCM cap: 0x000e0560 16 20 24 bits, 44 48 96 192 KHz
pcm1:             DAC: 3
pcm1: 
pcm1:     nid=20 [pin: Speaker (Fixed)]
pcm1:       + <- nid=13 [audio mixer] [src: pcm, mix]
pcm1:              + <- nid=3 [audio output] [src: pcm]
pcm1:              + <- nid=11 [audio mixer] [src: mix]
pcm1: 
pcm1: Record:
pcm1:      Stream cap: 0x00000001 PCM
pcm1:         PCM cap: 0x000e0560 16 20 24 bits, 44 48 96 192 KHz
pcm1:             ADC: 9
pcm1: 
pcm1:     nid=9 [audio input]
pcm1:       + <- nid=34 [audio mixer] [src: speaker, monitor]
pcm1:              + <- nid=29 [beep widget] [src: speaker]
pcm1:              + <- nid=18 [pin: Mic (Fixed)] [src: monitor]
pcm1: 
pcm1: Master Volume (OSS: vol): -65/0dB
pcm1:    +- ctl  2 (nid   3 out):    -65/0dB (88 steps)
pcm1:    +- ctl 12 (nid  13 in   0): mute
pcm1:    +- ctl 13 (nid  13 in   1): mute
pcm1:    +- ctl 17 (nid  20 in ):    mute
pcm1: 
pcm1: PCM Volume (OSS: pcm): -65/0dB
pcm1:    +- ctl  2 (nid   3 out):    -65/0dB (88 steps)
pcm1:    +- ctl 12 (nid  13 in   0): mute
pcm1: 
pcm1: Microphone2 Volume (OSS: monitor): 0/30dB
pcm1:    +- ctl 16 (nid  18 out):    0/30dB (4 steps)
pcm1:    +- ctl 34 (nid  34 in   6): mute
pcm1: 
pcm1: Speaker/Beep Volume (OSS: speaker)
pcm1:    +- ctl 32 (nid  34 in   4): mute
pcm1: 
pcm1: Recording Level (OSS: rec): -17/30dB
pcm1:    +- ctl  4 (nid   9 in   0): -17/30dB (64 steps) + mute
pcm1:    +- ctl 16 (nid  18 out):    0/30dB (4 steps)
pcm1:    +- ctl 32 (nid  34 in   4): mute
pcm1:    +- ctl 34 (nid  34 in   6): mute
pcm1: 
pcm1: Input Mix Level (OSS: mix)
pcm1:    +- ctl 13 (nid  13 in   1): mute
pcm1: 
pcm1: Input Monitoring Level (OSS: igain): 0/0dB
pcm1:    +- ctl 13 (nid  13 in   1): mute
pcm1: 
pcm1: Mixer "vol":
pcm1: Mixer "pcm":
pcm1: Mixer "rec":
pcm1: Mixer "igain":
pcm1: Mixer "ogain":
pcm1: Mixer "monitor":
pcm1: Playback channel set is: Front Left, Front Right, 
pcm1: Playback channel matrix is: 2.0 (unknown)
pcm1: Automatically set rec source to: monitor
pcm1: Recording channel set is: Front Left, Front Right, 
pcm1: Recording channel matrix is: 2.0 (unknown)
hdacc1: <Intel (0x2883) HDA CODEC> at cad 2 on hdac0
hdaa1: <Intel (0x2883) Audio Function Group> at nid 1 on hdacc1
hdaa1: Subsystem ID: 0x80860101
hdaa1: NumGPIO=0 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=0
hdaa1: Original pins configuration:
hdaa1: nid   0x    as seq device       conn  jack    loc        color   misc
hdaa1:  5 18560010 1  0  Digital-out   Jack  Digital 0x18       Unknown 0
hdaa1:  6 58560020 2  0  Digital-out   None  Digital 0x18       Unknown 0
hdaa1:  7 58560030 3  0  Digital-out   None  Digital 0x18       Unknown 0
hdaa1: Patched pins configuration:
hdaa1: nid   0x    as seq device       conn  jack    loc        color   misc
hdaa1:  5 18560010 1  0  Digital-out   Jack  Digital 0x18       Unknown 0
hdaa1:  6 58560020 2  0  Digital-out   None  Digital 0x18       Unknown 0 DISA
hdaa1:  7 58560030 3  0  Digital-out   None  Digital 0x18       Unknown 0 DISA
hdaa1: 1 associations found:
hdaa1: Association 0 (1) out:
hdaa1:  Pin nid=5 seq=0
hdaa1: Tracing association 0 (1)
hdaa1:  Pin 5 traced to DAC 2
hdaa1: Association 0 (1) trace succeeded
hdaa1: Looking for additional DAC for association 0 (1)
hdaa1: Tracing input monitor
hdaa1: Tracing other input monitors
hdaa1: Tracing beeper
hdaa1: FG config/quirks: forcestereo ivref50 ivref80 ivref100 ivref
pcm2: <Intel (0x2883) (HDMI/DP 8ch)> at nid 5 on hdaa1
pcm2: Playback:
pcm2:      Stream cap: 0x00000005 AC3 PCM
pcm2:         PCM cap: 0x001e07f0 16 20 24 32 bits, 32 44 48 88 96 176 192 KHz
pcm2:             DAC: 2
pcm2: 
pcm2:     nid=5 [pin: Digital-out (Jack)]
pcm2:       + <- nid=2 [audio output] [src: pcm]
pcm2: 
pcm2: Master Volume (OSS: vol): 0/0dB
pcm2:    +- ctl  1 (nid   5 in ):    mute
pcm2: 
pcm2: PCM Volume (OSS: pcm): 0/0dB
pcm2:    +- ctl  1 (nid   5 in ):    mute
pcm2: 
pcm2: Mixer "vol":
pcm2: Mixer "pcm":
pcm2: Soft PCM mixer ENABLED
pcm2: Playback channel matrix is: unknown, assuming 7.1 (disconnected)
hdac0: poll interval 1000 -> 500 ticks

Referenz:man snd_hda FreeBSD 12.0

Antwort1

Ich bin wieder dazu übergegangen, FreeBSD auf meinem Lenovo zu verwenden, jetzt mit FreeBSD 12.0. Die vorherige Antwort war zwar nicht ganz 100 % richtig, hat mich aber auf den richtigen Weg gebracht.

So bringen Sie den Ton zum Laufen: Schalten Sie das Gerät aus und wechseln Sie zu Kopfhörern, wenn Sie diese in die Audiobuchse stecken:

  • Die Direktive hw.snd.default_unit muss aus entfernt werden sysctl.conf;
  • Der as/audioset ist standardmäßig 2, also muss 2 verwendet werden und nicht 1. Ausprobiert as=1, funktioniert aber definitiv nicht wie vorgesehen.

Basierend auf der standardmäßigen sysctlSichtprüfung, der Frage/vorherigen Beiträgen und der Antwort von @Trevor lautet die vollständige Konfiguration, um ein Lenovo Ideapad 100S IBR zu erhalten, damit der Ton funktioniert und automatisch auf Kopfhörer umgeschaltet wird:

Datei: /etc/sysctl.conf

# Without this sound does not even work, both in speakers or headphones
dev.hdac.0.polling=1

Datei: /boot/loader.conf

snd_hda_load="YES"
mixer_enable="YES"
sound_load="YES"

Datei: /boot/device.hints

hint.hdaa.1.nid20.config="as=2 seq=0 device=Speaker conn=Fixed ctype=Analog loc=Internal"
hint.hdaa.0.nid21.config="as=2 seq=15 device=Headphones conn=Jack"

PS. Die Standardsystemkonfiguration, nur zu Dokumentationszwecken, lautet:

# sysctl -a | egrep "nid20|nid21" | grep original
dev.hdaa.0.nid21_original: 0x04211010 as=1 seq=0 device=Headphones conn=Jack ctype=1/8 loc=Right color=Black misc=0
dev.hdaa.0.nid20_original: 0x90170120 as=2 seq=0 device=Speaker conn=Fixed ctype=Analog loc=Internal color=Unknown misc=1

Antwort2

wenn Sie Folgendes eingeben:

sudo sysctl hw.snd.default_unit=1

oder

sudo sysctl hw.snd.default_unit=0

Sie wechseln zwischen pcm1 und pcm0

Wenn Sie sich Ihre dmesg-Ausgabe unter „Wiedergabe:“ für pcm0 und pcm1 ansehen, finden Sie etwas, das wie eine Hierarchie aussieht.

line 124:    pcm0:     nid=21 [pin: Headphones (Black Jack)]
             pcm0:       + <- nid=12 [audio mixer] [src: pcm, mix]
             pcm0:              + <- nid=2 [audio output] [src: pcm]
             pcm0:              + <- nid=11 [audio mixer] [src: mix]

line 200:    pcm1:     nid=20 [pin: Speaker (Fixed)]
             pcm1:       + <- nid=13 [audio mixer] [src: pcm, mix]
             pcm1:              + <- nid=3 [audio output] [src: pcm]
             pcm1:              + <- nid=11 [audio mixer] [src: mix]

*Kopfhörer an nid=21(wird abgebildet auf nid=12, nid=2 und nid=11)

*Lautsprecher ein nid=20(wird abgebildet auf nid=13, nid=3 und nid=11)

Damit BSDautomatischer WechselZusammen müssen sie beide Mitglieder desselben (A)udio(s)satzes sein:

"als=1"Audio-Set entspricht einem

"Sequenz"ReihenfolgeOrdnungszahl (0,1,2,...15)

Ihre bisherigen Versuche, /boot/device.hints zu bearbeiten

[ERROR!!]  hint.hdaa.0.nid20.config="as=1 seq=0 device=Speaker"
[CORRECT]  hint.hdaa.0.nid21.config="as=1 seq=15 device=Headphones"

und auch:

[CORRECT]  hint.hdaa.1.nid20.config="as=1 seq=0"
[ERROR!!]  hint.hdaa.1.nid21.config="as=1 seq=15 device=Headphones"

erinnern:

*the Headphones are on pcm0    (pcm0) = hint.hdaa.0
*the Speaker is on pcm1        (pcm1) = hint.hdaa.1

Lösung: Fügen Sie sie mit dem Schlüsselwortargument „as“ in dasselbe (A)udio(s)set ein.

/boot/device.hints

hint.hdaa.1.nid20.config="as=1 seq=0"
hint.hdaa.0.nid21.config="as=1 seq=15 misc=0"

"misc=0" ist möglicherweise unnötig. Ich denke, es ist hw-spezifisch.

Antwort3

Danke. Es funktioniert hier auch gut. Der Unterschied ist meine PCM-Adresse.

pcm0: <Realtek ALC1220 (Analog 2.0+HP/2.0)> at nid 20,27 and 24,26 on hdaa0
pcm1: <Realtek ALC1220 (Front Analog Mic)> at nid 25 on hdaa0

Also habe ich es geändert /boot/device.hintin:

hint.hdaa.1.nid20.config="as=1 seq=0"
hint.hdaa.0.nid27.config="as=1 seq=15"

Klappt wunderbar.

verwandte Informationen