Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multipass: Add a section for Linux under "How to troubleshoot networking" #113

Open
giuliazanchi opened this issue Jun 28, 2024 · 9 comments
Assignees
Labels
code This task may require some programming knowledge. help wanted We welcome community help with this issue how-to Create a edit a how-to to achieve a specific task new Adding new or missing documentation for a specific tool, feature, or function. size 5 Fix a known documentation issue (size 5/8)

Comments

@giuliazanchi
Copy link
Collaborator

Context

Multipass docs are in reasonably good shape, but there are (as always) little things that could be improved to offer a better user experience.

Multipass docs are maintained in and published from the Ubuntu Discourse forum. To suggest changes in a Discourse-hosted docs page, scroll all the way down to the bottom of the page and open the page to which the "Help improve this document in the forum" link points. On the Discourse page, scroll to the bottom of the article (if there are comments, then the bottom of the article is just where the comments start, i.e. not at the very bottom of the page) and click "Edit". (You need an account on Ubuntu Discourse.) See also: Contribute to Multipass docs.

Task

The How to troubleshoot networking guide is missing a Linux section. To create it, you could leverage your own experience using Multipass on Linux, scrape recent bug reports on the Multipass GitHub for user-reported troubles and solutions, or include potential issues suggested by our dev team such as lingering dnsmasq & subnet clashes.

This task requires some level of familiarity with networking concepts and common issues, as well as experience using Multipass on Linux.

Useful links

Before you get started, make sure to review the main concepts of the Diátaxis documentation framework and also check the Canonical Documentation Style Guide.

If you are new to the Canonical Open Documentation Academy, you may also want to review our Getting Started topic on the Ubuntu Discourse forum.

@giuliazanchi giuliazanchi added new Adding new or missing documentation for a specific tool, feature, or function. help wanted We welcome community help with this issue size 5 Fix a known documentation issue (size 5/8) how-to Create a edit a how-to to achieve a specific task code This task may require some programming knowledge. labels Jun 28, 2024
@vevayos
Copy link

vevayos commented Aug 15, 2024

I've been an off an on user of Ubuntu Desktop, and while I was researching Canonical as a company over the last few weeks, I discovered Multipass. What a wonderful tool! I'd like to try my hand at working on this issue. I'm new to Multipass and Diátaxis, but for starters I'll take it to mean that I'll give a first try at putting something out there, and improving it as I learn more.

While I was setting up a Frankenstein computer with Ubuntu 22.04.4, I ran into a snag installing texlive-full. The installation hung. I was worried there was something wrong with my new hardware. I finally found the bug on Launchpad, and I'll also be writing documentation on Ask Ubuntu to address reports about the bug, suggesting to use the texlive-full package in a Multipass instance.

I'll try getting something up in a week. I still have to finish checking out my hardware and installing my system (ran into other snags with snap-store icon, problem uninstalling/reinstalling snap-store, etc.).

@giuliazanchi
Copy link
Collaborator Author

Thank you, @vevayos ! That sounds great. Let me know if you need help with this, I'll be happy to review issues with you or get additional details from our engineers if needed. I'll assign this to you then :D

@vevayos
Copy link

vevayos commented Aug 20, 2024

Thank you, @giuliazanchi! I may need your help as this is also my first issue. I forked the repository just now.

@giuliazanchi
Copy link
Collaborator Author

Of course, @vevayos ! This particular issue requires understanding of networking issues and troubleshooting practices and workarounds that you may find on the Multipass GitHub, so if it feels a bit too daunting as a first task do not hesitate to reach out. It doesn't have to be perfect - let's aim at improving what we have, even with small updates, and build from there. Thanks!

@vevayos
Copy link

vevayos commented Aug 22, 2024

@giuliazanchi, I'm still working on the issue. I'll need another week to stop fooling around.

I was researching how the network behavior might be expected to differ depending on which hypervisor, local.driver, is used.

The Multipass product page, https://multipass.run/, says that LXD is used on Linux, but this page, https://multipass.run/docs/set-up-the-driver, says it could be qemu or LXD, depending on the capabilities of the architecture, and also the driver can be changed.

My hardware supports Intel VT and VT-d, and in my Multipass instance,

$ systemd-detect-virt
kvm

Perhaps systemd-detect-virt (systemd, 255.4-1ubuntu8.2) needs to be revised to return, lxd? Similarly,

$ hostnamectl
 Static hostname: nobleone
       Icon name: computer-vm
         Chassis: vm 🖴
      Machine ID: 17b5f53597654049a05a7a51bd6b4b57
         Boot ID: 54a1f26d26d943d2a4a199009ea5a129
  Virtualization: kvm
Operating System: Ubuntu 24.04 LTS                 
          Kernel: Linux 6.8.0-41-generic
    Architecture: x86-64
 Hardware Vendor: QEMU
  Hardware Model: Standard PC _i440FX + PIIX, 1996_
Firmware Version: 0.0.0
   Firmware Date: Fri 2015-02-06
    Firmware Age: 9y 6month 2w 1d  

Also, my host shows,

$ multipass get local.driver
qemu

Probably it is only checking if a qemu or libvirt module is loaded. In my Multipass instance, virtio is part of the kernel,

$ grep -i virtio /boot/config-6.8.0-41-generic
CONFIG_BLK_MQ_VIRTIO=y
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS_COMMON=m
CONFIG_BT_VIRTIO=m
CONFIG_NET_9P_VIRTIO=m
CONFIG_VIRTIO_BLK=y
CONFIG_SCSI_VIRTIO=y
CONFIG_VIRTIO_NET=y
CONFIG_CAIF_VIRTIO=m
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_I2C_VIRTIO=m
CONFIG_GPIO_VIRTIO=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_DRM_VIRTIO_GPU_KMS=y
CONFIG_SND_VIRTIO=m
CONFIG_VIRTIO_VFIO_PCI=m
CONFIG_VIRTIO_ANCHOR=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI_LIB=y
CONFIG_VIRTIO_PCI_LIB_LEGACY=y
CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_ADMIN_LEGACY=y
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_VIRTIO_VDPA=m
CONFIG_VIRTIO_PMEM=m
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_MEM=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=y
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
CONFIG_XEN_VIRTIO=y
# CONFIG_XEN_VIRTIO_FORCE_GRANT is not set
CONFIG_VIRTIO_IOMMU=y
CONFIG_RPMSG_VIRTIO=m
CONFIG_VIRTIO_FS=m
CONFIG_CRYPTO_DEV_VIRTIO=m

So, is there some other parameter that shouts out whether an LXD hypervisor or a qemu emulator is being used?

@giuliazanchi
Copy link
Collaborator Author

Hi @vevayos , looks like you're getting into the depths of Multipass and its drivers! The output you're getting is correct, the driver used in your installation is QEMU. Check out this page to read more on the supported & default drivers, depending on the underlying system: https://multipass.run/docs/driver

Take the time you need to see if this is something you feel comfortable contributing to, we can reassess next week or when you're ready :)

@vevayos
Copy link

vevayos commented Aug 23, 2024

Oh!!! Thank you for the tip, @giuliazanchi! I was confused whether I had QEMU or LXD. I think I can do it.

@giuliazanchi
Copy link
Collaborator Author

Thanks for looking into this topic, @vevayos ! Take all the time you need, this is a complex and broad topic and not a quick fix, so it is not expected that you come up with a new, comprehensive section on Linux troubleshooting overnight :) Any input will be greatly appreciated!

@giuliazanchi
Copy link
Collaborator Author

Hi @vevayos , I've been doing some work to expand the Multipass Troubleshooting topics recently, so I thought I'd check in with you and see if you've had time to keep looking into this issue :) Let me know if you need help! You can also find me in the Documentation room on Matrix if you want to chat.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
code This task may require some programming knowledge. help wanted We welcome community help with this issue how-to Create a edit a how-to to achieve a specific task new Adding new or missing documentation for a specific tool, feature, or function. size 5 Fix a known documentation issue (size 5/8)
Projects
None yet
Development

No branches or pull requests

2 participants