标签: driver

linux usb connect/disconnect事件

您好我正在使用嵌入式Linux设备,其USB端口使用g_ether驱动程序进行USB网络连接.

连接usb插头时,dmesg输出为:

g_ether小工具:全速配置#2:RNDIS

当USB电缆拔出时,没有消息写入dmesg.

使用C我如何监听连接/断开连接事件?

嵌入式Linux操作系统没有任何附加功能.没有dbus守护程序或hotplug帮助程序脚本.我甚至不确定这些是否会有所帮助.

c linux usb networking driver

10
推荐指数
1
解决办法
1万
查看次数

编写OS X内核扩展以实现Linux的SO_BINDTODEVICE套接字选项

我希望能够通过特定的网络接口强制套接字.在Linux中,内核允许程序员通过设置所述套接字选项来实现这一点 - 但在OS X中,我处于黑暗中.

因此我的标题问题 - 是否可能?它完成了吗?我不打算重新实现IP堆栈,只是启用了bind-to-interface选项.

c macos networking driver kernel-extension

10
推荐指数
1
解决办法
802
查看次数

如何在Linux内核中使用生物请求读取扇区

如何创建自己的生物请求以从磁盘驱动器读取扇区?

我正在尝试以下但它冻结了系统.

static void read_bio()
{
    struct bio *b;
    struct page *p;

    b = bio_alloc(GFP_KERNEL, 1);
    if (!b) {
        printk(KERN_INFO "bio allocation failed\n");
    }
    bio_init(b);

    b->bi_sector = 10000;
    b->bi_bdev = bd;    /* "/dev/sda1" */
    b->bi_end_io = bio_end_clone;

    p = alloc_page(GFP_KERNEL);
    if (!p) {
        printk(KERN_INFO "page allocation failed\n");
    }
    bio_add_page(b, p, PAGE_SIZE, 0);
    b->bi_private = p;

    bio_get(b);
    submit_bio(READ, b);
    printk(KERN_DEBUG "submit read request\n");
}
Run Code Online (Sandbox Code Playgroud)

linux kernel driver

10
推荐指数
1
解决办法
2685
查看次数

Windows 8远程显示驱动程序模型

我正在尝试将当前的XPDM镜像驱动程序移植到Windows 8.Microsoft
在Windows 8下完全禁用镜像驱动程序,但在MSDN上它说

基于镜像驱动程序体系结构的远程显示驱动程序模型也可以从Windows 8开始运行.有关详细信息,请参阅远程显示驱动程序.

并在远程显示驱动程序页面上,它说:

远程显示驱动程序基于Windows 2000镜像驱动程序模型,用于在远程会话中呈现桌面.

但是,我可以在网站上找到"远程显示驱动程序"的更多信息,除了这个和MSDN上的这个链接.我唯一的信息是它基于Win2K镜像驱动程序模型,但我不知道应该做些什么来使它与Windows 8兼容.

我试图将XPDM镜像驱动程序代码库移植到Visual Studio 2012中,并且我使用了相同的inf文件.代码可以在Windows 8上成功编译和部署,但内核不会加载显示驱动程序.
显示驱动程序名为accdrv.dll,微型端口驱动程序为mirror.sys.调试内核时,只加载mirror.sys.

有没有可以找到"远程显示驱动程序"信息的地方?所以我可以继续这项工作吗?

driver wdk

10
推荐指数
0
解决办法
1162
查看次数

dma vs中断驱动的i/o

我对DMA和中断I/O之间的差异有点不清楚.(目前正在阅读操作系统概念,第7版).

具体来说,我不确定在任何一种情况下中断何时发生,并且在两种情况下在哪些点上CPU都可以自由地进行其他工作.我一直在阅读的东西,但不一定和解:

中断驱动

  1. 控制器通过驱动程序初始化
  2. 控制器检查由驱动程序加载的寄存器以决定操作
  3. 从/向外设和控制器缓冲区的数据传输随之发生.
  4. 控制器发出中断时(每个字节读取?读取每个字?当缓冲区填满时?传输完成时?
  5. 这是我的理解,该CPU是没有做任何事情时外围< - >控制器I/O正在发生,并且控制器< - > MM I/O都发生?
  6. 当传输完成或块填满时,CPU必须初始化从控制器缓冲区到MM的传输

DMA

  1. 与上面相同,除了控制器能够在没有CPU干预的情况下将数据从其缓冲区直接传输到MM.
  2. 这是否意味着CPU仅在整个传输完成时中断,或者在控制器缓冲区填满时是否仍然中断?
  3. 唯一的区别是CPU不再需要等待控制器< - > MM I/O,但是当控制器缓冲区填满时仍然必须中断?或者DMA是否也将其隐藏在CPU中?

architecture operating-system driver interrupt dma

10
推荐指数
2
解决办法
2万
查看次数

如何使用Linux获得Touchscreen Rawdata的坐标

我们有一个3米的微触摸显示屏.它通过usb与我的debian系统相连,并被认为是人机界面(hid).我正在尝试访问并推送实时信息......如果它被触及我想知道哪里(x,y)并将它通过netcat传递给另一台主机.

不幸的是,我只能使用原始数据

cat /dev/input/event2 | hexdump
Run Code Online (Sandbox Code Playgroud)

要么 evtest

你得到的hexcode似乎没有记录......

有人知道如何获取这些信息吗?必须有一种从十六进制代码中提取它的方法.不幸的是我不知道如何解释hexcode.我找不到其记录的任何来源......

有没有办法让内核能够实时提供我想要的信息?作为一个解决方案,可能有一个X-Server可以告诉我的解决方案?触摸屏的行为类似于X中的鼠标.我实际上已经尝试通过xlib获取鼠标的x,y位置.但它太慢了,不会告诉我是否有人在接触......

提前致谢!

evtest样本输出:

Event: time 1425319271.595631, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 51
Event: time 1425319271.595631, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 10304
Event: time 1425319271.595631, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 30629
Event: time 1425319271.595631, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 893
Event: time 1425319271.595631, type 3 (EV_ABS), code 49 (ABS_MT_TOUCH_MINOR), value 414
Event: time 1425319271.595631, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: …
Run Code Online (Sandbox Code Playgroud)

linux driver touchscreen raw-input linux-kernel

10
推荐指数
1
解决办法
2万
查看次数

在哪里可以找到从gpusGenerateCrashLog调用堆栈创建的日志?

在我的OpenGL渲染引擎中,当我按下一个开始发出一些新的OpenGL调用的键后,我正在崩溃1帧.

以下是崩溃的调用堆栈,它是一个CVDisplayLink线程.

0   libsystem_kernel.dylib          0x00007fff94d89f06 __pthread_kill + 10
1   libsystem_pthread.dylib         0x00007fff88d3e4ec pthread_kill + 90
2   libsystem_c.dylib               0x00007fff980246e7 abort + 129
3   libGPUSupportMercury.dylib      0x00007fff983a3e5c gpusGenerateCrashLog + 158
4   com.apple.driver.AppleIntelHD5000GraphicsGLDriver   0x000000010f750d4b gpusKillClientExt + 9
5   libGPUSupportMercury.dylib      0x00007fff983a5204 gpusSubmitDataBuffers + 162
6   com.apple.driver.AppleIntelHD5000GraphicsGLDriver   0x000000010f2ac3f2 IntelCommandBuffer::getNew(GLDContextRec*) + 48
7   com.apple.driver.AppleIntelHD5000GraphicsGLDriver   0x000000010f399849 intelSubmitCommands + 171
8   com.apple.driver.AppleIntelHD5000GraphicsGLDriver   0x000000010f3996c2 gldPresentFramebufferData + 142
9   GLEngine                        0x000000010f0ddc81 glSwap_Exec + 97
10  com.apple.GLEngineProfiler      0x000000010d759265 0x10d60b000 + 1368677
11  com.apple.opengl                0x00007fff8ed15ffe CGLFlushDrawable + 66
12  com.apple.AppKit                0x00007fff8846509f -[NSOpenGLContext flushBuffer] + …
Run Code Online (Sandbox Code Playgroud)

opengl macos gpu driver osx-elcapitan

10
推荐指数
1
解决办法
395
查看次数

替换Android设备上的默认GPS信号提供程序

我想用我自己的坐标源替换Android手机上的默认GPS位置提供程序.

是否有任何层/ API /库/提供程序可以替换为我的信号提供程序而不是内置硬件GPS,或从外部插件读取?它应该允许所有依赖GPS服务的应用程序接收我的信号而不是GPS.理想情况下,替换应该仍然能够访问GPS信号(用于比较/校正或在两个提供者之间切换).

我正在考虑实现我自己的LocationManager,并在系统中注册它(作为可选或默认),如果可能的话.但在这个阶段,我仍在努力寻找可能和合适的东西.

谢谢你的任何指示.

gps android driver

9
推荐指数
1
解决办法
4097
查看次数

如何在Eclipse中设置JDBC?

我有eclipse和j开发人员,我对eclipse更感到满意.我想知道如何在eclipse中设置JDBC驱动程序,我从oracle.com下载了一个驱动程序但是当我点击'external jars'后我浏览时它没有出现在任何地方在"库"选项卡中的"java构建路径"中.我的数据库是Oracle Express版.

有没有关于java应用程序开发的优秀pdf或教程?我想创建一个前端应用程序,我将数据输入到字段中并插入到DB中,并使其在我们输入例如ID时也可以检索信息.

这需要什么材料?我不想学得太深,但我想在这个过程中学习(这不是我想在本月实现的项目)所以我猜我需要1.一本书awt,swing classes 2.我需要设置这个JDBC的东西,我不明白如何在eclipse中启动和运行,我输入代码它给了我错误.3.一本关于如何将java连接到oracle express edition DB的书.我有JDK 1.7.0.0.3

提前致谢(我是初学者;))

eclipse installation jdbc driver

9
推荐指数
1
解决办法
9万
查看次数

在Linux内核模块中实现轮询

我有一个简单的字符设备驱动程序,允许您从自定义硬件设备读取.它使用DMA将数据从设备的内存复制到内核空间(然后再复制到用户).

read调用非常简单.它启动DMA写入,然后等待等待队列.当DMA完成时,中断处理程序设置一个标志并唤醒等待队列.需要注意的重要一点是,我可以随时启动DMA,甚至在设备提供数据之前.DMA引擎将等待,直到有数据要复制.这很好用.我可以在用户空间中实现一个简单的阻塞读取调用,它的行为与我期望的一样.

我想实现,poll以便我可以select在用户空间中使用系统调用,允许我同时监视此设备和套接字.

我能找到的大部分资源poll都说:

  1. 调用poll_wait可能表示状态发生变化的每个等待队列
  2. 返回一个指示数据是否可用的位掩码

第二部分让我感到困惑.我见过的大多数示例都有一种简单的方法(指针比较或状态位)来检查数据是否可用.在我的情况下,除非我启动DMA,否则数据将永远不可用,即使我这样做,数据也不会立即可用(在设备实际拥有数据和DMA完成之前可能需要一些时间).

那怎么实现呢?该poll函数是否应该实际启动DMA以使数据最终可用?我想这会破坏我的read功能.

linux select driver linux-device-driver linux-kernel

9
推荐指数
1
解决办法
6031
查看次数