我需要构建一个rpm,其中包括一个内核模块(模块将被添加到目录/lib/模块/% current _内核/ either /)我遇到的问题是,如果安装我的包的linux机器,内核将在更新后更新,则模块不会在新的内核/lib/模块/% new _内核/extra/外接/所以我想知道是否有一种构建rpm的方法,它依赖于当前内核,所以我的包要么在内核升级期间卸载,要么重新安装,谢谢Luc。
在Ubuntu18.04和Linux4.15.0-99中使用VirtualBox作为主机时,我遇到了一些问题。当试图启动我的Windows客户时,我会收到以下错误的提示:
The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please try setting it up again by executing
'/sbin/vboxconfig'
as root.
If your system has EFI Secure Boot enabled you
当我在内核中使用insmod data/linux/openvswitch.ko插入内核模块时出现了错误。错误显示如下所示:
insmod: error inserting 'datapath/linux/openvswitch.ko': -1 Unknown symbol in module
dmesg | tail的输出是:
openvswitch: Unknown symbol ipv6_ext_hdr
有人知道这件事吗?
我的内核是:
Linux version 2.6.32_1-14-0-0 (gcc version 4.4.4 20100726 (Red Hat 4
我是Linux内核的新手,正在尝试构建我的第一个内核镜像,我是从3.4.28Linux Kernel on i686架构构建的32位内核。
在一个半小时的构建过程之后,我得到了以下错误
BUILD arcarch/x86/boot/compressedh/x86/boot/bzImage
Setup is 16540 bytes (padded to 16896 bytes).
System is 4667 kB
CRC c2376a1f
Kernel: arch/x86/boot/bzImage is ready (#1)
Building modules, stage 2.
MOD
我所面临的问题与无法加载有线模块中描述的相同,即:
sudo modprobe wireguard
modprobe: FATAL: Module wireguard not found in directory /lib/modules/4.15.0
也许,安装所有缺少的内核头也会解决这个问题。但是,调用sudo apt-get install linux-headers-$(uname -r) (我发现其他几个方面也建议这样做)将导致
[...]
0 aktualisiert, 729 neu installiert, 0 zu entfernen und 0 nicht aktualis
我目前的主机系统运行的是Mac OS和docker。我的Mac主机系统生成了一个docker容器。
衍生的停靠容器当前正在运行ubuntu:19.10
我正在尝试在docker容器中构建一个内核模块。
当我跑的时候
$> make
我得到..。
Building coolMod driver...
make -C /lib/modules/`uname -r`/build M=/home/foo/coolMod modules
make[1]: *** /lib/modules/4.19.76-linuxkit/build: No such file or directory. Sto
我使用netlink套接字与linux内核通信用户python代码,我可以从用户正确地发送消息到内核,但不能从内核获得响应。它显示:“向用户发送bak时出错。”在我的内核代码中
我尝试了所有的方法来获得响应消息:recv,recvfrom recvmsg,然后我的目的是解压它以获得具有以下格式的响应的有效负载: response_message = header +有效负载,但是用户总是无法获得响应。我在执行用户python代码时得到了这样的信息:
pid of sock : 1
seq number of sock : 0
pid of the message send to kernel:
我正在开发中断代码。当我包括#include <linux/interrupt.h>的时候,我得到
fatal error : linux/interrupt.h no such file or directory
为什么我要得到这个错误,我如何解决这个错误?
相反,当我包含该头文件时,我会再得到一个错误。最后,我将得到linux/编译器.h错误。
但是所有这些文件都存在于/usr/src/linux-headers-4.4.0-151/include/linux/中
你能帮我找到解决这个问题的办法吗?
我正在学习linux设备驱动程序的开发,并创建了一个基本内核模块的代码,它创建了一个伪字符设备。该模块也被编译并插入。当我这样做时,结果是这样的
Module Size Used by
modeldriver 2540 0
这个数字显示了什么?模块的大小是什么意思?linux中大大小小数字的最大值是多少?我在哪里可以了解linux内核2.6.37的值?
我有一个运行Ubuntu16.04.5LTS的VPS,直到最近,我才更新它。现在,当我尝试时,我会收到以下错误消息:
The following packages have unmet dependencies:
linux-headers-4.4.0-134-generic : Depends: linux-headers-4.4.0-134 but it is not installed
linux-image-virtual : Depends: linux-image-
这似乎是在我登录VPS时出现以下消息的同时发生的:
New release '18.04.1 LTS&
我知道正常的方式,我试过了,但似乎行不通。
在linux/net/sched/sched_htb.c中,我定义了变量:
unsigned int queuelength;
EXPORT_SYMBOL(queuelength);
还有一些关于变量的动作,不重要。
在linux/net/ipv4 4/tcp_dctcp.c中,
extern unsigned int queuelength;
错误随net/内置.o:
In function `dctcp_update_alpha':
linux/net/ipv4/tcp_dctcp.c:230: undefined reference t
我正在开发Linux内核模块,它或多或少是Linux内核版本不可知的。这意味着我不得不添加大量特定于版本的代码,并使用ifdefs对其进行包装。不是最好的解决方案。
问题是Linux内核源代码已经被多次更改了。例如,在最开始的时候,函数foo声明如下
static void foo(int a, int b)
后来又改成了
static void foo(int a, int b, int c)
最后,它看起来
static int foo(int a, int b, int c)
我的问题是,我如何找出在哪个Linux内核版本中修改了函数foo?