#linux #driver #hardware #generic #pci

uio

使用UIO编写Linux用户空间驱动程序的辅助库

4个版本

使用旧的Rust 2015

0.2.1 2023年7月7日
0.2.0 2019年3月7日
0.1.1 2016年6月15日
0.1.0 2016年5月27日

#475硬件支持

Download history 625/week @ 2024-03-13 616/week @ 2024-03-20 542/week @ 2024-03-27 534/week @ 2024-04-03 508/week @ 2024-04-10 521/week @ 2024-04-17 413/week @ 2024-04-24 281/week @ 2024-05-01 343/week @ 2024-05-08 743/week @ 2024-05-15 471/week @ 2024-05-22 464/week @ 2024-05-29 444/week @ 2024-06-05 427/week @ 2024-06-12 699/week @ 2024-06-19 625/week @ 2024-06-26

2,297 每月下载量

MIT 协议

12KB
235

Linux UIO库,用于Rust

一个薄的抽象库,用于通过使用UIO功能在Linux中编写用户空间驱动程序(《https://www.kernel.org/doc/html/latest/driver-api/uio-howto.html》)。

为了使用此库,您需要确保您的设备使用Linux UIO驱动模块。例如,以下示例命令在Linux中卸载ahci驱动程序并使用uio_pci_generic模块为具有供应商ID 0x8086 和设备ID 0x1d02 的PCI设备提供SSD磁盘。(注意:危险,如果您不知道自己在做什么,请不要这样做)。

$ modprobe -r ahci
$ sudo modprobe uio
$ sudo modprobe uio_pci_generic
$ echo "0x8086 0x1d02" > /sys/bus/pci/drivers/uio_pci_generic/new_id
$ lspci -v -d :0x1d02 | grep "Kernel driver in use"

之后,您应该在/dev/uio*中有可用的一个或多个uio设备,您可以用来实例化UioDevice结构体

extern crate uio;
use uio::*;

pub fn main() {
    let uio_num = 1; // /dev/uio1
    let dev = UioDevice::new(uio_num).unwrap();
    let bar = dev.map_resource(5).unwrap();
}

资源

有关UIO的更多信息,请查看以下链接

依赖关系

~2MB
~36K SLoC