㈠ win10上安装wdk后怎么编译内核程序
方法/步骤
WDK的安装
WDK的安装,点击exe文件,然后如图选中,继续下一步操作完成安装,点击OK即可。
打开程序
从“开始”菜单中打开WDK的build环境配置,从“开始”菜单中选择“所有程序”,然后选择“Windows Driver Kits”在WDK的版本(这里“WDK 6001 18001”)“Build Enieiroments”到“Windows XP”到“Launch Windows XP x86 Checked Build Enviroment”。
编译程序
出现一个控制台,这个控制台已经配置好编译环境。现在输入cd命令,进入我们先前建立的first目录;进入之后,输入build命令。现在编译结束,First.svs出现在\First\objchk_wxp_x86\i386下。
安装srvinstw.exe
接下来安装srvinstw.exe,执行这个工具,把我们编写的first.sys安装到自己的计算机上。
服务选择
选择“安装服务”并单击“下一步”按钮。然后选择“本地计算机”,单击“下一步”按钮。
服务名称配置
这时要输入服务名称,这里输入文件的名字“first”。但这个名称不一定要
和文件名相同,可以随意输入,只是不能和已经存在的服务冲突。接下来,这个位置是需要手工输入sys文件的路径。
选择“设备驱动”
接下来选择“设备驱动”。输入“NT驱动器目标名”不需要输入任何内容,直接单击“下一步”按钮即可。选择启动类型:请一定选择“手动”。
㈡ linux 2.6内核编译过程
内核编译过程详解
Linux 2.6内核的编译流程主要包括配置、编译、安装模块和内核安装四个阶段。
1. 内核配置
在内核配置阶段,Linux内核需要根据用户需求进行功能选择。配置步骤包括:
这些命令会生成一个.config文件,用于记录用户选择的内核功能。
2. 编译内核
内核编译使用Kbuild系统,分为两次扫描Makefile。最终目标是生成未压缩的内核映像vmlinux,然后通过压缩生成可引导的内核映像bzImage。
2.1 生成vmlinux
vmlinux内核映像是未压缩的原始映像,通过顶层Makefile和Kbuild文件中的.config文件信息生成。
2.2 生成System.map
未压缩的vmlinux生成后,make程序使用nm命令创建System.map,用于记录内核的全局符号。
3. 生成可引导内核映像
vmlinux映像被压缩成vmlinux.bin.gz,并与setup引导程序打包生成bzImage。bzImage包含内核映像和setup程序,可以被Bootloader引导并解压。
4. 编译及安装模块
Linux内核由模块组成,模块可以在编译时加入内核或运行时动态加载。模块编译后生成相应的.o和.mod文件,通过modpost生成模块文件,并链接成.ko格式。
5. 安装内核
内核编译完成后,使用make install命令安装。安装时生成initramfs,以解决开机时找不到根文件系统的问题。initramfs包含引导所需的文件和初始化脚本,内核启动时加载并执行。
安装内核后,即可重启系统。
㈢ linux内核设备驱动——将驱动程序编译进内核
将驱动程序编译进Linux内核,实际上是将模块集成到内核的编译过程中。开发阶段通常会先创建.ko文件,然后通过modprobe或insmod加载。modprobe更智能,能处理依赖,而insmod则可能需要开发者自行解决依赖问题。
编译驱动程序进内核涉及的步骤更为复杂,需要对Linux源码的编译规则有深入理解。一般有本机编译和交叉编译两种方式。本机编译方便,但生成的镜像无法改动,而交叉编译则需要在PC上构建编译环境,针对目标平台进行,以获取更好的性能。
关键步骤包括配置内核(make menuconfig),配置完成后编译源码,通过Kconfig文件管理和编译选项指定驱动源文件。驱动源文件会被添加到内核编译树中,只有当相关配置被选中(如CONFIG_CDEV_TEST)时,驱动才会被编译。最后,生成的模块需要复制到目标主机的/lib/moles目录下,并在启动时进行验证。
总的来说,将驱动编译进内核涉及源码管理、配置、编译和部署,是一个系统性的过程,需要对Linux内核有深入理解才能完成。