systemctl似乎无法自动写入/sys/devices中文件

285h的笔记本, 通过i915-sriov-dkms折腾intel的sriov成功了,lspci能看到两个显卡, kvm里面的windows已经装了驱动,可以跑3d应用了, 但是每次重启/sys/devices/pci0000:00/0000:00:02.0/sriov_numvfs这个文件就会恢复成0。启动虚拟机还需要su进去执行

echo 1 > /sys/devices/pci0000:00/0000:00:02.0/sriov_numvfs

有没有啥办法能让这个文件始终是1的? 或者每次启动后自动写入1也可以。

我尝试了弄个service文件,通过systemctl来启动,但是似乎写入不进去。

service文件内容是拿clash改的,如下:

[Unit]
Description=create vf.
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/echo 1 > /sys/devices/pci0000:00/0000:00:02.0/sriov_numvfs

User=root
Restart=always
RestartSec=5

[Install]

systemctl daemon-reload 之后手动 start 没有报错, 但是文件也没有修改过来。还是0.

看文档,systemd那个命令不由shell解析,不支持重定向的。写文件这事儿建议用tmpfiles.d。

这种设备相关的可能应该用 udev?