无忧启动论坛

标题: 讨教,如何用 DEVI 安装显卡基础驱动? [打印本页]

作者: sz_kent    时间: 2024-4-9 17:08
标题: 讨教,如何用 DEVI 安装显卡基础驱动?
PE:win10PE( MY_PE
操作目的:安装 X:\windows\inf 里的Display.inf,
成功:使用设备管理器里的更新驱动程序—》浏览计算机上的驱动程序—》指向到X:\windows\inf,
这样安装没有问题,可以安装上基础显卡驱动,


失败:用cmd命令:PEcmd DEVI X:\windows\inf\Display.inf,却不能安装,
加入到 PECMD.INI 让PE自动加载不能,
EXEC !=drvload.exe "%windir%\inf\display.inf"


操作不生效,记得以前某PE操作过是可以的,
不知道还有啥操作没做好,请教?



作者: as8686886    时间: 2024-4-9 17:14
本帖最后由 as8686886 于 2024-4-9 17:18 编辑

补全注册表或者用我这方法加载,补全注册表最省事!或者用drvindex -y参数




作者: conlin888    时间: 2024-4-9 17:40
本帖最后由 conlin888 于 2024-4-9 17:41 编辑

使用PECMD2012, 试试看哪个行,
PEcmd DEVI X:\windows\inf\Display.inf
PEcmd DEVI $X:\windows\inf\Display.inf
PEcmd DEVI $$X:\windows\inf\Display.inf


作者: hua_wuxin    时间: 2024-4-9 17:53
也许自动搜索并安装成功的不是叫Display.inf?
作者: 红毛樱木    时间: 2024-4-9 18:21
DEVI *update:PCI\CC_0300:X:\windows\inf\Display.inf
作者: sz_kent    时间: 2024-4-9 20:12
本帖最后由 sz_kent 于 2024-4-9 20:20 编辑
as8686886 发表于 2024-4-9 17:14
补全注册表或者用我这方法加载,补全注册表最省事!或者用drvindex -y参数

谢谢指点,
但是,还是失败。
不知道补齐注册表是什么内容?

路径确认过,应该没有错。
命令:EXEC !=driverindexer load-driver "%windir%\System32\drivers\DriverStore\FileRepository\display.inf_amd64_60c1a4bf569f6de9“
命令:EXEC !=driverindexer load-driver "%windir%\System32\drivers"
PECMD.LOG:
CreateProcess(driverindexer load-driver "X:\Windows\System32\drivers")=0 [0]
15        [EXEC !=driverindexer load-driver "X:\Windows\System32\drivers"]        <2>        :系统找不到指定的文件。






作者: qjldw    时间: 2024-4-9 20:19
第三方的工具也才2M不到,为什么不用?
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=425316
作者: sz_kent    时间: 2024-4-9 20:27
conlin888 发表于 2024-4-9 17:40
使用PECMD2012, 试试看哪个行,
PEcmd DEVI X:\windows\inf\Display.inf
PEcmd DEVI $X:\windows\inf\Disp ...

谢谢指点,
LOG能看到安装成功,
但设备管理器里面还是没有被驱动,仍然是未安装状态。


路径确认过,应该没有错。
命令:DEVI $X:\windows\System32\drivers\display.inf
命令:DEVI $$X:\windows\System32\drivers\display.inf

PECMD.LOG:
DEVI驱动签名【不需要修改】(0.1)

调试:[Ver=A0000 bNt6=3 bINF=1 bInstall=1 notcheck=0 rescan=-16]
扫描硬件改动...{rescan--BEGIN}
{rescan--END}
{DEVI ID--BEGIN}

[0]找到设备: UEFI\RES_{4e88068b-41b2-4e05-893c-db0b43f7d348}&REV_10E27
[1]找到设备: USB\VID_346D&PID_5678&REV_0200
...
...
[110]找到设备: HID\VID_1A2C&PID_9DF4&REV_0110&MI_01&Col01{DEVI ID--END}

{MyInstallHinfSection安装驱动【DefaultInstall 132 X:\Windows\System32\drivers\display.inf】
}
17        [DEVI $$X:\Windows\System32\drivers\display.inf]        <0>        :操作成功完成。

作者: sz_kent    时间: 2024-4-9 20:29
红毛樱木 发表于 2024-4-9 18:21
DEVI *update:PCI\CC_0300:X:\windows\inf\Display.inf

谢谢指点,
安装失败。

路径确认过,应该没有错。
命令:DEVI *update:PCI\CC_0300:X:\windows\inf\Display.inf

PECMD.LOG:
{PECMD安装驱动【PCI\CC_0300】[X:\windows\inf\Display.inf]<259>}
20        [DEVI *update:PCI\CC_0300:X:\windows\inf\Display.inf]        <259>        :没有可用的数据了。
作者: sz_kent    时间: 2024-4-9 20:36
qjldw 发表于 2024-4-9 20:19
第三方的工具也才2M不到,为什么不用?
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=425316

谢谢指点,
也许我要的不是完整的驱动,或者带这庞大的驱动库,只是想显示卡有个基础驱动而已。
作者: as8686886    时间: 2024-4-9 21:27
sz_kent 发表于 2024-4-9 20:12
谢谢指点,
但是,还是失败。
不知道补齐注册表是什么内容?

补全注册表就很简单
1、在PE在手动安装默认显卡驱动(你已经确认可以安装成功)
2、PE下用注册表或者注册表工具进入HKEY_LOCAL_MACHINE\DRIVERS\DriverDatabase\DriverPackages找到display.inf_开头的键值导出
3、在windows系统在 离线挂载PE的Windows\System32\config目录下的drivers并取名PE
4、将PE导出的注册表导入到注册表里就行了(导出的注册表键值路径需要改正确)
作者: hua_wuxin    时间: 2024-4-9 21:53
本帖最后由 hua_wuxin 于 2024-4-9 22:38 编辑

我这里实验从Windows\INF里把display.inf移走,然后再用pnputil.exe -i -a安装可以成功。
file X:\Windows\INF\display.inf->X:\Windows\temp\display.inf
exec !pnputil.exe -i -a x:\windows\temp\display.inf

(我这环境下5楼大佬的命令也是可以的,所以仅供参考不保证你的环境下有效了)
作者: conlin888    时间: 2024-4-9 21:56
sz_kent 发表于 2024-4-9 20:27
谢谢指点,
LOG能看到安装成功,
但设备管理器里面还是没有被驱动,仍然是未安装状态。

Log显示成功了,说明你的驱动有问题,不适用这种安装方式
作者: hehuiying    时间: 2024-4-9 21:58
帮顶
作者: 红毛樱木    时间: 2024-4-9 22:29
sz_kent 发表于 2024-4-9 20:29
谢谢指点,
安装失败。

X:\Windows\inf\setupapi*.log
执行前后的这里log日志文件可以自己分析的
作者: nathan6498    时间: 2024-4-10 00:03
学习学习
作者: reninhouse    时间: 2024-4-10 08:21
前来学习一下
作者: as8686886    时间: 2024-4-10 11:21
看这个帖子[教程] 简单教程:修改Win10PE注册表 禁用安装 基本显示适配器反向操作:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=432028
作者: sz_kent    时间: 2024-4-10 12:19
as8686886 发表于 2024-4-10 11:21
看这个帖子[教程] 简单教程:修改Win10PE注册表 禁用安装 基本显示适配器反向操作:http://bbs.wuyou.net/f ...

你指点的方法,跟2楼,11楼的差不多吧,试过了,还是不行啊。查看注册表,11楼的思路导入确认是到位了。




作者: sz_kent    时间: 2024-4-10 12:20
as8686886 发表于 2024-4-9 21:27
补全注册表就很简单
1、在PE在手动安装默认显卡驱动(你已经确认可以安装成功)
2、PE下用注册表或者注 ...

还是不行,贴图参见19楼。
作者: as8686886    时间: 2024-4-10 13:59
本帖最后由 as8686886 于 2024-4-10 14:00 编辑
sz_kent 发表于 2024-4-10 12:20
还是不行,贴图参见19楼。

你这样肯定不行,要离线导入,你这是在线导入!离线导入完在PE下不需要任何命令在导入注册表,自动安装驱动,实在搞不定你把你的wim文件发出来,我给你看看
作者: sz_kent    时间: 2024-4-10 14:22
as8686886 发表于 2024-4-10 13:59
你这样肯定不行,要离线导入,你这是在线导入!离线导入完在PE下不需要任何命令在导入注册表,自动安装驱 ...

哦,注册表挂载DRIVERS文件后,我这里导入不进去,就没研究不弄了,转用PE在线导入,原来是不行的。
win10 PE 是无垠的mype,
下载的是123pan网盘的 10PE20240309a.iso ,
网盘路径:全部文件 >MY_PE>网络版>Win10&11PE.X64.Smine.全能版>10PE20240309a.iso
PE传送门:简洁明快 · 有网无网 · 内置外置 · 蓝牙打印 · 易用实用 · 精雕细琢
麻烦你看看,谢谢。



作者: as8686886    时间: 2024-4-10 16:48
本帖最后由 as8686886 于 2024-4-10 18:58 编辑
sz_kent 发表于 2024-4-10 14:22
哦,注册表挂载DRIVERS文件后,我这里导入不进去,就没研究不弄了,转用PE在线导入,原来是不行的。
win ...

解决了,最简单方法用DISM++将驱动导入进去,DriverIndexer.exe放到system32目录里然后在INI命令下加一句截图里的命令,我已经试过了,也就是我最初给我PE用的方法。成品如下:https://www.123pan.com/s/ZrMmjv-2T5Hh.html 提取码:4rbO






作者: sz_kent    时间: 2024-4-10 22:13
本帖最后由 sz_kent 于 2024-4-10 22:17 编辑
as8686886 发表于 2024-4-10 16:48
解决了,最简单方法用DISM++将驱动导入进去,将DriverIndexer.exe放到system32目录里然后在I ...

谢谢,向你致谢不懈的热心指点解决问题。
留意到你回帖 DriverIndexer.exe 在cmd运行加载驱动,
于是好奇在本坛搜到原出处下载一试,基础显卡驱动是成功了,根本就不用搞啥高深操作。
我原来的DriverIndexer.exe不知道哪里问题导致的折腾浪费了你不少宝贵时间(抱歉),
实质你二楼的帖子就已经是解决好了问题。
回头再看看你的成品,学习一下。

现在,我又想将MyPE的150放大改回100,
我平时碰到的情况几乎都是1080的高清屏,放大100才是更好的。
你可以也提点一下,如何修改吗?也请你指点一二,再次致谢。





作者: as8686886    时间: 2024-4-11 08:38
本帖最后由 as8686886 于 2024-4-11 08:42 编辑
sz_kent 发表于 2024-4-10 22:13
谢谢,向你致谢不懈的热心指点解决问题。
留意到你回帖 DriverIndexer.exe 在cmd运行加载驱动,
于是好 ...

改DPI?WinXshell就解决了。Windows\System32\PEConfig\Run\InitWinXShell.ini里
  1. EXEC !"%ProgramFiles%\WinXShell\WinXShell.exe"  -code Screen:DPI(100)
复制代码
我现在是根据分辨率自动设置DPI。参考我另外一个求助帖子,http://bbs.wuyou.net/forum.php?m ... d=440029&extra= 我昨天测试my_PE的这个PE时候发现ISO有时候无法打开进入,感觉还是有问题的。
作者: sz_kent    时间: 2024-4-11 11:04
as8686886 发表于 2024-4-11 08:38
改DPI?WinXshell就解决了。Windows\System32\PEConfig\Run\InitWinXShell.ini里我现在是根据分辨率自动 ...

谢谢谢谢谢谢
还是有人指点效率奇高,马上优化更改。

-- 根据DPI自动切换屏幕分辨率
function MyDisplayChangedHandler()
  local cur_res_x = Screen:GetX()
  if last_res_x == cur_res_x then return end
  last_res_x = cur_res_x
  if last_res_x >= 3840 then --4K(3840x2160)、5K(5120x2880)、8K(7680x4320)
    Screen:DPI(175)
  elseif last_res_x >= 2560 then --2K(2560x1440)
    Screen:DPI(150)
  elseif last_res_x > 1920 then --1K(1920x1080)
    Screen:DPI(120)
  else
    Screen:DPI(100)
  end
end
作者: sz_kent    时间: 2024-4-12 17:46
本帖最后由 sz_kent 于 2024-4-12 18:08 编辑

优化,结合分辨率与DPI比较,改当前DPI,可在PEcmd添加加载,
log在%ProgramFiles%\WinXShell\路径查看。
//更改DPI
EXEC !"%ProgramFiles%\WinXShell\WinXShell.exe" -luacode "ondisplaychanged(true)"

规则:
1920以下用100dpi
2k以下用120dpi
4k以下用150dpi
高于4k用170dpi
根据自己实际情况调整,

function ondisplaychanged(event)
   local cur_res_x = Screen:GetX()
   local cur_res_Y = Screen:GetY()
   local cur_DPI = Screen:GetDPI()

   writeLogFile = io.open("X:/Program Files/WinXShell/Display DPI Change.log", "a") --打开文件,添加方式
   writeLogFile:write("--------------------------------------" .. "\n")
   if event ~= nil then
      writeLogFile:write(os.date("%H%M%S ") .. "Specify Change Display DPI" .. "\n")
   else
      writeLogFile:write(os.date("%H%M%S ") .. "Event Call Change Display DPI" .. "\n")
   end

   if cur_DPI ~= nil then
      writeLogFile:write(os.date("%H%M%S ") .. "cur_DPI=" .. cur_DPI .. "\n")
   else
      writeLogFile:write(os.date("%H%M%S ") .. "cur_DPI=" .. type(cur_DPI) .. "\n")
      cur_DPI = 0
   end

   if cur_res_x ~= nil then
      writeLogFile:write(os.date("%H%M%S ") .. "cur_res_X=" .. cur_res_x .. "\n")
   else
      writeLogFile:write(os.date("%H%M%S ") .. "cur_res_X=" .. type(cur_res_x) .. "\n")
      cur_res_x = 0
   end

   if cur_res_Y ~= nil then
      writeLogFile:write(os.date("%H%M%S ") .. "cur_res_Y=" .. cur_res_Y .. "\n")
   else
      writeLogFile:write(os.date("%H%M%S ") .. "cur_res_Y=" .. type(cur_res_Y) .. "\n")
      cur_res_x = 0
   end

   writeLogFile:write(os.date("%H%M%S ") .. "Display DPI will Be Change ..." .. "\n")

   if cur_res_x >= 3840 then
      if cur_DPI < 170 then
         Screen:DPI(170) --设置4K(3840x2160)以上  --4K(3840x2160)、5K(5120x2880)、8K(7680x4320)
         writeLogFile:write(os.date("%H%M%S ") .. "Display DPI change to 170." .. "\n")
      else
         writeLogFile:write(os.date("%H%M%S ") .. "No changes required, Display DPI is " .. cur_DPI .. " \n")
      end
   elseif cur_res_x >= 2560 then
      if cur_DPI < 150 then
         Screen:DPI(150) --设置2K(2560x1440)以上,4K以下
         writeLogFile:write(os.date("%H%M%S ") .. "Display DPI change to 150." .. "\n")
      else
         writeLogFile:write(os.date("%H%M%S ") .. "No changes required, Display DPI is " .. cur_DPI .. " \n")
      end
   elseif cur_res_x > 1920 then
      if cur_DPI < 120 then
         Screen:DPI(120) --设置1K(1920x1080)以上,2K以下
         writeLogFile:write(os.date("%H%M%S ") .. "Display DPI change to 120." .. "\n")
      else
         writeLogFile:write(os.date("%H%M%S ") .. "No changes required, Display DPI is " .. cur_DPI .. " \n")
      end
   else
      if cur_DPI ~= 100 then
         Screen:DPI(100) --设置1K(1920x1080)以下
         writeLogFile:write(os.date("%H%M%S ") .. "Display DPI change to 100." .. "\n")
      else
         writeLogFile:write(os.date("%H%M%S ") .. "No changes required, Display DPI is " .. cur_DPI .. " \n")
      end
   end

   cur_res_x = Screen:GetX()
   cur_res_Y = Screen:GetY()
   cur_DPI = Screen:GetDPI()
   writeLogFile:write(os.date("%H%M%S ") .. "cur_DPI=" .. cur_DPI .. "\n")
   writeLogFile:write(os.date("%H%M%S ") .. "cur_res_X=" .. cur_res_x .. "," .. "cur_res_Y=" .. cur_res_Y .. "\n")
   writeLogFile:write(os.date("%H%M%S ") .. "Exit Display DPI set." .. "\n")
   writeLogFile:write(" " .. "\n")
   writeLogFile:close() --关闭文件
end
作者: 无犹启动    时间: 2024-5-1 22:27
帮顶




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3