CN105549965A - 一种将驱动集成到不同Linux内核版本的方法 - Google Patents
一种将驱动集成到不同Linux内核版本的方法 Download PDFInfo
- Publication number
- CN105549965A CN105549965A CN201510899416.6A CN201510899416A CN105549965A CN 105549965 A CN105549965 A CN 105549965A CN 201510899416 A CN201510899416 A CN 201510899416A CN 105549965 A CN105549965 A CN 105549965A
- Authority
- CN
- China
- Prior art keywords
- kernel
- driver
- dkms
- version
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种将驱动集成到不同Linux内核版本的方法,属于计算机操作系统技术领域。所述将驱动集成到不同Linux内核版本的方法,包括以下步骤:1)安装DKMS全称为Dynamic?Kernel?Module?Support;2)拷贝包含需要安装的驱动程序源代码文件dkms.conf;3)将需要安装的驱动模块加入DKMS;4)编译对应内核版本的驱动程序;5)将驱动程序安装到对应的内核中;6)重启系统,从被安装完驱动的内核启动即可。本发明所述将驱动集成到不同Linux内核版本的方法,操作简单,实用性强,节省人力、时间、成本等资源,具有很好的推广应用价值。
Description
技术领域
本发明涉及计算机操作系统技术领域,具体提供一种将驱动集成到不同Linux内核版本的方法。
背景技术
在传统的Linux操作系统中,和内核适配的部分驱动已经集成在内核中,或者可以通过手工定制将驱动编译成为模块集成到内核中。但是没有集成在内核中的驱动程序,安装方法是通过源码手工编译或rpm(软件包管理器)安装,但这部分未集成在内核中的驱动程序的安装前提是,内核必须能够正常启动,进入系统后,才能进行驱动安装的操作。若是比较重要的驱动,如Raid卡、显卡、总线等的驱动程序,内核在启动过程中需要预先加载,若加载失败,无法正常进入系统,也就无法安装驱动了。上述安装方法存在很大的局限性,给使用过程带来一定的不方便。
发明内容
本发明的技术任务是针对上述存在的问题,提供一种操作简单,实用性强,节省人力、时间、成本等资源的将驱动集成到不同Linux内核版本的方法。
为实现上述目的,本发明提供了如下技术方案:
一种将驱动集成到不同Linux内核版本的方法,所述方法包括以下步骤:
1)安装DKMS全称为DynamicKernelModuleSupport;
2)拷贝包含需要安装的驱动程序源代码文件dkms.conf;
3)将需要安装的驱动模块加入DKMS;
4)编译对应内核版本的驱动程序;
5)将驱动程序安装到对应的内核中;
6)重启系统,从被安装完驱动的内核启动即可。
作为优选,内核安装完成后,由于驱动问题导致无法正常启动,无需将驱动程序源码集成到内核源码中再次重新编译并安装内核,可以直接通过另一个正常启动的内核,将驱动集成进无法启动的内核。
本发明具有以下突出的有益效果:所述方法可以直接通过另一个正常启动的内核,将驱动程序集成进无法启动的内核,使该内核在启动时能够加载到驱动,从而正常启动;该方法操作简单,节省人力、时间、成本等资源,使用更便捷,具有良好的实用性。
具体实施方式
下面结合实施例对本发明所述将驱动集成到不同Linux内核版本的方法作进一步详细说明。
实施例
本发明所述将驱动集成到不同Linux内核版本的方法,包括以下步骤:1)安装DKMS全称为DynamicKernelModuleSupport;2)拷贝包含需要安装的驱动程序源代码文件dkms.conf;3)将需要安装的驱动模块加入DKMS;4)编译对应内核版本的驱动程序;5)将驱动程序安装到对应的内核中;6)重启系统,从被安装完驱动的内核启动即可。内核安装完成后,由于驱动问题导致无法正常启动,无需将驱动程序源码集成到内核源码中再次重新编译并安装内核,可以直接通过另一个正常启动的内核,将驱动集成进无法启动的内核。
本发明的将驱动集成到不同Linux内核版本的方法的实际工作过程为:
1.安装DKMS,全称是DynamicKernelModuleSupport,下载地址:http://linux.dell.com/dkms/permalink/dkms-2.2.0.3-1.noarch.rpm
2.将包含需要安装的驱动程序源代码文件夹copy到"/usr/src"下面,完整路径将是"/usr/src/<module>-<module-version>",(<module>-<module-version>表示需要安装的驱动源码目录)
DKMS要求我们的代码目录必须以"<module>-<module-version>"的格式命名,即"<驱动名称>-<驱动版本>",中间以英文横杠隔开;
3.在/usr/src/<module>-<module-version>目录下新增文件:dkms.conf,文件内容为:
PACKAGE_NAME=<module>
PACKAGE_VERSION=<module-version>
CLEAN="makeclean"
BUILD_MODULE_NAME[0]=<module>
DEST_MODULE_LOCATION[0]="/updates"
AUTOINSTALL="yes"
PACKAGE_NAME表示驱动名称,PACKAGE_VERSION表示驱动版本,和步骤2中的文件夹命名保持一致;
CLEAN表示编译驱动时的执行动作,"makeclean"表示清除中间文件重新编译;
BUILD_MODULE_NAME[0]用来指定驱动模块的名称,和PACKAGE_NAME保持一致即可,一般情况下也可以不设定;
DEST_MODULE_LOCATION[0]用来设定驱动模块安装的目的地址,默认在/lib/module/<Kernel-version>/下,如填写"/updates",表示安装目录是"/lib/module/<Kernel-version>/updates";
AUTOINSTALL="yes"表示在内核启动时被引导后DKMS会自动对这个驱动模块执行Build和Install的动作,当然如果模块已经处于该状态的话,相应的动作是不用再次执行的;
4.执行“dkmsadd-m<module>-v<module-version>”
将需要安装的驱动模块加入DKMS,表示该版本的驱动模块由DKMS维护。
可以执行"dkmsstatus"查看目前DKMS系统维护的模块的状态。
命令执行成功后,在目录"/var/lib/dkms/"下可以看到建立了对应的<module>/<module-version>目录;
5.执行“dkmsbuild-m<module>-v<module-version>–k<Kernel-version>”编译对应内核版本的驱动程序。
这里增加-k参数,表示指定编译驱动模块对应的的内核完整版本号;
编译成功后,在目录:
"/var/lib/dkms/<module>/kernel-<Kernel-version>/module"下,可以看到生成的驱动.ko二进制模块文件;
6.执行“dkmsinstall-m<module>-v<module-version>–k<Kernel-version>”
将驱动程序安装到对应的内核中,同样增加-k参数,指定被安装内核的版本号:
7.重启系统,从被安装完驱动的内核启动即可。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (2)
1.一种将驱动集成到不同Linux内核版本的方法,其特征在于:所述方法包括以下步骤:
1)安装DKMS全称为DynamicKernelModuleSupport;
2)拷贝包含需要安装的驱动程序源代码文件dkms.conf;
3)将需要安装的驱动模块加入DKMS;
4)编译对应内核版本的驱动程序;
5)将驱动程序安装到对应的内核中;
6)重启系统,从被安装完驱动的内核启动即可。
2.根据权利要求1所述的将驱动集成到不同Linux内核版本的方法,其特征在于:内核安装完成后,由于驱动问题导致无法正常启动,无需将驱动程序源码集成到内核源码中再次重新编译并安装内核,可以直接通过另一个正常启动的内核,将驱动集成进无法启动的内核。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510899416.6A CN105549965A (zh) | 2015-12-09 | 2015-12-09 | 一种将驱动集成到不同Linux内核版本的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510899416.6A CN105549965A (zh) | 2015-12-09 | 2015-12-09 | 一种将驱动集成到不同Linux内核版本的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105549965A true CN105549965A (zh) | 2016-05-04 |
Family
ID=55829163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510899416.6A Pending CN105549965A (zh) | 2015-12-09 | 2015-12-09 | 一种将驱动集成到不同Linux内核版本的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105549965A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095687A (zh) * | 2016-06-22 | 2016-11-09 | 西安电子科技大学 | 一种LinuxPCI网卡驱动检错方法及装置 |
CN113031958A (zh) * | 2021-03-02 | 2021-06-25 | 长沙景嘉微电子股份有限公司 | 支持多内核版本的驱动安装包生成方法、安装方法及装置 |
CN113220303A (zh) * | 2021-04-21 | 2021-08-06 | 北京麟卓信息科技有限公司 | 一种内核模块的编译方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1650264A (zh) * | 2002-04-17 | 2005-08-03 | 计算机联合思想公司 | 用于修改一个内核模块以便在多个内核版本上运行的设备和方法 |
CN104375874A (zh) * | 2014-12-11 | 2015-02-25 | 北京奇虎科技有限公司 | 加载Linux内核驱动的方法及装置 |
-
2015
- 2015-12-09 CN CN201510899416.6A patent/CN105549965A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1650264A (zh) * | 2002-04-17 | 2005-08-03 | 计算机联合思想公司 | 用于修改一个内核模块以便在多个内核版本上运行的设备和方法 |
CN104375874A (zh) * | 2014-12-11 | 2015-02-25 | 北京奇虎科技有限公司 | 加载Linux内核驱动的方法及装置 |
Non-Patent Citations (1)
Title |
---|
WWANG: "DKMS简介", 《博客园》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095687A (zh) * | 2016-06-22 | 2016-11-09 | 西安电子科技大学 | 一种LinuxPCI网卡驱动检错方法及装置 |
CN106095687B (zh) * | 2016-06-22 | 2018-06-15 | 西安电子科技大学 | 一种Linux PCI网卡驱动检错方法及装置 |
CN113031958A (zh) * | 2021-03-02 | 2021-06-25 | 长沙景嘉微电子股份有限公司 | 支持多内核版本的驱动安装包生成方法、安装方法及装置 |
CN113031958B (zh) * | 2021-03-02 | 2022-06-24 | 长沙景嘉微电子股份有限公司 | 支持多内核版本的驱动安装包生成方法、安装方法及装置 |
WO2022183573A1 (zh) * | 2021-03-02 | 2022-09-09 | 长沙景嘉微电子股份有限公司 | 支持多内核版本的驱动安装包生成方法、安装方法及装置 |
CN113220303A (zh) * | 2021-04-21 | 2021-08-06 | 北京麟卓信息科技有限公司 | 一种内核模块的编译方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8185889B2 (en) | Methods and systems for porting software packages from one format to another | |
CN103279372B (zh) | 机顶盒软件升级方法及机顶盒 | |
CN105786538B (zh) | 基于安卓系统的软件升级方法和装置 | |
CN107995284B (zh) | 一种适用于pos机的ota升级方法 | |
JP2002196945A (ja) | デバイスドライバのアップグレードシステム及び方法 | |
CN102163167A (zh) | 系统拯救的方法及装置 | |
US20030037326A1 (en) | Method and system for installing staged programs on a destination computer using a reference system image | |
CN103795740A (zh) | 插件安装包的下载方法及下载终端 | |
CN105446771A (zh) | 一种基于u盘的快速自动安装操作系统的方法 | |
CN105912365A (zh) | 一种移动终端系统更新方法及系统 | |
CN105549965A (zh) | 一种将驱动集成到不同Linux内核版本的方法 | |
CN105159732A (zh) | 在移动终端安装或更新应用程序的方法和移动终端 | |
EP2805233B1 (en) | Installation engine and package format for parallelizable, reliable installations | |
CN103049295A (zh) | 一种龙芯平台Linux操作系统网络安装方法 | |
CN103514022A (zh) | 一种linux下的raid卡驱动集成方法 | |
CN110457073A (zh) | 一种申威服务器的预启动执行环境pxe可信启动方法 | |
CN105512026A (zh) | 一种批量自动测试方法 | |
CN113760306A (zh) | 安装软件的方法、装置、电子设备及存储介质 | |
CN102768628A (zh) | 一种预安装第三方应用的方法及装置 | |
US7340738B2 (en) | Time optimized replacement of a software application | |
CN109828786B (zh) | 一种基于代码级支持sw_64架构的自动化工具 | |
CN113204351B (zh) | 一种嵌入式系统包管理方法及其使用方法 | |
CN105760755A (zh) | 一种Visual Studio扩展包的隔离方法 | |
CN102629209B (zh) | 实现单板即插即用的方法、单板及系统 | |
CN110795113B (zh) | 一种Redis集群服务的安装方法、服务器和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160504 |
|
RJ01 | Rejection of invention patent application after publication |