On Tue, Oct 20, 2015 at 11:58:21AM -0400, Kenneth Adam Miller wrote:
So I'm building a uio kernel driver with buildroot, and I've gotten the driver to compile, installed it and can insmod it in the final buildroot target after booting the image with QEMU.
I'm on linux kernel version 3.14, and I followed the guide here:
https://www.kernel.org/doc/htmldocs/uio-howto/userspace_driver.html
And it describes the location on where the device file that should be opened by userland code as either one of two locations:
/dev/uioX, with X being a number
or /sys/class/uio/uioX
But the each of following returns nothing:
ls /dev/uio* ls /sys/class/uio/
After I compile the uio example that is provided in the linux source at source/ drivers/uio/uio.c and uio_dmem_genirq.c, and insmod them, I do modprobe uio and modprobe uio_dmem_genirq and each of those return nothing. However, I do see that /sys/modules/uio and /sys/modules/uio_dmem_genirqÂ
uio.ko is the uio "core", you need a uio driver in order to actually use it. uio_dmem_genirq is a uio driver, have you added the needed device tree entries to have it actually create a device for you? Without them, this driver can not find any hardware to bind to, and as such, no device node will ever be created. I would suggest reading the UIO documentation, it should explain all of this for you already. If not, specific questions are always gladly answered. thanks, greg k-h