标签: linux-kernel

使用可加载的内核模块向 Linux 3.2.x 添加新的系统调用

我想在 linux 内核 3.2.x 中添加一个特定的新系统调用,但作为可加载的内核模块(因为我不想一次又一次地重新编译内核)

我阅读了互联网和 SO 上的许多帖子,有些地方声称将系统调用实现为可加载模块是不可能的,而其他人则说这是可能的。

是哪个?如果可能,如何实现?

kernel system-calls kernel-modules linux-kernel

11
推荐指数
1
解决办法
6427
查看次数

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
Run Code Online (Sandbox Code Playgroud)

然后我做了qemu -kernel bzImage -initrd disk.img并得到了下面的屏幕,上面写着:

Kernel panic - not syncing: VFS: unable to mount root fs on unknown block
Run Code Online (Sandbox Code Playgroud)

我的 QEMU 屏幕

我做错了什么,我能做些什么来解决它?

initrd qemu linux-kernel

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

如何在我自己的 Linux Buildroot 系统上安装 X11?

我已经使用buildrootbusybox开发了我自己的小型 linux 文件系统。我使用linux-2.6.38.8内核根据需要为目标系统(X86)配置和交叉编译。现在文件系统已经构建,但它只有busybox shell,不支持GUI。它没有任何包管理器也是。现在我想在它上面启用 GUI。我检查了/etc但没有任何x11目录或x11.conf文件。它也不支持startx

How can I install x11(XFree86 or Xorg) on my system Explicitly.

I also want to install a package-manager for my system.
Run Code Online (Sandbox Code Playgroud)

如何做到这一点?

linux x11 package-management linux-kernel buildroot

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

GRUB2 源代码中的哪里是切换/跳转到内核代码?

我正在寻找 GRUB2 最终跳转到内核代码并因此在 x86 系统上移交执行的代码行?我猜它在一个汇编程序文件中,因为这是非常低架构的东西。我查看了源文件,在boot.S 的第 455 行/grub-core/boot/i386/pc/*.S找到了一个JMP,但可能是内存中 GRUB2 内核的地址,而不是 linux 内核。kernel_address

任何具有汇编和 GRUB2 知识的人都可以帮助我吗?

linux boot grub2 linux-kernel assembly

11
推荐指数
1
解决办法
528
查看次数

如何理解 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)
[...]
Run Code Online (Sandbox Code Playgroud)

我能够理解一些领域,但我不知道以下是什么意思:

  • firmware
  • alias
  • intree
  • vermagic

有谁知道如何解释它们?

linux kernel kernel-modules linux-kernel

11
推荐指数
1
解决办法
7381
查看次数

无文件恶意软件如何在 linux 上工作?

我理解无文件恶意软件的定义:

不基于文件而仅存在于内存中的恶意代码……更具体地说,无文件恶意代码……将自身附加到内存中的活动进程中……

有人可以解释一下这个附加到内存中的活动进程是如何工作的吗?

此外,针对此类攻击有哪些(内核)保护/强化可用?

process malware linux-kernel

11
推荐指数
1
解决办法
1823
查看次数

Linux 中的 PID 重用可能性

在 Linux 操作系统中,PID 是否有可能被重用?

例如,一个 PID 被命名为 2252。这个 PID 是死的并从内核进程表中删除。进程表是否有可能为新进程重新使用相同的 PID,或者它不会在任何即将到来的进程中使用?

linux process linux-kernel

11
推荐指数
1
解决办法
3886
查看次数

内核是否真的使用了所有内核参数?

为什么 Linux 允许 'init=/bin/bash'?

我读了这个,答案是说它是运行这个初始化程序的内核。

然后我开始怀疑,Linux通常带有一个initramfs,它最终会mount和pivot_root到真正的根文件系统。那么这个init论点是什么意思呢?initramfs中的路径?或者就像我猜的那样,它不是由内核读取,而是由 initramfs 的 init 来执行真正的 init。

另外,root=UUID=xxxx论点,是真正由内核读取还是仅由 initramfs 的 init 读取以找到真正的根文件系统?

似乎我可以将我想要的任何参数作为内核参数传递,那么它们是否都被内核读取,或者至少其中一些只对用户空间程序有意义?

linux-kernel

11
推荐指数
1
解决办法
1849
查看次数

在 5.1 内核上查找 Intel AX200 Wireless 的驱动程序

我最近购买了一台新的笔记本电脑,它配备了用于 Wi-Fi 和蓝牙连接的 Intel Wireless-AX200 网络设备。我安装了elementary OS 5.0“Juno”以及最新的稳定Linux内核(5.1.1),因为我听说它应该支持上述网络设备

但是,我似乎无法/lib/firmware在 5.1.1 源内或内找到与设备相关的任何驱动程序(寻找任何以“iwlwifi”为前缀的内容)。

仔细查看会lspci发现以下设备,其中没有一个似乎是无线或蓝牙设备:

00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation Device 3e9b
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 07)
00:12.0 Signal processing controller: Intel Corporation Cannon …
Run Code Online (Sandbox Code Playgroud)

networking linux-kernel elementary-os intel iwlwifi

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

在挂起到磁盘时启动断电的计算机是否安全?

我有带电池电源的计算机,可以在断电后运行计算机大约一分钟。我想在断电后立即触发挂起到磁盘,以便稍后恢复。initrd(默认 Devuan initrd)在交换分区中寻找挂起签名,并在找到签名时从它恢复。我不确定在将数据写入交换分区时电源完全中断会发生什么。当电池出现故障或系统在挂起时挂起时,可能会发生这种情况。系统会从损坏的交换分区恢复还是忽略交换分区?我认为第二个选项更好 - 错误卸载文件系统比损坏系统状态更好。

签名是在其他数据之后还是之前写入交换分区?它使用校验和吗?

linux suspend corruption linux-kernel ups

11
推荐指数
1
解决办法
1411
查看次数