标签: kernel

如何从 kernel.org 编译一个像样的内核?

我尝试从我从 kernel.org(主线)获得的源代码make allyesconfig和 和编译内核make allmodconfig,但两个构建都导致内核无法启动。

我在想,通过编译所有内容,它应该可以在任何硬件上运行。我究竟做错了什么?

以及如何编译工作内核?

linux compiling kernel

3
推荐指数
1
解决办法
396
查看次数

不同的架构是否有不同的 linux 内核?

如果我想为 ARM 架构构建自定义内核,是否需要:

a) 从 kernel.org 下载内核,对内核进行更改,使用一些交叉编译器(如代码源或其他东西)构建它

b) 从某处找到一个 ARM 特定的内核,找到一些补丁,使用一些 ARM 特定的工具编译它?

可以为 ARM 架构构建任何自定义内核吗?

一般来说,我对内核知之甚少。

kernel arm

3
推荐指数
1
解决办法
1046
查看次数

使用内核模块中的 syslog

我正在编写一个 linux 内核模块来报告统计信息并发送一些日志消息。我可以使用 syslog 来完成这项工作吗?还是printk唯一的办法?

linux kernel syslog

3
推荐指数
1
解决办法
2514
查看次数

运行 makeconfig 时未定义对符号“acs_map”的引用

当我尝试使用以下命令配置 Linux 内核时出现链接器错误menuconfig

# make menuconfig
  HOSTLD  scripts/kconfig/mconf
/usr/local/bin/ld: scripts/kconfig/lxdialog/checklist.o: undefined reference to symbol 'acs_map'
/usr/local/bin/ld: note: 'acs_map' is defined in DSO /lib/libtinfo.so.5 so try adding it to the linker command line
/lib/libtinfo.so.5: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[1]: *** [scripts/kconfig/mconf] Error 1
make: *** [menuconfig] Error 2
Run Code Online (Sandbox Code Playgroud)

知道它有什么问题吗?我正在运行 CentOS 6.2,并且我确定我已经安装了所有需要的库。

compiling kernel

3
推荐指数
1
解决办法
8859
查看次数

内核如何“放弃”对特定于发行版的初始化的控制?

我一直想知道内核如何在启动期间将控制权传递给第三方代码,或者特别是特定于发行版的代码。

我在 GRUB 的配置文件中四处寻找,怀疑将一个特殊的参数传递给内核,让它知道在成功启动后要做什么,但找不到任何东西。这使我怀疑内核查找的根分区上可能存在某些文件。

如果有人能对此事有所了解,我将不胜感激。发行版如何实现这一点?

linux boot kernel

3
推荐指数
1
解决办法
346
查看次数

什么时候需要 initrd?

我已经读到我可以在没有 initrd 的情况下启动内核,并且我还读到在 initrd 阶段加载了额外的模块——据我所知,对于内核中未包含的必要驱动程序。

如果我使用 构建内核make defconfig && make,我可以期望内核在哪种硬件上启动?一个相当现代的桌面?虚拟机?

我什么时候真的需要 initrd/initramfs?

我正在尝试组合一个最小的系统来在 Virtualbox 上进行测试,如果可能的话,我想保持简单而不使用 initrd。

linux kernel initrd initramfs

3
推荐指数
1
解决办法
872
查看次数

如何在arch linux中添加启动参数

我想添加i915.i915_enable_rc6=1为内核行,如here所述,但我不确定在哪里/如何准确。

boot kernel arch-linux

3
推荐指数
1
解决办法
2万
查看次数

我必须在`/etc/mkinitcpio.conf` 和`/etc/rc.conf` 中都列出模块吗?

我在mkinitcpio.conf.

它们是在内核启动时自动加载还是udev在我没有在模块列表中指定它们时自动加载rc.conf

linux kernel arch-linux kernel-modules

3
推荐指数
1
解决办法
2557
查看次数

如何为加载的内核构建 iptables 内核模块?

由于各种原因,我已经构建了一个支持可加载模块的内核,其中之一是无需重新启动即可编译和加载模块的可能性。当我需要一个我没有在内核配置中启用的模块时,这应该很有用。

现在,有了像 nouveau 这样的驱动程序,只需转到源目录并运行make M=drivers/gpu/drm/nouveau. 如何在iptables不编译整个内核并重新启动的情况下构建更新的模块?甚至有可能吗?

kernel iptables kernel-modules

3
推荐指数
1
解决办法
6429
查看次数

高内存(用户空间)和高内存(内核空间)

每个进程有2个内存区域:用户空间(高内存)和内核空间(低内存)。在内核空间中,前 896 MB 是否用于映射内核代码(不完全是 1 GB)?这意味着,当用户空间应用程序执行系统调用或与内核相关的任何事情时,内核会引用内核空间来执行系统调用,是吗?

内核空间预留的128MB(用于高端内存(用户空间)访问),是不是都是用户空间内存区域的引用?那么,内核进程可以通过引用这个区域来访问任何用户空间,这是真的吗?

这就是为什么这个区域在内核空间中被称为 highmem 的原因,不是吗?

linux kernel memory

3
推荐指数
1
解决办法
4245
查看次数