Questions tagged «linux-kernel»

有关Linux内核和Linux内核相关主题的问题,例如。实现细节,例如系统调用,内核自定义等。对于不涉及内核细节的Linux用户空间主题,[linux]或发行标签更为合适。

1
控制台中的256色(tty)
假设我有一个没有的系统X server。我只能从控制台登录。看来,默认情况下,Linux控制台仅支持8种颜色: # tput colors 8 是否可以在控制台中使用256种颜色,与在终端仿真器(即终结器)中使用的颜色相同? 在进行谷歌搜索时,我发现了许多类似的问题(其中许多已经超过10年了),但没有一个明确的答案。有人建议使用帧缓冲区,另一些人则建议在内核启动选项后附加TERM参数。 目前,我只传递了一个额外的选项作为内核启动参数: append="video=1280x720" 我相信通过视频分辨率只能在kernel mode setting支持的现代内核中使用,但是我不确定。 是否可以在现代linux控制台(tty)中使用256色 怎么样? 我在内核4.1中使用Debian Wheezy 更新: 根据@muru的建议,我尝试了fbterm。尽管它可以处理256色,但其字体非常难看/乱码。此外,左下角有一个不断闪烁的光标,让我分心。 我可以在没有fbterm / framebuffer的控制台中使用256色吗? 控制台中的8种颜色限制从何而来?

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) [...] 我能够理解某些领域,但我不知道以下含义: …

1
在GRUB2源代码中,到内核代码的切换/跳转在哪里?
我正在寻找GRUB2最终跳到内核代码并因此在x86系统上移交执行的代码行?我猜它在汇编文件中,因为这是非常低的体系结构。我看着在源文件中/grub-core/boot/i386/pc/*.S,发现JMP在以线455 boot.S,但kernel_address可能是在内存中GRUB2内核,而不是Linux内核的地址。 有汇编和GRUB2知识的人可以帮助我吗?

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

1
为什么Linux会显示比我实际安装的内存更多或更少的内存?
我知道交换-这个问题不是。在dmesg中,Linux(x86-64)内核告诉我有关我有多少内存的信息: [ 0.000000] Memory: 3890880k/4915200k available (6073k kernel code, 861160k absent, 163160k reserved, 5015k data, 1596k init) cat /proc/meminfo 告诉我我有 MemTotal: 3910472 kB 根据我的计算,我认为我应该有4 * 1024 * 1024 = 4194304k RAM。这是方式比上面dmesg的行第二个数字小! 所有这些不同的数字是什么? 顺便说一句,uname -a输出: Linux pavilion 3.2.2-1.fc16.x86_64 #1 SMP Thu Jan 26 03:21:58 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

4
使用实时内核头文件编译用户空间代码与默认头文件
根据客户要求,我使用默认内核安装了CentOS 5.6。安装此内核后,time.h文件包含#define CLOCK_MONOTONIC。 现在,安装了实时内核以及kernel-devel,我们的代码想使用CLOCK_MONOTONIC_RAW。它确实作为内核头文件的一部分存在,但是当我编译我们的代码时,它不在标准用户空间包含中找到它。 我的问题是,time.h用实时内核包括/替换默认找到的内容的正确程序是什么?从我的研究来看,符号链接看起来很糟糕,那么应该如何处理呢?程序或过程是什么?根据客户的要求,不能选择升级到CentOS 6.0或5.7。

2
内核是否真的使用了所有内核参数?
为什么Linux允许'init = / bin / bash'? 我读了这篇文章,答案是说内核正在运行该初始化程序。 然后我开始怀疑,Linux通常带有一个initramfs,该initramfs最终将挂载和ivot_root到实际的根文件系统。那么,这种init说法是什么意思呢?initramfs中的路径?或者像我猜到的那样,它不是由内核读取的,而是由initramfs的init来执行真正的init的。 另外,root=UUID=xxxx论据是由内核读取还是由initramfs的init读取以找到真正的根文件系统? 似乎我可以将我想要的任何参数作为内核参数传递,因此它们是否全部由内核读取,或者至少其中一些仅对用户空间程序有意义?

1
在不影响原始安装的情况下卸载rbind安装
在服务器故障时被询问,但没有引起足够的重视,因此在此处重新发布,希望这里的某些人知道答案。 关于卸载rbind挂载,还有另一个问题在讨论,但是该解决方案产生了不良影响。请考虑以下目录布局: . ├── A_dir │ └── mount_b ├── B_dir │ └── mount_c └── C_dir 现在我将绑定C_dir到B_dir/mount_c和rbind B_dir到A_dir/mount_b: [hidden]$ sudo mount --bind C_dir B_dir/mount_c [hidden]$ sudo mount --rbind B_dir A_dir/mount_b [hidden]$ mount | grep _dir | wc -l 3 现在umount A_dir/mount_b会失败,这并不奇怪。根据网络上所有地方的答案,我们需要umount A_dir/mount_b/mount_c先然后umount A_dir/mount_b。但是,umount A_dir/mount_b/mount_c也会unmount B_dir/mount_c,这是不需要的: [hidden]$ sudo umount A_dir/mount_b/mount_c [hidden]$ mount …


2
内核配置文件存储在哪里?
我目前正在运行Angstrom Linux 2.6.32。我打算将Linux内核从2.6.32升级到3.0.7。因此,我必须配置3.0.7内核运行make menuconfig。 现在,我想将新内核配置与以前的内核配置进行比较,但是找不到内核3.0.7配置文件。有任何想法吗?

2
ENOANO(无阳极)打算用于什么用途?
这个问题仅仅是出于好奇,但我怀疑其他人也会好奇。通过搜索errno.h(Linux 2.6的),我发现ENOANO“ No Anode”。没有“无阴极”错误的迹象。查看内核源代码的一致性,它似乎并没有被称为阳极的设备使用,而只是被一些晦涩的设备驱动程序故意作为怪异的错误代码使用。谷歌搜索没有发现任何兴趣。 这可能是个玩笑吗?它是在POSIX之类的标准文档中定义的,但是没有用吗?

3
Linux内核未正确找到initrd
我已经编译了一个Linux内核,并且想在QEMU中对其进行调试。我通过执行以下命令创建了一个要启动的文件 $ qemu-img create -f raw disk.img 200M $ mkfs.ext2 -F disk.img # mkdir /mnt/rootfs # mount -o loop disk.img /mnt/rootfs 然后我做了qemu -kernel bzImage -initrd disk.img,得到下面的屏幕: Kernel panic - not syncing: VFS: unable to mount root fs on unknown block 我做错了什么,该如何解决?



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.