标签: kernel-modules

BSD 内核对比 Linux内核?

我想从技术角度了解;BSD Kernel和之间有什么区别Linux Kernel
在 Linux 中,我们可以下载源内核然后patchmakemake modules它。即使我们有多种工具来编辑内核,config例如menuconfig,xconfig和 ... 。
但是我在 BSD 上找不到这么广阔的领域。首先,我可以下载BSD kernel吗?我怎么能配置呢?和 ...

所以我要问的是:(不涉及祖先和词源)

  • Kernel在每种情况下(在)依赖于分布的?
  • 配置Kernel适用于工作的每个和工具的方法?
  • 在每种情况下是否可以完成任何补丁工作?
  • kernel分布范围之外的可用性?( Kernel Sources)?
  • Kernels每种情况下可用的风味( X??BSD/ Linux) 喜欢XEN/Vmware/GEN吗?

linux kernel bsd kernel-modules linux-kernel

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

使用虚拟机开发/测试 linux 模块是否安全?

我在一个操作系统类。接下来,我们必须做一些修改内核代码的工作。我们被建议不要使用个人机器进行测试(我想这意味着安装它),因为我们可能会写出错误的代码并在我们不应该写的地方重写。为了安全起见,我们可以使用实验室中的机器。

如果我要使用 VM 进行测试,是否可以保护主机系统免受潜在不安全代码的影响?我真的不想被困在学校的系统中,快照会很有用。

如果它仍然是高风险,关于我需要考虑什么来安全测试的任何建议?

我们将使用 linuxmint 之类的东西开始。如果有人想查看当前项目中的内容:http : //www.cs.fsu.edu/~cop4610t/assignments/project2/writeup/specification.pdf

linux virtual-machine kernel-modules

22
推荐指数
2
解决办法
1905
查看次数

几乎没有任何命令工作,没有名为“apt_pkg”的模块

我不知道我做了什么,但是像“ls”和“sudo”这样的基本命令不再起作用,现在向我抛出这个错误消息。

File "/usr/lib/command-not-found", line 28, in <module>
from CommandNotFound import CommandNotFound
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 19, in <module>
from CommandNotFound.db.db import SqliteDatabase
File "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 5, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
from apport.packaging_impl import …
Run Code Online (Sandbox Code Playgroud)

path python kernel-modules apt

22
推荐指数
1
解决办法
6238
查看次数

在内核中编译内核模块的好处?

将内核模块编译到内核中(而不是作为可加载模块)有什么好处?

kernel kernel-modules

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

如何生成 Module.symvers?

我最近经历了Unpacking kernel-source rpm off-system (OpenSuse)?; 由于在我的机器上花费了 > 10 小时,想象一下我的惊讶,在完成那里描述的过程后,我找不到任何Module.symvers地方!

当我搜索“generate Module.symvers”时,我得到了这个:

注意:即使
设置了 CONFIG_MODVERSIONS,"modules_prepare" 也不会构建 Module.symvers ;因此,需要
执行完整的内核构建才能使模块版本控制工作。
( Linux 内核文档 :: kbuild : modules.txt )

...但我真的不明白 - 内核不是在上一步中构建的(在上面给出的链接中描述?我当然知道 CC 需要 10 小时以上才能生成一大堆 *.o文件和 LD 来链接它们,所以一定已经建立了一些东西。但如果是这样,那么在哪里Module.symvers

更明确地说,我应该调用什么命令来生成 Module.symvers?我知道这make prepare行不通——但是什么命令会起作用?

kernel kernel-modules

20
推荐指数
3
解决办法
5万
查看次数

无法加载模块:不同意符号 module_layout 的版本

按照本教程编写我的第一个驱动程序。

生成文件是:

# Makefile – makefile of our first driver

# if KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq (${KERNELRELEASE},)
    obj-m := ofd.o
# Otherwise we were called directly from the command line.
# Invoke the kernel build system.
else
    KERNEL_SOURCE := /usr/src/linux 3.8
    PWD := $(shell pwd)
default:
    ${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} modules

clean:
    ${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} clean
endif
Run Code Online (Sandbox Code Playgroud)

驱动程序代码是:

* ofd.c – Our First …
Run Code Online (Sandbox Code Playgroud)

linux compiling kernel-modules

17
推荐指数
1
解决办法
7万
查看次数

驱动程序模块是否自动加载和卸载?

在 Ubuntu 14.04 上,我发现当我不插入外部无线适配器时,其模块rt2800usb仍然显示在lsmod.

  1. 什么时候自动加载驱动模块?是在设备连接到计算机时,还是在操作系统启动时?

  2. 何时自动卸载驱动程序模块?是在设备与计算机断开连接时,还是在操作系统关闭时?

linux ubuntu kernel-modules

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

如何正确重新加载内核模块?

相关问题

我无法重新加载内核模块来尝试新标志。
示例:thinkpad_acpi默认没有fan_control=1. 因此,如果我的计算机运行得非常热并且风扇没有全速运行,有时可能可以临时加载模块fan_control并将风扇设置为尽可能高的速度几分钟,然后将一切恢复正常。
这是不可能的,因为似乎某些内核模块依赖于其他模块,而且现代 Linux 内核似乎正在检查这一点。
那么到目前为止我做了什么:

  • 检查依赖项
    • modinfo -F depends thinkpad_acpi
  • 尝试卸载这些模块
    • rmmod 或者 modprobe -r $dependencies
    • 一些模块再次依赖于其他模块,也尝试卸载它们。不起作用,即使没有“依赖项”(或至少 modinfo 告诉我)
  • 谷歌很多 modprobe: FATAL: Module x is in use.
  • tldp

linux thinkpad kernel-modules

15
推荐指数
1
解决办法
6万
查看次数

在 /dev/usb 安装打印机并仍然使用 CUPS

由于新版本的 CUPS,我突然失去了以前在/dev/usb/lpXXX. 我用它直接从命令行打印。echo "test" > /dev/usb/lp0.

搜索后,我找到了解决此问题的方法,方法是blacklist usblp/etc/modprobe.d/blacklist.conf. 这确实有效,但如果我这样做,CUPS 将不再能够与任何打印机通信(我确实需要那个)。那么我如何才能拥有某种直接到达打印机的路径,并且仍然可以使用 CUPS?

注意:某些(收据)打印机无法被 CUPS 识别,因此lpr不适用于这些打印机。

usb printing kernel-modules cups devices

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

WSL 2 没有 /lib/modules/

我有一个 hello world 内核模块的源代码,它可以在笔记本电脑的 Ubuntu 20 中运行。现在我正在尝试在 Ubuntu 20 中但在 WSL2 中编译相同的代码。为此,我正在使用这个:

make -C /sys/modules/$(shell uname -r)/build M=$(PWD) modules
Run Code Online (Sandbox Code Playgroud)

问题是那/lib/modules是空的。好像 WSL2 什么都带不进来/lib/modules/4.19.104-microsoft-standard/build

我尝试使用以下方法获取标题:

sudo apt search linux-headers-`uname -r`

Sorting... Done
Full Text Search... Done
Run Code Online (Sandbox Code Playgroud)

但是在模块文件夹中没有填充任何内容

为了该文件夹包含所有必需的模块,我需要做什么吗?

[编辑]

感谢@HannahJ,越来越近。

我在做:

> sudo make -C /home/<user>/WSL2-Linux-Kernel M=$(pwd) modules

SL2-Linux-Kernel M=$(pwd) modules
make: Entering directory '/home/<user>/WSL2-Linux-Kernel'
  CC [M]  /home/<user>/containers-assembly-permissionsdemo/demo-2/lkm_example.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/<user>/containers-assembly-permissionsdemo/demo-2/lkm_example.mod.o
  LD [M]  /home/<user>/containers-assembly-permissionsdemo/demo-2/lkm_example.ko
make: Leaving directory '/home/<user>/WSL2-Linux-Kernel'
Run Code Online (Sandbox Code Playgroud)

最后,我lkm_example.ko创建了文件。

在那之后:

> …
Run Code Online (Sandbox Code Playgroud)

kernel-modules c++ linux-kernel windows-subsystem-for-linux

12
推荐指数
2
解决办法
8607
查看次数