您的当前位置:首页正文

intel ECI作为ACRN VM使用dpdk(vfio和iommu问题)以及img扩容

2024-11-07 来源:个人技术集锦

ACRN虚拟机内IOMMU

对非虚拟机而言,只要在BIOS里开启VT-d就可以用iommu去映射vfio使用DPDK,但是在虚拟机中即便BIOS开启了VT-d,它也传不到VM中。因此这个帖子解决一下这个问题。

 在ACRN的launch脚本中需要passthru两个网卡,一个用来做静态ip,另一个做dpdk的vfio口

 我们要改一下vm的内核启动参数,这个和正常在ubuntu里面修改grub不一样,我们需要在外面挂载分区1,再进行修改

sudo fdisk -lu eci-test_a.img

mkdir myloop1
mkdir myloop1 sudo mount -o loop,offset=1048576 eci-test_a.img myloop1

# 1048576 = 2048*512
cd myloop1/BOOT/EFI
sudo nano grub
#在grub的参数里面添加
intel_iommu=on iommu=pt

sudo umount myloop1

然后需要编译ECI的内核,具体可以参考 

主要是开启CONFIG_VFIO_NOIOMMU,然后拷贝生成的*.deb到VM中

sudo apt install ./linux*.deb

安装完后重启VM,可以用下面命令检查(eci默认是不开这个的,要自己编译eci内核)

zcat /proc/config.gz | grep IOMMU

进入VM后,按下面操作,即可绑定vfio

modprobe vfio enable_unsafe_noiommu_mode=1
sudo dpdk-hugepages.py -r 2G -p 2M
sudo modprobe vfio-pci
sudo dpdk-devbind.py --bind=vfio-pci 00:06.0

IMG扩容

qemu-img resize eci-test_a.img +5G

进入VM中

sudo apt-get update
sudo apt-get install cloud-guest-utils
sudo growpart /dev/vda 2
sudo resize2fs /dev/vda2

 

搞定收工 

显示全文