Audio Not Working on Surface 3 Running 8.1-r1

1,268 views
Skip to first unread message

Anthony Patteri

unread,
Mar 19, 2019, 4:34:57 PM3/19/19
to Android-x86
Hello, I am new to the whole Android-x86 thing and I am trying to get the latest releases audio to work on my Surface 3.

I know that people often ask for the dmesg and lsmod for issues like this so I have posted it in a text file.

I did a little poking around myself with different versions and such and noticed on a build of 7.1 made for surface 3 that the audio worked but auto-rotation did not. I checked the /proc/asound folder on both versions and on 7.1 there were two card folders and the named folder was "IntelHDMI", while on the 8.1 distro there was only one card folder and the named folder was "Audio".

Any help is appreciated.
DMESG & LSMOD.txt

Chih-Wei Huang

unread,
Mar 19, 2019, 10:10:09 PM3/19/19
to Android-x86
Anthony Patteri <official...@gmail.com> 於 2019年3月20日 週三 上午4:35寫道:
>
> Hello, I am new to the whole Android-x86 thing and I am trying to get the latest releases audio to work on my Surface 3.
> I know that people often ask for the dmesg and lsmod for issues like this so I have posted it in a text file.
>
> I did a little poking around myself with different versions and such and noticed on a build of 7.1 made for surface 3 that the audio worked but auto-rotation did not. I checked the /proc/asound folder on both versions and on 7.1 there were two card folders and the named folder was "IntelHDMI", while on the 8.1 distro there was only one card folder and the named folder was "Audio".

This seems to be the third similar report I've seen.
I can only say audio work fine on my Surface 3.
So I have no idea what's wrong with yours.
Probably some ids are different.

Have you tried other Linux distros like
Ubuntu or Fedora to see if audio works on that?


--
Chih-Wei
Android-x86 project
http://www.android-x86.org

Anthony Patteri

unread,
Mar 19, 2019, 10:16:40 PM3/19/19
to Android-x86
I haven't installed linux on it. I can try tomorrow when I have some more time to mess around.

Also idk if it makes a difference but I have the model with 4GB ram and 128GB HD.

Jon West

unread,
Mar 20, 2019, 9:56:46 PM3/20/19
to Android-x86
the type of install you made might also be a key factor in this issue too. Please reply with how you installed it

Anthony Patteri

unread,
Mar 20, 2019, 11:20:12 PM3/20/19
to Android-x86
I tested the audio with the latest Ubuntu release and it worked just fine.

I installed Android as follows:

1. Downloaded the ISO from android-x86.org
2. Extracted the files onto a USB drive formatted as FAT32
3. Booted the USB with secure boot off
4. Selected a premade Android partition created in windows (just 8GB as NTFS)
5. Opted to format the partition as ext4
6. Skipped GRUB bootloader
7. Set system as R/W

To boot I tried both the USB I made and Grub2Win

Chih-Wei Huang

unread,
Mar 20, 2019, 11:37:56 PM3/20/19
to Android-x86
Anthony Patteri <Official...@gmail.com> 於 2019年3月21日 週四 上午11:20寫道:
>
> I tested the audio with the latest Ubuntu release and it worked just fine.

Then please collect dmesg & lsmod of Ubuntu.

> I installed Android as follows:
>
> 1. Downloaded the ISO from android-x86.org
> 2. Extracted the files onto a USB drive formatted as FAT32
> 3. Booted the USB with secure boot off
> 4. Selected a premade Android partition created in windows (just 8GB as NTFS)
> 5. Opted to format the partition as ext4
> 6. Skipped GRUB bootloader
> 7. Set system as R/W


Anthony Patteri

unread,
Mar 20, 2019, 11:55:12 PM3/20/19
to Android-x86
DMESG & LSMOD Ubuntu (1).txt

Chih-Wei Huang

unread,
Mar 21, 2019, 12:51:13 AM3/21/19
to Android-x86
The key difference is:
Ubuntu:
[ 41.369212] rt5640 i2c-10EC5640:00: Device with ID register 0x6308
is not rt5640/39
[ 41.444140] rt5645 i2c-10EC5640:00: Detected Microsoft Surface 3
platform <== the expected one
...

Android-x86:
[ 2.686841] rt5640 i2c-10EC5640:00: Device with ID register 0x6308
is not rt5640/39
[ 2.702369] bytcr_rt5640 bytcr_rt5640: quirk DMIC1_MAP enabled <== wrong...

In kernel.sound/soc/codecs/rt5645.c it searches
product name from DMI table. What's the output of
cat /sys/class/dmi/id/product_name ?

Or maybe the module loading order in Android-x86 is wrong.
Try to boot to debug mode, type

modprobe snd-soc-rt5645

Then collect dmesg & lsmod.

Anthony Patteri

unread,
Mar 21, 2019, 1:25:22 AM3/21/19
to Android-x86
For the commands I got the output in the picture, also how do I save the dmesg and lsmod from debug mode?
4B41DB52-1970-42C4-B980-87C02D26186D.jpeg

Chih-Wei Huang

unread,
Mar 21, 2019, 2:41:33 AM3/21/19
to Android-x86
Anthony Patteri <official...@gmail.com> 於 2019年3月21日 週四 下午1:25寫道:
>
> For the commands I got the output in the picture, also how do I save the dmesg and lsmod from debug mode?

Mount a usb disk and copy it.

Looks like the driver snd-soc-rt5645 detects
Surface 3 platform correctly. That's fine.
Type 'exit' (or ctrl-D) twice to continue booting.

If it works, you may add EXTMOD=snd-soc-rt5645 to
kernel cmdline.

Chih-Wei Huang

unread,
Mar 22, 2019, 2:32:26 AM3/22/19
to Android-x86
Chih-Wei Huang <cwh...@android-x86.org> 於 2019年3月21日 週四 下午2:41寫道:
> Anthony Patteri <official...@gmail.com> 於 2019年3月21日 週四 下午1:25寫道:
> >
> > For the commands I got the output in the picture, also how do I save the dmesg and lsmod from debug mode?
>
> Mount a usb disk and copy it.
>
> Looks like the driver snd-soc-rt5645 detects
> Surface 3 platform correctly. That's fine.
> Type 'exit' (or ctrl-D) twice to continue booting.
>
> If it works, you may add EXTMOD=snd-soc-rt5645 to
> kernel cmdline.

Hi Anthony,
Does the way work for you?
I'm looking forward to your test result.

Anthony Patteri

unread,
Mar 22, 2019, 2:35:21 AM3/22/19
to Android-x86
Sorry, I’m caught up in a bunch of college work right now, I should have some time tomorrow to check it out.

Anthony Patteri

unread,
Mar 22, 2019, 11:01:25 PM3/22/19
to Android-x86
Ok, so I pressed Ctrl-D twice after typing in "modprobe snd-soc-rt5645" to boot Android.

The audio still isn't working.

Here is the dmesg and lsmod that I got after booting in.

dmesg-lsmod.txt

Chih-Wei Huang

unread,
Mar 24, 2019, 10:55:52 PM3/24/19
to Android-x86
Anthony Patteri <official...@gmail.com> 於 2019年3月23日 週六 上午11:01寫道:
> Ok, so I pressed Ctrl-D twice after typing in "modprobe snd-soc-rt5645" to boot Android.
> The audio still isn't working.
> Here is the dmesg and lsmod that I got after booting in.

OK. The last idea is to load the modules
the same order as Ubuntu does exactly.
If not work, I have no idea.

Jon West

unread,
Mar 26, 2019, 9:25:43 PM3/26/19
to Android-x86
I have already tried that solution on Bliss with no luck :'(

Anthony Patteri

unread,
Aug 11, 2019, 5:58:31 PM8/11/19
to Android-x86
Hey, 

I know this is an old thread but I found a version that works almost flawlessly on my Surface apart from sleep functionality.
It's the stable Nougat release of Bliss OS with kernel version 4.9. If you wanted to fix this problem for a couple of the people
on here that have it let me know and I could do testing for you. (I don't know how any of this stuff works however so it may not even work on latest releases)

Hwiwon Cho

unread,
Sep 12, 2019, 3:10:05 AM9/12/19
to Android-x86
Hi, Maybe it is not good to reply this old thread, But I'd like to notice to other surface 3 users. 

I tried to install android x86_64 8.1 r2 for kernel 4.9 on my surface 3 (non pro, wifi, 4gb ram, 128gb storage)
Added EXTMOD=snd-soc-rt5645 to kernel cmdline according to your advice. so it works!
but original release with later kernel didn't works with same ways.

2019년 3월 21일 목요일 오후 3시 41분 33초 UTC+9, Chih-Wei Huang 님의 말:

Martin Hellmann

unread,
Mar 14, 2020, 3:23:46 AM3/14/20
to Android-x86
Hi there, I tried some Android and Linux Builds on my Surface 3 128 / 4. Every time he same Problem with Sound. 
Now I found a DeepIn Unix Version wich is running with Sound !!! after !!! i chose manualy the Output Port.( It was checked on HDMI, Possible was Phone Jack, I used PC Speaker) and it Runs. 
Maybee the DMESG of Both configurations will show the way to fix that ?  


MSsur3Bliss1110.txt
MSsur3Deepin1511.txt

Chih-Wei Huang

unread,
Mar 16, 2020, 5:39:35 AM3/16/20
to Android-x86
'Martin Hellmann' via Android-x86 <andro...@googlegroups.com> 於
2020年3月14日 週六 下午3:23寫道:
>
> Hi there, I tried some Android and Linux Builds on my Surface 3 128 / 4. Every time he same Problem with Sound.
> Now I found a DeepIn Unix Version wich is running with Sound !!! after !!! i chose manualy the Output Port.( It was checked on HDMI, Possible was Phone Jack, I used PC Speaker) and it Runs.
> Maybee the DMESG of Both configurations will show the way to fix that ?

I've seen the similar dmesg several times.
Unfortunately it doesn't help too much.

I've asked the result of these commands from
the non-working devices:

cat /sys/class/dmi/id/sys_vendor
cat /sys/class/dmi/id/product_name

But seems no one has provided that yet...

Martin Hellmann

unread,
Mar 19, 2020, 3:28:59 PM3/19/20
to Android-x86
I´ll do etherything to solve your Wishes :)

# Cat /sys/class/dmi/id/sys_vendor
Microsoft Corporation

# Cat /sys/class/dmi/id/product_name
Surface 3

how can i serve u Master ;

thanx

Chih-Wei Huang

unread,
Mar 19, 2020, 11:30:03 PM3/19/20
to Android-x86
'Martin Hellmann' via Android-x86 <andro...@googlegroups.com> 於
2020年3月20日 週五 上午3:29寫道:
> I´ll do etherything to solve your Wishes :)
>
> # Cat /sys/class/dmi/id/sys_vendor
> Microsoft Corporation
>
> # Cat /sys/class/dmi/id/product_name
> Surface 3

Hmm... This is the expected string in the driver.
Then I still have no idea why it doesn't work for you.

Martin Hellmann

unread,
Mar 20, 2020, 6:21:05 PM3/20/20
to Android-x86
Another strange fact is that on this system a bluetooth connectet Headphone works well as sound output. 
So i think it shouldn´t be an driver problem but maybee the controlled output device Phone Jack/ Speaker / HDMI

Is there a way to switch them with a Noob knowledge as mine ?

Thanks for your Time

Chih-Wei Huang

unread,
Mar 20, 2020, 10:32:07 PM3/20/20
to Android-x86
'Martin Hellmann' via Android-x86 <andro...@googlegroups.com> 於
2020年3月21日 週六 上午6:21寫道:
>
> Another strange fact is that on this system a bluetooth connectet Headphone works well as sound output.

Bluetooth audio has nothing to do with your sound card.

> So i think it shouldn´t be an driver problem but maybee the controlled output device Phone Jack/ Speaker / HDMI

Have you seen this line in the output of 'cat /proc/asound/cards' as mine?

0 [chtrt5645 ]: chtrt5645 - chtrt5645

If not, it's definitely the driver issue.
Your sound card is not detected by the driver.

Martin Hellmann

unread,
Mar 21, 2020, 5:50:59 AM3/21/20
to Android-x86
Looks different:

cat /proc/asound/cards
0 [Audio             ] HdmiLpeAudio - Intel HDMI /DP LPE Audio
                             Intel HDMI/DP LPE Audio

Martin Hellmann

unread,
Mar 21, 2020, 6:02:45 AM3/21/20
to Android-x86
On Deepin

cat / Proc/asound/cards
0 [Audio         ] : HdmiLpeAudio - Intel HDMI/DP LPE Audio
                           Intel HDMI/DP LPE Audio

1 [chtrt5645   ] : chtrt5645 - chtrt5645
                          MicrosoftCorporation-Surface3-B16D1SW1C4G1X1-Surface3

youling 257

unread,
Mar 21, 2020, 6:29:25 AM3/21/20
to Android-x86
it's a so bad patch! DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"), DMI_MATCH(DMI_PRODUCT_NAME, "Surface 3"), will never work!

static const struct dmi_system_id cht_table[] = {
	{
		.callback = cht_surface_quirk_cb,
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
			DMI_MATCH(DMI_PRODUCT_NAME, "Surface 3"),
		},
		.callback = cht_surface_quirk_cb,
		.matches = {
			DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
			DMI_MATCH(DMI_SYS_VENDOR, "OEMB"),
			DMI_MATCH(DMI_PRODUCT_NAME, "OEMB"),
		},
	},
	{ }
};



static const struct dmi_system_id byt_table[] = {
	{
		.callback = byt_thinkpad10_quirk_cb,
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad 8"),
		},
	},
	{
		.callback = byt_thinkpad10_quirk_cb,
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad 10"),
		},
	},
	{
		.callback = byt_thinkpad10_quirk_cb,
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad Tablet B"),
		},
	},
	{
		.callback = byt_thinkpad10_quirk_cb,
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
			DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo Miix 2 10"),
		},
	},
	{ }
};

youling 257

unread,
Mar 21, 2020, 6:32:20 AM3/21/20
to Android-x86
it should be

Chih-Wei Huang

unread,
Mar 23, 2020, 12:46:05 AM3/23/20
to Android-x86
Ah~ OOPS!
You solved the mystery!
While my patch solved audio issue of Surface 3
with bad DMI table, I didn't notice I messed up
the brackets. That broke audio on devices with
correct DMI table.

I've phased in the fix.
Thank you very much!

youling 257 <youli...@gmail.com> 於 2020年3月21日 週六 下午6:32寫道:

Chih-Wei Huang

unread,
Mar 23, 2020, 4:54:12 AM3/23/20
to Android-x86
Hi Anthony / Martin,
To fix the audio issue of Surface 3, I've re-uploaded new images
of 8.1-r4. The sha1sum of android-x86_64-8.1-r4.iso is
d68b0f9c9e8fb37503ece1326e6916208df31458

Please re-download and test the new iso. Thanks a lot!
For users who are not an owner of Surface 3,
you do not need to re-download the images.

Martin Hellmann

unread,
Mar 29, 2020, 2:51:26 PM3/29/20
to Android-x86
You are my Hero ! Now it works well! Thanks for your time. 

If u need some more test Area with MSurface let me know

A Fan

thanks for your good work
Reply all
Reply to author
Forward
0 new messages