首页 文章
  • 0 votes
     answers
     views

    在USB内核空间驱动程序中运行供应商命令

    我正在为Linux编写内核模式usb驱动程序 . 我有一个硬件,其中包含开关,LED,条形LED,批量数据传输等 . 在其规格中,它解释了您可以查询固件以读取板上各个硬件的状态 . 他们提供了一些名为Vendor Commands的东西 . 我无法弄清楚如何使用linux内核USB接口发送供应商命令 . 对于某些单独的硬件(如LED和条形图),只有一种方法可以通过使用供应商命令来了解状态 . 没有...
  • 0 votes
     answers
     views

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

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

    现代Linux机箱可以拥有的理论最大开放TCP连接数是多少

    假设硬件具有无限的性能,Linux机箱是否支持> 65536个开放的TCP连接? 据我所知,短暂端口的数量(<65536)限制了从一个本地IP到一个远程IP上的一个端口的连接数 . 元组(本地IP,本地端口,远程IP,远程端口)是唯一定义TCP连接的东西;这是否意味着如果多个参数中的一个以上是免费的,则可以支持超过65K的连接 . 例如连接到多个本地IP的多个远程主机上的单个端口号 ....
  • 229 votes
     answers
     views

    bool是原生C型吗?

    我注意到Linux内核代码使用bool,但我认为bool是C类型 . bool是标准C扩展(例如,ISO C90)还是GCC扩展?
  • 4 votes
     answers
     views

    Linux内核编程:试图让vm_area_struct-> vm_start崩溃内核

    这是在学校的作业,我需要使用系统调用确定系统上的进程大小 . 我的代码如下: ... struct task_struct *p; struct vm_area_struct *v; struct mm_struct *m; read_lock(&tasklist_lock); for_each_process(p) { printk("%ld\n", p-&g...
  • 7 votes
     answers
     views

    为什么在保护模式下启用A20线路?

    在Linux 0.01的引导加载程序的汇编源文件中,启用了A20行 . 从 boot/boot.s : | that was painless, now we enable A20 call empty_8042 mov al,#0xD1 ... 之后,引导加载程序跳转到保护模式 . 在实模式下,启用A20线路可以为我们提供64 KiB - 16字节的地址空间扩展 .在保护模式下...
  • 1 votes
     answers
     views

    当程序开始运行时,所有通用寄存器的值是多少? [重复]

    可能重复:程序启动时的默认寄存器状态是什么(asm,linux)? 我知道%esp和%eip应该由OS内核设置为正确的值,以便程序可以运行,但其他寄存器包括%ebp,%eax,%ebx,%ecx,%edx,%esi,%edi . OS内核是否在程序运行之前初始化它们?他们应该有什么 Value ? What's the value should %esp have when a progra...
  • 2 votes
     answers
     views

    在linux上安装FTDI设备驱动程序[关闭]

    我试图在ubuntu 10.04上安装FTDI的虚拟COM驱动程序(http://www.ftdichip.com/Drivers/VCP/Linux/ftdi_sio.tar.gz) . 我下载了文件并尝试编译它 . 但它显示如下错误: 谁能告诉我原因?我安装了linux内核开发包 以下是make的输出 . 由于尺寸限制,我删除了一些零件 sudo make gcc -Wall -D__KERN...
  • 0 votes
     answers
     views

    如何修补Linux内核?

    我遇到了严重的问题 .我手里拿着什么: Linux内核2.6.29包含Android Eclair补丁和一些特定于板的补丁(如 .patch 文件) . Linux内核2.6.32与Android Froyo补丁 . 我想要实现的目标: 我想将 board specific patches 与我的Linux内核2.6.32与Android Froyo补丁合并 . 我无法知道如何做到...
  • 0 votes
     answers
     views

    内核模块(LKM)配置文件

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

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

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

    Arm Cortex A-9内核中的“零分割”在哪里

    我正在研究零分割的内核源代码(2.6.35) . 我在用户空间程序中插入了零分割并且所有线程都停止了 . 所以我想知道Arm Cortex A-9内核的“零分割”在哪里? 我无法找到任何陷阱.... 谢谢
  • 3 votes
     answers
     views

    杀死内核中的进程

    我正在研究一个研究项目,该项目试图在内核中找到一些异常/恶意状态/输入,并阻止内核线程立即进一步执行 . 例如,进程发出带有恶意参数的系统调用,并且其内核线程执行它 . 在函数 Foo() 的中间,我们使用探测器来查找该参数是恶意的 . 并且该函数没有返回值( void ) . 现在我们需要终止这个进程及其相应的内核部分,并释放它使用的资源(锁等) . 如何在Linux / Android内核中实...
  • 49 votes
     answers
     views

    Linux内核如何知道在哪里查找驱动程序固件?

    我正在Ubuntu下编译一个自定义内核,我遇到了我的内核似乎不知道在哪里寻找固件的问题 . 在Ubuntu 8.04下,固件与内核版本绑定的方式与驱动程序模块相同 . 例如,内核2.6.24-24-generic将其内核模块存储在: /lib/modules/2.6.24-24-generic 及其固件: /lib/firmware/2.6.24-24-generic 当我根据“Alterna...
  • 1 votes
     answers
     views

    在Jenkins环境中编译时附加到内核版本的“脏”字符串

    我知道,如果git local depot中有任何更改而不是git repo(在本地修改但未提交到git repo),那么脏字符串将附加到内核版本字符串 . 但是我的问题是,我们不是在git中维护我们的linux内核代码,而是在perforce中维护 . 最近我根据我的要求检查了linux内核的一些变化 . 我在我的本地设置中编译了代码,它成功了但是在Jenkins环境中,内核版本附加了“脏”字符...
  • 79 votes
     answers
     views

    在Linux内核模块中读/写文件

    我知道所有关于为什么不应该从内核读/写文件的讨论,而是如何使用/ proc或netlink来做到这一点 . 无论如何我想读/写 . 我也读过Driving Me Nuts - Things You Never Should Do in the Kernel . 但是,问题是2.6.30不导出 sys_read() . 相反,它包含在 SYSCALL_DEFINE3 中 . 因此,如果我在我的模块...
  • 1 votes
     answers
     views

    由于奇怪的模块循环,交叉编译的内核无法启动

    我正在尝试使用vortexX86DX处理器为嵌入式电路板准备优化的工具链/操作系统 . 我的电脑架构是x86_64 . 所以我开始使用cross-NG编译交叉编译器 . 然后使用该编译器编译了使用Xenomai(用于rt内核模块)修补的linux 2.6.38.8 . 内核计划取代当前内核 . 目前,debian 6.0.4 i386的默认内核已安装在板上 . 编译的内核无法启动此错误: requ...
  • 66 votes
     answers
     views

    在Linux内核中使用浮点

    我正在阅读Robert Love的“Linux内核开发”,我看到了以下段落: 否(轻松)使用浮点当用户空间进程使用浮点指令时,内核管理从整数模式到浮点模式的转换 . 使用浮点指令时内核必须做的事情因架构而异,但内核通常会捕获陷阱,然后启动从整数到浮点模式的转换 . 与用户空间不同,内核不具备对浮点的无缝支持,因为它无法轻易捕获自身 . 在内核中使用浮点需要手动保存和恢复浮点寄存器以及其他可能的杂...
  • 3 votes
     answers
     views

    我可以在Linux内核中调用任何GCC内置函数吗?

    GCC的一些内置函数处理浮点值:http://gcc.gnu.org/onlinedocs/gcc-4.2.4/gcc/Other-Builtins.html 由于Linux内核默认不支持浮点运算,这是否意味着我不能在Linux内核模块中使用这些内置的GCC函数? 如果我做了一些这样的事情(假设我在x86系统上),我是否能够使用它们: kernel_fpu_begin(); float x = ...
  • 0 votes
     answers
     views

    编译模块的数量会影响RAM中Linux内核的大小吗?

    当我编译Linux内核时,我编译的驱动程序和模块的数量肯定会影响生成的二进制文件的大小 . 但它在加载到内存时是否也会影响内核的大小? 我的意思是,当我编译我的硬件不需要的驱动程序时,内核会忽略它们,还是它们也被加载到RAM中? TL;DR : I compile kernel A containing ONLY drivers that I need; Kernel B containing d...
  • 0 votes
     answers
     views

    从源树构建Linux内核模块

    我正在尝试为linux-sunxi(Cubieboard 2,A20,Arm Cortex A8)交叉编译Linux内核模块(驱动程序) . 我做了什么: 阅读有关如何为A20构建内核的文章:http://linux-sunxi.org/Linux_Kernel#Compilation . 我已经完成了它并且内核已经成功构建 . 尝试使用以下Makefile构建我的简单(只是“Hello,...
  • 1 votes
     answers
     views

    Linux内核模块相关的理解?

    To load a module, the kernel must contain all the kernel symbols used in the module. If those symbols were not included in the kernel at compile time, the module will not be loaded due to missing depe...
  • 0 votes
     answers
     views

    U-Boot如何与Linux内核通信?

    我正在读这本书,它告诉我: 在U-Boot加载Linux内核后,内核将声明U-Boot的所有资源 这是什么意思?是否意味着将丢弃在U-Boot中分配的所有数据结构? 例如:在U-Boot期间,将初始化PCIE和网络设备 . 启动Linux内核后,是否会丢弃PCIE和网络设备数据结构? Linux内核会再次进行PCIE和NEtwork初始化吗?或者U-Boot会将一些数据传输到内核?
  • 3 votes
     answers
     views

    如何测试内核以识别内核中可能导致内核崩溃的问题

    我有一个嵌入式Linux设备 . 我试图提出一些测试用例,这些测试用例将在内核中运行各种子系统,代码路径和系统调用,以识别导致内核恐慌的内核中的问题/松散结束 . 有人可以为这种测试提出一些测试想法吗? 否则,有人可以建议一些测试内核的想法,以便它可以更稳定,更健壮,更高效,更快速等等吗?我们可以为linux内核编写单元测试吗?
  • 0 votes
     answers
     views

    Linux内核修补问题

    我在使用我的Ubuntu Linux内核正确编译这个特定的内核补丁时遇到了一些麻烦 . 有问题的补丁来自一个名为SCST的软件,它是Linux的iSCSI目标 . 当我运行 patch -p1 < put_page_callback-2.6.32.patch 时,补丁加载正常,但是当我编译时,我得到大约一个小时左右,然后失败并返回这些错误 . /root/d1/development/ker...
  • 93 votes
     answers
     views

    在新的Linux内核中,上下文切换速度要慢得多

    我们希望将服务器上的操作系统从Ubuntu 10.04 LTS升级到Ubuntu 12.04 LTS . 不幸的是,似乎运行已经变为可运行的线程的延迟从2.6内核到3.2内核显着增加 . 事实上,我们得到的延迟数字很难相信 . 让我对测试更加具体 . 我们有一个运行两个线程的程序 . 第一个线程获取当前时间(使用RDTSC以滴答为单位),然后每秒发送一次条件变量 . 第二个线程等待条件变量并在发出...
  • 5 votes
     answers
     views

    用于RT补丁的Linux内核的Cyclictest

    您好我用RT-Patch修补了Linux内核,并使用监视延迟的Cyclinctest对其进行了测试 . 内核不是很好,也不比vanilla内核好 . https://rt.wiki.kernel.org/index.php/Cyclictest 我检查了uname的RT,看起来很好 . 所以我检查了cyclinctest的要求,并指出我必须确保在内核配置中配置以下内容: CONFIG_PREEM...
  • 6 votes
     answers
     views

    了解Linux内核和补丁版本

    我想更好地了解Linux内核/补丁发布的工作原理 . 例如,如果我今天(2013年12月12日)打开www.kernel.org,主要下载(黄色按钮)将我带到最新稳定版“linux-3.12.5.tar.xx” . 这很清楚 . 但如果我进入“https://www.kernel.org/pub/linux/kernel/v3.x/”,我可以找到(在许多档案中): (1)linux-3.12.ta...
  • 0 votes
     answers
     views

    我可以将Linux内核的补丁转换为可加载的内核模块吗?

    我有一个针对vanila linux内核的补丁,其中包括新文件以及原始内核SourceTree文件的更改 . 我想使这个补丁成为可加载的内核模块,这样我就可以避免重建基本内核 . 由于此补丁在头文件以及.g和org内核源的数据文件中有变化,我怀疑这是否可以成为内核模块? 请询问您想要澄清问题的更多详细信息 . 谢谢,萨潘
  • 0 votes
     answers
     views

    验证linux-kernel中是否存在补丁

    我试图找出一个解决方案,你可以采取linux-next或任何linux内核分支,并搜索代码中是否存在某些补丁(补丁文件) . 这可能会涉及对内核树进行git pull,这不是问题,但我不确定如何进行批量搜索/比较是否包含了一些补丁 . 是否应该使用实际的.patch文件来完成,或者搜索提交的ID就足够了?有人可以提供一些代码或参考如何实现这一目标吗?谢谢!

热门问题