标签: kernel-modules

如何防止 XF86RFKill 按键启用 Linux 的飞行模式?

我在我的 ASUS FX505DT 上运行 Kubuntu 19.10(KDE + i3wm)。

\n\n

问题

\n\n

我可以XF86RFKill使用 i3wm 绑定密钥bindsym,但此绑定似乎不会取消 Linux 切换飞行模式的内置绑定。

\n\n

问题的行为

\n\n

这是xev我按Fn+时返回的内容F12,应该触发XF86RFKill

\n\n
MappingNotify event, serial 48, synthetic NO, window 0x0,\n    request MappingKeyboard, first_keycode 8, count 248\n\nFocusOut event, serial 48, synthetic NO, window 0x7a00001,\n    mode NotifyGrab, detail NotifyAncestor\n\nFocusOut event, serial 48, synthetic NO, window 0x7a00001,\n    mode NotifyUngrab, detail NotifyPointer\n\nFocusIn event, serial 48, synthetic NO, window 0x7a00001,\n    mode NotifyUngrab, …
Run Code Online (Sandbox Code Playgroud)

keyboard-shortcuts kernel-modules x11 i3 asus

5
推荐指数
1
解决办法
1073
查看次数

为什么我无法在启用 SecureBoot 的 Debian 中加载已签名的 VirtualBox 内核模块?

启用 Debian 测试和 SecureBoot 后:

我需要签署 VirtualBox 模块,如命令的输出vboxconfig所示:

vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: You must sign these kernel modules before using VirtualBox:
  vboxdrv vboxnetflt vboxnetadp
See the documenatation for your Linux distribution..
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: modprobe vboxdrv failed. Please use 'dmesg' to find out why.

There were problems setting up VirtualBox.  To re-start the set-up process, run
  /sbin/vboxconfig
as root.  If your system is using EFI Secure Boot you may …
Run Code Online (Sandbox Code Playgroud)

debian kernel-modules virtualbox secure-boot

5
推荐指数
1
解决办法
8069
查看次数

如何防止 USB 驱动程序 (EHCI) 在特定 USB 控制器(PCIe 卡)上加载?

我使用的是 Debian 10.8 和 Linux 内核 4.19.0-14。

我正在尝试使用 IOMMU 传递整个 USB 控制器(PCI Express 卡),但遇到问题。内核正在加载 ohci_pci 和 ehci_pci 驱动程序,我似乎无法阻止它或取消绑定它们。

我尝试删除它们(echo 1 > /sys/bus/pci/devices/...),但它冻结了系统。(内核通过堆栈跟踪等显示内核 BUG)

因此,我试图阻止内核绑定 ohci 和 ehci 驱动程序,以便 VFIO 可以使用它们而无需先解除绑定。

我尝试了几件事:

  • 将 pci-stub.ids vfio-pci.ids 添加到 GRUB 内核命令行。
  • 将 PCI 设备别名为虚拟驱动程序 (/etc/modprobe.d/vfio-pci.conf)
  • 将 ohci_pci 和 ehci_pci 列入黑名单 (/etc/modprobe.d/blacklist.conf)
  • 使用 /sys/bus/pci/devices/.../unbind 取消绑定驱动程序(但这会冻结系统)

我认为内核正在使用内置的 ohci/ehci 驱动程序(而不是模块),因此也许它会在 pci-stub 或 vfio 阻止之前加载这些驱动程序?

usb kernel-modules pci-passthrough iommu

5
推荐指数
0
解决办法
377
查看次数

如何将 hid 通用驱动程序绑定到由不同 hid 驱动程序采用的 hid 接口?

我面临的问题的简短背景。我正在致力于使用 USB 桥接器 FT260 实现同步 UART/I2C 操作。该芯片依靠 HID 报告来提供这些功能。插入后,hid 通用驱动程序会检测两个接口:0 和 1,第一个用于 I2C,第二个用于 UART。目前,我有支持 I2C的 FT260 驱动程序,仅作为模块加载(即hid-ft260),并且工作正常。然后后者接管了 hid-generic,我认为usbhid对此负责。lsusb -t返回:

|__ Port 2: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
Run Code Online (Sandbox Code Playgroud)

dmesg启动时显示如下:

hid-generic 0003:0403:6030.0001: hidraw0: USB HID v1.11 Device [FTDI FT260] on usb-xhci-hcd.1.auto-1.2
hid-generic 0003:0403:6030.0002: hidraw1: USB HID v1.11 Device [FTDI FT260] on usb-xhci-hcd.1.auto-1.2
ft260 0003:0403:6030.0001: hidraw0: USB …
Run Code Online (Sandbox Code Playgroud)

drivers usb kernel-modules bind hid

5
推荐指数
1
解决办法
2149
查看次数

对 linux 内核中 input_get_keycode 函数的更改 (input/input.c)

我正在为输入设备构建内核模块,我注意到在模块源代码中,有几个对 的调用input_get_keycode(data->input_dev, scancode, &keycode);当我编译时,我收到错误,表明该原型没有功能。

查看input/input.c源代码,这是的定义input_get_keycode

int input_get_keycode(struct input_dev *dev, struct input_keymap_entry *ke)
Run Code Online (Sandbox Code Playgroud)

我试图在网上查看,我发现了一些晦涩的参考资料,以更改内核以更好地处理大型键盘映射,显然该功能已更改以更好地处理该问题。查看来自 input/input.c 的旧源,该input_get_keycode函数被定义为

int input_get_keycode(struct input_dev *dev, unsigned int scancode, unsigned int *keycode)
Run Code Online (Sandbox Code Playgroud)

我的问题是,这是什么时候改变的。有没有关于更改的注释?我正在ubuntu natty从 git构建内核,这是我对2.6.37-rc3分支的理解。

这是特定于 ubuntu 的更改吗?或者这是主线内核的变化。我也有maverick来自 git的源代码,它具有旧式(3 输入)功能。

linux drivers kernel kernel-modules

4
推荐指数
1
解决办法
458
查看次数

可以加载“不同意符号版本”的内核模块

我下载了我的内核的源代码,应用了一个补丁并重建了它,现在我有一个内核模块,当我尝试时insmod,它会抱怨“模块中的未知符号”并dmesg给出错误“不同意符号的版本......” .

无需寻找此模块的源代码并针对我的内核重建它,是否有可能以某种方式强制内核接受此模块?

我意识到这很危险,但如果可能的话,我会冒险。

linux kernel kernel-modules

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

识别内核模块

如何获取有关内核模块的更多信息,例如详细描述?

例如,我可以看到像lpor这样的内核模块hid,但是这些短代码对我来说没有任何用处。

linux kernel-modules

4
推荐指数
1
解决办法
236
查看次数

Debian 在重启后没有检测到串行 PCI 卡

我已经安装了一个带有两个串行端口和一个并行端口的 PCI 卡。芯片组是MCS9865。我从这里下载了最新的驱动程序(V1.0.12)。我跑makemake install。现在两个串口是/dev/ttyD0/dev/ttyD1。我已经对它们进行了测试,picocom并且运行良好。问题是,当我重新启动系统时,没有/dev/ttyD0/dev/ttyD1。我需要做另一个make install。有什么解决办法吗?

输出lspci -v显示:

03:01.0 Serial controller: NetMos Technology PCI 9865 Multi-I/O Controller (prog-if 02 [16550])
    Subsystem: Device a000:1000
    Flags: bus master, medium devsel, latency 32, IRQ 19
    I/O ports at df00 [size=8]
    Memory at fbeff000 (32-bit, non-prefetchable) [size=4K]
    Memory at fbefe000 (32-bit, non-prefetchable) [size=4K]
    Capabilities: [48] Power Management version 2
    Kernel driver in use: …
Run Code Online (Sandbox Code Playgroud)

linux drivers kernel-modules serial-port

4
推荐指数
1
解决办法
4543
查看次数

如何向上游提交 Linux 模块?

我为我想提交给上游的特定风扇控制器编写了一个有用的内核模块。

我在哪里可以找到提交我的模块的地址?我需要它制作 GPL 还是我可以使用限制较少的许可证?

linux kernel kernel-modules

4
推荐指数
1
解决办法
857
查看次数

如何制作EDID

在这里阅读了这篇文章,我试着用我从这篇文章中理解的东西来凑合,但这里有一些问题:

  1. 哪里是/lib/firmware位于例如/usr/src/linux/lib/firmware/usr/lib/firmware或其他地方?
  2. 我可以在帖子给出的地址中使用预构建的 EDID 并使用 Gvim 之类的编辑器对其进行调整,然后使用以下信息将其传递给内核吗?我试图设置的分辨率是 1600x900@60:

      1: [H PIXELS RND]  :  1600.000000
      2: [V LINES RND]  :  450.000000
      3: [V FIELD RATE RQD]  :  120.000000
      4: [TOP MARGIN (LINES)]  :  8.000000
      5: [BOT MARGIN (LINES)]  :  8.000000
      6: [INTERLACE]  :  0.500000
      7: [H PERIOD EST]  :  16.648841
      8: [V SYNC+BP]  :  33.000000
      9: [V BACK PORCH]  :  30.000000
      10: [TOTAL V LINES]  :  500.500000
      11: [V FIELD RATE …
    Run Code Online (Sandbox Code Playgroud)

compiling kernel-modules edid linux-kernel

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