[yocto] [PATCH 1/1] runqemu: add user mode (SLIRP) support to x86 QEMU targets
Mark Hatle
mark.hatle at windriver.com
Tue Oct 25 11:09:49 PDT 2016
On 10/25/16 12:49 PM, Brian Avery wrote:
> Hi,
>
> This doesn't default to slirp, it just allows it as an option.
Ok.. I misunderstood what it was trying to do then. That sounds fine.
> In particular, on CROPS containers on Windows 10 and Mac OSX the hypervisor is
> *not* a linux kernel. This means that the only way we can run qemu in the
> container for testing/debugging is to run it in slirp mode .since there is no
> tun/tap device or driver.
>
> So, given that we
> 1) are not defaulting to slirp and are merely enabling it
> 2) need slirp mode to be able to run in a CROPS container setting
>
> I think this makes sense.
Agreed.
> -Brian
> an intel employee
>
>
> On Mon, Oct 24, 2016 at 5:16 PM, Mark Hatle <mark.hatle at windriver.com
> <mailto:mark.hatle at windriver.com>> wrote:
>
> On 10/24/16 6:46 PM, Todor Minchev wrote:
> > On Mon, 2016-10-24 at 18:15 -0500, Mark Hatle wrote:
> >> On 10/24/16 5:19 PM, Todor Minchev wrote:
> >>> Using 'slirp' as a command line option to runqemu will start QEMU
> >>> with user mode networking instead of creating tun/tap devices.
> >>> SLIRP does not require root access. By default port 2222 on the
> >>> host will be mapped to port 22 in the guest. The default port
> >>> mapping can be overwritten with the QB_SLIRP_OPT variable e.g.
> >>>
> >>> QB_SLIRP_OPT = "-net nic,model=e1000 -net user,hostfwd=tcp::2222-:22"
> >>
> >> In the past patches like this have been rejected for performance and other
> >> reasons.
> >
> > Performance is not ideal with SLIRP, but should be sufficient for basic
> > ssh access to the guest. Could you please elaborate on the other reasons
> > why having this is a bad idea?
>
> You'd have to go back in the archives. Performance was the main reason I
> remember being discussed at the time.
>
> I don't remember the others, and as I said, I'm not a fan of requiring root, but
> the community decided sudo approach was better as long as there was a way to
> avoid it.
>
> Changing the default will likely require email to the oe-core list and/or
> oe-architecture list...
>
> >> While I don't particularly like requiring sudo access for runqemu,
> >> adding the 'slirp' option will allow someone w/o root/sudo to be able to run it.
> >
> > The goal was to be able to run a QEMU image and provide basic networking
> > without requiring root access. Is there any reason why running runqemu
> > w/o root/sudo access should be discouraged?
>
> As long as you can pass in slirp (and it's not the default) then I believe your
> requirement and the community direction is preserved.
>
> >> Otherwise, if there is something you can do to make slirp work better (when
> >> enabled), that is more likely to be accepted.
> >
> > Similar SLIRP support has been already accepted for qemuarm64 with
> > commit 9b0a94cb
>
> Support for slirp is good, it's defaulting to slirp that has been rejected in
> the past by the community.
>
> > --Todor
> >
> > Intel Open Source Technology Center
> >
> >> --Mark
> >>
> >>> Signed-off-by: Todor Minchev <todor.minchev at linux.intel.com
> <mailto:todor.minchev at linux.intel.com>>
> >>> ---
> >>> meta/conf/machine/include/qemuboot-x86.inc | 1 +
> >>> scripts/runqemu | 3 ++-
> >>> 2 files changed, 3 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git a/meta/conf/machine/include/qemuboot-x86.inc
> b/meta/conf/machine/include/qemuboot-x86.inc
> >>> index 06ac983..0870294 100644
> >>> --- a/meta/conf/machine/include/qemuboot-x86.inc
> >>> +++ b/meta/conf/machine/include/qemuboot-x86.inc
> >>> @@ -13,3 +13,4 @@ QB_AUDIO_OPT = "-soundhw ac97,es1370"
> >>> QB_KERNEL_CMDLINE_APPEND = "vga=0 uvesafb.mode_option=640x480-32
> oprofile.timer=1 uvesafb.task_timeout=-1"
> >>> # Add the 'virtio-rng-pci' device otherwise the guest may run out of
> entropy
> >>> QB_OPT_APPEND = "-vga vmware -show-cursor -usb -usbdevice tablet
> -device virtio-rng-pci"
> >>> +QB_SLIRP_OPT = "-net nic,model=e1000 -net user,hostfwd=tcp::2222-:22"
> >>> diff --git a/scripts/runqemu b/scripts/runqemu
> >>> index dbe17ab..6952f32 100755
> >>> --- a/scripts/runqemu
> >>> +++ b/scripts/runqemu
> >>> @@ -542,7 +542,8 @@ class BaseConfig(object):
> >>> def check_and_set(self):
> >>> """Check configs sanity and set when needed"""
> >>> self.validate_paths()
> >>> - check_tun()
> >>> + if not self.slirp_enabled:
> >>> + check_tun()
> >>> # Check audio
> >>> if self.audio_enabled:
> >>> if not self.get('QB_AUDIO_DRV'):
> >>>
> >>
> >
> >
>
> --
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org <mailto:yocto at yoctoproject.org>
> https://lists.yoctoproject.org/listinfo/yocto
> <https://lists.yoctoproject.org/listinfo/yocto>
>
>
More information about the yocto
mailing list