Page 1 of 1

Thinkcentre M93 no HDMI sound

Posted: Tue Mar 14, 2023 6:45 pm
by ashigaru53
Greetings,
My first foray into BSD I have GhostBSD 13 installed on a Lenovo Thinkcentre M93. It works great. The only issue is no HDMI sound. I have read through the forums here and freeBSD but have found no insights. I also read man snd_hda. I'm sure there is an 'operator' error somewhere that I have missed.
The HDMI sound works excellent under various Linux distros so it is a puzzle. Output sound preferences in the mixer app is set to HDMI. Headphone jack puts out sound when set to it. Is it possible to compile a linux driver for the sound using the compatibility layer?
Could someone look through these settings to see what I am missing?
TIA

hw_probe = URL: https://bsd-hardware.info/?probe=c9279ce424

cat /dev/sndstat
Installed devices:
pcm0: <Intel Haswell (HDMI/DP 8ch)> (play) default
pcm1: <Realtek ALC283 (Front Analog)> (play/rec)
pcm2: <Realtek ALC283 (Rear Analog Mic)> (rec)
No devices installed from userspace.

mixer
Mixer vol is currently set to 55:55
Mixer pcm is currently set to 100:100

cat /boot/loader.conf
rc_system="bsdrc"
crypto_load="YES"
aesni_load="YES"
geom_eli_load="YES"
vfs.zfs.arc_max="512M"
zfs_load="YES"
snd_hda_load="YES"

sysctl dev.hdac.0
dev.hdac.0.polling: 0
dev.hdac.0.pindump: 0
dev.hdac.0.%parent: pci0
dev.hdac.0.%pnpinfo: vendor=0x8086 device=0x0c0c subvendor=0x17aa subdevice=0x30a3 class=0x040300
dev.hdac.0.%location: slot=3 function=0 dbsf=pci0:0:3:0 handle=\_SB_.PCI0.B0D3
dev.hdac.0.%driver: hdac
dev.hdac.0.%desc: Intel Haswell HDA Controller

kldstat -v | grep snd
268 hdac/snd_hda
267 pci/snd_hda
266 hdaa/snd_hda_pcm
265 hdacc/snd_hda
264 pci/snd_via8233
263 pci/snd_ich
262 pci/snd_es137x
261 emu10kx/snd_emu10kx_midi
260 emu10kx/snd_emu10kx_pcm
259 pci/snd_emu10kx
258 csa/snd_csapcm
257 pci/snd_csa
256 pci/snd_cmi

dmesg | grep pcm
pcm0: <Intel Haswell (HDMI/DP 8ch)> at nid 3 on hdaa0
pcm1: <Realtek ALC283 (Front Analog)> at nid 33 and 25 on hdaa1
pcm2: <Realtek ALC283 (Rear Analog Mic)> at nid 26 on hdaa1


cat /etc/sysctl.conf
# $FreeBSD$
#
# This file is read when going to multi-user and its contents piped thru
# ``sysctl'' to adjust kernel values. ``man 5 sysctl.conf'' for details.
#

# Uncomment this to prevent users from seeing information about processes that
# are being run under another UID.
#security.bsd.see_other_uids=0

# add user mount
vfs.usermount=1

# the following is required to run chromium browser
kern.ipc.shm_allow_removed=1

# Disable creating *.core files
kern.coredump=0

# Improve responsiveness on high work load.
kern.sched.preempt_thresh=224

# Fix stuttering issue on AMD
kern.sched.steal_thresh=1

# A table of 100000 file descriptors should be enough for desktop system.
kern.maxfiles=100000

# Improve write speed a little bit
vfs.lorunningspace=1048576
vfs.hirunningspace=5242880

# this is required for MBR 4 alignement
kern.geom.part.mbr.enforce_chs=0

# PROPOSED SECURITY ADDITIONS BELOW
#
# hw.kbd.keymap_restrict_change=4
# kern.randompid=1
# kern.sugid_coredump=0
#
# Prevent users from seeing information about processes
# that are being run under another UID.
# security.bsd.see_other_uids=0
# security.bsd.see_other_gids=0
#
# security.bsd.hardlink_check_gid=1
# security.bsd.hardlink_check_uid=1
# security.bsd.stack_guard_page=1
#
# Disable Reading Kernel Buffers
# security.bsd.unprivileged_read_msgbuf=0
#
# Disable Process Debugging Facilities
# security.bsd.unprivileged_proc_debug=0
#
# Prandomizing PID's of newly created processes
# kern.randompid=1
#
# Hide processes running in jails
# security.bsd.see_jail_proc=0
#
# drop udp and tcp packets going to closed sockets
# net.inet.udp.blackhole=1
# net.inet.tcp.blackhole=2
#
# IPv4 ICMP drop redirect security enhancement
# net.inet.icmp.drop_redirect=1
#
# IPv4 security additions
# net.inet.ip.check_interface=1
# net.inet.ip.process_options=0
# net.inet.ip.random_id=1
# net.inet.ip.redirect=0
# net.inet.ip.accept_sourceroute=0
# net.inet.ip.forwarding=0
# net.inet.ip.sourceroute=0
#
# IPv4 TCP security additions
# net.inet.tcp.always_keepalive=0
# net.inet.tcp.drop_synfin=1
# net.inet.tcp.icmp_may_rst=0
# net.inet.tcp.nolocaltimewait=1
# net.inet.tcp.path_mtu_discovery=0
#
# IPv4 icmp additions
# net.inet.icmp.bmcastecho=0
#
# IPv6 and icmp6 redirect for enhancing security
# net.inet6.icmp6.rediraccept=0
# net.inet6.ip6.redirect=0
hw.snd.default_unit=0

Re: Thinkcentre M93 no HDMI sound

Posted: Tue Mar 14, 2023 8:22 pm
by neville
Welcome to GhostBSD!

What is the output of the command

cat /dev/sndstat

To get sound through HDMI, run the command above and in the terminal output you should see some HDMI sound devices as well as your laptop sound card. You should see one set as default and the numbers of different sound devices

Change the default unit you want with the following command.
But first shut down all applications using sound.

sysctl hw.snd.default_unit=x

Change x to the HDMI unit you want.
To make it permanent, edit /etc/sysctl.conf and put this in it

hw.snd.default_unit=x

Re: Thinkcentre M93 no HDMI sound

Posted: Wed Mar 15, 2023 12:43 pm
by ashigaru53
Thanks for the reply Neville. Much appreciated.

I tried to list all the commands I saw in other posts.

The first section I listed after my question was the output of "cat /dev/sndstat".

It shows the HDMI on pcm0 as the default.

I also tried the "sysctl hw.snd.default_unit=0" but no good.

At the bottom of the "cat /etc/sysctl.conf" section that I posted it shows the "hw.snd.default_unit=0"

Should the "hw.snd.default_unit=0" instead be "hw.snd.default_unit=pcm0" ? Maybe I'll give that a try.

Nope- sysctl hw.snd.default_unit=pcm0 throws an error.
"sudo sysctl hw.snd.default_unit=pcm0
sysctl: invalid integer 'pcm0' "

sudo sysctl hw.snd.default_unit=0
hw.snd.default_unit: 0 -> 0
Shows that default was currently 0

Any other thoughts?

Thanks again in advance!

Re: Thinkcentre M93 no HDMI sound

Posted: Tue Mar 21, 2023 9:19 pm
by neville