mbox series

[0/2] Load proper sound drivers for QEMU x86

Message ID 20230104121808.1065203-1-toertel@gmail.com
Headers show
Series Load proper sound drivers for QEMU x86 | expand

Message

Mark Jonas Jan. 4, 2023, 12:18 p.m. UTC
From: Mark Jonas <toertel@gmail.com>

The patch series fixes a regression where images built for QEMU x86 and
x86-64 did not contain sound drivers matching the QEMU device emulation
configuration. Additionally, the right drivers are now also auto-loaded
when starting the image.

root@qemux86:~# uname -a
Linux qemux86 5.19.17-yocto-standard #1 SMP PREEMPT_DYNAMIC Fri Nov 18 21:13:18 UTC 2022 i686 GNU/Linux

root@qemux86:~# lsmod
Module                  Size  Used by
bnep                   20480  2
snd_intel8x0           32768  0
snd_ac97_codec        114688  1 snd_intel8x0
ac97_bus               16384  1 snd_ac97_codec
snd_pcm                86016  2 snd_ac97_codec,snd_intel8x0
snd_timer              28672  1 snd_pcm
snd                    57344  4 snd_ac97_codec,snd_timer,snd_intel8x0,snd_pcm
soundcore              16384  1 snd

root@qemux86:~# cat /proc/asound/cards
 0 [I82801AAICH    ]: ICH - Intel 82801AA-ICH
                      Intel 82801AA-ICH with STAC9700,83,84 at irq 10

Mark Jonas (2):
  conf/machine: Match QEMU x86 sound kernel module
  linux-yocto: Autoload sound driver on QEMU x86

 meta/conf/machine/qemux86-64.conf         | 3 ++-
 meta/conf/machine/qemux86.conf            | 3 ++-
 meta/recipes-kernel/linux/linux-yocto.inc | 5 +++++
 3 files changed, 9 insertions(+), 2 deletions(-)

--
2.34.1

Comments

Richard Purdie Jan. 4, 2023, 5:42 p.m. UTC | #1
On Wed, 2023-01-04 at 13:18 +0100, toertel@gmail.com wrote:
> From: Mark Jonas <toertel@gmail.com>
> 
> The patch series fixes a regression where images built for QEMU x86 and
> x86-64 did not contain sound drivers matching the QEMU device emulation
> configuration. Additionally, the right drivers are now also auto-loaded
> when starting the image.
> 
> root@qemux86:~# uname -a
> Linux qemux86 5.19.17-yocto-standard #1 SMP PREEMPT_DYNAMIC Fri Nov 18 21:13:18 UTC 2022 i686 GNU/Linux
> 
> root@qemux86:~# lsmod
> Module                  Size  Used by
> bnep                   20480  2
> snd_intel8x0           32768  0
> snd_ac97_codec        114688  1 snd_intel8x0
> ac97_bus               16384  1 snd_ac97_codec
> snd_pcm                86016  2 snd_ac97_codec,snd_intel8x0
> snd_timer              28672  1 snd_pcm
> snd                    57344  4 snd_ac97_codec,snd_timer,snd_intel8x0,snd_pcm
> soundcore              16384  1 snd
> 
> root@qemux86:~# cat /proc/asound/cards
>  0 [I82801AAICH    ]: ICH - Intel 82801AA-ICH
>                       Intel 82801AA-ICH with STAC9700,83,84 at irq 10
> 
> Mark Jonas (2):
>   conf/machine: Match QEMU x86 sound kernel module
>   linux-yocto: Autoload sound driver on QEMU x86
> 
>  meta/conf/machine/qemux86-64.conf         | 3 ++-
>  meta/conf/machine/qemux86.conf            | 3 ++-
>  meta/recipes-kernel/linux/linux-yocto.inc | 5 +++++
>  3 files changed, 9 insertions(+), 2 deletions(-)

These look good, I'm happy to see the patches, thanks!

As Bruce mentions, a kernel config fragment would be a nice added bonus
to ensure the right config options stay around or error if they're
changed upstream.

One thing I've learnt is that the best way to ensure these kinds of
things stay "fixed" once we fix them is to tweak our automated testing
to check them.

I'm wondering if there is something we could/should add to:

"bitbake core-image-sato -c testimage" 

to check for the presence of a /proc/asound/cards entry for example?

The idea here is that now it is working, we'd try and ensure it stays
working!

Cheers,

Richard
Mark Jonas Jan. 5, 2023, 5:26 p.m. UTC | #2
Hi Richard,

On Wed, Jan 4, 2023 at 6:42 PM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> On Wed, 2023-01-04 at 13:18 +0100, toertel@gmail.com wrote:
> > From: Mark Jonas <toertel@gmail.com>
> >
> > The patch series fixes a regression where images built for QEMU x86 and
> > x86-64 did not contain sound drivers matching the QEMU device emulation
> > configuration. Additionally, the right drivers are now also auto-loaded
> > when starting the image.
> >
> > root@qemux86:~# uname -a
> > Linux qemux86 5.19.17-yocto-standard #1 SMP PREEMPT_DYNAMIC Fri Nov 18 21:13:18 UTC 2022 i686 GNU/Linux
> >
> > root@qemux86:~# lsmod
> > Module                  Size  Used by
> > bnep                   20480  2
> > snd_intel8x0           32768  0
> > snd_ac97_codec        114688  1 snd_intel8x0
> > ac97_bus               16384  1 snd_ac97_codec
> > snd_pcm                86016  2 snd_ac97_codec,snd_intel8x0
> > snd_timer              28672  1 snd_pcm
> > snd                    57344  4 snd_ac97_codec,snd_timer,snd_intel8x0,snd_pcm
> > soundcore              16384  1 snd
> >
> > root@qemux86:~# cat /proc/asound/cards
> >  0 [I82801AAICH    ]: ICH - Intel 82801AA-ICH
> >                       Intel 82801AA-ICH with STAC9700,83,84 at irq 10
> >
> > Mark Jonas (2):
> >   conf/machine: Match QEMU x86 sound kernel module
> >   linux-yocto: Autoload sound driver on QEMU x86
> >
> >  meta/conf/machine/qemux86-64.conf         | 3 ++-
> >  meta/conf/machine/qemux86.conf            | 3 ++-
> >  meta/recipes-kernel/linux/linux-yocto.inc | 5 +++++
> >  3 files changed, 9 insertions(+), 2 deletions(-)
>
> These look good, I'm happy to see the patches, thanks!
>
> As Bruce mentions, a kernel config fragment would be a nice added bonus
> to ensure the right config options stay around or error if they're
> changed upstream.

Quick summary of what I replied to Bruce: The linux-yocto*.bb recipes
(except for the tiny) already use a cfg/sound.scc to enable building
of sound driver modules.

> One thing I've learnt is that the best way to ensure these kinds of
> things stay "fixed" once we fix them is to tweak our automated testing
> to check them.
>
> I'm wondering if there is something we could/should add to:
>
> "bitbake core-image-sato -c testimage"
>
> to check for the presence of a /proc/asound/cards entry for example?
>
> The idea here is that now it is working, we'd try and ensure it stays
> working!

Sounds reasonable. I haven't used automated tests for OE yet so it
might take me some time to dig into it.

Cheers,
Mark