Grippy98 / Asus-E200HA-Linux-Post-Install-Script

A Linux Post install script for The Asus E200HA, X206HA and other Intel Cherry Trail Devices
GNU General Public License v3.0
70 stars 13 forks source link

Patches for sound drivers #29

Open LGaljo opened 6 years ago

LGaljo commented 6 years ago

Hello! We appreciate what you did to make sound work on this laptop. But since you dont have time to compile kernels may I ask you to provide patch files or commits needed to add sound drivers to kernel. I would like to compile kernel myself so I can have kernel with latest fixes. Thanks

ghost commented 6 years ago

Here is the original repository that contains the sources with patches to support sound on E200HA. https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git (branch topic/asus-e100h-4.13)

In addition, I slightly modified the script and compiled myself newer kernel (4.13.16). I'm not sure that the kernel works perfect, but... It works. You can find it in my repositories. In the future, I will periodically update the kernel, so that it can work on the newest versions of Ubuntu, if I do not have any difficulties.

Shemzone commented 6 years ago

@FireFlashie , what is the distro you run with your kernel version. I'd like to test it with Ubuntu 17.10. What do you think?

ghost commented 6 years ago

@Shemzone, latest Xubuntu (based on Ubuntu 17.10). Kernel should work on 17.10 without any problems.

Shemzone commented 6 years ago

@FireFlashie , it works with Ubuntu 17.10 but only in Unity, not in Gnome. It's weird to me that two graphic environments of the same distro with the same kernel have this behavior? But I'm far to be a linux expert...

aplay -l in Gnome **** Liste des Périphériques Matériels PLAYBACK **** carte 0: Audio [Intel HDMI/DP LPE Audio], périphérique 0: HdmiLpeAudio [Intel HDMI/DP LPE Audio] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0 carte 1: chtcx2072x [chtcx2072x], périphérique 0: 3 [] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0 carte 1: chtcx2072x [chtcx2072x], périphérique 1: Deep-Buffer Audio (*) [] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0

aplay -l in Unity **** Liste des Périphériques Matériels PLAYBACK **** carte 0: Audio [Intel HDMI/DP LPE Audio], périphérique 0: HdmiLpeAudio [Intel HDMI/DP LPE Audio] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0 carte 0: Audio [Intel HDMI/DP LPE Audio], périphérique 1: HdmiLpeAudio [Intel HDMI/DP LPE Audio] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0 carte 0: Audio [Intel HDMI/DP LPE Audio], périphérique 2: HdmiLpeAudio [Intel HDMI/DP LPE Audio] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0 carte 1: chtcx2072x [chtcx2072x], périphérique 0: 1 [] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0 carte 1: chtcx2072x [chtcx2072x], périphérique 1: Deep-Buffer Audio (*) [] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0

Does it make sens to you?

Retch commented 6 years ago

It Shows the same device multiple Times.

Le 2 janv. 2018 10:57 PM, "Frédéric Chamsseddine" notifications@github.com a écrit :

@FireFlashie https://github.com/fireflashie , it works with Ubuntu 17.10 but only in Unity, not in Gnome. It's weird to me that two graphic environments of the same distro with the same kernel have this behavior? But I'm far to be a linux expert...

aplay -l in Gnome Liste des Périphériques Matériels PLAYBACK carte 0: Audio [Intel HDMI/DP LPE Audio], périphérique 0: HdmiLpeAudio [Intel HDMI/DP LPE Audio] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0 carte 1: chtcx2072x [chtcx2072x], périphérique 0: 3 [] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0 carte 1: chtcx2072x [chtcx2072x], périphérique 1: Deep-Buffer Audio (*) [] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0

aplay -l in Unity Liste des Périphériques Matériels PLAYBACK carte 0: Audio [Intel HDMI/DP LPE Audio], périphérique 0: HdmiLpeAudio [Intel HDMI/DP LPE Audio] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0 carte 0: Audio [Intel HDMI/DP LPE Audio], périphérique 1: HdmiLpeAudio [Intel HDMI/DP LPE Audio] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0 carte 0: Audio [Intel HDMI/DP LPE Audio], périphérique 2: HdmiLpeAudio [Intel HDMI/DP LPE Audio] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice

0 carte 1: chtcx2072x [chtcx2072x], périphérique 0: 1 []

Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0 carte 1: chtcx2072x [chtcx2072x], périphérique 1: Deep-Buffer Audio (*) [] Sous-périphériques: 1/1 Sous-périphérique #0: subdevice #0

Does it make sens to you?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Grippentech/Asus-E200HA-Linux-Post-Install-Script/issues/29#issuecomment-354885938, or mute the thread https://github.com/notifications/unsubscribe-auth/APiXydnixWDad8YrV7qGFtvXhenGCcgYks5tGqZGgaJpZM4RPCM3 .

Shemzone commented 6 years ago

@Retch Yes, I know, but I have no idea why. My installation is quite standard. Ubuntu 17.04 + Kernel 4.12-rc6 customized by @Grippentech , then updated to Ubuntu 17.10 + Kernel 4.13-b1 customized by @FireFlashie

ghost commented 6 years ago

@Shemzone Just to check installed Ubuntu 17.10 with a default desktop (Gnome). Yes, indeed, the sound is not working, because of too slow initialization of Pusleaudio under this desktop enviroment. I do not see a good solution to this problem, but it can be circumvented if you are critical to using Gnome. Try disabling the realtime-scheduling in /etc/pulse/daemon.conf, replacing the line: ; realtime-scheduling = yes to realtime-scheduling = no

Shemzone commented 6 years ago

@FireFlashie Brilliant! It works!

aaguilarjimenez commented 6 years ago

@FireFlashie, thanks! I am using the latest Linux Mint MATE and your 4.13 kernerl seems to be working just as good as the previous one by Andrei, the 4.12-rc1. Can you explain briefly how can I compile the kernel myself if I want to share a more up to date version?

Grippy98 commented 6 years ago

Nice! Sorry for the absence guys. @FireFlashie would you like to make you a collaborator on this repo so you can edit it?

LGaljo commented 6 years ago

@Grippentech May I ask you to provide .config file for compilation or you comment here which lines to add for cx2072x driver. Thanks!

Grippy98 commented 6 years ago

@LGaljo I'll try to get it to you this evening, I should have a backup of it... somewhere

messi922 commented 6 years ago

Hello, how do I install on Linux mint the latest git update? Thank you

burkingman commented 6 years ago

Kernel update, if anyone's interested: been running a Lubuntu 17.10 live USB with the kernel updated to 4.15 rc8 (unmodified). Still no internal sound card detected, even after disabling realtime-scheduling, and I get audio/video speedup (as described in issue #9). Good news:

If the stable 4.15 release doesn't enable sound, I may try to apply sound fixes to it (still new to kernel modifications, though).

Shemzone commented 6 years ago

Thank you @burkingman However, Linux noob in front of my desk... what do you mean by closing/opening the lid? Is it only closing/opening physically my lid laptop or is it some script to launch? Sometimes I get freezes processes, I'm interested by this. I googled and get te following page: https://askubuntu.com/questions/815032/how-can-i-quickly-disable-standby-lid-off-in-ubuntu-unity-16-04

Regards

burkingman commented 6 years ago

@Shemzone : I used the Lubuntu power management interface to associate lid closing with the "suspend" action. Physically closing the lid initiates the "suspend-to-idle" state (described here) with one small, possibly inconsequential error. Not the best sleep mode the E200HA can manage, but better than nothing. No custom script needed. Frozen processes resume when the lid is opened.

Shemzone commented 6 years ago

Thank you @burkingman, Unfortunatly, I don't have such settings wthin Ubuntu. The power management panel is quite minimalist (french here but there is no option to manage the lid status) capture du 2018-01-19 21-50-00

burkingman commented 6 years ago

@Shemzone : Seems the "lid close" setting disappeared between Ubuntu 17.04 and 17.10. Some suggest installing Tweaks (gnome-tweak-tool). Haven't tried it myself.

Shemzone commented 6 years ago

@burkingman , thank you. I'll give it a try but I don't think that it will solve my issue with PC freeze while I browse with Chromium. But this is very off topic.

kmbt commented 6 years ago

Hi, let me put here some information related to things mentioned above. This is based on my experience with HP x2 (10-n140nw) which has quite similar hardware.

Random freezes

(This might by of interest to @Shemzone )

If you get random freezes try using Xorg instead of Wayland. You can do this in GDM - below the password prompt, click the gear icon an choose GNOME Xorg.

No speaker icon in gnome / pulseaudio problems

As @FireFlashie suggests above, if you don't get the speaker icon in gnome (due to pulseaudio problems) try turning off realtime scheduling by setting:

realtime-scheduling = no

in /etc/pulse/daemon.conf

Building the kernel

(This might be of interest to @aaguilarjimenez )

Usual Disclaimer: Please be aware that some kernel drivers which are not well tested might seriously mess up your hardware - including physical destruction. Proceed at your own risk. If i recall correctly, former version of one of the sound chips used with the Bay Trail/ Cherry Trail would cause speaker overheating leading to permanent malfunction, so this is something to have in mind.

If you wish to compile the kernel yourself, the basic route may go like this (I'm using Debian testing (Buster), but I believe for Ubuntu it's similar):

$ git clone --depth=1 -b topic/asus-e100h-4.13 https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
$ apt-get install build-essential fakeroot kernel-package libelf-dev
$ cd sound
$ make clean
$ cp /boot/config-$(uname -r) .config
$ make oldconfig
$ make menuconfig
$ fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers  -j `getconf _NPROCESSORS_ONLN`

Please note: During the make oldconfig the setup will ask few questions about new config options. Make sure to answer m to the following:

ASoC Audio driver for Intel Baytrail and Cherrytrail with CX2072X codec (SND_SOC_INTEL_CHT_CX2072X_MACH) [N/m/?] (NEW)

In the menuconfig you can tweak the kernel configuration further.

In the parameters of make-kpkg you can substitute custom to any word or alphanumeric identifier that will be added to your kernel version name. This will be visible in grub and in the paths. It is good practice to change it (eg. by adding a number) each build. This way you won't get conflicts during the .deb install. The -j parameters set the number of threads (in this case I set it to the number of cores.

If the build process goes fine, you should get two .deb files (for kernel image and for headers in the parent of the sound directory.

Hope this helps anyone :)

Shemzone commented 6 years ago

@kmbt thank you so much for the time you spent. Actually I decided to reinstall completly Ubuntu 17.10 with 3 partitions (one for the system, one for my home and the last one for the swap) and the things go much better since. In addition, I installed the kernel version from @FireFlashie and I modified the pulse daemon.conf as you and him adviced, and it works now under Gnome Xorg (I switched to Xorg instead of Wayland). Thank you again. Now my E200ha works almost as expected, excepting hibernate state when closing the lid which lost the wifi connection every time. Fred

kmbt commented 6 years ago

Hey, @Shemzone, I don't know how about you, but I was experiencing slight video tearing in Xorg which seems to by solved by a TearFree feature in config for Xorg. I've written a little paragraph on it in the post above, which might help if this is a problem for you too.