系统调用使用自编译内核运行的goldfish模拟器

时间:2018-05-10 06:00:47

标签: android-emulator linux-device-driver embedded-linux ioctl

我已经为嵌入式Linux内核金鱼3.4编写了一个驱动程序。现在我想从我在ioctl导演中编写的设备驱动程序测试我的\dev系统调用。在很多在线教程中,所有建议编写一个简单的用户空间程序来测试。但是,我不知道如何在像金鱼这样的嵌入式环境中这样做。它是Android手机的模拟器。

static int goldfish_accel_ioctl(struct file* fp, unsigned int cmd, unsigned long arg){ switch(cmd){ case TEST: printk(KERN_ALERT"Hello world ioctl!"); } } 我在名为dev\

accelrometer目录中注册了一个特殊文件

希望我的描述有意义。

1 个答案:

答案 0 :(得分:0)

我最终找到了解决方案并在此处分享,以防有人遇到与我相同的问题。

显然,我运行的Linux内核(至少是带有adb shell的金鱼模拟器)有一个内置的ioctl命令。

用法:

ioctl \dev yourDevice cmd

Noted cmd是一个整数,您可以从驱动程序内的_IO(MAGIC_NUMBER, n)检索它。如果您无法编写用户空间库来测试ioctl,则可以使用模块参数在用户空间中获取它们。