标签: kernel-modules

insmod:错误:无法插入模块 8188eu.ko:模块格式无效

我正在尝试将 TL-WN725N 用作 Fedora 20 的 USB WiFi 适配器。

我遵循了这些说明,适配器运行良好,甚至在过去几周内进行了两次更新。

然后我yum update今天做了一个,在我重新启动计算机之前它仍然可以正常工作。我试图重新加载模块并得到insmod: ERROR: could not insert module 8188eu.ko: Invalid module format.

我发现的是,我的内核和模块中的内核头文件不再相同,我必须更新内核,所以我这样做并得到了

sudo yum install kernel-headers
Loaded plugins: langpacks, refresh-packagekit
Package kernel-headers-3.17.3-200.fc20.x86_64 already installed and latest version
Nothing to do
Run Code Online (Sandbox Code Playgroud)

现在我对如何让模块正确加载有点困惑。有人知道吗?

kernel-modules upgrade

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

如何调试出现空指针的内核模块?

我有一个从这个补丁编译的自定义内核模块,它logitech G19在其他 G 系列设备中增加了对键盘的支持。我在 Ubuntu 的特立独行内核的主分支 (2.6.35) 上编译得很好。

我可以启动并加载模块,但我遇到了一个非常奇怪的情况。一旦我加载模块(在启动时或通过 modprobe),我就会出现黑屏并且我的控制台锁定。

奇怪的是它没有锁定我的系统,它只是当前的控制台会话。我可以通过 SSH 进入我的盒子,它给了我一个终端和一个会话。我可以打字,我什至可以运行一个命令,它会给我输出。然后它绘制我的下一个提示并立即锁定。

我看到dmesg有一个空指针,我得到以下堆栈跟踪:

[  956.215836] input: Logitech G19 Gaming Keyboard as /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.1/1-2.1.2/1-2.1.2:1.1/input/input5
[  956.216023] hid-g19 0003:046D:C229.0004: input,hiddev97,hidraw3: USB HID v1.11 Keypad [Logitech G19 Gaming Keyboard] on usb-0000:00:1d.7-2.1.2/input1
[  956.216065] input: Logitech G19 as /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2.1/1-2.1.2/1-2.1.2:1.1/input/input6
[  956.216128] Registered led device: g19_97:orange:m1
[  956.216146] Registered led device: g19_97:orange:m2
[  956.216178] Registered led device: g19_97:orange:m3
[  956.216198] Registered led device: g19_97:red:mr
[  956.216216] Registered led device: …
Run Code Online (Sandbox Code Playgroud)

linux c debugging kernel-modules assembly

10
推荐指数
2
解决办法
6717
查看次数

自定义内核:模块内置时无法加载固件

我想内置所有模块,但这失败了iwlagn

iwlagn 0000:03:00.0: request for firmware file 'iwlwifi-6000-4.ucode' failed.
iwlagn 0000:03:00.0: no suitable firmware found!
Run Code Online (Sandbox Code Playgroud)

微码文件存在于其中/lib/firmware,如果我编译iwlagn为模块,则整个过程都可以正常工作。我不知道它在哪里寻找文件或有什么问题 - 有什么想法吗?

linux kernel kernel-modules

10
推荐指数
1
解决办法
5086
查看次数

ALSA/ASoC:如何正确加载设备/驱动程序?

我正在使用 Buildroot 为 NXP LPC3250 微控制器构建嵌入式 Linux (2.6.39.2) 系统。

现在,我正在尝试启动并运行 ALSA/ASoC,但在让模块协同工作时遇到了一些问题。(我认为!)

一些重要的背景:

我正在测试的板是Embedded Artists 3250 V2 开发板。V2 与 V1 的不同之处在于它没有 LCD 屏幕,但包含I2S 音频编解码器:NXP UDA1380。对 EA3250 V1 的电路板支持包含在内核的LPCLinux版本中。还有一个不同的开发板,称为Phytec 3250,其中包含相同的 UDA1380 编解码器芯片。LPCLinux 发行版还支持 Phytec 板以及音频编解码器芯片。据我所知,Phytec 3250 板在 I2C 地址0x18上具有 UDA1380 编解码器。在我的 EA3250 V2 板上,音频编解码器位于 I2C 地址0x1a(我已经验证芯片已通电,我可以使用 I2C-tools 包与它通信。它响应 i2cdetect,我可以使用 i2cget 从芯片正确读取寄存器。)

修改源码:

我需要编辑 Phytec 3250 驱动程序文件来更改编解码器芯片的地址。我编辑了lpc3xxx-uda1380.c 的这一部分:

static struct snd_soc_dai_link phy3250_uda1380_dai[] = {
       {
                  .name           = …
Run Code Online (Sandbox Code Playgroud)

alsa kernel-modules

10
推荐指数
1
解决办法
8795
查看次数

启动时加载linux内核模块的顺序是什么?他们的优先级如何?

我有一个动态编译的 Linux 内核模块。它是如何添加到启动中的?里面有很多.ko文件/lib/modules。如何设置加载这些模块的优先级?

linux startup kernel-modules

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

“usb 3-2: can't set config #1, error -110” - USB 键盘在 Windows 8 笔记本电脑上工作,但只在 Linux 启动前在 PC 上工作

我尝试了 2 个新的 USB 键盘,它们在 Linux 开始启动之前都可以工作。

启动时我看到:

[    8.365211] usb 3-2: New USB device found, idVendor=1a2c, idProduct=0b23
[    8.404863] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    8.444623] usb 3-2: Product: USB Keyboard
[   10.641472] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
[   13.481363] usb 3-2: can't set config #1, error -110
[   13.523672] usb 3-2: USB disconnect, device number 2
[   13.804028] usb 3-2: new low-speed USB device number 3 using uhci_hcd
Run Code Online (Sandbox Code Playgroud)

lsusb …

usb keyboard kernel-modules

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

为什么用户空间应用程序需要内核头文件?

我正在为嵌入式设备构建 busy-box 和 iptables,它们的依赖项之一是内核头文件。

我在整个文件系统中搜索了 *.ko 文件,但没有找到。所以我得出结论,应用程序没有创建任何可加载的驱动程序(内核模块)。

用户空间应用程序需要内核头文件的其他情况是什么?

linux kernel-modules linux-kernel

10
推荐指数
1
解决办法
1735
查看次数

如何在 Debian 中为多个内核映像版本编译 DKMS 模块?

我安装了 3.16 和 4.0 版的linux-image软件包。在登录期间,我可以在“高级选项”菜单项中选择要启动的内核。但是,当我安装 DKMS 模块时,它仅针对较新版本进行编译:

Setting up fglrx-modules-dkms (1:14.12-1) ...
Loading new fglrx-14.12 DKMS files...
Building only for 4.0.0-1-amd64
Run Code Online (Sandbox Code Playgroud)

3.16 也安装了相关包 ( linux-headers, linux-kbuild, linux-compiler-gcc)。

为什么没有为旧内核映像编译包?我可以配置的内容,以免编译?

compiling debian kernel-modules dkms

10
推荐指数
1
解决办法
7386
查看次数

无法编译内核:错误,内核不支持 PIC 模式

我在重新编译内核时遇到了麻烦。下载源码包,解压运行

fakeroot make-kpkg kernel_image  
Run Code Online (Sandbox Code Playgroud)

导致我出错

               [...]

  CHK     include/generated/utsrelease.h
  UPD     include/generated/utsrelease.h
  CHK     include/generated/package.h
  UPD     include/generated/package.h
  CC      kernel/bounds.s
kernel/bounds.c:1:0: error: code model kernel does not support PIC mode
Run Code Online (Sandbox Code Playgroud)

该问题可以通过更改使用 获得的内核配置来解决make menuconfig

如何摆脱这个错误并成功编译

kernel-modules linux-kernel kali-linux kernel-parameters

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

如何验证内核模块签名?

编译内核源代码时,您可以选择使用CONFIG_MODULE_SIG*选项对内核模块进行签名。该modinfo工具应该处理验证模块签名的任务,但多年来一直存在一些错误,该工具根本无法再完成这项工作。我得到的只是以下内容:

sig_id:         PKCS#7
signer:
sig_key:
sig_hashalgo:   md4
signature:      30:82:02:F4:06:09:2A:86:48:86:F7:0D:01:07:02:A0:82:02:E5:30:
                ...
Run Code Online (Sandbox Code Playgroud)

所以没有密钥,哈希算法是 md4,它甚至没有在内核中编译。

那么如何手动检查和验证模块签名呢?这甚至可能吗?

kernel kernel-modules signature

10
推荐指数
1
解决办法
7196
查看次数