All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: "Alexandre Courbot" <gnurou@gmail.com>
Cc: "Albert Esteve" <aesteve@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Hans Verkuil" <hverkuil@xs4all.nl>,
	"Jason Wang" <jasowang@redhat.com>,
	"Xuan Zhuo" <xuanzhuo@linux.alibaba.com>,
	"Eugenio Pérez" <eperezma@redhat.com>,
	gurchetansingh@google.com, daniel.almeida@collabora.com,
	adelva@google.com, changyeon@google.com,
	nicolas.dufresne@collabora.com, linux-kernel@vger.kernel.org,
	linux-media@vger.kernel.org, virtualization@lists.linux.dev
Subject: Re: [PATCH v3] media: add virtio-media driver
Date: Wed, 18 Jun 2025 16:40:02 +0200	[thread overview]
Message-ID: <20250618164002.10220d81@sal.lan> (raw)
In-Reply-To: <DAPQ1LPH05P4.HLIMQEJCRHLX@gmail.com>

Em Wed, 18 Jun 2025 23:16:47 +0900
"Alexandre Courbot" <gnurou@gmail.com> escreveu:

> Hi Mauro,
> 
> On Tue Jun 17, 2025 at 5:49 PM JST, Mauro Carvalho Chehab wrote:
> > Hi Alex,
> >
> > Em Tue, 27 May 2025 23:03:39 +0900
> > Alexandre Courbot <gnurou@gmail.com> escreveu:
> >  
> >> > > > Btw, I was looking at:
> >> > > >
> >> > > >         https://github.com/chromeos/virtio-media
> >> > > >
> >> > > > (I'm assuming that this is the QEMU counterpart, right?)    
> >> > >
> >> > > crosvm actually, but QEMU support is also being worked on.    
> >> >
> >> > Do you have already QEMU patches? The best is to have the Kernel driver
> >> > submitted altogether with QEMU, as Kernel developers need it to do the
> >> > tests. In my case, I never use crosvm, and I don't have any Chromebook
> >> > anymore.    
> >> 
> >> IIRC Albert Esteve was working on this, maybe he can share the current status.  
> >
> > Any news regards to it?  
> 
> Albert shared the latest status. There is one in-flight patch series
> required in qemu [1], and then this branch of vhost-device should
> contain the necessary support [2]. Albert is waiting for the virtio spec
> to get merged before sending a pull request IIUC.
> 
> [1] https://patchew.org/QEMU/20250217164012.246727-1-aesteve@redhat.com/
> [2] https://github.com/aesteve-rh/vhost-device/tree/virtio-media
> 
> >  
> >> Note that crosvm does not require a Chromebook, you can build and run
> >> it pretty easily on a regular PC. I have put together a document to
> >> help with that:
> >> 
> >> https://github.com/chromeos/virtio-media/blob/main/TRY_IT_OUT.md  
> >
> > I started looking on it today. Already installed crossvm (I had to
> > install libcap-devel to build it). Still, I'm not familiar with
> > crossvm, which is a little be painful. In particular, how can I
> > enable network on it and speedup it?  
> 
> There is a "./tools/examples/setup_network" in the crosvm repository that
> will setup a TAP device. Once this is done, you can pass the "--net
> tap-name=crosvm_tap" argument to crosvm, and the network device should
> be visible and usable.
> 
> Let me reply to the rest of your questions in your latest mail, with the
> most recent logs.

Heh, I just managed to get it work maybe 10 minutes before your e-mail...

I'm building crossvm with:

	cargo build --release --features  "gpu,media,virgl_renderer,x"

To also have GPU working.

Network setup required a rather complex script to set it up without
breaking my ssh section with the machine where I'm running crossvm.

In case you need, I'm enclosing it.

Now, I need to allocate another time slot for tests and review.

---

#!/bin/bash

PHY=enp0s25
BRIDGE=crossvm_br
TAP=crossvm_tap

IP_MASK=$(ip -br addr show $PHY | awk '{print $3}' | grep -oE '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/[0-9]+')
if [ -z "$IP_MASK" ]; then
  echo "Failed to detect IP address on $PHY. Exiting."
  exit 1
fi

GW=$(ip -br route show default dev $PHY | awk '{print $3}')
if [ -z "$GW" ]; then
  echo "Failed to detect default gateway on $PHY. Exiting."
  exit 1
fi

restore_network() {
  echo "Restoring original network config on $PHY..."
  sudo ip link set dev $BRIDGE down || true
  sudo ip link del $BRIDGE || true
  sudo ip link set dev $TAP down || true
  sudo ip tuntap del dev $TAP mode tap || true

  sudo ip addr flush dev $PHY
  sudo ip addr add ${IP_MASK} dev $PHY
  sudo ip link set dev $PHY up
  sudo ip route add default via $GW
}

if ! lsmod | grep -q '^bridge'; then
    sudo modprobe bridge
fi

trap 'catch $LINENO "$BASH_COMMAND"' ERR

catch() {
    echo "Error on line $1: $2"
    restore_network
    exit 1
}

if ip link show $TAP &>/dev/null; then
  echo "Removing existing tap $TAP"
  sudo ip link set dev $TAP down
  sudo ip tuntap del dev $TAP mode tap
fi

if ip link show $BRIDGE &>/dev/null; then
  echo "Removing existing bridge $BRIDGE"
  sudo ip link set dev $BRIDGE down
  sudo ip link del $BRIDGE
fi

# Create bridge device
sudo ip link add name $BRIDGE type bridge
sudo ip link set dev $BRIDGE up
sudo ip link set dev $BRIDGE type bridge forward_delay 0

# Add physical interface to bridge
sudo ip link set dev $PHY master $BRIDGE

# Create tap device
sudo ip tuntap add dev $TAP mode tap
sudo ip link set dev $TAP up

# Add tap to bridge
sudo ip link set dev $TAP master $BRIDGE

# Get an address to the bridge
sudo dhclient $BRIDGE

# Start crossvm

sudo ./crosvm/target/release/crosvm run \
  linux/arch/x86/boot/bzImage \
  -c 4 -m size=4096 \
  --disable-sandbox \
  --block debian-12.img \
  -p "root=/dev/vda1" \
  --v4l2-proxy /dev/video0 \
  --gpu backend=virglrenderer \
  --net tap-name=crossvm_tap,vhost-net

  reply	other threads:[~2025-06-18 14:40 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-12  4:08 [PATCH v3] media: add virtio-media driver Alexandre Courbot
2025-04-12 14:27 ` Markus Elfring
2025-05-26 12:13 ` Mauro Carvalho Chehab
2025-05-27  6:14   ` Alexandre Courbot
2025-05-27  9:13     ` Mauro Carvalho Chehab
2025-05-27 13:21       ` Alexandre Courbot
2025-05-27 13:35         ` Mauro Carvalho Chehab
2025-05-27 14:03           ` Alexandre Courbot
2025-05-27 14:42             ` Mauro Carvalho Chehab
2025-06-17  8:49             ` Mauro Carvalho Chehab
2025-06-17  9:03               ` Mauro Carvalho Chehab
2025-06-17 10:20                 ` Mauro Carvalho Chehab
2025-06-18 14:27                   ` Alexandre Courbot
2025-06-18 15:05                     ` Mauro Carvalho Chehab
2025-06-20 12:03                       ` Alexandre Courbot
2025-09-08 10:03                         ` Mauro Carvalho Chehab
2025-06-18 14:16               ` Alexandre Courbot
2025-06-18 14:40                 ` Mauro Carvalho Chehab [this message]
2025-05-27 14:23   ` Michael S. Tsirkin
2025-05-27 14:39     ` Mauro Carvalho Chehab
2025-05-27 15:06       ` Michael S. Tsirkin
2025-05-28 11:07         ` Alexandre Courbot
2025-05-28 16:23 ` Ricardo Ribalda
2025-06-01  9:34   ` Mauro Carvalho Chehab
2025-06-01 10:01     ` Ricardo Ribalda
2025-07-24 17:24       ` Mauro Carvalho Chehab
2025-07-28 11:51         ` Alexandre Courbot
2025-09-09  9:12 ` Mauro Carvalho Chehab
2026-05-29 16:03   ` Brian Daniels

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250618164002.10220d81@sal.lan \
    --to=mchehab+huawei@kernel.org \
    --cc=adelva@google.com \
    --cc=aesteve@redhat.com \
    --cc=changyeon@google.com \
    --cc=daniel.almeida@collabora.com \
    --cc=eperezma@redhat.com \
    --cc=gnurou@gmail.com \
    --cc=gurchetansingh@google.com \
    --cc=hverkuil@xs4all.nl \
    --cc=jasowang@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=mst@redhat.com \
    --cc=nicolas.dufresne@collabora.com \
    --cc=virtualization@lists.linux.dev \
    --cc=xuanzhuo@linux.alibaba.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.