当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Ubuntu系统关于驱动模块命令的一些使用

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

Unix/Linux 中的 Ubuntu系统关于驱动模块命令的一些使用


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 92 ::
收藏到网摘: n/a

Linux是基于模块的,所有的驱动都是模块化的:

管理模块的命令:

1、列出系统中所有已经加载的模块的大小与名称等:

lsmod或者cat /proc/modules
ty@tonylinux:~$ lsmod
Module Size Used by
rfcomm 40216 0
l2cap 26244 5 rfcomm
bluetooth 50020 4 rfcomm,l2cap
ppdev 9220 0
radeon 116000 1
........

ty@tonylinux:~$ cat /proc/modules
rfcomm 40216 0 - Live 0xf8dee000
l2cap 26244 5 rfcomm, Live 0xf8db2000
bluetooth 50020 4 rfcomm,l2cap, Live 0xf8dc2000
ppdev 9220 0 - Live 0xf8d88000
.........
2、modinfo 查看模块信息:

modinfo 可以查看模块的信息,通过查看模块信息来判定这个模块的用途。
ty@tonylinux:~$ modinfo bluetooth
filename: /lib/modules/2.6.15-27-386/kernel/net/bluetooth/bluetooth.ko
author: Maxim Krasnyansky <[email protected]>, Marcel Holtmann <[email protected]>
description: Bluetooth Core ver 2.8
version: 2.8
license: GPL
alias: net-pf-31
vermagic: 2.6.15-27-386 preempt 486 gcc-4.0
depends:
srcversion: 7EE5558C84FD3DB2B68971C
 
3、modprobe 挂载新模块以及新模块相依赖的模块

modprobe 我们常用的功能就是挂载模块,在挂载某个内核模块的同时,这个模块所依赖的模块也被同时挂载;这是于insmod挂载模块有区别的地方。当然modprobe 也有列出内核所有模块,还有移除模块的功能;下在我们举个例子说一说咱们常用的功能和参数;

modprobe -c

odprobe -c 可以查看modules 的配置文件,比如模块的别名是什么等;

modprobe -l 是列出内核中所有的模块,包括已挂载和未挂载的;通过modprobe -l ,我们能查看到我们所需要的模块,然后根据我们的需要来挂载;

[root@localhost beinan]# modprobe 模块名 注:挂载一个模块;

root@localhost beinan]# modprobe -r 模块名 注:移除已加载的模块,和rmmod 功能相同;

4、rmmod 移除已挂载模块

rmmod 模块名

5、depmod 创建模块依赖关系的列表

这个模块管理工具是创建模块依赖关系的列表,有几个参数我们注意一下就行了,目前的的Linux 发行版所用的内核是2.6x版本,是自动解决依赖关系,所以这个命令知道就行了;模块之前也有依赖关系,比如我们想驱动USB 移动硬盘,目前有两种驱动,一种是udev ,在内核中有,但目前不太稳定;另一种办法是用usb-storage驱动,而usb-storage 依赖的模块是scsi 模块,所以我们要用usb-storage 的模块,也得把scsi 安装该命令为modules.dep 文件或映射文件创建依赖关系,modules.dep文件位于 /lib/modules/2.6.15-27-i386;这是我的电脑的目录文件。

6、insmod 挂载模块

insmod 这个工具,和modprobe 有点类似,但功能上没有modprobe 强,modprobe 在挂载模块是不用指定模块文件的路径,也不用带文件的后缀.o 或.ko ;而insmod 需要的是模块的所在目录的绝对路径,并且一定要带有模块文件名后缀的(modulefile.o 或modulesfile.ko );

[root@localhost beinan]# insmod /lib/modules/2.6.11-1.1369_FC4/kernel/drivers/net/tg3.ko

模块的配置文件 modules.conf 或 modprobe.conf

内核模块的开机自动挂载模块一般是位于一个配置文件,一般的Linux发行版本都有 /etc/modules.conf 或 /etc/modprobe.conf 。比如Fedora Core 4.0 内核模块开机自动加载文件是 /etc/modprobe.conf ;在这个文件中,一般是写入模块的加载命令或模块的别名的定义等;比如我们在modules.conf 中可能会发行类似的一行 ;

通过源码编译驱动一般是./configure ;make;make install ,有时程序不提供./configure ,我们可以make或make install ,或者执行make;make install ;如果不能make install ,则需要我们自己复制.o或者.ko文件到 /lib/modules/内核版本/kernel/目录 或 /lib/modules/内核版本/kernel/drivers 目录中相应的驱动目录;

这个还是自己尝试吧,说也说不清楚,遇到问题后就知道怎么弄了;具体的还是驱动的REAME和INSTALL为准。