`
gstarwd
  • 浏览: 1525182 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Linux加载模块命令

阅读更多

安装模块
insmod *.ko
卸载模块
rmmod *.ko
查看已经安装的模块
lsmod
cat /proc/modules
查看模块输出
tail /var/log/messages
//

1.编译工具make

实际上,make 工具通过一个称为 Makefile 的文件来完成并自动维护编译工作。Makefile 需要按照某种语法进行编写,其中说明了如何编译各个源文件并连接生成可执行文件,并定义了源文件之间的依赖关系。下面给出2.6 内核模块的Makefile模板(请参看Makefile的写法)

 

# Makefile2.6
obj-m += hellomod.o # 产生hellomod 模块的目标文件
CURRENT_PATH := $(shell pwd) #模块所在的当前路径
LINUX_KERNEL := $(shell uname -r) #Linux内核源代码的当前版本
LINUX_KERNEL_PATH := /usr/src/linux-headers-$(LINUX_KERNEL) #Linux内核源代码的绝对路径
all:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules #编译模块了
clean:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean #清理

注意: 在每个命令前(例如make命令前)要键入一个制表符(按TAB键产生)

有了Makefile,执行make命令,会自动形成相关的后缀为.o和.ko文件。
到此,模块编译好了,该把它插入到内核了:

如:$insmod hellomod.ko

当然,要以系统员的身份才能把模块插入。

成功插入后,可以通过dmesg命令查看,屏幕最后几行的输出就是你程序中输出的内容:Hello,World! from the kernel space…

分享到:
评论

相关推荐

    linux内核模块的编译详解(有图)

    加载模块可以使用 `insmod` 命令,例如 `sudo insmod modules.ko`。卸载模块可以使用 `rmmod` 命令,例如 `sudo rmmod modules`。在加载和卸载模块时,需要使用 `dmesg` 命令来查看内核输出信息。 5. 加载模块时...

    Linux命令大全完整版.pdf

    - 模块管理命令:如insmod(安装模块)、rmmod(移除模块)、modprobe(自动处理模块依赖关系)等,用于内核模块的加载和卸载。 3. Linux文档编辑命令 Linux系统提供了多种文档编辑和处理的命令行工具,用于文本...

    Linux内核动态加载模块.pdf

    Linux内核动态加载模块是Linux操作系统的一个重要特性,它允许系统管理员和用户在系统运行时动态地添加或移除内核功能,而无需重新编译整个内核。本文将详细介绍Linux内核模块的加载机制、配置方法和相关命令。 ...

    Linux内核模块与_proc文件系统.pdf

    Linux 内核模块可以分为静态可加载模块和动态可加载模块。一旦加载入内核,模块就和内核具有相同的权利。模块可以单独编译成目标代码,这样模块就是一个目标文件。它可以根据用户的实际需要,在系统启动后由用户自己...

    Linux设备管理命令详解.pdf

    Linux设备管理命令详解中,Ismod命令用于列出当前系统加载的模块,可以当作硬件浏览器。 知识点5: Ismod命令的使用 Ismod命令的使用权限是超级用户。 知识点6: Ismod命令的格式 Ismod命令的格式为:lsm od...

    LINUX内核模块编程

    Linux内核模块(Kernel Module)是动态加载到内核空间的一段代码,它可以在需要时加载,不需要时卸载,以实现对硬件设备驱动、文件系统或其他特定功能的支持。这使得系统能够根据实际需求调整内核的功能集,降低了...

    Linux 可加载内核模块剖析

    这种设计借鉴了其他操作系统如BSD和Solaris中的可加载模块概念,但Linux的实现方式独具特色。 LKM的构建和管理涉及到一系列的宏和函数。模块通常包含一个入口点(entry)函数,用于在模块被加载时执行,以及一个...

    linux常规操作命令大全

    Linux 常规操作命令大全 Linux 系统中有很多实用的命令,掌握这些命令可以帮助我们更好地使用 Linux 系统。以下是 Linux 常规操作命令大全,涵盖了文件操作、磁盘操作、系统操作等多方面的知识点。 文件操作命令:...

    linux内核模块分析

    这些参数可以在加载模块时通过`insmod`命令传递。 5. **驱动程序开发**:内核模块常用于编写驱动程序,以提供对硬件设备的支持。驱动程序需要实现设备模型(Device Model)接口,如`struct device_driver`,并注册...

    Linux内核编译命令

    ### Linux内核编译命令详解 #### 一、概述 Linux内核是开源操作系统的核心部分,负责管理和协调硬件资源以及为应用程序提供服务。对于开发者来说,掌握如何编译Linux内核至关重要,因为这能帮助他们根据特定需求...

    linuxc常用命令

    - /boot:存放启动Linux所需的文件,包括内核、引导加载器等。 - /dev:设备文件目录,存放了系统识别的硬件设备,如硬盘、终端等。 - /etc:系统配置文件目录。 - /home:用户家目录,默认位置,用户的个人文件...

    linux内核模块设计实验

    实际加载模块的系统调用是`init_module`,它在模块的`init_module`函数中执行,完成模块的初始化工作。 编写内核模块的基本结构包括以下元素: 1. 包含`linux/module.h`头文件,这是所有内核模块的基础。 2. 初始化...

    Linux内核模块开发指南

    2. 加载模块:使用`insmod`命令将模块插入内核,`rmmod`命令卸载。还可以通过`modprobe`自动处理依赖关系。 四、模块调试 1. `dmesg`输出:查看内核消息,了解模块加载过程中的错误和警告。 2. `sysfs`和`procfs`:...

    LInux内核模块开发

    * 内核模块的加载和卸载:使用insmod和rmmod命令加载和卸载内核模块。 * 内核模块的编译:使用make命令编译内核模块。 * 内核模块的调试:使用 printk 函数输出调试信息。 * 内核模块的文档化:使用 kernel-doc 工具...

    一个LINUX的模块例子.rar_linux 文件系统_linux内核模块_内核模块

    此外,内核模块还需要使用`module_param()`宏定义模块参数,以便在加载模块时可以通过命令行传递参数。最后,模块的编译和加载通常通过`make`和`insmod`命令完成,而卸载则使用`rmmod`命令。 本示例中的"一个LINUX...

    让LINUX核心模块加载Windows下驱动

    5. **加载模块**:加载`ndiswrapper`内核模块,命令为:`# modprobe ndiswrapper`。这一步骤会将Windows驱动加载到Linux内核中。 6. **识别无线网卡**:安装驱动后,使用`iwconfig`命令检查无线网卡是否被系统识别...

    linux 模块的动态加载和系统配置.ppt

    【Linux 动态加载模块详解】 Linux 模块的动态加载是Linux内核的一个关键特性,它允许在操作系统运行时加载或卸载特定的功能模块,尤其是设备驱动程序和某些服务,而无需重启整个系统。这一特性使得Linux内核能够...

    Linux实验模块加载和卸载及内存管理

    加载模块的优点在于可以避免因更新内核而重编译整个系统,同时使内核更加紧凑和灵活。然而,模块也会带来一些缺点,如增加内存消耗,可能导致系统崩溃,以及需要维护复杂的模块间依赖关系。 编写内核模块通常涉及...

    Linux命令详解手册.pdf

    depmod、modinfo、modprobe等命令则涉及Linux内核模块的管理,insmod用于安装模块,rmmod用于移除模块,而modprobe除了移除模块外还提供了自动处理模块依赖的功能。此外,lilo命令用于配置Linux启动加载程序,而...

Global site tag (gtag.js) - Google Analytics