linux加载与使用ko驱动

linux驱动和有两种形式:

1:编译到内核

2:编译为ko模块

这里记录下ko模块使用方法.

首先cd到/var/lib/(内核版本)/drivers/

在这里面找到要装载的模块ko文件

modprobe  驱动名  (不用加扩展名.ko)

rmmod 可以用卸载模块

可以通过dmesg | tail 查看模块输出的一些信息,通过lsmod指令能看到加载了哪些模块.

时间: 2024-12-11 21:54:36

linux加载与使用ko驱动的相关文章

linux 加载模块时出现cannot insert '*.ko': Device or resource busy错误

看 linux 设备驱动开发详解时,字符设备驱动一章,注册globalmem驱动时,出现如下错误: # insmod globalmem.ko insmod: can't insert 'globalmem.ko': Device or resource busy 原因: 模块使用的是静态分配设备号的方式,而这个设备号已经被系统中的其他设备所占用.查看未被占用的 设备号的方法: # cat /proc/devices linux 加载模块时出现cannot insert '*.ko': Devi

mknod创建设备(加载新的设备驱动时候,通常会用到此命令)

mknod - make block or character special filesmknod [OPTION]... NAME TYPE [MAJOR MINOR] option 有用的就是-m 了 name 自定义 type 有b 和c 还有p 主设备号 次设备号 主设备号是由linux/major.h定义的,如下定义了一个DOC设备:#define IGEL_FLASH_MAJOR 62 假如有一个命令mknod doc b 62 0 :其中的doc为定义的名字,b指块设备,0指的是

如何让系统启动时不要加载某些硬件的驱动

如何让系统启动时不要加载某些硬件的驱动,如声卡驱动(我是做服务器哦)是不是要重新编译内核,除此之外有没有其他优雅点的办法? debian:/sys/devices# lsmodModule                  Size  Used bynls_utf8                1760  1 cifs                  208948  1 nls_base                6820  2 nls_utf8,cifsnfsd            

如何让linux加载当前目录的动态库

debian从7.0开始支持multiarch,64位库的路径改到/usr/lib/x86_64-linux-gnu了,mint.ubuntu这些衍生版有没有跟着改我就不清楚了. deepin linux 是基于debian的,所以库路径也是/usr/lib/x86_64-linux-gnu # 如何让linux加载当前目录的动态库 --------------------------- linux的excutable在执行的时候缺省是先搜索/lib和/usr/lib这两个目录,然后按照ld.s

《Linux内核分析》 week8作业-Linux加载和启动一个可执行程序

一.ELF文件格式 ELF(Executable and Linking Format)是x86 Linux系统下常用的目标文件格式,有三种主要类型: 适于连接的可重定位文件,可与其他目标文件一起创建可执行文件和共享目标文件. 适于执行的可执行文件,用于提供程序的进程映像,加载的内存执行. 共享目标文件,连接器可将它与其他可重定位文件和共享目标文件连接成其他目标文件. 文件格式 ELF header在文件开始处描述了整个文件的组织,Section提供了目标文件的各项信息,Program head

linux加载rootfs 根文件系统 kernel panic - not

环境:linux内核加载自己的制作的文件系统. 错误信息有以下几种: 错误信息1: Root-NFS: Server returned error -5 while mounting /mini2440/rootfs VFS: Unable to mount root fs via NFS, trying floppy. VFS: Cannot open root device "nfs" or unknown-block(2,0) Please append a correct &q

Linux加载一个可执行程序并启动的过程

原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 作者:严哲璟 以shell下执行ls命令为例介绍Linux通过fork()和execve()类函数的执行程序启动过程: 父进程为shell,命令为ls,目录为/bin/ls 当输入ls时,shell进程通过fork()创建一个新的子进程,fork()进程复制代码,以及新建堆栈等之前已经说明,子进程有机会执行的时候,在ret_from_f

linux 加载驱动后有permanent的解决办法

参考http://blog.csdn.net/zmnqazqaz/article/details/38058713解决 原因是系统默认内核使用gcc与当前编译模块gcc版本不同导致的. 查看内核默认使用gcc版本 cd  /lib/modules/`uname -r`/build/include/generated/ cat compile.h 查看当前使用gcc版本 ls -al /usr/bin/gcc* 修改软链接 ln -s /usr/bin/gcc-4.6 /usr/bin/gcc

VirtualBox下Linux加载Windows的共享目录

1.Windows下,在VirtualBox安装增强功能. 菜单 -> 设备 -> 安装增强功能 2.Windows下,在VirtualBox设置共享目录. 设置 -> 共享文件夹 -> 添加 -> 选择“共享文件夹路径” 例如:选择的是F:\MyWinShare目录,那么共享文件夹名称就是MyWinShare 3.Linux下,在终端输入: sudo mkdir /mnt/MyLinuxShare sudo mount -t vboxsf MyWinShare /mnt/M