我已经尝试了一段时间没有找到一种方法来控制游戏Buzz(有线,来自Playstation 2)的一组控制器上的灯光。您可以在我的问题中看到我在Stack Overflow上的一些失败尝试
所以我转向了一个更基本的linux发送消息的方法,并且也没有通过将数据传输到/ dev / hidraw0来实现。
然后我在linux存储库中发现了一个文件,特别是(/linux/drivers/hid/hid-sony.c)引用了buzz控制器,以及它们有灯光的事实。它甚至有一个名为buzz_set_leds的方法(第1512行):
static void buzz_set_leds(struct sony_sc *sc)
所以我100%确定这是我尝试做的代码。
我已经把它包含在一个c文件中,但我无法包含hid-sony,因为我似乎错过了这些文件。
#include <linux/device.h>
#include <linux/hid.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/leds.h>
#include <linux/power_supply.h>
#include <linux/spinlock.h>
#include <linux/list.h>
#include <linux/idr.h>
#include <linux/input/mt.h>
#include "hid-ids.h"
在编译中,我收到此错误:
hid-sony.c:29:26: fatal error: linux/device.h: No such file or directory
#include <linux/device.h>
^
compilation terminated.
抱歉,我是一名没有C语言背景的Ruby程序员。
如何让这些缺失&#39; linux /&#39;文件并从我的c库中引用它们?
答案 0 :(得分:1)
答案是你不能单独编译该文件......它意味着与整个Linux内核一起构建。该代码仅用于由内核运行,而不是用户程序。您希望该代码运行,但您需要找出正确的方法来调用它(通过系统调用或其他方式)。
tl; dr:你看错了地方,你不想要内核代码