This is the debdiff. Sponsor team, please help submit the build request to the queue.
thx. ** Description changed: Steps: 1. Install the ubuntu 18.04 on the machine of Lenovo P520. 2. Login system. 3. Plug in an external headset to record and playback in front and rear panel. Expected result: Output and input audio should work in front and rear panel. Actual result: Front panel audio doesn't work at all. Just output audio working, input audio does't work in rear panel. + SRU Document: - So far the ubuntu 18.04 just imported alsa-lib v1.1.3-5 from debian.org. + [Impact] - And we have several Lenovo machines like Lenovo P520 which have 2 - analogue audio codecs on them, to make the audio work on those machines, - the kernel needs 3 patches for alsa driver, and those 3 patches are - already in the linux kernel from linux-4.12, kernel is not a blocking - issue under ubuntu 18.04: + We have several Lenovo machines like Lenovo P520 which have 2 analogue + audio codecs on them, the internal speaker and front headset are + connected to the 1st codec, the Rear mic, Line in and Line out are + connected to the 2nd codec. So far, under ubuntu 18.04 with the alsa- + lib/libasound2 v1.1.3-5, only the audio devices (internal speaker and + front headset) on the 1st codec can work. To make all audio devices work + on this machine, upstream provided 3 patches for kernel audio driver and + 5 patches for alsa-lib. The kernel patches are already in the + linux-4.12, so this is not a problem anymore under 18.04 since we use + linux-4.15 in 18.04. For the 5 patches of alsa-lib, we need to backport + them to v1.1.3-5, the 5 patches are list as below: - 7beb3a6e ALSA: hda - Support Gigabyte Gaming board with dual Realtek codecs - 56798e6b ALSA: hda - Use a helper function for renaming kctl names - ca169cc2 ALSA: hda/realtek - Add Dual Codecs support for Lenovo P520/420 + 2b9b3f01 ucm: Assure the user input card name not to exceed max size of card long name (it is in the alsa-lib v1.1.4) + 4b9297e6 ucm: Load device-specific configuration file based on the card long name (it is in the alsa-lib v1.1.4) + b7e56af8 conf/ucm: Add dual HD-audio codecs config for Lenovo (it is in the alsa-lib v1.1.6) + 181f8e25 ucm: adding the folder of card_long_name when finding verb conf file (it is in the alsa-lib v1.1.6+) + 81db276f conf/ucm: increase the input volume for LineIn (it is in the alsa-lib v1.1.6+) + Some explanation for these 5 patches, to make the audio work, the alsa- + lib needs to add an audio configuration file and verb conf file for + lenovo machines with dual codecs, these two files are put in a folder + named by card_long_name, and the name of configuration file itself is + also named by card_long_name, this is implemented by the patches of NO. + 3rd and 5th. - Besides those 3 patches for kernel, we also need 5 more patches for alsa-lib. Because the ucm configuration files are named by card_long_name, these 5 patches intends to introduce the card_long_name searching for ucm and the configuration folder/files for Lenovo machines with dual analogue codecs. the 5 patches are: + But the alsa-lib v1.1.3-5 itself doesn't support to search conf file with card_long_name, it only support searching with card_name, So we need to backport 3 patches to let alsa-lib v1.1.3-5 support to search with card_long_name, these 3 patches are No. 1st, 2nd and 4th. + + [Test Case] - 2b9b3f01 ucm: Assure the user input card name not to exceed max size of - card long name (it is in the alsa-lib v1.1.4) + On the Lenovo machines with dual codecs (p520), I insatlled the + libasound2 v1.1.3-5ubuntu1 and libasound2-data v1.1.3-5ubuntu1, the + alsa-lib can find the conf file and can parse the conf file + successfully, and I tested the internal speaker, front headset, rear + mic, line out and line in, all audio devices work well. - 4b9297e6 ucm: Load device-specific configuration file based on the card - long name (it is in the alsa-lib v1.1.4) + On a HP and Dell machines without dual codecs, I insatlled the + libasound2 v1.1.3-5ubuntu1 and libasound2-data v1.1.3-5ubuntu1, the + alsa-lib can't find conf file by card_long_name and card_name, the + pulseaudio will drive the sound card as before, so all audio functions + worked well as before. - b7e56af8 conf/ucm: Add dual HD-audio codecs config for Lenovo (it is in - the alsa-lib v1.1.6) + [Regression Potential] - 181f8e25 ucm: adding the folder of card_long_name when finding verb conf - file (it is in the alsa-lib v1.1.6+) + After adding these 5 patches, there 2 two changes introduced into the + alsa-lib v1.1.3-5ubuntu1: - 81db276f conf/ucm: increase the input volume for LineIn (it is in the - alsa-lib v1.1.6+) + 1) before: only have folder and conf files named by card_name; after: has one folder and conf file named by card_long_name, this folder and conf file will not affect others, + 2) before: the ucm parser will search the conf file/folder by card_name only; after: the ucm parser will search the conf file/foler by card_long_name first, if it fails, it will fallback to use card_name to search again. So this change is compatible with old version. - To backport these 5 patches to v1.1.3-5, the 3rd and 4th patch need - minor change to resolve the patch conflict. And I attached 5 patches to - this bug, these patches can be successfully applied to v1.1.3-5 without - any change. + There is no regression since there is only one folder named by + card_long_name in v1.1.3-5ubuntu1, if it runs on lenovo machine with + dual codecs, it will find the conf file by card_long_name, if it runs on + other machines, the search by card_long_name will definitely fail and + fall back to search by card_name, then it will be same as before. So the + objective of these 5 patches is to let lenovo machines with dual codecs + find the conf file by card_long_name, let other machines fail to search + by card_long_name, then fallback to original searching method - search + by card_name. - After applying this patches, the ucm searcher will look for folder - according to card_long_name first, if it fails, it will fallback to use - card_name as before, so these 5 patches are safe and will not introduce - any regression. + [Other Info] + + Since I could not find the alsa-lib repository in canonical, I just + generated the debdiff with "apt-get source ...". ** Patch added: "alsa-lib_1.1.3-5ubuntu1.debdiff" https://bugs.launchpad.net/ubuntu/+source/alsa-lib/+bug/1768830/+attachment/5133327/+files/alsa-lib_1.1.3-5ubuntu1.debdiff -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1768830 Title: the audio can't work on Lenovo machines with dual analogue codecs under ubuntu 18.04 To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1768830/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
