Questions tagged «kernel»

有关UNIX内核的所有内容:开发,配置,编译,设计等。

1
pdflush,kjournald,swap等如何互操作?
最近看到了一个引发这种想法的问题。在这里或通过Google机器无法真正找到答案。基本上,我想知道内核I / O体系结构是如何分层的。例如,kjournald调度到pdflush还是相反?我的假设是pdflush(对于大容量存储I / O更通用)将处于较低级别并触发SCSI / ATA /执行实际执行写入所需的所有命令,并kjournald在写入之前处理较高级别的文件系统数据结构。我也可以用另一种方式查看它,kjournald直接与文件系统数据结构连接并不pdflush时醒来,然后通过将脏的页面缓存页面写入设备kjournald。两者也有可能由于其他原因根本不互动。 基本上:我需要某种方式来可视化(图形或仅作解释)用于将I / O分配到Linux内核中的大容量存储的基本体系结构。


2
如何在Linux内核模块中包括本地头文件
说我有一个mymod包含源文件的模块,如下所示: src / mod / mymod.c src / inc / mymod.h 我尝试包括mymod.h如下 #include <mymod.h> 我的makefile包含EXTRA_CFLAGS= -I$(shell pwd)/../inc/但在制作内核时,出现错误提示: 找不到mymod.h 原因似乎是在制作内核模块时,此命令从makefile:运行(使用makeV1): make -C <path/to/linux/src> M=<path/to/mymod> modules 在其他作品中我$(shell pwd)扩展到了<path/to/linux>。这不是我想要的。我如何指定-I参数设置为指向src/inc我的mymod源代码树?
17 linux  kernel  compiling  make 

1
重新启动而不关闭?
我一直在使用Linux Mint Debian和Debian不稳定程序,并注意到当我按重新启动时,而不是一路回到BIOS,grub,然后启动,我似乎正在关闭,然后重新加载而没有返回到BIOS或GRUB。 这是我迄今为止从未见过的惊人功能。这叫什么,什么时候发生?我已经使用Ubuntu很长时间了。

3
我应该如何配置grub从USB硬盘启动Linux内核?
我的笔记本电脑硬盘驱动器在一个外接盒中,用作大型笔式驱动器。另外,我已经在上面安装了Linux,因此可以选择自己的发行版来引导任何计算机(例如,用于数据恢复或修复已保存的系统,或者仅使用借用的笔记本电脑而不会破坏预装的Windows)。问题是,根据硬件配置,USB硬盘驱动器可能在不同路径下可见。对于grub配置,我只使用(hda0,0)它,因为它与启动grub的设备有关。我在中有UUID条目/etc/fstab。我还在rootwait内核参数中指定了它,以便它在尝试挂载设备之前等待USB子系统稳定下来。 我应该以什么形式传递给内核root=?当前从笔式/dev/sdX驱动器引导一次,检查调试消息以查看内核已将哪些设备分配给USB驱动器,然后重新引导并编辑grub配置。除了启用Boot from USB hard driveBIOS并将其设置为比内部硬盘驱动器更高的优先级之外,我无法在PC上进行任何更改。 有各种各样的initrd生成脚本,其中包括对根设备路径中的UUID的支持,不幸的是,Gentoo本机脚本(genkernel)不支持rootwait,我没有运气尝试使用其他脚本。 引导过程如下(在Windows中非常相似): BIOS选择引导设备并加载其MBR(碰巧是grub stage-1)。 Grub从它设置为的设备中加载配置文件和Stage-2文件root,(hd0)用于从BIOS加载该设备的设备。 Grub加载并启动了内核(仍然是相同的编号,因此我可以(hd0,0)再次使用)。 内核初始化所有内置设备(rootwait现在这样做很神奇)。 内核安装传递它的分区root(这是内核参数,而不是grub参数)。 init.d开始userland引导过程,包括从安装/etc/fstab。 第五部分是给我麻烦的那一部分。
17 linux  kernel  boot  usb  grub2 

2
有没有一种方法可以衡量ext4lazyinit的进度?
我在这里问了一个关于ext4lazyinit的问题。从我已阅读和理解的所有内容来看,它仅使您可以开始使用hdd,而无需为文件系统创建所有inode。 您知道或可以测量的唯一方法是ext4lazyinit在中进行监视iotop。有没有办法取得百分比进展?
17 debian  kernel  ext4 



2
了解“ serial8250:irq4的工作量过多”内核消息
dmesg 显示来自serial8250的许多消息: $ dmesg | grep -i serial [ 0.884481] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled [ 6.584431] systemd[1]: Created slice system-serial\x2dgetty.slice. [633232.317222] serial8250: too much work for irq4 [633232.453355] serial8250: too much work for irq4 [633248.378343] serial8250: too much work for irq4 ... 我以前没有看过此消息。一般是什么意思?我应该担心吗? (根据我的研究,它不是特定于发行版的,但是如果相关,我会在运行Ubuntu 16.04的EC2实例上看到消息。)
17 kernel  dmesg 


2
Linux内核删除自定义键盘扫描代码
我有一个老式的IBM 122键型号M键盘,适合在现代计算机上使用。我正在使用Teensy 2.0进行编码并处理USB方面的问题。我从Humble Hacker键盘项目(https://github.com/humblehacker/keyboard)借用了固件,并在构建配置中添加了额外的键。到目前为止,一切都很好。 所有“常规”键都可以使用,但是内核似乎正在删除多余的键(F13- F24等)。 运行/lib/udev/keymap -i input/event0显示所有正常键的扫描代码,但多余键则无显示。 运行wireshark以捕获数据包的USB端口表明键盘正在发送扫描代码,但是看起来内核在原则上只是丢弃了它们。 我觉得这是内核驱动程序中的某些东西,根本没有提供它不期望的扫描代码。 我认为.h在内核源代码的某个文件中的某处会存在某种“主”键映射,但是到目前为止,我一直没有成功找到它。 值得强调的是,我没有像在我之前的其他许多人一样要求在X中映射额外的键。这是一个低级的,显然与内核相关的问题。暂时假设我根本不会使用X。我需要的是扫描代码在我运行时显示/lib/udev/keymap -i,我可以从那里开始其余的工作。


1
使用dpkg阻止内核更新
由于最近发生的一件令人讨厌的事情,我想阻止所有发行版本的内核更新。(我使用的是Ubuntu 12.04 amd64衍生产品。) 我想阻止所有更新的次版本3.2安装内核的linux-headers,linux-headers-generic,linux-image,和linux-image-extra包。我遇到的问题是它们都具有一个版本,如果我阻止一个特定的版本,将不会获得任何收益,因为将安装一个新版本(例如:如果我阻止了linux-image-3.2.0-35,linux-image-3.2.0-36则不会被阻止,并且仍然可能使用dist-upgradefrom 来安装apt)
16 kernel  apt 

2
Nintendo Wii的Linux内核
我正在尝试为Nintendo Wii编译一个Linux内核,该内核比带有mike p5补丁的2.6.32版本要新,此后我一直没有问题。自从2.6.33版开始,Wii支持已包含在主线内核中,但是我无法使其正常运行。我尝试使用用于版本2.6.32的旧.config以及Wii平台的默认.config。当然,在所有这些配置中都选择了Wii平台支持选项,但是尽管Wii似乎执行了内核代码(蓝色LED闪烁),但我在电视上看不到任何内容,也无法通过ssh连接。我尝试了几乎所有分支都包括最后一个测试版本,但结果始终相同。我也更新了我的交叉编译工具,但是没有运气。 自2.6.32版以来,我是否缺少某些选项或有所更改?
16 kernel  powerpc 

1
用于在内核空间捕获数据包的缓冲区大小?
通过的手册页tcpdump,看来如果缓冲区已满,内核可以丢弃数据包。我想知道是否: 该大小是可配置的和/或 在哪里可以看到发行版的大小? 在手册页中(为便于参考): ``被内核丢弃的数据包''(这是由于tcpdump运行所在的OS中的操作系统中的数据包捕获机制由于缺少缓冲区空间而丢弃的数据包的数量;如果OS向应用程序报告了该信息;如果不是,它将报告为0)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.