我在 Linux Debian 9.6 上遇到问题。尽管我已将 UIO 支持编译到内核中,但/dev/uioX
尚未创建设备文件。
root@machine:~# zcat /proc/config.gz | grep UIO
CONFIG_UIO=y
# CONFIG_UIO_CIF is not set
CONFIG_UIO_PDRV_GENIRQ=y
CONFIG_UIO_DMEM_GENIRQ=y
# CONFIG_UIO_AEC is not set
# CONFIG_UIO_SERCOS3 is not set
CONFIG_UIO_PCI_GENERIC=y
# CONFIG_UIO_NETX is not set
# CONFIG_UIO_PRUSS is not set
# CONFIG_UIO_MF624 is not set
虽然里面有一个条目sysfs
:
root@machine:~# ls -la /sys/class/uio/
total 0
drwxr-xr-x 2 root root 0 Nov 26 10:00 .
drwxr-xr-x 44 root root 0 Nov 26 10:00 ..
似乎udevd
没有创建设备文件,有什么想法吗?
答案1
UIO设备节点仅在设备注册时分配,例如当您使用通用 PCI UIO 驱动程序探测 PCI 设备时:
echo "8086 10f5" > /sys/bus/pci/drivers/uio_pci_generic/new_id
在驱动程序中,这对应于一个uio_register_device
调用。
看UIO 操作指南了解详情。