2017-06-10 48 views
2

我嘗試實例化一個uio(driver/uio/uio_pdrv_genirq.c)字符設備 以捕獲用戶空間中的一些gpio中斷。/dev/uio0字符設備節點未顯示

似乎安裝正確,/ sys/class/uio/uio0 /和/ proc/interrupts 顯示我的中斷已註冊。

但是我想念的是/ dev/uio0條目。

我通過驅動程序/ UIO/uio.c踩:__ uio_register_device()和 device_create()不會成功,所以我不知道爲什麼的/ dev/uio0犯規 出現。我無法使用mknod,因爲主號碼是由驅動程序/ uio/uio.c分配的動態 。

是否有一些額外的內核配置我需要啓用,以便自動出現/ dev/uio0 或我缺少什麼?我沒有啓用CONFIG_DEVTEMPFS,這是否需要這樣/ dev/uio0會自動出現?

+0

你是否使用了dts覆蓋來使'/ sys/class/uio/uio0'成爲?嘗試在RPI0上使用'uio_pdrv_genirq',但沒有創建正確的dts覆蓋文件的運氣...... – sharpener

+0

您需要啓用驅動程序,但也需要指定要使用哪個「兼容」標記。您可以通過cmdline選項執行此操作,例如:uio_pdrv_genirq.of_id = generic-uio。然後,您可以在dtb中添加「compatible = generic-uio」,並將驅動程序與設備進行匹配。 –

回答

0

安裝devtempfs或將內核配置爲自動安裝 /dev上的devtempfs是解決方案。