手动加载驱动时的一些问题!!

本文总结了编程加载驱动程序过程中遇到的问题及解决方案,包括路径设置、服务管理与权限配置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这几天在用代码加载驱动的时候,莫名其妙的StartServices启动不了,Getlasterror为2,网上找了下资料,可分为两点,一个是驱动路径用绝对路径.如:D;\\12.sys.另一个是在加载失败后调用一次驱动卸载过程!这时候再加载就可以了.

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

编程(不利用现成工具)加载驱动程序的问题总结

大概步骤,网上有源码,只总结下我遇到的问题:

OpenSCManager 打开服务管理器

CreateService 创建服务

如果服务已经存在

     OpenService  打开服务

StartService 启动服务

 

问题1:

        StartService  总是返回2,ERROR_FILE_NOT_FOUND。

        我这里是穿进去的驱动文件的路径不正确,我直接像 windows应用程序编程 一样传入文件名称,然后把驱动文件sys放到程序相同目录下面,以为这样就能加载起来,其实不然,需要传入绝对路径。

       这里我首先获取了当前程序的运行路径,利用GetModuleFileName ,不要用 GetCurrentDirectory  ,他们的区别我在另外一篇文章中转载了下http://hi.baidu.com/lang2858/blog/item/2be95960e0ff68c78cb10d2c.html  ,这里我开始犯了个错误,得到的路径有问题。

 

问题2:

       当我得到正确路径后,继续调试,发现还是返回错误代码2

       百度了一下,发现csdn里面有人说路径前面需要加 \\??   ,这种说法没有我没有试,因为我是在用户层加载驱动的,不是在内核层,所以我想应该不会是这样的目录,直接跳过,本来就走错了,不要绕得更远。

        后面csdn里面有几个人问了类似问题,结果LZ的回答说是解决了,办法没有提供,我强烈的鄙视下!不回答别人可以,但是一堆人一起解决了问题,结果还保密上了。

        

         我想应该是我的服务先前创建成功了,只是StartService 失败,继续调试,发现真的没有重新创建,只是open了下,然后就启动,那就是这里有问题,没有重新创建服务,那服务里面指向的驱动地址应该还是原来那个错误的地址。

 

         于是我用winobj 查看了几次,主机是win7的 ,试了一下没有发现driver下面有我创建的驱动名称,辅机是xp的也没有看见,迷惑了半天。  最后打开 SRVINSTW.EXE  ,就是网上的一个安装/移除 驱动服务的工具,点击移除服务,在 服务名中也没有找到,又迷惑了一回,发现下面 包含设备驱动 没有勾选上 ,勾选上,终于找到我创建的那个服务了,直接移除掉,然后重新打开我的加载程序去加载,成功!

 

         这里解释下winobj  查看对象的为什么查看不到,后来我专门用SRVINSTW.EXE   提供的安装服务功能随便安装了一个服务,中间选择手动启动,结果用winobj查看,发现里面没有,然后 net start一下 ,发现就有了,说明winobj查看的是启动中的服务,还没有 start的他没有显示。

 

        所以我两台电脑都是由于原来路径有问题而后面改成正确的路径后 ,又由于服务没有被重新创建而启动失败的!

 

        这也是我在网上看到的一个driverload的程序,开始不太熟悉直接拿过来学习的,这个程序可能很多人在,可能需要优化下,在启动服务失败的情况下,它没有清除已经创建的服务,我觉得这块可以清除,还有好几个地方都是没有经过优化的!有空我优化下了再发出来下。

 

        关于这一点一定一定谨记每个地方出错的时候的逻辑处理,不然后面的所有程序搞正确了还要浪费很多时间来排查。

 

问题3:

        win7下面调试状态运行加载没有问题,xp下面加载也没有问题,直接在win7下面运行发现启动服务没有启动成功,这是因为权限问题,右键管理员模式运行程序就行了。

 

<think>好的,我现在需要帮助用户解决在CentOS 7安装过程中手动加载网卡驱动问题。首先,我要回忆一下CentOS 7的安装流程,尤其是涉及到驱动加载的部分。用户提到的是手动加载,这可能是因为安装程序无法自动识别他们的网卡,导致无法继续安装或者无法连接网络。 首先,我需要确认用户在安装过程中遇到的具体情况。通常,安装CentOS 7,如果系统自带的驱动不支持某些较新的或特殊的网卡,安装程序可能会提示找不到网络接口,或者在进入安装界面后无法配置网络。这候就需要手动加载驱动。 接下来,我需要考虑用户可能需要的步骤。首先,用户需要确认自己的网卡型号,这样才能找到对应的驱动。这可能需要用户在其他设备上查找,比如通过lspci命令在另一个Linux系统上查看,或者查看硬件文档。不过,在安装过程中,可能还没有系统可用,所以用户可能需要提前准备。 然后,用户需要获取正确的驱动。通常,硬件厂商会提供Linux驱动的下载,可能是.rpm包或者源代码。如果是源代码,可能需要编译,但在安装环境中编译可能会比较复杂,因为缺少必要的工具链。所以,用户可能需要预先下载好对应的驱动,并放在可移动介质中,如USB驱动器。 接下来是如何在安装过程中加载驱动。CentOS 7的安装界面有一个“加载驱动”的选项,通常在安装源设置之后。用户需要选择这个选项,然后指定驱动所在的位置,比如USB设备。安装程序会读取驱动加载,之后应该就能识别网卡了。 但是,这里可能会有一些问题。比如,驱动是否兼容当前安装环境的内核版本?如果用户下载的驱动是针对特定内核版本的,而安装程序使用的内核较旧或较新,可能会导致驱动无法加载。这可能需要用户确认驱动版本是否匹配,或者寻找更通用的驱动。 此外,如果用户无法在安装界面找到加载驱动的选项,可能需要通过其他方式加载,比如在启动安装介质修改内核参数,添加“inst.dd”参数来指定驱动的位置。这需要用户提前将驱动文件放在特定的目录结构中,可能需要一些额外的步骤。 还有,如果用户成功加载驱动,但在后续安装过程中仍然无法配置网络,可能需要检查驱动是否正确加载,或者是否存在其他配置问题,比如固件缺失。有些网卡可能需要额外的固件文件,这些文件可能需要放在特定的目录下,如/lib/firmware。 总结一下,步骤大致是:确认网卡型号,获取对应驱动,将驱动传输到安装环境,在安装过程中加载驱动。但每个步骤都可能遇到问题,需要具体分析。用户可能需要详细的指导,比如如何查找网卡型号,如何准备驱动介质,如何在安装界面操作等。同,需要提醒用户注意驱动兼容性和可能需要的依赖项。 最后,考虑到用户可能对Linux系统不熟悉,应该用简单明了的语言,分步骤说明,避免使用过多专业术语,或者在必要解释术语。同,建议用户在操作前备份重要数据,以防万一。可能还需要提供一些常见网卡驱动的示例,或者引导用户访问官方网站获取支持。</think>在CentOS 7安装过程中手动加载网卡驱动的步骤如下: --- ### **1. 确认网卡型号** - 若已有其他可用系统,通过命令获取信息: ```bash lspci | grep -i ethernet ``` - 若无系统可用,需查看硬件说明书或设备标签。 --- ### **2. 下载对应驱动** - **官方渠道**:访问网卡厂商官网(如Intel、Realtek等),搜索对应型号的Linux驱动。 - **文件类型**:通常为`.rpm`包或源码包(`.tar.gz`/`.zip`)。 --- ### **3. 将驱动文件传输到安装环境** - **使用U盘**: 1. 将驱动文件拷贝至U盘根目录。 2. 在安装界面选择 **`Troubleshooting`** → **`Load Driver from ISO or Disk`**。 3. 插入U盘并选择对应设备。 --- ### **4. 手动加载驱动** 1. 进入安装界面后,选择 **`Install CentOS 7`**。 2. 按 `Tab` 键编辑启动参数,在末尾添加: ```bash inst.dd ``` 3. 按 `Enter` 启动,进入驱动加载界面。 4. 选择驱动来源(如U盘),安装程序会自动扫描并列出可用驱动。 5. 勾选所需驱动,确认加载。 --- ### **5. 验证驱动加载** - 返回安装主界面后,进入 **`Network & Hostname`**。 - 若网卡被识别,可正常配置IP地址或启用DHCP。 --- ### **常见问题处理** - **驱动未生效**: - 检查驱动是否兼容CentOS 7内核(需匹配`3.10.x`内核版本)。 - 尝试从源码编译驱动(需提前准备`gcc`、`kernel-devel`等工具)。 - **缺少固件文件**: - 将固件文件(如`.bin`或`.fw`)放入U盘的`/lib/firmware`目录。 --- ### **示例:加载Intel网卡驱动** 1. 下载驱动包(如`e1000e-*.tar.gz`)。 2. 解压后编译: ```bash make install ``` 3. 将生成的`.ko`驱动文件拷贝至U盘。 4. 按上述步骤在安装界面加载驱动。 --- 通过以上步骤,可解决CentOS 7安装过程中因网卡驱动缺失导致的网络不可用问题。建议优先使用厂商提供的预编译驱动以减少兼容性问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值