我想从图像文件模拟 USB。
我使用的是 Centos7,通过 elrepo安装了内核 4.11.7(实际上我也尝试过 3.10.* 4.10.* 4.11.1)kernel-mlkernel-ml-devel 4.11.7-1.el7.elrepo.x86_64
我们有2个解决方案:
与insmod
sudo insmod /link/to/g_mass_storage.ko file=/tmp/filebin.imgstall=0 可移动=y
在dmesg中:
udc-core: couldn't find an available UDC - added [g_mass_storage] to list of pending drivers
带modprobe
$ sudo modprobe g_mass_storage file=/tmp/testusb.imgstall=0可移动=y modprobe:致命:找不到模块g_mass_storage。dmesg中没有任何内容。
我也尝试过dummy_hcd:
$ sudo modprobe dummy_hcd modprobe:致命:找不到模块 dummy_hcd。
我该如何解决这个问题?
我尝试了很多事情,例如通过使用小工具启用所有内容来重新编译内核 4.11.1 等......
/usr/src/kernels/4.11.7-1.el7.elrepo.x86_64 $ cat .config | grep CONFIG_USB_DUMMY_HCD
# CONFIG_USB_DUMMY_HCD is not set
Run Code Online (Sandbox Code Playgroud)
结果:
编译内核后,我能够modprobe dummy_hcd使用二进制文件模拟 …
我正在为 LED 徽章编写一个小型简单的驱动器模块。我遵循了一些教程和参考资料来完成这项工作。所有这些似乎都暗示当设备插入时该模块将自动加载。但是,当我运行usb-devices相应的设备时有 driver Driver=usbfs。
我有另一个终端正在执行后续操作dmesg,它根本不会吐出任何调试消息。当我尝试连接和断开连接时,会出现以下内容:
[36078.726962] usb 1-2: USB disconnect, device number 24
[36080.925619] usb 1-2: new full-speed USB device number 25 using xhci_hcd
[36081.067062] usb 1-2: New USB device found, idVendor=0483, idProduct=5750
[36081.067067] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[36081.067071] usb 1-2: Product: CHW20160112 HID
[36081.067075] usb 1-2: Manufacturer: Chuanghongweitech1
[36081.068695] input: Chuanghongweitech1 CHW20160112 HID as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:0483:5750.0018/input/input40
[36081.069072] hid-generic 0003:0483:5750.0018: input,hidraw2: USB HID v1.10 Device [Chuanghongweitech1 CHW20160112 HID] on usb-0000:00:14.0-2/input0 …Run Code Online (Sandbox Code Playgroud) 这可能是一个关于内核头的不连贯的问题,因为我对它以及它的使用地点和方式没有清楚的了解。我认为它可能会被标记。我的问题有 3 个部分:
我认为内核头提供了一个接口,以便内核的其他部分(例如模块)可以使用它们。这就是我的书本知识。我还没有看到或发现任何使用内核头的代码(如果有人能指出我,我将不胜感激)。它也可以在用户空间中使用吗?任何代码示例将不胜感激。
我发现使用make headers_install内核头是由用户空间公开的,但同时不鼓励在用户空间中使用内核头。如果不鼓励,那么将其暴露给用户空间有什么用呢?
根据this和this,内核头文件(.h 文件)应该位于 3 个位置:/usr/include/linux/kernel.h用于用户空间 b./lib/modules/$(uname -r)/build/include/linux/sched.h这是外部模块 c. /usr/src/...用于内核模块这是否意味着不同目录中的头文件具有不同的用途或不同的接口或签名?换句话说,#include <linux/xyz.h> 用户空间代码中的含义与#include <linux/xyz.h>内核模块中的含义是否不同?外部模块与内核模块相同吗?
谢谢。
我已经用一些模块编译了一个内核,例如ath9k我的无线网卡。我在自动加载配置中没有任何内容(即我的文件/etc/modules.autoload.d/kernel-2.6是空的)。但是,lsmod仍然显示模块已加载。我还注意到,当我将文件系统支持编译为模块(reiserfs、jfs、xfs 等)时,它们也会自动加载。
谁在做这件事?我可以而且应该禁用它吗?我正在使用 Gentoo。
谢谢
我突然无法在 virtualbox 中设置仅主机网络,请看我的截图,“名称”组合框中没有条目

我在mkinitcpio.conf.
它们是在内核启动时自动加载还是udev在我没有在模块列表中指定它们时自动加载rc.conf?
由于各种原因,我已经构建了一个支持可加载模块的内核,其中之一是无需重新启动即可编译和加载模块的可能性。当我需要一个我没有在内核配置中启用的模块时,这应该很有用。
现在,有了像 nouveau 这样的驱动程序,只需转到源目录并运行make M=drivers/gpu/drm/nouveau. 如何在iptables不编译整个内核并重新启动的情况下构建更新的模块?甚至有可能吗?
当我登录或注销时,我对 Linux Mint Debian 版的系统蜂鸣声感到恼火。我找到了一些解决方案,例如:
echo "blacklist pcspkr" | sudo tee -a /etc/modprobe.d/blacklistRun Code Online (Sandbox Code Playgroud)
但它对我不起作用。我怎样才能关闭蜂鸣声?
早期版本的 Fedora 有不同的可加载内核模块,包括不同的拥塞控制算法等(/lib/modules/"kernel-name"/kernel/ipv4)。这些以 .ko 文件的形式存在,如tcp_veno.ko 、 tcp_westwood .ko。但是当我开始使用fedora 17 时,我发现这些模块不存在于给定的位置,我想使用不同的拥塞控制算法。请建议我在 Fedora 17 中使用这些算法的方法。??
我必须演示一个实践,我必须制作自己的模块,将此模块添加到内核的源代码并实现系统调用。我在 Ubuntu 上使用 3.16 内核,但从源代码安装内核大约需要 2 个小时。
是否可以从源代码中删除内核的某些部分(如不必要的驱动程序等)以节省时间,因为我不打算将这个新安装的内核用于常规使用?如果是,如何?
kernel-modules ×10
linux-kernel ×4
kernel ×2
linux ×2
arch-linux ×1
bell ×1
compiling ×1
debian ×1
drivers ×1
fedora ×1
gentoo ×1
iptables ×1
linux-mint ×1
networking ×1
tcp ×1
usb-device ×1
virtualbox ×1