系统相关
首页 > 系统相关> > linux – 如何在运行时加载模块?

linux – 如何在运行时加载模块?

作者:互联网

我刚刚编译了qcserial模块,它是Gobi USB调制解调器的驱动模块.现在我有几个问题.

>现在我有两个文件:drivers / usb / serial / qcserial.ko和drivers / usb / serial / qcserial.o哪一个是正确的驱动程序?
>另外,据我所知,它需要进入/lib/modules/3.11.6/kernel/drivers/但是如何从那里知道哪些子目录?
>我应该只能复制文件,然后使用modprobe qcserial加载?

到目前为止我尝试了什么:

root@ariag25:~# mkdir /lib/modules/3.11.6/kernel/drivers/usb/serial
root@ariag25:~# cp drivers/usb/serial/qcserial.ko /lib/modules/3.11.6/kernel/drivers/usb/serial/
root@ariag25:~# ls -l /lib/modules/3.11.6/kernel/drivers/usb/serial
total 20
-rw-r--r-- 1 root root 17921 Jan  1 18:30 qcserial.ko
root@ariag25:~# modprobe qcserial
FATAL: Module qcserial not found.
root@ariag25:~# 

我错过了什么?我还需要复制.o文件吗?

从我编译的地方,我有:

ls -l drivers/usb/serial/qc*
-rw-r--r-- 1 reg reg  3776 Oct 18 18:24 drivers/usb/serial/qcaux.c
-rw-r--r-- 1 reg reg  3212 Dec 28 10:14 drivers/usb/serial/qcaux.o
-rw-r--r-- 1 reg reg 12577 Oct 18 18:24 drivers/usb/serial/qcserial.c
-rw-r--r-- 1 reg reg 17921 Dec 28 10:44 drivers/usb/serial/qcserial.ko
-rw-r--r-- 1 reg reg  7743 Dec 28 10:44 drivers/usb/serial/qcserial.mod.c
-rw-r--r-- 1 reg reg 11688 Dec 28 10:44 drivers/usb/serial/qcserial.mod.o
-rw-r--r-- 1 reg reg  6912 Dec 28 10:44 drivers/usb/serial/qcserial.o

编辑答案1

好的,我将我的linux-3.11.6-arm.tar复制到目标的/ tmp /中.然后我执行tar -C / -tvf linux-3.11.6-arm.tar将其解压缩到/但在此之后,我仍然会得到

# modprobe qcserial
FATAL: Module qcserial not found.

然后我想知道驱动程序gat是否复制了:

# tar -C / -tvf linux-3.11.6-arm.tar | grep qcserial
-rw-r--r-- root/root     17921 2013-12-28 13:22 lib/modules/3.11.6/kernel/drivers/usb/serial/qcserial.ko

所以看起来很好,但如果我想它,#ls /lib/modules/3.11.6/kernel/drivers/usb/ usb中没有串行目录/ – 为什么不呢?发生了什么?

解决方法:

您需要创建一个内核包(make tar-pkg).然后将其复制到ARM系统,例如复制到/ tmp并解压缩到/.您将所有驱动程序模块安装到正确的文件夹中,包括正确的modules.dep和自动解决模块依赖关系所需的其他文件.

modprobe qcserial应该正常工作.

标签:linux,load,kernel-modules
来源: https://codeday.me/bug/20190813/1648126.html