No support for es8316 sound. Any work on this being done? I could help as tester at least.

I have a Laptop with an Intel Atom Z3735F CPU and since FreeBSD now supports installation for 32-bit UEFI, it is installable on that machine and actually works like a charm, booting fast and using few resources. Unfortunately, FreeBSD does neither support the Wi-Fi chip nor the sound chip (es8316). I could live with buying an external Wi-Fi dongle, but sound is really a problem, as I would like to be able to use the internal speakers. The only OS that supports everything out of the box (especially the sound) is Fedora, but it takes a really long time to boot an some tuning is required to make the experience any pleasant (e.g. disabling zram) in the end. And although I get sound in firefox and audacious, I do not in kodi or astromenace. Needless to say that sound on Linux in general is a very unpleasant experience, ALSA, pipewire, wireplumber and I don't know what else. So my dream would really be to be able to use FreeBSD on that little machine.
So is there any work being done for that es8316 chip, which is part of that Intel Atom SoC? I could at least get involved as a tester, if required.

Googeling I had found this: https://man.freebsd.org/cgi/man.cgi?query=escodec&sektion=4&manpath=OpenBSD+7.1

So I installed OpenBSD, which according to this has a driver for that chip, but it did not work / no sound device was found. And NetBSD won't install at all on that machine.
 
Does not look like FreeBSD has a device driver software to support audio for that Everest-Semi ES8316 chip.
You can check BSD Hardware information website for which BSDs have a device driver for a PCI or USB device.

ES8316 device specification sheet.
What information can you get with CLI commands pciconf -lv or usbconfig list

In short: no built-in driver exists today, and no public patch/driver is available for FreeBSD. USB audio is the practical way forward unless you're up for driver development or waiting for someone to port it (which hasn't happened yet despite occasional forum interest). from: GROK has more information to share.

How to Check Your HardwareRun these commands to confirm what FreeBSD sees:
sh
pciconf -lv | grep -i audio
dmesg | grep -i pcm
dmesg | grep -i es8316
dmesg | grep -i codec
cat /dev/sndstat

If it's an I²C-attached codec (typical for ES8316), you might see something in iicbus scans, but without a driver it won't create a pcm device.

Port the OpenBSD escodec driver
OpenBSD's driver is relatively clean/simple (I²C + basic ASoC-like ops).
→ You could try porting it to FreeBSD (attach to iicbus(4), register as simple codec).
→ Someone would need to write glue for FreeBSD's sound(4)/pcm framework (likely simple-card style for I²S + codec).
Glad you asked the question about support for this Audio Codec device ES8316 .
 
Glad you asked the question about support for this Audio Codec device ES8316 .
You're welcome! Hopefully my post can trigger some more interest.
Port the OpenBSD escodec driver
The other day I installed OpenBSD on that device (because unfortunately that OS has no Live Mode like FreeBSD does) and the sound chip was not recognized. In order to respond to this now, I have booted an USB stick with a FreeBSD 15 amd64 mini-memstick image into Live Mode.
How to Check Your HardwareRun these commands to confirm what FreeBSD sees:
sh
pciconf -lv | grep -i audio
dmesg | grep -i pcm
dmesg | grep -i es8316
dmesg | grep -i codec
These commands give absolutely nothing. I am attaching full
dmesg
and
pciconf -lv
which makes this obvious.

So consequently,
cat /dev/sndstat
gives:
Code:
cat /dev/sndstat
No devices installed.
No devices installed from userspace.
USB audio is the practical way forward
Not if you want to use the internal laptop speakers, which I want.
unless you're up for driver development or waiting for someone to port it (which hasn't happened yet despite occasional forum interest).
Well, as I said, I could at least get involved with testing, as I have no programming skills.

I don't have an X account to be able to see this.

The whole story about this sound chip is really annoying: The laptop came with a preinstalled OEM version of 32-bit Windows 10. A few years ago, the sound suddenly stopped working after some Windows update. It was also not possible to install any other sound drivers for Windows.
Back then, FreeBSD could not even be installed due to lack of support for 32-bit UEFI, which fortunately has been solved by now. I found that Fedora was one of the few Linux distributions with 32-bit UEFI support and that sound somehow worked, but not as it should. I think it only worked when plugging in a headphone, with sound then coming out of the internal speakers or some completely faulty behavior like that. That was solved with kernel version 2.16.x, I think. But Fedora is not the best solution in other ways, it takes a very long time to boot and uses a lot of RAM, so some tuning needs to be done.
I also tried Void Linux with upgrading to the latest kernel version (2.19.x), but although ALSA seemed to recognize the chip, still I got no sound.
FreeBSD runs smooth as silk and boots quite fast even from an old 1 GB USB stick, so it would be my dream to be able to use it on that Laptop.
 

Attachments

See that you just posted. Will look at your dmesg and pciconf files above. Fred
Some method to see the devices on the I2C serial connection?? Looking to find that es8316 audio device
 
Some method to see the devices on the I2C serial connection??
Well, I don't know if this is what you mean (output from dmesg in Fedora):
Code:
root@fedora:/home/werner# dmesg | grep i2c
[    1.875746] i2c_designware 80860F41:04: I2C bus managed by PUNIT
[    1.893183] axp20x-i2c i2c-INT33F4:00: AXP20x variant AXP288 found
[    1.935105] axp20x-i2c i2c-INT33F4:00: AXP20X driver loaded
[    3.083711] i2c_dev: i2c /dev entries driver
[   57.731185] input: axp20x-pek as /devices/platform/80860F41:04/i2c-4/i2c-INT33F4:00/axp221-pek/input/input9
[   59.726264] es8316 i2c-ESSX8316:00: PLATFORM_MAINMIC_TYPE 0xcc
[   59.726367] es8316 i2c-ESSX8316:00: PLATFORM_HPMIC_TYPE 0xbb
[   59.731057] es8316 i2c-ESSX8316:00: PLATFORM_SPK_TYPE 0x2
[   59.731189] es8316 i2c-ESSX8316:00: PLATFORM_HPDET_INV 0x1
[   59.731796] es8316 i2c-ESSX8316:00: PLATFORM_PCM_TYPE 0xff
[   59.732350] es8316 i2c-ESSX8316:00: PLATFORM_MIC_DE_POP 0xff
root@fedora:/home/werner#

I am also attaching the whole
dmesg
from Fedora.
 

Attachments

Back
Top