so驱动与deb驱动
linux为什么有些驱动是so文件,每次重启后,需要使用insmod命令。而有些驱动是deb文件,安装后,不用每次重启电脑后都安装。
Linux 中驱动文件存在.so 文件和.deb 文件两种形式,且它们在加载和使用方式上有所不同,原因如下:
.so 文件(共享对象文件)¶
-
性质与特点:.so 文件通常是动态链接库文件,它包含了可被多个程序共享的代码和数据。在驱动方面,这种类型的驱动一般是内核模块的动态链接库。
-
加载方式:使用
insmod命令加载.so驱动文件,是因为它只是内核模块的一部分,内核在启动时不会自动加载这类动态链接库形式的驱动。insmod命令会将指定的内核模块及其依赖的.so文件加载到内核空间中,使其能够被内核识别和使用。 -
重启后需重新加载的原因:由于
.so文件不是内核直接内置的一部分,系统重启后,内存中的所有数据都会被清空,包括之前加载的.so驱动文件。因此,每次重启后都需要重新使用insmod命令来加载驱动,以便内核能够找到并使用这些驱动程序。
.deb 文件(软件包文件)¶
- 性质与特点:.deb 文件是 Debian 系 Linux 发行版用于软件安装和管理的包文件格式。它包含了软件的所有文件、配置信息以及依赖关系等。
- 安装与加载方式:当使用
dpkg等工具安装.deb格式的驱动包时,安装过程会将驱动文件复制到系统的指定目录,并进行一系列的配置工作。对于一些内核驱动,安装程序可能会自动将相关的驱动模块信息注册到内核中,使得内核在启动过程中能够自动识别并加载这些驱动。 - 重启后无需重新安装的原因:因为
.deb文件在安装时已经完成了系统范围内的配置和注册,内核在启动时会按照既定的配置去加载相应的驱动模块。只要系统的内核版本和硬件环境没有发生变化,已经安装好的.deb驱动就能够正常工作,无需再次安装。