我想访问一个设备(打开它),其中有关设备的唯一信息是文件struct中的st_dev字段。
int fd;
char *path;
struct stat buf;
stat("/path/to/my/file", &buf);
// do some things with buf.st_dev
// then either path contains a path to the device refered by st_dev or fd contains a file descriptor refering to it.
我希望找到一种方法来实现这一点,要么是以PO
目前,我正在学习Linux设备驱动程序,我觉得自己对设备如何在Linux中实例化产生了根本性的误解。
在Linux模块中,我可以调用alloc_chrdev_region()向内核注册设备。具体来说,这个函数是
int alloc_chrdev_region(dev_t *dev, unsigned int firstminor,
unsigned int count, char *name);
它生成设备编号(主要/次要)并接受设备名称。
成功执行后,将在/proc/devices中创建一个主要编号和设备类型名称的条目。但是,/dev中没有生成任何设备文件。相反,我必须发出一个mknod调
我在OMAP ARM (OMAP-L138)上运行嵌入式linux。其上的以太网控制器连接到外部PHY芯片。一切运行正常,除了在某些情况下,我希望节省电力和关闭PHY (但不是挂起整个系统)。
我知道Linux可以很容易地挂起PHY,因为当我将整个系统置于挂起到内存状态时,PHY确实会断电。
但是,我希望能够通过用户空间应用程序打开和关闭PHY,按照我的意愿打开和关闭它。
我该如何实现这一点?我对linux相当陌生,我可以用C语言编写用户空间应用程序来打开设备驱动程序并访问它们。
PHY通过MII接口连接,但我在/dev/下看不到mii。(例如,为了访问i2c驱动程序,我一直在执行fd = o