Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/qemu: allow building only the guest agent
@ 2023-03-22 23:15 unixmania
  2023-03-24 10:15 ` Thomas Petazzoni via buildroot
  2023-05-13  8:25 ` Yann E. MORIN
  0 siblings, 2 replies; 5+ messages in thread
From: unixmania @ 2023-03-22 23:15 UTC (permalink / raw)
  To: buildroot; +Cc: Carlos Santos, Romain Naour

From: Carlos Santos <unixmania@gmail.com>

Most of the tools are useful only on virtualization hosts. After the
upgrade to QEMU 7.2.0, it is possible to build only quemu-ga, which
makes more sense when we build guest VM images.

Also do not build the other tools by default if none of the emulators is
selected, since the user does not necessarily wants them. Ideally, it
should not be possible to select qemu without selecting at least one of
the subcomponents but it is hard to guess what the user wants.

Signed-off-by: Carlos Santos <unixmania@gmail.com>
---
NOTE

This was also possible on older QEMU versions, but required a trick to
force compiling the code required to link qemu-ga without building the
other tools:

   ./configure --enable-system --target-list="" --disable-tools --enable-guest-agent
---
 package/qemu/Config.in | 8 +++++++-
 package/qemu/qemu.mk   | 6 ++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index a446c0cf68..6a9b08648d 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -26,7 +26,6 @@ menuconfig BR2_PACKAGE_QEMU
 	depends on BR2_USE_MMU # fork()
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_ZLIB
-	select BR2_PACKAGE_QEMU_TOOLS if !BR2_PACKAGE_QEMU_SYSTEM && !BR2_PACKAGE_QEMU_LINUX_USER
 	help
 	  QEMU is a generic and open source machine emulator and
 	  virtualizer.
@@ -358,4 +357,11 @@ config BR2_PACKAGE_QEMU_TOOLS
 	  Say 'y' here to include tools packaged with QEMU
 	  (e.g. qemu-img).
 
+config BR2_PACKAGE_QEMU_GUEST_AGENT
+	bool "Enable guest agent"
+	help
+	  Say 'y' here to include an agent to run on guests, which
+	  communicates with the host over a virtio-serial channel
+	  named "org.qemu.guest_agent.0".
+
 endif # BR2_PACKAGE_QEMU
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 3cbeffe213..4194670bb0 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -165,6 +165,12 @@ else
 QEMU_OPTS += --disable-tools
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_GUEST_AGENT),y)
+QEMU_OPTS += --enable-guest-agent
+else
+QEMU_OPTS += --disable-guest-agent
+endif
+
 ifeq ($(BR2_PACKAGE_LIBFUSE3),y)
 QEMU_OPTS += --enable-fuse --enable-fuse-lseek
 QEMU_DEPENDENCIES += libfuse3
-- 
2.31.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Buildroot] [PATCH] package/qemu: allow building only the guest agent
  2023-03-22 23:15 [Buildroot] [PATCH] package/qemu: allow building only the guest agent unixmania
@ 2023-03-24 10:15 ` Thomas Petazzoni via buildroot
  2023-03-25  1:14   ` Carlos Santos
  2023-05-13  8:25 ` Yann E. MORIN
  1 sibling, 1 reply; 5+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-03-24 10:15 UTC (permalink / raw)
  To: unixmania; +Cc: Romain Naour, buildroot

On Wed, 22 Mar 2023 20:15:11 -0300
unixmania@gmail.com wrote:

> -	select BR2_PACKAGE_QEMU_TOOLS if !BR2_PACKAGE_QEMU_SYSTEM && !BR2_PACKAGE_QEMU_LINUX_USER

Is the build working OK if neither the tools, nor qemu-system, nor
qemu-user nor qemu-qa are enabled?

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Buildroot] [PATCH] package/qemu: allow building only the guest agent
  2023-03-24 10:15 ` Thomas Petazzoni via buildroot
@ 2023-03-25  1:14   ` Carlos Santos
  2023-03-31 10:20     ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 5+ messages in thread
From: Carlos Santos @ 2023-03-25  1:14 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: Romain Naour, buildroot

On Fri, Mar 24, 2023 at 7:15 AM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> On Wed, 22 Mar 2023 20:15:11 -0300
> unixmania@gmail.com wrote:
>
> > -     select BR2_PACKAGE_QEMU_TOOLS if !BR2_PACKAGE_QEMU_SYSTEM && !BR2_PACKAGE_QEMU_LINUX_USER
>
> Is the build working OK if neither the tools, nor qemu-system, nor
> qemu-user nor qemu-qa are enabled?
>
> Thanks!
>
> Thomas
> --
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com

Yes. It just does not install anything useful:

$ cat build/qemu-7.2.0/.files-list.txt
qemu,./usr/share/qemu/keymaps/sl
qemu,./usr/share/qemu/keymaps/sv
qemu,./usr/include/qemu-plugin.h
qemu,./usr/share/qemu/keymaps/ar
qemu,./usr/share/qemu/keymaps/bepo
qemu,./usr/share/qemu/keymaps/cz
qemu,./usr/share/qemu/keymaps/da
qemu,./usr/share/qemu/keymaps/de
qemu,./usr/share/qemu/keymaps/de-ch
qemu,./usr/share/qemu/keymaps/en-gb
qemu,./usr/share/qemu/keymaps/en-us
qemu,./usr/share/qemu/keymaps/es
qemu,./usr/share/qemu/keymaps/et
qemu,./usr/share/qemu/keymaps/fi
qemu,./usr/share/qemu/keymaps/fo
qemu,./usr/share/qemu/keymaps/fr
qemu,./usr/share/qemu/keymaps/fr-be
qemu,./usr/share/qemu/keymaps/fr-ca
qemu,./usr/share/qemu/keymaps/fr-ch
qemu,./usr/share/qemu/keymaps/hr
qemu,./usr/share/qemu/keymaps/hu
qemu,./usr/share/qemu/keymaps/is
qemu,./usr/share/qemu/keymaps/it
qemu,./usr/share/qemu/keymaps/ja
qemu,./usr/share/qemu/keymaps/lv
qemu,./usr/share/qemu/keymaps/lt
qemu,./usr/share/qemu/keymaps/mk
qemu,./usr/share/qemu/keymaps/nl
qemu,./usr/share/qemu/keymaps/no
qemu,./usr/share/qemu/keymaps/pl
qemu,./usr/share/qemu/keymaps/pt
qemu,./usr/share/qemu/keymaps/pt-br
qemu,./usr/share/qemu/keymaps/ru
qemu,./usr/share/qemu/keymaps/th
qemu,./usr/share/qemu/trace-events-all
qemu,./usr/share/qemu/keymaps/tr

The keymaps should not be installed if no qemu-system is built. I
already sent a patch upstream attempting to fix the problem but the
problem is still there:

https://lists.gnu.org/archive/html/qemu-devel/2023-01/msg00084.html

I also have a patch to install trace-events-all only if necessary.
Unfortunately, making these changes happen in qemu takes a long time.

-- 
Carlos Santos <unixmania@gmail.com>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Buildroot] [PATCH] package/qemu: allow building only the guest agent
  2023-03-25  1:14   ` Carlos Santos
@ 2023-03-31 10:20     ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-03-31 10:20 UTC (permalink / raw)
  To: Carlos Santos; +Cc: Romain Naour, buildroot

Hello,

On Fri, 24 Mar 2023 22:14:18 -0300
Carlos Santos <unixmania@gmail.com> wrote:

> Yes. It just does not install anything useful:

OK. As long as it builds, that's fine :-)

> The keymaps should not be installed if no qemu-system is built. I
> already sent a patch upstream attempting to fix the problem but the
> problem is still there:
> 
> https://lists.gnu.org/archive/html/qemu-devel/2023-01/msg00084.html
> 
> I also have a patch to install trace-events-all only if necessary.
> Unfortunately, making these changes happen in qemu takes a long time.

Thanks for this work, definitely useful!

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Buildroot] [PATCH] package/qemu: allow building only the guest agent
  2023-03-22 23:15 [Buildroot] [PATCH] package/qemu: allow building only the guest agent unixmania
  2023-03-24 10:15 ` Thomas Petazzoni via buildroot
@ 2023-05-13  8:25 ` Yann E. MORIN
  1 sibling, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2023-05-13  8:25 UTC (permalink / raw)
  To: unixmania; +Cc: Romain Naour, buildroot

Carlos, All,

On 2023-03-22 20:15 -0300, unixmania@gmail.com spake thusly:
> From: Carlos Santos <unixmania@gmail.com>
> 
> Most of the tools are useful only on virtualization hosts. After the
> upgrade to QEMU 7.2.0, it is possible to build only quemu-ga, which
> makes more sense when we build guest VM images.
> 
> Also do not build the other tools by default if none of the emulators is
> selected, since the user does not necessarily wants them. Ideally, it
> should not be possible to select qemu without selecting at least one of
> the subcomponents but it is hard to guess what the user wants.
> 
> Signed-off-by: Carlos Santos <unixmania@gmail.com>

I am not very happy that this means we can end up with a cconfiguration
where nothing (meaningful) is installed, but fixing this becomes less
obvious...

So be it...

Applied to master, thanks.

Regards,
Yann E. MORIN.

> ---
> NOTE
> 
> This was also possible on older QEMU versions, but required a trick to
> force compiling the code required to link qemu-ga without building the
> other tools:
> 
>    ./configure --enable-system --target-list="" --disable-tools --enable-guest-agent
> ---
>  package/qemu/Config.in | 8 +++++++-
>  package/qemu/qemu.mk   | 6 ++++++
>  2 files changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/package/qemu/Config.in b/package/qemu/Config.in
> index a446c0cf68..6a9b08648d 100644
> --- a/package/qemu/Config.in
> +++ b/package/qemu/Config.in
> @@ -26,7 +26,6 @@ menuconfig BR2_PACKAGE_QEMU
>  	depends on BR2_USE_MMU # fork()
>  	select BR2_PACKAGE_LIBGLIB2
>  	select BR2_PACKAGE_ZLIB
> -	select BR2_PACKAGE_QEMU_TOOLS if !BR2_PACKAGE_QEMU_SYSTEM && !BR2_PACKAGE_QEMU_LINUX_USER
>  	help
>  	  QEMU is a generic and open source machine emulator and
>  	  virtualizer.
> @@ -358,4 +357,11 @@ config BR2_PACKAGE_QEMU_TOOLS
>  	  Say 'y' here to include tools packaged with QEMU
>  	  (e.g. qemu-img).
>  
> +config BR2_PACKAGE_QEMU_GUEST_AGENT
> +	bool "Enable guest agent"
> +	help
> +	  Say 'y' here to include an agent to run on guests, which
> +	  communicates with the host over a virtio-serial channel
> +	  named "org.qemu.guest_agent.0".
> +
>  endif # BR2_PACKAGE_QEMU
> diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
> index 3cbeffe213..4194670bb0 100644
> --- a/package/qemu/qemu.mk
> +++ b/package/qemu/qemu.mk
> @@ -165,6 +165,12 @@ else
>  QEMU_OPTS += --disable-tools
>  endif
>  
> +ifeq ($(BR2_PACKAGE_QEMU_GUEST_AGENT),y)
> +QEMU_OPTS += --enable-guest-agent
> +else
> +QEMU_OPTS += --disable-guest-agent
> +endif
> +
>  ifeq ($(BR2_PACKAGE_LIBFUSE3),y)
>  QEMU_OPTS += --enable-fuse --enable-fuse-lseek
>  QEMU_DEPENDENCIES += libfuse3
> -- 
> 2.31.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-05-13  8:25 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-22 23:15 [Buildroot] [PATCH] package/qemu: allow building only the guest agent unixmania
2023-03-24 10:15 ` Thomas Petazzoni via buildroot
2023-03-25  1:14   ` Carlos Santos
2023-03-31 10:20     ` Thomas Petazzoni via buildroot
2023-05-13  8:25 ` Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox