首页 文章
  • 1 votes
     answers
     views

    gspca编译错误/覆盆子pi raspbian

    我有摄像头Veo Stingray Ox545:8333(供应商和产品ID) 我有Raspberry Pi模型A uname -r = Linux raspberrypi 4.1.15#830 Tue Dec 15 16:58:28 GMT 2015 armv6l GNU / Linux gspca驱动程序来自http://mxhaard.free.fr/spca5xx.html列出这个网络摄...
  • 11 votes
     answers
     views

    为什么在Linux内核中繁忙的循环时,为了TOO,进程被剥夺了CPU的权限?

    乍一看,我的问题可能看起来有点微不足道 . 请耐心等待,并完整阅读 . 我在Linux内核模块中发现了一个繁忙的循环 . 因此,其他进程(例如sshd)在很长一段时间内(例如20秒)没有获得CPU时间 . 这是可以理解的,因为我的机器只有单个CPU,繁忙循环没有机会安排其他进程 . 只是为了实验,我在忙循环中的每次迭代后添加了schedule() . 即使这会使CPU保持忙碌,但仍应让其他进程运行...
  • 0 votes
     answers
     views

    UNIX系统调用取消设置页表中特定页面的引用位?

    我试图通过破解页面表中的引用位来计算特定页面集的命中数 . 是否有任何系统调用或任何其他方法来取消设置引用位(在类UNIX系统中)? 页表是计算机操作系统中的虚拟存储器系统用于存储虚拟地址和物理地址之间的映射的数据结构 . (https://en.wikipedia.org/wiki/Page_table) 在类似unix的系统中,每个页表项都有一点名称,称为"reference&qu...
  • 0 votes
     answers
     views

    插入带有insmod的模块后没有输出到终端

    我正在关注以下tutorial,试图学习如何开发设备驱动程序,在第2章中,重点是开发一个工作模块并将其插入到内核中 . 我使用了以下代码(hello.c): #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> MODULE_LICENSE("Dual ...
  • 1 votes
     answers
     views

    如何在QEMU上构建和运行Linux内核模块?

    我的老师给了我一个linux内核vmlinuz-3.17.2和一个rootfs.ext2,可以加载到qemu . 他要我构建一个最简单的内核模块,打印一个hello world作为家庭作业 . 首先,我下载内核源代码并运行make oldconfig 其次,我将配置设置为PREEMPT并且没有modversions(根据在qemu中运行的vmlinuz的uname -a),然后进行准备 ...
  • 1 votes
     answers
     views

    内核中的物理内存分配

    我正在写一个内核模块,它将触发和外部PCIe设备从我的内部存储器读取数据块 . 为此,我需要向PCIe设备发送指向我想要发送的数据的物理内存地址的指针 . 最终,这些数据将使用 write() 函数(用户空间)和 copy_from_user() (内核空间)从用户空间写入内核 . 据我了解,我的内核模块将看到的地址仍然是虚拟内存地址 . 我需要一种方法来获取它的物理地址,以便PCIe设备可以找到...
  • 0 votes
     answers
     views

    在Linux中对periodicaly gpio-pins进行采样的最佳方法是什么?

    我喜欢采样一个由我的Raspberry Pi的引脚生成的信号 . 我的经验是高采样率很难实现 . 首先,我用Python做了一个快速的方法(超慢) . 然后我将bcm2835.h lib更改为ANSI C.我获得了显着的性能提升 . 现在我问自己一个问题:如何在Linux下进行最佳采样? 我的尝试是在用户空间进行的 . 但是,切换到内核空间是什么?我可以写一个简单的字符设备内核模块 . 在该模块中...
  • 0 votes
     answers
     views

    Linux的;内核中断会影响CPU负载

    我已经实现Derek Molloys Loadable Kernel Module(见清单4) . 它使用内核模块在GPIO上升沿注册内核中断 . 因此,每当某个GPIO引脚出现上升沿时,就会发生中断(ISR) . 中断中唯一发生的事情就是计算一个整数 . 我在beaglebone上运行debian(Linux beaglebone 3.8.13-bone47) . 我将一个方波信号放到GPIO上...
  • 0 votes
     answers
     views

    在linux中通信和同步内核和用户空间的最佳方式

    我的目标是从内核记录很多活动 . 为此,我需要写入基于磁盘的文件系统 . 因此,我实现了一个字符设备驱动程序,以及一个从该虚拟设备读取的用户空间进程 . 驱动程序将数据复制到用户空间缓冲区,用户进程将其写入文件 . 我的问题是如何同步数据 . 我开始在fifo的内核实现中使用kfifo . 因此,无论我想记录哪里,我都使用kfifo API将数据复制到fifo中 . 虚拟设备驱动程序从fifo读取...
  • 2 votes
     answers
     views

    如何从linux内核生成稳定的37kHz GPIO触发器?

    我现在有一个微控制器负责处理红外TX载波产生,但我开始想知道我是否可以处理它,并在linux端做这项工作 - 从而降低了嵌入式系统的成本 . 我正在运行飞思卡尔i.mx233(454MHz ARM9),如果我通过 /dev/mem 直接访问注册表,我可以实现相当稳定的5MHz触发到GPIO引脚 . 由于我需要37kHz,我开始寻找降低速度的方法,但似乎至少 nanowait() 对于这个目的来说太...
  • 0 votes
     answers
     views

    在中断检测时向用户空间发送异步事件

    我在网上看到你无法在用户空间中注册中断 . 做类似事情的方法是 - 1)让Linux内核模块/驱动程序在中断检测上向用户空间发送异步事件2)在用户空间中有一个线程,在该设备节点上轮询该事件 . 我编写了一个内核模块,用于在GPIO引脚的上升沿注册事件,现在我想将它传达给用户空间 . 任何人都可以告诉我如何 - 1)从内核空间向用户空间发送事件2)在用户空间中创建一个线程来轮询该事件 谢谢!
  • 1 votes
     answers
     views

    无法从内核模块中的GPIO读取值

    我正在创建一个内核模块设备驱动程序来使用GPIO . 我花了很多时间但仍然无法弄清楚GPIO阅读有什么问题 . Setting and clearing GPIO works perfectly. 这是我的头文件,包含所有常量和宏 . /*! This means pin HIGH, true, 3.3volts on a pin. */ #define HIGH 0x1 /*! This mea...
  • 2 votes
     answers
     views

    Linux内核模块发送信号进行硬件中断处理

    我正在使用BeagleBone Black,它具有可通过内核模块配置的gpio引脚 . 在教育方面,我正在开发一个能够在gpio状态变化上附加中断的模块 . 我的想法是我在Python中有一个接口,它将pid发送到设备(内核模块),从而等待来自内核空间的硬件中断信号以执行某个动作(方法) . 所以逻辑如下: Python进程设置一个可在信号SIGIO上调用的处理函数 Python进程将他的...
  • 3 votes
     answers
     views

    Mac OS X内核扩展CPU选择

    我正在阅读英特尔性能计数器监视器(http://software.intel.com/en-us/articles/intel-performance-counter-monitor-a-better-way-to-measure-cpu-utilization)附带的模型特定寄存器(MSR)驱动程序内核扩展的源代码 . 由于MSR /性能计数器的独立副本存储在不同的CPU上,因此需要指定要读取的...
  • 1 votes
     answers
     views

    尝试使用KVM和内核

    我想试验KVM模块和内核,例如,如果我改变链表的实现(在/include/linux/list.h中定义)等,它是如何预先形成的 . 这不是我真正做的,但足以解释我的问题 . 所以我所做的是跟随this tutorial并且在运行 make sync; make 之前我刚刚在第500行的 virt/kvm/kvm_main.c 中插入了一行(就在使用了list_add宏之后)我添加了 printk...
  • -1 votes
     answers
     views

    如何将rpm包固定到当前内核?

    我需要构建一个包含内核模块的rpm(该模块将被添加到目录/ lib / modules /%current_kernel / extra /)我遇到的问题是如果我的软件包将安装内核的linux机器是之后更新,模块没有转移到新的内核/ lib / modules /%new_kernel / extra /所以我想知道是否有一种方法来构建具有依赖于当前内核的rpm,以便我的包是在内核升级期间卸载或重...
  • 2 votes
     answers
     views

    如何在嵌入式Linux(ARM)中通过SPI连接的Flash进行读/写?

    我正在使用Yocto和meta-atmel来构建嵌入式Linux(4.4.19) . 我的主板是一个通过SPI连接的Flash . 我尝试了几种方法来写它 . 但他们都失败了 . 如何读/写数据? 一些信息: Flashtype 4Mbit:s25fl164k(http://www.farnell.com/datasheets/1756778.pdf) 通过设备树包含: spi1: spi@f80...
  • 1 votes
     answers
     views

    从Linux内核/内核模块“附加”用户空间进程

    我想每60秒修改一个特定进程的虚拟到物理地址映射(即页表) . 我知道如何修改页表,如何相应地刷新缓存和TLB,以及如何利用workqueue每60秒调用一次我的函数 . 但是,我不确定如何从内核或内核模块“附加”到目标进程,假设目标进程没有启动任何系统调用 . 通过“附加”,我的意思是目标进程的行为与遇到中断(例如页面错误)时的行为类似,并且在保存上下文的情况下立即执行内核 . 那么可以这样做吗...
  • 4 votes
     answers
     views

    Android和内核模块

    所以 - Android Build 在一个简化的Linux系统之上 . 大多数方便的实用程序都缺失了,但所有基础知识都在那里 . 我可以调用insmod和rmmod . 没问题 . 但内核模块和固件文件驻留在哪里?我找不到任何东西 . 标准发行版中没有/ lib / modules . 问题:我需要模块 . 当然不希望将对世界上每个usb设备的支持编译到linux-kernel中 . 我应该把...
  • 8 votes
     answers
     views

    内核模块Init和Exit函数的调用顺序错误

    我'm making a very simple hello world kernel module and getting some crazy behavior. This worked until I upgraded to kernel 3.3.8 and now it... Well, it'在退出时调用 init 函数,在初始化时调用 exit 函数 . 我确保我的名字是正确的 // ...
  • 5 votes
     answers
     views

    insmod无法插入一个非常简单的模块

    我正在尝试编译并将模块插入到我的内核中,但我一直收到此错误: insmod: error inserting 'hello.ko': -1 Invalid module format 我在这里按照本教程中描述的步骤进行操作:http://www.cyberciti.biz/tips/compiling-linux-kernel-module.html . 一切似乎都有意义和有效 . 我得到了我的...
  • 6 votes
     answers
     views

    Linux内核模块(* .ko)内核之间的兼容性

    我有一个简单的内核对象,我为内核内存探测而构建 . 如果我在我的64位Ubuntu(3.2)机器上构建它,它在该机器上工作正常 . 但它不会在我的64位Ubuntu(3.9)机器上进行insmod . 反之亦然 . 如果我尝试在内核上运行它而不是我构建它的那个,它会给我一个“-1无效的模块格式”错误 . 我认为insmod将动态链接到导出的符号表,导出的符号表在内核修订版之间不会发生变化 . (...
  • 0 votes
     answers
     views

    journalctl与其他所有消息一起更新

    我正在研究我的第一个内核模块 . 我已经在Linux内核模块编程指南中完成了一些练习,但这是我的第一个没有任何指导的练习 . 当我使用printk或pr_err宏打印消息时,在我打印另一条消息之前,journalctl没有赶上 . 例如 int init_module() { pr_err("This is a message"); } void cleanup_mo...
  • 0 votes
     answers
     views

    无法使用modprobe实用程序插入模块

    我试图使用modprobe实用程序加载一个hello world内核模块,但是我收到错误“FATAL:Module hello.ko not found error” . 模块路径位于/ lib / modules / uname-r中 . 我能够构建和创建.ko文件并使用insmod插入,但不能使用modprobe . 请澄清modprobe和insmod实用程序之间的区别
  • 7 votes
     answers
     views

    insmod错误:插入'./hello.ko':-1无效的模块格式“

    我刚刚制作了我的第一个驱动模块,跟随LDD3的hello world模块 . 但遗憾的是遇到了这个错误: insmod: error inserting './hello.ko': -1 Invalid module format. 我在Ubuntu 11.04和我的环境中这样做: $ uname -r 2.6.38-8-generic 我得到这样的内核源代码: sudo apt-cache ...
  • 1 votes
     answers
     views

    可装入的内核模块无法在不同的计算机上正确编译

    我正在尝试为ARM架构制作可加载的内核模块 . 例如,我做了简单的hello.c #include <linux/module.h> /* Needed by all modules */ #include <linux/kernel.h> /* Needed for KERN_INFO */ static int __init hello_sta...
  • 8 votes
     answers
     views

    将驱动程序编译为内核的一部分,而不是作为模块

    我正在尝试为嵌入式设备创建简约的Linux . 这意味着编译内核和驱动程序的必要性 . 一个驱动程序由它的创建者直接为设备的板写入,因此它不是存储库 . 它可以编译为内核模块 . 但是由于Linux的不可变性以及对内存使用极少的要求,我不想使用模块 . 我想要内核中内置的所有驱动程序 . 所有提供内核的驱动程序都是这样设置的 . 所以我的问题是如何将一个特殊的驱动程序编译到内核? 所有搜索都没有为...
  • 1 votes
     answers
     views

    在linux中编译内核模块时出现问题

    我写了一个简单的hello world内核模块 . make文件由我编写如下: obj -m += hello.o KDIR: /usr/src/linux-headers-3.2.0-21-generic-pae all: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules clean: rm -rf *.o *.ko *.mod.* ...
  • 0 votes
     answers
     views

    内核模块(LKM)配置文件

    我正在修改用户空间库,因此可以在内核模块中使用它 . 原始库需要来自用户的一些数据(非常多),因此它从配置文件中读取它们 . 我发现不建议从内核模块读取配置文件,并且许多答案都解决了使用chardevice或sysfs的问题 . 但是,我不明白chardevice如何帮助我这样做 . 我不想只是为了读取文件而调用用户空间程序,我发现它不正确 . 我不明白什么是sysfs . 我不能使用模块参数,插...
  • 2 votes
     answers
     views

    为vmware构建一个最小的linux内核

    我正在为vmware机器构建一个linux内核,用于学习内核开发(理解和使用基本内核API来编写内核代码) . 如果我想要一个最小的内核,我可以安全关闭哪些配置选项?

热门问题