N150设备使用PVE系统的相关技巧

 

软硬件环境及安装信息说明

主板信息 HSX-ADL-N150-4LAN
机箱尺寸 【133 x 126 x 45MM】
显示接口 【1 x DP1.4】 【1 x HDMI2.1】
网络接口 【4 x intel i226-V】 【1 x M.2 CNVio2】
USB接口 【1 x TYPE-C USB 2.0】 【2 x USB2.0】 【2 x USB3.0】
内部扩展 【1 x SATA3.0】 【1 x M.2 NVME (PCIE 3.0 x1)】 【1 x MINIPCIE (PCIE 3.0 x 1 + USB双协议】
其他接口 【1 x DDR4_SODIMM】 【DC 12V 5525】 【2.54 4P风扇接口】 【1 x TMP】 【1 x GPIO】 【1 x COM】 【1 x 手机SIM卡】

将PVE系统变为无线路由器

  1. 安装需要的软件包及开启内核转发
1
2
3
apt install dnsmasq hostapd
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf

  1. 修改 /etc/network/interfaces 文件来配置桥接网卡相关
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 将ETH1作为WAN口通过DHCP联网,其他ETH2 ETH3 ETH4网口作为LAN口接入设备
auto lo
iface lo inet loopback

auto enp1s0 # 没有这两句的话不会自动DHCP
allow-hotplug enp1s0 # 需要手动 dhclient -i enp1s0
iface enp1s0 inet dhcp

auto vmbr0
iface vmbr0 inet static
address 192.168.1.1/24
gateway 192.168.1.1
bridge-ports enp2s0 enp3s0 enp4s0
bridge-stp off
bridge-fd 0
up iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o enp1s0 -j MASQUERADE

iface enp2s0 inet manual
iface enp3s0 inet manual
iface enp4s0 inet manual
iface wlo1 inet manual
source /etc/network/interfaces.d/*

  1. 修改 /etc/dnsmasq.conf 文件来提供DHCP服务
1
2
3
4
5
6
interface=vmbr0
listen-address=127.0.0.1,192.168.1.1
server=223.5.5.5
server=223.6.6.6
dhcp-range=vmbr0,192.168.1.100,192.168.1.249,255.255.255.0,24h

  1. 配置HOSTAPD来提供无线接入点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# 首先去掉 /etc/default/hostapd 中的 #DAEMON_CONF 这行前面的注释 # 使其生效
DAEMON_CONF="/etc/hostapd/hostapd.conf"

# 编辑 /etc/hostapd/hostapd.conf 文件并根据你的情况配置,如下配置为AX201开启2.4G WiFi6热点网络供其他设备接入的配置
driver=nl80211
country_code=US
interface=wlo1
bridge=vmbr0
hw_mode=g
channel=6

auth_algs=1
wpa=2
ssid=AX3
utf8_ssid=1
wpa_pairwise=CCMP
ignore_broadcast_ssid=0
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK WPA-PSK-SHA256 SAE

ieee80211w=1
ieee80211d=1
wmm_enabled=1
ieee80211n=1
ht_capab=[HT40+][LDPC][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][MAX-AMSDU-7935]
ieee80211ax=1
he_su_beamformer=1
he_mu_beamformer=1
he_default_pe_duration=4
he_rts_threshold=1023
he_mu_edca_qos_info_param_count=0
he_mu_edca_qos_info_q_ack=0
he_mu_edca_qos_info_queue_request=0
he_mu_edca_qos_info_txop_request=0
he_mu_edca_ac_be_aifsn=8
he_mu_edca_ac_be_aci=0
he_mu_edca_ac_be_ecwmin=9
he_mu_edca_ac_be_ecwmax=10
he_mu_edca_ac_be_timer=255
he_mu_edca_ac_bk_aifsn=15
he_mu_edca_ac_bk_aci=1
he_mu_edca_ac_bk_ecwmin=9
he_mu_edca_ac_bk_ecwmax=10
he_mu_edca_ac_bk_timer=255
he_mu_edca_ac_vi_ecwmin=5
he_mu_edca_ac_vi_ecwmax=7
he_mu_edca_ac_vi_aifsn=5
he_mu_edca_ac_vi_aci=2
he_mu_edca_ac_vi_timer=255
he_mu_edca_ac_vo_aifsn=5
he_mu_edca_ac_vo_aci=3
he_mu_edca_ac_vo_ecwmin=5
he_mu_edca_ac_vo_ecwmax=7
he_mu_edca_ac_vo_timer=255

# 测试配置文件是否正确以及程序是否可以正常启动
hostapd -dd /etc/hostapd/hostapd.conf

# 如测试没有报错那么也可以让热点程序在后台运行
hostapd -B /etc/hostapd/hostapd.conf

# 设置热点软件开机自启
systemctl unmask hostapd
systemctl enable hostapd

核显直通和HDMI或DP输出

  1. 主板BIOS设置及开启内核IOMMU分组功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 主板BIOS/UEFI设置:
启用 VT-d # AMD为AMD-V
禁用 CSM # 仅限i440机型,需确保其他设置为UEFI模式
ACS Enable # 若存在需启用,自动模式无效
启用 4G解码 # 4G Decoding
禁用 Resizable BAR/Smart Access Memory # AMD GPU直通时避免 代码43 错误
启用 IOMMU # AMD主板需特别注意
主显示器设置为 CPU/iGPU # 若CPU集成显卡
预分配内存 64M # DVMT pre allocated


# 首先将GRUB配置文件 /etc/default/grub 中的 GRUB_CMDLINE_LINUX_DEFAULT 修改为如下:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

# 修改完后需要更新GRUB
update-grub


# 其他部分内核参数释义
intel_iommu=on # 启用IOMMU来将物理设备映射到不同内存区域,从而实现设备之间的内存隔离,确保系统安全性
iommu=pt # Passthrough模式可实现硬件直通,使虚拟机能够直接访问物理设备,从而提升虚拟化环境中设备直通的效率
i915.enable_gvt=1 # 启用Intel GVT-g虚拟显卡技术,Intel 6~11代CPU核显支持,11代之后更换为了SR-IOV技术
i915.enable_guc=3 # 值为3代表启用GuC功能和HuC固件加载即可使用所有可用的资源。GuC优化图形性能,HuC用于视频编解码
pci=noaer # =noaer 不输出 AER 报错日志。 =nomsi 在系统范围内禁用 MSI 中断。=nommconf 禁用PCI配置空间的内存映射
pcie_aspm=off # =off 关闭 PCIe 设备的 ASPM 节能模式。=force 强制启用 PCIe 设备的 ASPM 节能模式。解决部分 PCIe 设备 AER 报错
initcall_blacklist=sysfb_init # 解决PVE 7.2以上的AMD核显冲突,Intel核显直通不需要
video=efifb:off,vesafb:off # 禁用EFI启动的显卡和Legacy启动的显示设备(已过时)
pcie_acs_override=downstream # 拆分IOMMU组,便于每个设备单独分组,仅PVE7支持(已过时)

  1. 添加VFIO驱动支持及禁用核显驱动来使虚拟机能够完全控制核显
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 在 /etc/modules 中添加如下内容来确保内核会加载VFIO相关模块驱动:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd


# 先确定核显及声卡的硬件ID以供后续使用,如下查询到的显卡ID为 8086:46d1,声卡ID为 8086:54c8
root@pve:~# lspci -D -nnk | grep VGA
0000:00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-N [Intel Graphics] [8086:46d4]
root@pve:~# lspci -D -nnk | grep Audio
0000:00:1f.3 Audio device [0403]: Intel Corporation Alder Lake-N PCH High Definition Audio Controller [8086:54c8]

# 编辑 /etc/modprobe.d/pve-blacklist.conf 文件添加如下内容来禁用Intel核显相关驱动
blacklist i915
blacklist snd_hda_intel
options vfio_iommu_type1 allow_unsafe_interrupts=1

# 绑定设备硬件ID到vfio-pci驱动,vfio.conf 中一定要没有 disable_vga=1 (有的删掉)
echo "options vfio-pci ids=8086:46d4,8086:54c8" >> /etc/modprobe.d/vfio.conf

# 更新后重启机器生效
update-initramfs -u
reboot

  1. 重启后可检查IOMMU配置的结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 先运行以下命令查看是否有输出,如无则IOMMU未开启成功
dmesg | grep -e DMAR -e IOMMU

# 如下表明启用了IOMMU并配置模式为Passthrough了
root@pve:~# dmesg | grep -e iommu -e IOMMU
[ 0.023470] DMAR: IOMMU enabled
[ 0.305518] iommu: Default domain type: Passthrough (set via kernel command line)

# 检查VFIO模块是否正常加载,有类似回显说明正常
root@pve:~# lsmod | grep vfio
vfio_pci 53248 0
vfio_virqfd 16384 1 vfio_pci
irqbypass 16384 2 vfio_pci,kvm
vfio_iommu_type1 32768 0
vfio 32768 2 vfio_iommu_type1,vfio_pci

# 查看核显和声卡驱动是否绑定至VIFO,执行如下命令看最后Kernel driver in use是否为vfio-pci,如果为i915就说明之前没配置好,一般是i915的驱动没屏蔽成功
root@pve:~# lspci -vvv -s 00:02.0
root@pve:~# lspci -vvv -s 00:1f.3
......
Kernel driver in use: vfio-pci
......

  1. 在虚拟机中机型为I440FX的核显直通,I440FX过于老旧但兼容性更好,如果硬件比较新且有UEFI及硬件直通需求推荐Q35
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 提取本机BIOS文件 HSX1264NPV10T07.rom 中的VBIOS相关文件 IntelGopDriver.rom 来供后续使用,也可用别人提供的通用ROM来直通
# 软件来源:https://winraid.level1techs.com/t/30357 https://mega.nz/folder/lLg2GLrA#SnZZd0WjHkULFHg7FESm8g
PS C:\Users\leux\Downloads\UBU_v1_80_b1> .\UBU.bat HSX1264NPV10T07.rom
PS C:\Users\leux\Downloads\UBU_v1_80_b1\Extracted\GOP\21.0.6\IntelGopDriver.efi # 中间生成文件路径

# 软件来源:https://github.com/tianocore/edk2-BaseTools-win32/raw/master/EfiRom.exe
PS C:\Users\leux\Downloads\edk2-BaseTools-win32-master> .\EfiRom.exe -f 0x8086 -i 0x46d4 -e IntelGopDriver.efi
PS C:\Users\leux\Downloads\edk2-BaseTools-win32-master\IntelGopDriver.rom # 最终所需文件路径
-----------------------------------------------------------------------------------------------------------------------

# 获取VBIOS相关ROM文件,该文件是核显直通HDMI或DP输出的关键
# wget https://github.com/gangqizai/igd/raw/main/gen12_gop.rom # 测试无用遂自提取
wget https://github.com/gangqizai/igd/raw/main/gen12_igd.rom
mv gen12_igd.rom IntelGopDriver.rom /usr/share/kvm/

# 建议 x-igd-gms=0x2,同时注意BIOS设定:DVMT pre allocated 不要大过64M,64M对应x-igd-gms=0x2,若要显存给到256M则为0x4,如果超过64M那么x-igd-gms要加大
# 机型必须i440fx,BIOS必须OVMF,Intel核显已不支持传统BIOS启动,核显PCI加入legacy-igd=1以支持核显Legacy模式下显示
# 下面100代表创建虚拟机时分配的VMID,编辑虚拟机的配置文件 /etc/pve/qemu-server/100.conf 增加以下行:

args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2 -set device.hostpci0.x-igd-opregion=on
hostpci0: 0000:00:02.0,legacy-igd=1,romfile=gen12_igd.rom
hostpci1: 0000:00:1f.3,romfile=IntelGopDriver.rom
vga: none
bios: ovmf
cpu: host
machine: pc-i440fx-9.1

# 要添加EFI磁盘才能去除警告:WARN: no efidisk configured! Using temporary efivars disk.

# 因为 PVE_8.3.5 以后包含的 qemu-kvm 9.2 对 legacy mode 抛弃了,致使核显直通设置的 legacy-igd=1 失效导致核显直通失效,所以会报如下错误:
kvm: -device vfio-pci,host=0000:00:02.0,id=hostpci0,bus=pci.0,addr=0x2,romfile=/usr/share/kvm/gen12_igd.rom: IGD device 0000:00:02.0 is unsupported in legacy mode, try SandyBridge or newer
# 那么如何解决问题呢?降级和锁定版本即可:apt install pve-qemu-kvm=9.1.2-3 apt-mark hold pve-qemu-kvm

驱动核显SRIOV虚拟化直通

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 通过DKMS方式驱动N150核显支持虚拟化SRIOV技术并直通,与上面的教程【核显直通和HDMI或DP输出】有冲突请二选一,区别为前者独享核显后者共享性能

# 安装所需要的前置依赖及下载安装i915-sriov的DKMS驱动程序包
apt install build-essential dkms pve-headers-$(uname -r)
wget https://github.com/strongtz/i915-sriov-dkms/releases/download/2025.05.18/i915-sriov-dkms_2025.05.18_amd64.deb
dpkg -i i915-sriov-dkms_2025.05.18_amd64.deb # 如需卸载请执行 dpkg -P i915-sriov-dkms

# 首先将GRUB配置文件 /etc/default/grub 中的 GRUB_CMDLINE_LINUX_DEFAULT 修改为如下:
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on i915.enable_guc=3 i915.max_vfs=7 module_blacklist=xe"

# 编辑 /etc/modules 文件并在其中添加如下内容:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

# 更新grub和initramfs后请重启
update-grub && update-initramfs -u && reboot


# 如下代表GuC和HuC均被启用了
root@pve:~# dmesg | grep i915
[ 1.439983] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adlp_dmc.bin (v2.20)
[ 1.448697] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/tgl_guc_70.bin version 70.13.1
[ 1.448704] i915 0000:00:02.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3


# 可使用如下命令来临时添加个虚拟核显
echo 1 > /sys/devices/pci0000:00/0000:00:02.0/sriov_numvfs

# 或按如下长期添加虚拟核显数量请按需设置,最高7个但设置为1个时性能最强
apt install sysfsutils
echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3" > /etc/sysfs.conf # 开启3个VFs核显数量

# 虚拟核显地址可以用 lspci | grep VGA 查看,注意:物理核显02.0不能直通,否则所有虚拟核显消失。其他 02.1 ~ 02.6 之类的虚拟核显可随意直通
root@pve:~# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics] (物理核显)
00:02.1 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics] (虚拟核显1)
00:02.2 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics] (虚拟核显2)
00:02.3 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics] (虚拟核显3)
......

# 主机BIOS中需开启 VT-d,SR-IOV,Above 4GB 和关闭安全模式Secure Boot
# 机型:q35 | BIOS:OVMF(UEFI) | CPU:host | 显示:默认 | 添加PCI设备:原始设备 -> 核显SR-IOV的设备ID(记得勾选ROM-Bar和PCI-Express)

驱动PCIE模式下的高通模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 通过NVME转接板接入使用高通X55基带型号为移远RM500Q-GL的PCIE模式5G模块,但默认内核只有几个WWAN端口却没有AT端口
root@pve:~# lspci
06:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc SDX55 [Snapdragon X55 5G]

驱动前:/dev/wwan0mbim0 /dev/wwan0qmi0 /dev/wwan0qcdm0
驱动后:/dev/mhi_MBIM /dev/mhi_QMI0 /dev/mhi_BHI /dev/mhi_DUN /dev/mhi_DIAG /dev/mhi_LOOPBACK

# 安装编译工具及内核头文件
apt install build-essential pve-headers-$(uname -r)

# 在 Quectel_MHI/src/Makefile 首行添加:EXTRA_CFLAGS += -Wno-error=incompatible-pointer-types 来关闭将警告视为错误的选项
git clone https://github.com/ChaingTsung/Quectel_MHI.git
cd Quectel_MHI/src && make && make install

# 将自带的MHI驱动禁用转而启用刚编译的移远MHI驱动
cat > "/etc/modprobe.d/pcie-modem.conf" <<EOF
# blacklist
blacklist mhi
blacklist qrtr
blacklist qrtr_mhi
blacklist wwan
blacklist mhi_wwan_ctrl
blacklist mhi_pci_generic

# enable driver mbim
options pcie_mhi mhi_mbim_enabled=1
EOF

# 更新initramfs后重启系统即可
update-initramfs -u && reboot


# 也可编译添加高通QMI驱动支持
git clone https://github.com/ChaingTsung/QMI_WWAN_Q.git
cd QMI_WWAN_Q/src && make && make install


# 也可编译AT管理工具,添加 LDFLAGS = -static 到 tom_modem/src/Makefile 首行再 make 即可静态编译它
git clone https://github.com/FUjr/QModem/
cd QModem/application/tom_modem/src/ && make


# 也可编译使用quectel_CM移远拨号工具,将 -static 添加到 LDFLAGS += 中即可静态编译它
wget https://sources.immortalwrt.org/quectel-cm-1.6.5.tar.gz
tar -xzvf quectel-cm-1.6.5.tar.gz
cd quectel-cm-1.6.5 && make
quectel-CM -s ctnet -4 -6 # 使用 quectel-CM 为电信卡拨号

创建配置OpenWRT虚拟机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 根据如下操作可从PVE的其他网口直接通过 192.168.1.100 访问OpenWRT虚拟机

# 如果只有IMG镜像则需先转换为QCOW2镜像再导入虚拟机,不带efi后缀的QCOW2镜像BIOS需设置为:SeaBIOS
qemu-img convert -f raw -O qcow2 immortalwrt-x86-64-generic-squashfs-combined-efi.img immortalwrt-x86-64-generic-ext4-combined-efi.qcow2

# 执行如下命令将QCOW2镜像导入到ID为101的虚拟机并存储在local-lvm分区,导入后在WebUI中该虚拟机的【硬件】界面找到【未使用的磁盘】,编辑添加使用该硬盘即可
qm importdisk 101 immortalwrt-x86-64-generic-ext4-combined-efi.qcow2 local-lvm

# OPENWRT中LAN地址不要与PVE的vmbr0地址一样,会导致与PVE相冲突而掉线,LAN的网段应与vmbr0同段
uci set network.lan.ipaddr='192.168.1.100' # 设置后台地址,跟PVE的vmbr0同网段
uci set network.lan.gateway='192.168.1.1' # 设置出口网关,为PVE中vmbr0的地址(非必须)
uci set network.lan.dns='8.8.8.8 8.8.4.4' # 设置 DNS 服务器(非必须)
uci commit network # 提交修改到配置文件中
/etc/init.d/network restart # 重启网络服务以应用更改

# MT7916可使用 hostpci0: 0000:05:00.0 直接直通,如果每次启动后网络中没有出现无线选项,在启动项命令中添加 wifi 命令试下可否虚拟机系统重启后自动激活模块

其他关于PVE的相关小技巧

  1. 将 local-lvm 合并到local 这样硬盘空间合在一起方便,执行完下面的命令,再在【数据中心】,【存储】里面,把local-lvm分区给移除掉
1
2
3
4
umount /dev/pve/data
lvremove /dev/pve/data # 删除local-lvm分区
lvextend -rl +100%FREE /dev/pve/root # 将剩余的空间扩展至local分区

  1. PVE 6.3~8.4中去除订阅提醒
1
2
3
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy.service

  1. 更换为国内软件源
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 更换USTC源 https://mirrors.ustc.edu.cn/help/proxmox.html

rm /etc/apt/sources.list.d/pve-enterprise.list

sed -i 's|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list
sed -i 's|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list

echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list

if [ -f /etc/apt/sources.list.d/ceph.list ]; then
CEPH_CODENAME=`ceph -v | grep ceph | awk '{print $(NF-1)}'`
source /etc/os-release
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-$CEPH_CODENAME $VERSION_CODENAME no-subscription" > /etc/apt/sources.list.d/ceph.list
fi

  1. 通过DKMS方式驱动AIC8800芯片的USB无线网卡
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装所需要的前置依赖及下载安装AIC8800的DKMS驱动源码包
apt install build-essential dkms pve-headers-$(uname -r)
wget https://github.com/radxa-pkg/aic8800/releases/download/4.0%2Bgit20241119.06da8476-1/aic8800-usb-dkms_4.0+git20241119.06da8476-1_all.deb
dpkg -i aic8800-usb-dkms_4.0+git20241119.06da8476-1_all.deb # 源码会安装在 /usr/src/aic8800-usb-4.0+git20241119.06da8476-1/

# 下面的模块名和版本号皆在dkms.conf中有定义:PACKAGE_NAME="aic8800-usb" PACKAGE_VERSION="4.0+git20241119.06da8476-1"
dkms build -m aic8800-usb -v 4.0+git20241119.06da8476-1 # 使用 DKMS 构建内核模块
dkms install -m aic8800-usb -v 4.0+git20241119.06da8476-1 # 使用 DKMS 安装内核模块
dkms remove -m aic8800-usb -v 4.0+git20241119.06da8476-1 -all # 从 DKMS 中删除内核模块
dkms status # 显示已安装的DKMS内核模块及其状态

mkdir -p /lib/firmware/aic8800_fw/USB/aic8800D80/
cp -r /usr/src/aic8800-usb-4.0+git20241119.06da8476-1/USB/driver_fw/fw/aic8800D80/* /lib/firmware/aic8800_fw/USB/aic8800D80/

  1. VirtIO镜像中文件夹对应的驱动
1
2
3
4
5
6
7
8
9
10
11
12
13
NetKVM/:	Virtio 网络驱动
viostor/: Virtio 块驱动
vioscsi/: Virtio SCSI驱动
viorng/: Virtio RNG驱动
vioser/: Virtio 串口驱动
Balloon/: Virtio 内存气球驱动
qxl/: 用于Windows 7及之前版本的QXL显卡驱动
qxldod/: 用于Windows 8及之后版本的QXL显卡驱动
pvpanic/: QEMU pvpanic 设备驱动
guest-agent/: QEMU Guest Agent 32bit 和 64bit 安装包
qemupciserial/: QEMU PCI 串口设备驱动

# KVM、Virt Viewer、Virt-manager 中输入一个字母变成两个的解决方法:因为主机输入法的原因,切换成美式键盘或英文输入法就没事了,切换成中文输入法,就会变成两个字母。