【c – 从哪里开始使用Linux内核模块?】教程文章相关的互联网学习教程文章

4.0及更高版本的Linux内核中的USB驱动程序有什么变化?【代码】

内核高达3.19,我的所有USB设备都能正常工作. 升级到4.0或更高版本时,我的一些USB设备停止工作,内核产生如下错误:[ 3.369436] usb 9-1: device descriptor read/64, error -62 [ 3.593543] usb 9-1: new full-speed USB device number 4 using ohci-pci [ 3.997572] usb 9-1: device not accepting address 4, error -62 [ 4.120602] usb 9-1: new full-speed USB device number 5 using ohci-pci [ 4.524792] usb ...

ARM上的Linux内核2.6

我已经在ARM板上编译并安装了2.6内核.我正在使用ARM mini2440板. 我想知道是否已经有办法访问通用I / O端口引脚? 或者我必须做ioctl()并直接从内存访问它们?解决方法:使用/ sys / class / gpio中的sysfs控制文件.以下链接有望帮助您入门: http://www.avrfreaks.net/wiki/index.php/Documentation:Linux/GPIO 已经看到Beagle Board上的这篇文章的报道也与mini2440一起使用:http://blog.makezine.com/archive/2009/02/blinking_l...

linux – 内核:EDAC MC0:UE页面0x0是否指向坏内存,驱动程序或其他内容?

内核:EDAC MC0:UE页面0x0,偏移量0x0,粒度0,行7,标签“:”:i3200 UE 今天突然间,我们的CentOS版本6.4(最终)系统开始抛出EDAC错误.我重新启动,错误停止了. 我一直在寻找答案,但他们分为两个阵营,记忆或芯片组.我想在哪里进一步搜索以缩小到芯片组或内存的一些建议.解决方法:您正在经历的是Error Detection and Correction活动.鉴于错误包括此位:MC0您遇到内存错误.此消息告诉您具体在哪里遇到错误. MC0表示第一个插槽(#0)中的RA...

Linux内核头文件的组织

当我在系统调用上做一些阅读时,我搜索了“syscalls.h”以在LXR中找到头文件.搜索结果使我感到困惑.来自“arch / _arch_name_ / include / asm”下的目录中有十几个“syscalls.h”文件.这些都可以,它们是特定于体系结构的定义或其他需要的东西.问题是为什么我们在/ include / linux和/ include / asm-generic下都有两个不同的“syscalls.h”头? 另外,我想找出什么/ include / linux标头用于什么/ include / asm-generic标头用于.他...

Linux内核:source-tree,in-tree和out-of-tree的含义

术语“in-tree”和“out-of-tree”究竟是什么意思?另外,“源代码树”是否具体指代从kernel.org发布/维护的官方内核,还是一个更通用的术语,可以引用任何(修改过的)Linux内核源代码?解决方法:“源代码树”不是特定于内核源代码开发的术语,因此它必须是更通用的术语,其关于内核源代码的含义取决于上下文. 我没有在Linux内核源代码开发之外遇到“in-tree”和“out-of-tree”,然后才与modules一起工作.所有模块都以“out-of-tree”开发...

今天Unix和Linux内核之间的主要区别是什么?

我知道许多相同的程序在两个内核之上运行完美.我知道,从历史上看,这两个内核来自不同的起源.我在哲学上也知道他们代表不同的东西.我的问题是,今天,在2011年,是什么让Unix内核与Linux内核不同,反之亦然?解决方法:没有一个名为“Unix内核”的独特东西.原始Unix内核源代码主干有多个后代,它们在不同的阶段分支分支,并根据自己的需要分别进化. 目前主流的操作系统可以从System V源代码:AIX,HPUX,Solaris或BSD源代码,OpenBSD,FreeBSD和...

半专有软件如何基于Linux内核?

如果我理解正确,Linux内核是根据GPL许可的,这意味着如果有人基于它,他们还必须根据GPL许可整个衍生作品,使任何人都可以自由修改和/或重新分发他们的衍生作品. 例如,所有Android版本都基于LK.这是否意味着整个版本及其所有组件也必须在GPL下发布? 例如,大多数Android版本都附带专有组件.这不违反GPL吗?整个衍生作品是否需要根据GPL发布? 例如,使用Ubuntu,您必须在安装后下载MPEG编解码器.我认为这是因为MPEG是专有的,因此MPEG的许...

linux – “内核:NMI看门狗:BUG:软锁定”后面跟着其他错误是什么意思?【代码】

我的终端总是打开(Fedora 22),因为我从那里做的所有工作.有时我会在浏览器中搜索一些信息或者只是玩得开心.浏览20-30分钟后(浏览器不是从命令行启动)我返回终端并看到一些奇怪的东西 – 它出现在终端的所有标签中:Message from syslogd@localhost at Jul 17 23:17:19 ... kernel:NMI watchdog: BUG: soft lockup - CPU#2 stuck for 22s! [migration/2:21]Message from syslogd@localhost at Jul 17 23:17:38 ... kernel:CPU: 2 PI...

为什么需要x服务器和Linux内核的驱动程序?

有人可以解释为什么需要两组驱动程序,一个在Linux内核中,一个在X中? 我知道设备驱动程序在内核中,但是那些在xserver中的作用是什么? Wayland是否需要这样的驱动程序运行?解决方法:Linux图形支持在内核的大部分生命周期中都是一个很大的变异.最初,内核只与图形卡通信以用于文本模式.那时候,X使用它的驱动程序来做所有事情,所以它作为一个巨大的内核 – 在内核之外. 后来,在Direct Rendering Infrastructure (DRI)中,一些用于加速...

如何配置Linux内核在恐慌时重启?【代码】

你可以在内核命令行上输入“panic = N”,使系统在发生恐慌后N秒重启.是否有配置选项来指定它(默认内核命令行选项除外)?解决方法:似乎没有这样的配置选项.默认超时为0,根据http://www.mjmwired.net/kernel/Documentation/kernel-parameters.txt#1898,“永远等待”. 该选项在kernel/panic.c中定义,您可以编写一个补丁,将初始值设置为不同的值. 要在3秒后对重新启动进行硬编码,请更改:int panic_timeout;至:int panic_timeout = 3;

拥有多个版本的Linux内核是否很好?【代码】

有一次,我正在安装一些内核补丁和在我们有数百个客户端的实时服务器上出了问题.系统中只有一个内核.因此,服务器停机了一段时间,并使用现场CD,我们得到了系统&跑步&做了进一步的修复工作. 现在我的问题:拥有2个版本的内核是个好主意,这样如果内核损坏,我们总能用另一个可用的内核重启吗?请告诉我. 此外,是否可以有相同内核的2个版本?那么当内核损坏时我可以选择另一个内核吗?Edited: My Server Details: 2.6.32-431.el6.x86_64 ...

我应该如何配置grub从USB硬盘启动linux内核?

我在外部机箱中有一个笔记本电脑硬盘驱动器,我用它作为一个大的pendrive.另外,我已经在其上安装了Linux,因此我可以使用我选择的发行版启动任何计算机(例如,用于数据恢复或修复b0rked系统或仅使用借用的笔记本电脑而不破坏预装的Windows).问题在于,根据硬件配置,USB硬盘驱动器可能在不同路径下可见.对于grub配置我只使用(hda0,0),因为它相对于grub启动的设备.我在/ etc / fstab中有UUID条目.我还在内核参数中指定rootwait,以便在尝试...

Linux内核简介【图】

内核负责响应中断的中断服务程序负责管理多个进程从而分享处理器时间的调度程序负责管理进程地址空间的内存管理程序和网络、进程间通信等服务程序内核独立于普通应用程序,一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限,这种系统态和被保护的内存空间,统称内核空间应用程序在用户空间执行,当内核运行的时候,系统以内核态进入内核空间执行,而执行一个普通程序时,系统将以用户态进入以用户空间执行系统中运行...

如何使用ftrace跟踪系统调用事件而不显示Linux内核中的任何其他函数?【代码】

例如,要监控所有mkdir调用,我能想到的最好的是:#!/bin/sh set -euxd=debug/tracingmkdir -p debug if ! mountpoint -q debug; thenmount -t debugfs nodev debug fi# Stop tracing. echo 0 > "${d}/tracing_on"# Clear previous traces. echo > "${d}/trace"# Enable tracing mkdir echo sys_enter_mkdir > "${d}/set_event"# Set tracer type. echo function > "${d}/current_tracer"# Filter only sys_mkdir as a workaround. e...

Linux内核OOM killer机制

程序运行了一段时间,有个进程挂掉了,正常情况下进程不会主动挂掉,简单分析后认为可能是运行时某段时间内存占用过大,系统内存不足导致触发了Linux操作系统OOM killer机制,将运行中的进程杀掉了。 一、Linux内核OOM killer机制 Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉。内核检测到系统内存不足、挑选并杀掉某...