Questions tagged «kernel»

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

3
为什么initramfs以只读方式挂载根文件系统
将根文件系统挂载ro到initramfs(和initrd)中的原因是什么? 例如,Gentoo initramfs指南使用以下命令挂载根文件系统: mount -o ro /dev/sda1 /mnt/root 为什么不以下? mount -o rw /dev/sda1 /mnt/root 我可以看到,可能有一个很好的理由(可能涉及switchroot),但是似乎没有任何地方对此进行记录。



1
如何理解modinfo的输出?
我只是想了解modinfo描述内核模块的输出。例如,对于module i915,输出如下所示: $ modinfo i915 filename: /lib/modules/4.2.0-1-amd64/kernel/drivers/gpu/drm/i915/i915.ko license: GPL and additional rights description: Intel Graphics author: Intel Corporation [...] firmware: i915/skl_dmc_ver1.bin alias: pci:v00008086d00005A84sv*sd*bc03sc*i* [...] depends: drm_kms_helper,drm,video,button,i2c-algo-bit intree: Y vermagic: 4.2.0-1-amd64 SMP mod_unload modversions parm: modeset:Use kernel modesetting [KMS] (0=DRM_I915_KMS from .config, 1=on, -1=force vga console preference [default]) (int) [...] 我能够理解某些领域,但我不知道以下含义: …

3
Linux内核Kconfig中的“选择”与“依赖”有什么区别?
内核Kconfig文件之间select和depends on内核Kconfig文件之间的依赖关系有何不同? config FB_CIRRUS tristate "Cirrus Logic support" depends on FB && (ZORRO || PCI) select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT ---help--- This enables support for Cirrus Logic GD542x/543x based boards on Amiga: SD64, Piccolo, Picasso II/II+, Picasso IV, or EGS Spectrum. 在上面的示例中,与和有何FB_CIRRUS不同?FB && (ZORRO || PCI)FB_CFB_FILLRECTFB_CFB_COPYAREAFB_CFB_IMAGEBLIT 更新资料 我注意到depend on在编译顺序方面并没有真正做很多事情。 …

2
找到偶发的CPU内核
我有一个在中速ARMv7处理器上运行的2.6.35 PREEMPT内核。大约每100-125s发生一次,某些原因导致内核无法足够快地处理某些与音频相关的驱动程序,从而避免欠载。保持时间通常在15到30毫秒之间,但可能会更长。目前尚不清楚保留是完全在内核中还是可能与以实时优先级运行的用户进程的调度有关(SCHED_RR,2)。 我的猜测是,有(至少一个)驱动程序在抢先状态下表现不佳。 尽管我不确定如何解释各种时间报告,但用户进程中的一些strace输出说明了正常和异常行为的某些方面。 正常情况: 0.000518 poll([{fd = 10,events = POLLIN | POLLERR | POLLNVAL,revents = POLLIN}],1,3415)= 1 0.010202 poll([{fd = 10,events = POLLIN | POLLERR | POLLNVAL},{fd = 6,events = POLLOUT | POLLERR | POLLNVAL,revents = POLLOUT}],2,3404)= 1 0.000585 poll([{fd = 10,events = POLLIN | POLLERR | POLLNVAL},{fd = …
11 kernel  profiling 

2
使用可加载的内核模块向Linux 3.2.x添加新的系统调用
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Unix&Linux Stack Exchange 的主题。 7年前关闭。 我想在Linux内核3.2.x中添加一个特定的新系统调用,但作为可加载的内核模块(因为我不想一次又一次地重新编译内核) 我通读了Internet和SO上的许多文章,有些地方声称不可能将系统调用实现为可加载模块,而另一些地方则认为可以实现。 哪有 如果有可能怎么办?

2
如何解析iwlwifi中的微码(ucode)以获取版本号?
我有一个由驱动的Intel无线卡iwlwifi,并且在dmesg中可以看到以下消息: iwlwifi 0000:03:00.0: loaded firmware version 17.168.5.3 build 42301 鉴于我知道要加载哪个Blob,我如何才能找到该Blob(.ucode文件)的版本? 如果您在下面查看ucode的加载位置,那么它不会告诉我版本信息只是blob已加载。但是我知道这些是英特尔的版本。 $ sudo dmesg | grep ucode [ 26.132487] iwlwifi 0000:03:00.0: firmware: direct-loading firmware iwlwifi-6000g2a-6.ucode [40428.475015] (NULL device *): firmware: direct-loading firmware iwlwifi-6000g2a-6.ucode

2
作为开发人员,我应该如何跟上内核的发展?
我正在开发具有自定义驱动程序的特定TI ARM处理器,并将其安装到内核中。我正尝试从2.6.32迁移到2.6.37,但是结构发生了很大变化,我将需要花费数周的时间来升级我的代码。 例如,我的芯片是dm365,它带有视频处理驱动程序。现在,大多数直接与我接触的旧驱动程序都通过v4l2进行了调试,这可能更有意义。 TI对于这些升级提供的信息很少。我应该如何跟上变化?当我用谷歌搜索特定文件名时,我很少得到一些补丁,这些补丁很少对更改内容以及旧版本与新版本之间的关系和原因进行评论。
11 linux  kernel  upgrade 

4
适用于大型,多语言项目(即linux内核)的IDE
我知道“你们使用哪种IDE”问题已被问了一百万遍。但是我从未见过这种情况的要求。在处理包含多种语言和数千个文件的大型项目时,对IDE有何建议? 一个很好的例子是android源代码。内核不仅需要良好的C / C ++ IDE,而且Java和Shell脚本也需要。是否为此类项目构建了任何东西? 我通常使用的是KDevelop for C / C ++。我喜欢它,但是当将它用于大型项目(例如linux内核)时,它似乎会爆炸。而且它甚至对Java或python都没有做任何事情。 因此,我基本上是在寻找用于大型项目(包括linux内核本身)的IDE /设置(即vim +脚本)的建议。 编辑: 我想我可能还不清楚。我并不是在寻找IDE本身。我真正感兴趣的是一个工具(工具集?),它使处理大型的,耦合的项目变得更加容易。例如。linux内核定义了许多宏功能。我希望能够在内核树中打开任何给定的源文件,并能够查看该宏的定义(无论是通过鼠标悬停还是通过vim扩展窗口,或其他方式)。

1
如何配置cgroup在用户之间公平地共享资源?
cgroups下曾经有一个名为sched_user或类似名称的内核配置选项。据我所知,这允许所有用户公平地共享系统资源。在2.6.35中不可用。有没有一种方法可以配置系统以在所有用户(包括root用户)之间自动共享io / cpu /内存资源。我以前从未建立过cgroup,是否有一个很好的教程可以这样做?非常感谢你。


3
无需“干净”即可重建Linux内核
我正在基于4.11构建Mintx64的自定义内核(如果重要的话)。我已经编译并安装了它以证明它可以工作。现在,我对几个文件做了一些小的更改(在驱动程序和net子系统中,这就是为什么我需要首先编译自定义内核的原因!) 现在,我要构建修改后的内核。但是当我跑步 fakeroot make -j5 deb-pkg LOCALVERSION=myname KDEB_PKGVERSION=1 构建系统似乎是从“清理”开始-装载了全部东西,因此我迅速停止了它。不幸的是,我使用的计算机并没有配备良好的CPU,并且需要花费大量时间从头开始构建。因此,我宁愿避免再做一次! 是否可以只进行增量构建而无需“干净”所有内容,或者这是内核构建系统的要求? 我得到的输出是: CHK include/config/kernel.release make clean CLEAN . CLEAN arch/x86/lib ...

1
启用的探针上的错误:syscall :: open_nocancel:entry):在DIF的操作#2中无效的用户访问
我使用以下一种方法来显示按进程打开的文件: sudo dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }' 但是我有很多重复的错误,例如: dtrace: error on enabled probe ID 4 (ID 946: syscall::open_nocancel:entry): invalid user access in action #2 at DIF offset 24 dtrace: error on enabled probe ID 7 (ID 160: syscall::open:entry): invalid user access in action #2 at DIF offset 24 …
11 kernel  osx  dtrace 

5
在启动过程中摆脱“未找到缓存模式页面”消息
在早期启动期间,我收到以下错误消息: [sdb] No Caching mode page found [sdb] Assuming drive cache: write through 如果我理解正确,这实际上只是一条无害的信息,而不是实际的错误。sdb是我的USB磁盘,它不使用缓存。 问题是,我有意将内核日志级别设置为4,以摆脱这些无用的信息消息。 为什么为什么我仍然收到此信息消息? 之所以困扰我,是因为它干扰了我的密码提示(用于解密我的LUKS磁盘) 有没有办法消除此消息?
11 kernel  logs  startup  console 

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.