Linux内核驱动模块的添加与删除@

今天看了《Linux设备驱动开发详解》的第四章模块和第五章文件。

学长给了一个的任务:删除Linux内核中的DM9000的驱动模块,重新编译内核。

这篇文章现在写肯定还不够完善,我之后我会再补全,所以先打一个“@”的标记。

首先,我从文件中找到DM9000驱动模块所在位置,在~/drives/net下。于是,我从Linux内核根目录下查看makefile,逐级向下直到找到net文件夹下的makefile文件时,我发现其调用了DM9000,并在Kconfig中查看其是否包含了DM9000资源,发现并没有。。。所以我仅做了如下修改:

obj-$(CONFIG_DM9000) += dm9000.o

改为

#obj-$(CONFIG_DM9000) += dm9000.o

就是注释掉了。。。

然后我在Linux内核根目录下执行以下命令,将内核编译成新的映像文件。

make clean
make menuconfig
make zImage
make modules

接下来,我将调试。目前,我还很困惑,如何在Linux虚拟机上调试Linux内核。。。明天度娘,我会努力的

过几天就更新这一部分。

时间: 2024-10-19 01:08:40

Linux内核驱动模块的添加与删除@的相关文章

Linux系统中如何添加及删除网关

Linux系统中如何添加及删除网关 如何添加网关: 1.临时添加网关 route add default gw x.x.x.x 临时加网关,马上生效 2.永久添加网关: vim /etc/sysconfig/network-scripts/ifcfg-eth0 GATEWAY=x.x.x.x 或者 vim /etc/rc.local .. route add default gw x.x.x.x 注意: 加网关只能加你已经有的路由网段里的一个IP才行 加网关可以不用指定子网掩码(因为是已有的一个

在linux内核文件中添加自己的驱动,添加自己的linux驱动,编译自己的linux驱动程序方法和例子图文

此文章为done原创,转载请写明出处,尊重原创. 写这个文章,我参考了网上的一些博客: http://bbs.chinaunix.net/thread-3634524-1-1.html http://www.bkjia.com/gjrj/800182.html 也参考了参考了 <linux驱动开发详解>3.4章节,实现建立自己驱动目录. 文章中的驱动范例是:linux设备驱动开发详解第二版 的 global mem tow,宋宝华主编的书本光盘源码 在我们学习了linux的驱动之后,我们都想编

linux下export命令添加、删除环境变量(转载)

转自:http://blog.csdn.net/shenshendeai/article/details/49794699 export命令 功能说明:设置或显示环境变量. 语 法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供一组环境变量. export可新增,修改或删除环境变量,供后续执行的程序使用. export的效力仅及于该此登陆操作. 参 数: -f 代表[变量名称]中为函数名称. -n 删除指定的变量.变量实际上并未删除,

linux内核的操作命令

lsmod 主要用于显示当前Linux系统中已经加载的内核模块, modprobe 在Linux内核中加载和删除内核模块,Linux内核会自动解决内核模块之间的依赖关系,将相互依赖的模块自动加载 -r 删除指定模块 -C指定内核配置文件 -f表示覆盖 -l表示显示模块的绝对路径 rmmod卸载内核模块 depmod分析可加载模块的依赖性,生成modules.dep文件和映射文件 -a表示分析所有可用模块 -e表示显示目前已加载但不可执行的模块 -F表示报告不被system.map内核符号表或其他

向linux内核中添加外部中断驱动模块

本文主要介绍外部中断驱动模块的编写,包括:1.linux模块的框架及混杂设备的注册.卸载.操作函数集.2.中断的申请及释放.3.等待队列的使用.4.工作队列的使用.5.定时器的使用.6.向linux内核中添加外部中断驱动模块.7.完整驱动程序代码.linux的内核版本为linux2.6.32.2. 一.linux模块的框架以及混杂设备相关知识 1.内核模块的框架如下图所示,其中module_init()(图中有误,不是modules_init)只有在使用insmod命令手动加载模块时才会被调用,

通过内核编译法向Linux内核添加系统调用

[实验内容]: 向Linux添加一个系统调用 测试该系统调用 使用ptrace或类似的系统跟踪工具来对该测试程序进行跟踪调试 [软件]:VMWare支持的Ubuntu虚拟机 VSCode [步骤] 1.在实验之前先下载好相关软件包 不过如果升级了make以后,如果内核版本低,会报错 1. sudo apt-get install make 2. sudo apt-get install gcc 3. sudo apt-get install libncurses5-dev 4. sudo apt

linux内核启动参数解析及添加

1.环境: ubuntu16.04 Linux jello 4.4.0-89-generic #112-Ubuntu SMP Mon Jul 31 19:38:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 2.查看当前linux内核的启动参数: cat /proc/cmdline 笔者的输出内容如下: BOOT_IMAGE=/boot/vmlinuz-4.4.0-89-generic root=UUID=bef418fa-4202-4513-b39b-cd

enc28j60网卡驱动模块添加进linux内核,Kconfig,Makefile配置过程

这里是要把http://www.cnblogs.com/hackfun/p/6260396.html中的enc28j60网卡驱动模块,添加到2.6.22.6内核中,这个模块代码不需要任何修改.只需要在内核目录下的相关配置脚本文件,如Makefile,Kconfig,.config等,修改某些配置就行. enc28j60网卡驱动模块使用到的几个文件: enc28j60.c enc28j60_hw.h spi_bitbang.c spi_s3c24xx.c spi_platform_dev.c 实际

s3c2440 移植linux内核 添加网卡支持 yaffs2文件系统支持

三.内核的移植 说明:针对的是百问网的jz2440 gcc:4.9.1 1.移植内核 首先,下载源码包:https://www.kernel.org/ 现在时间为2014年12月20日其主界面截图为: 在此,就在下较新的稳定的版本作为尝试.在这里有个命名问题需要说明一下,最前面的2.6或者3.18是主版本号码,后面的次版本号是比如2.6.32.65中的32,再后面的比如2.6.32.65中的65是升级版本号,主版本号为奇数的是开发本比如3.17,主版本号为偶数的为稳定版比如3.18,一般情况下名