首页 文章
  • 0 votes
     answers
     views

    linux usb驱动程序:探测已经插入的设备

    我正在写一个Usb驱动程序,我有一个问题 . 当我手动插入已插入设备的驱动程序时,不会调用探测功能 . 只有在断开设备并重新插入设备后才会调用它 . 我希望这样做,以便当我使用已插入的设备启动电脑时它可以正常工作 . 有人可以帮帮我吗?
  • 3 votes
     answers
     views

    Linux USB驱动程序探针()问题

    我目前正在为Seowon SWU-3220A WiMAX USB调制解调器开发内核模式USB驱动程序 . 它是一个复杂的设备(插入后它在系统中显示为USB CDROM,驱动程序需要将其切换到调制解调器模式) . 我的问题是我的驱动程序中的probe()函数永远不会被调用 . 我认为这是因为操作系统使用标准的USB大容量存储驱动程序而不是我自己的 . 我初始化驱动程序如下: #define GDM7...
  • 2 votes
     answers
     views

    怎么办“make drivers / usb / storage / usb-storage.ko”

    如何从内核源代码树编译usb-storage.ko(仅)? 运行内核版本: 2.6.35-22-generic (uname -r) 来源版: linux-2.6.35 执行 modprobe usb-storage 会出现以下错误 . FATAL: Error inserting usb_storage (/lib/modules/2.6.35-22-generic/kernel/drive...
  • 0 votes
     answers
     views

    platform_device_register和usb ehci驱动程序

    我试图了解linux如何在我的cambria(ARM)板上初始化USB EHCI控制器 . linux内核中有一些文件: arch/arm/mach-ixp4xx/cambria-setup.c 并且USB EHCI控制器有一些定义作为平台设备: static struct platform_device cambria_usb0_device = { .name = &q...
  • 0 votes
     answers
     views

    难以在USB驱动程序中 Build 批量传输

    我正在尝试使用 BULK endpoints 发送 BULK 数据 . 但每次我提交 URB 时,它都不会触发 URB Callback 功能,直到我断开设备 . 一旦我断开连接,它就会触发回调抛出 EPROTO 错误 . 有人遇到类似的情况?我做错了什么吗?我确定我的设备和数据线没问题 . 这是我的代码 . 请建议可能的解决方案 static void urb_received(struct ...
  • 0 votes
     answers
     views

    如何知道USB设备的连接速度?

    是否有任何信息字段或描述符可用于获取USB设备的速度(低速或全速或高速)?
  • 1 votes
     answers
     views

    如何在Linux上模拟中断风暴或实时锁定?

    Background: 我正在开发一个工具,它可以启动Linux的自定义构建并引导到基于QT的桌面,用于基于x86的机器 . 我的自定义Linux从USB运行,当它在连接了某些品牌声卡的机器上启动时,我的工具运行到具有大量中断的实时锁定情况 . 我怀疑它与APIC驱动程序的一些问题,但系统渲染无用,我必须关闭系统 . My Question: 我想通过使用内核驱动程序或模块来模拟相同的情况 . 我...
  • -2 votes
     answers
     views

    Ubuntu没有认识到内置的驱动程序,替代方案?不允许连接以太网[暂停]

    规格:REALTEK RTL8111 / 8168/8411 EXPRESS GIGABIT以太网控制器ACER ASPIRE DESKTOP,第7代智能核心,i5-7400,2TB HDD UBUNTU 14.04 首先让我先说我无法将其连接到以太网 . 我在军队里,我住在营房里,他们只有天花板上有这些路由器的wifi . 我买回了一段时间后想要试用Linux并在尝试将Ubuntu放在上面时意外...
  • 1 votes
     answers
     views

    在virtio中,为什么guest notifier和host notifier分别使用ioeventfd和irqfd?

    我知道在virtio中,当guest虚拟机尝试通知主机时,它会写入设备io地址,这会导致vm-exit并被虚拟机管理程序捕获 . 写操作将发信号通知eventfd结构,然后唤醒睡眠的vhost_worker线程以处理virtqueue中的数据包 . 当主机尝试通知guest虚拟机时,它还使用eventfd来触发中断注入并需要vm-exit . 我的问题是:这两个过程是否必须如此复杂?为什么我们不将...
  • 1 votes
     answers
     views

    使用SATA HDD作为块设备

    我对Linux内核完全不熟悉,所以我可能会混淆一下 . 但任何建议都会对我有帮助;) 我有一个通过PCIe SATA卡连接的SATA硬盘,我尝试在块设备上使用 read 和 write . 我还希望将数据电源中断保存在硬盘上 - 而不是缓存 . 最后,我必须分析每个linux堆栈层中的松散时间 . 但是一步一步 . 目前我尝试使用* O_DIRECT *设备 open . 但我真的不明白我在哪...
  • 3 votes
     answers
     views

    '/dev'中的文件如何与Linux的设备模型匹配? [关闭]

    这是我对开放阅读/写作文件的理解 . 在应用程序层,我可以调用 fopen() 函数 . fwrite() 函数将调用系统调用 open() . 操作系统收到 open() 调用后,会将命令传递给VFS(虚拟文件系统) . VFS查找文件名,包括所需的任何目录,并进行必要的访问检查 . 如果这是在RAM缓存中,则不需要磁盘访问 . 如果不是,则VFS向特定文件系统发送读取请求,该请求可能是EXT...
  • 3 votes
     answers
     views

    Linux设备驱动程序字符设备“子目录”

    我正在为一个提供几个独立“数据通道”数据的硬件编写Linux设备驱动程序 . 系统上可能存在多个设备,每个设备提供一组通道,这些通道将表示为基本上独立的字符设备 . 我想知道如何在/ dev中创建表达层次关系的设备节点,例如: /dev/mydevice0/chan0 /dev/mydevice0/chan1 /dev/mydevice0/chan2 /dev/mydevice0/chan3 /...
  • 2 votes
     answers
     views

    设备驱动程序中的主要和次要数字

    我读了一些关于主要和次要数字的材料,并对此有疑问 . 我的理解: 由于register_chrdev_region(), 驱动程序有一个与之关联的主要编号 . mknod / dev / hello1 -c 123 32将创建主编号为123的设备文件,当应用程序打开/ dev / hello1时,它会搜索与/ dev / hello1相同的主编号的驱动程序 . 多个设备文件可以与一个驱...
  • 6 votes
     answers
     views

    设备文件和设备驱动程序之间的区别

    我目前正在阅读Linux模块编程指南,我偶然发现了两个令人困惑的术语 - 设备文件和设备驱动程序 . 在看完这些条款后,我遇到了以下情况 - 设备驱动程序是一种操作或控制特定类型设备的软件 . 设备文件是设备驱动程序的接口,它出现在文件系统中,就像它是普通文件一样 . 在类Unix操作系统中,这些通常位于/ dev目录下,也称为设备节点 . 我想知道的是 - 1)设备文件是用户空间程序和设备驱动程...
  • 2 votes
     answers
     views

    阻止设备驱动程序从用户应用程序读/写

    我正在尝试实施"simple file-system"以获取我的个人经验 . 为此,我创建了一个块设备驱动程序,我将以块为单位执行读/写操作 . 现在我的问题是如何从用户应用程序对块设备执行 open, read, write and close 操作 . 我实际上正在寻找的是一个函数,我可以打开块设备 /dev/sbd 并返回 struct block_device ,如果成...
  • 1 votes
     answers
     views

    DMA缓冲区大小是否应与UART FIFO大小相同?

    我在Linux平台上运行的omap4460熊猫板上为UART编写了驱动程序 . 我在UART中启用了FIFO模式的DMA . 我的用户应用程序将100字节的数据从用户空间传输到内核缓冲区(DMA缓冲区) . 一旦DMA通道被使能,来自DMA缓冲区的数据就被复制到FIFO,然后传输到UART的TSR . 由于我的FIFO大小为64字节,因此只有64字节被传输到TSR . 如何将剩余字节从DMA缓冲区...
  • 2 votes
     answers
     views

    谁的责任是释放sk_buff

    使用 netlink_kernel_create() 创建netlink套接字时,函数指针作为参数传递给此函数,该函数在此套接字上收到消息时调用 . 此回调函数接收 sk_buff 作为参数,其中包含收到的消息 . 我的问题是,谁负责释放这个 sk_buff ? 示例代码 #include <linux / module.h> #include <net / sock.h&gt...
  • 6 votes
     answers
     views

    通过mmap提供几个内核缓冲区

    我有一个内核驱动程序,它在内核空间中分配几个缓冲区(物理上连续,与页面边界对齐,并由整数页组成) . 接下来,我需要让我的驱动程序能够将一些缓冲区映射到用户空间(当然,每个mmap()调用一个缓冲区) . 驱动程序为此目的注册单字符设备 . 用户空间程序必须能够告诉内核它想要mmap的缓冲区(例如,通过指定其索引或唯一ID,或先前通过ioctl()解析的物理地址) . 我想通过使用mmap()的o...
  • 0 votes
     answers
     views

    刷新USB驱动程序中的中断 endpoints 上的输入字节

    我正在Linux中编写USB驱动程序 . 小工具上有两个中断 endpoints .. 以下是数据包格式: |=========================================================== | RequestId || RequestId || Command || Data... | | Lsb || Msb ...
  • 0 votes
     answers
     views

    将主机物理地址映射到kvm guest

    我的主机中有一个物理地址(它是一个pci栏地址),我希望我的kvm guest虚拟机中的驱动程序可以访问该地址 . 什么是最好的方式,我可以做这样的事情? 如果它是一个linux进程而不是kvm guest,我会在我的进程中打开mmap / sys / bus / pci / devices / * / resource0,在kvm guest中我能做些什么吗?
  • 2 votes
     answers
     views

    从Linux中的内核空间获取进程列表

    如何从内核模块获取所有对 process_name -> process_pid (用户空间和内核空间)的列表?
  • 2 votes
     answers
     views

    Raspberry Pi(Raspbian)上的监控模式

    按照以下两条说明,我尝试在我的覆盆子pi上使用我的wlan-usb棒进入监控模式: https://github.com/hexameron/rtlwifi https://stackoverflow.com/questions/16365487/kali-linux-on-raspberry-pi-wlan0-monitor-mode 我正在使用以下wlan-stick: Edima...
  • 3 votes
     answers
     views

    Linux USB驱动程序:中断URB

    我想我实际上有两个不同的问题,但我认为它们足以将它们包括在内 . 上下文是Linux USB设备驱动程序(不是用户空间) . 发送请求URB后,如果调用 complete 回调,如何收到响应? 如何将中断URB用于单个请求/响应对,而不是实际的连续中断轮询(如预期那样)? 因此,对于某些背景,我正在为Microchip MCP2210一个带有GPIO的USB-to-SPI协议转换器(U...
  • 2 votes
     answers
     views

    Linux设备驱动程序通过USB发送和接收音频

    我正在尝试通过USB从我的嵌入式Linux设备向/从Windows主机发送/接收音频 . 据我所知,通过USB发送音频有2种协议 - USB音频等级1和2(UAC1和UAC2) . 我在这里解释了它们:http://www.thewelltemperedcomputer.com/HW/USB_Audio.htm . 我目前使用Linux中现有的UAC1设备驱动程序从主机PC获取音频 . 这个对我...
  • 0 votes
     answers
     views

    键盘上按下每个键后usb设备断开连接

    我是USB的初学者 . 我想学习usb驱动程序 . 我正在使用现有的usbkbd代码在键盘上测试代码 . 目前,我的目的只是在每个按键时调用完整的回调 . 我从system和depmod ed中删除了usbkbd,hid-generic . 在每个按键上,我可以在dmesg中看到设备断开连接,探测器被调用但没有回调 . 输入:dmesg: [ 5846.796941] usb 2-2: new l...
  • 3 votes
     answers
     views

    FreeBSD中的USB HID设备驱动程序开发

    我目前正在为 FreeBSD system 开发HID设备的驱动程序 . 想法是驱动程序通过控制 endpoints 写入设备的寄存器 . 从那时起,设备根据所输入的数据进行操作 . 由于我刚刚开始使用驱动程序,我正在遵循一本指南(我会在这里命名,但我不知道我是否可以?) . 这本书解决了 USB ULPT (Printer) driver ,解释了 USB device 的基本驱动因素 . 然而...
  • 2 votes
     answers
     views

    Linux USB:通过控制 endpoints 的请求/响应?

    我正在尝试为读卡器开发内核驱动程序 . 我没有为linux内核开发的经验,也从未编写过驱动程序;自从我编写任何C代码以来,它已经过了15年 . 使用互联网上的许多资源和内核源代码,我拼凑了一个驱动程序 . 具体来说,我现在正在努力通过控制 endpoints 与设备进行请求/响应 . 我的理解是控制 endpoints 具有USB规范中定义的功能,并且供应商在该 endpoints 上支持设备特定...
  • 0 votes
     answers
     views

    如何从Linux设备驱动程序中的USB endpoints 接收连续数据

    我正在为Ubuntu 16.04中的数据采集设备编写USB设备驱动程序 . 数据采集设备目前在Windows中工作,制造商只提供Windows的驱动程序,我需要它在Linux中工作 . 因此,为了进行逆向工程,我在Windows中使用Wireshark捕获了数据 . 我想出了所有设置urb,我可以将数据发送到数据采集设备并且运行良好,但问题是接收数据 . 似乎有来自 endpoints 1和3的连...
  • 3 votes
     answers
     views

    EHCI USB控制器和USB设备(小工具)模式

    在SoC我正在研究USB EHCI兼容控制器 . 所有EHCI控制器都可以作为主机或设备吗? EHCI Linux驱动程序是否涵盖此类控制器的设备/小工具模式?
  • 0 votes
     answers
     views

    用于SAM7串行的嵌入式Linux USB驱动程序

    我有一台使用在Linux下运行的Atmel处理器的设备 . 对于此设备,我想使用AT91SAM7处理器连接远程设备 . 这个远程设备被配置为通过USB进行伪串行,在Windows下这可以正常工作并显示为“AT91 USB到串行转换器(COM3)” . 在Linux下,设备出现在/ dev中,如下所示: crw-rw---- 1 root root 253, 7 Aug 3...

热门问题