daliansky / XiaoMi-Pro-Hackintosh

XiaoMi NoteBook Pro Hackintosh
BSD Zero Clause License
2.61k stars 471 forks source link

删除 NullEthernet.kext,让英特尔 WiFi 变成 en0。 #653

Closed 1457384613gh closed 2 years ago

1457384613gh commented 2 years ago

现在,AirportItlwm 能够驱动 英特尔 WiFi 了,而且效果还特别好,应该不需要让一个 假的以太网 充当 en0了吧??? 英特尔 WiFi 是 en1 的话,好多app 总是账户掉线,在重新打开时,又要重新输入密码,重新登录账户,不方便,例如:appstore。 英特尔 WiFi 是 en0 的话,这些app 就不会账户掉线,不需要重新输入密码登录,更加方便。

已经这样尝试了,感觉效果还可以。就是不知道有没有什么负面影响。 顺便问下,NullEthernet.kext 现在应该不是什么必备的了吧??? 删除的话,应该不会有负面影响吧??? 后果严重的话,我就恢复; 没什么负面影响的话,那我就 只保留 英特尔 WiFi 作为 en0,减轻强加驱动的负荷,顺便节约 ESP 的一点点空间。

leiyutian007 commented 2 years ago

请问一下你的airdrop 双向能发送吗?

1457384613gh commented 2 years ago

请问一下你的airdrop 双向能发送吗?

隔空投送吗?我没有苹果手机,不太需要这个功能。没使用过。

aKuan1693 commented 2 years ago

删除 NullEthernet.kext 删除 SSDT-RMNE.aml 更改网络配置 这个文件在哪删呀 移除以后稳定吗

1457384613gh commented 2 years ago

删除 NullEthernet.kext 删除 SSDT-RMNE.aml 更改网络配置 这个文件在哪删呀 移除以后稳定吗

目前,没什么异常的。 但是,不知道有什么副作用,所以 issue 一下。 如果 Steve 觉得没副作用的话,应该会支持的吧。

aKuan1693 commented 2 years ago

删除 NullEthernet.kext 删除 SSDT-RMNE.aml 这两个文件还不知道在哪删啊 是在efi配置文件里吗

1457384613gh commented 2 years ago

删除 NullEthernet.kext 删除 SSDT-RMNE.aml 这两个文件还不知道在哪删啊 是在efi配置文件里吗

还要在OC配置中关闭相关条目。 万一有副作用呢? 要不,先等大佬回复吧。

stevezhengshiqi commented 2 years ago

你好,这个问题我也有考虑过。我觉得nullethernet已经是个很成熟的方案了,没出过什么错。airportitlwm可能会不支持新macos,或者偶尔检测不到硬件。我可能倾向于保留ethernet。

1457384613gh commented 2 years ago

如果 Catalina, Big Sur, Monterey 三个版本的 WiFi 驱动同时装载,WiFi 会加载得很慢,甚至 没加载出来。但是只开一个对应的 WiFi 驱动,应该是不会出现无法加载 WiFi 的情况的吧。

AirportItlwm的 alpha 版,应该会对着 Monterey 的 beta 版适配的。只升级稳定版的话,应该是没问题的吧。况且,你给我们的 1.6.5 的配置文件里面禁用了系统更新。

stevezhengshiqi commented 2 years ago

如果 Catalina, Big Sur, Monterey 三个版本的 WiFi 驱动同时装载

我给每个版本的aiportitlwm设置了maxkernel和minkernel,每个macos版本只会有一个airportitlwm被加载。

nullethernet目前确实只是个保险手段,不那么需要了。

1457384613gh commented 2 years ago

还有一件事情,我觉得 设置 LauncherOption=System 比较好。

stevezhengshiqi commented 2 years ago

十代u确实会有热重启键盘失效问题,https://github.com/daliansky/XiaoMi-Pro-Hackintosh/issues/616 有提到。原因是VoodooPS2让键盘处于一个bad state,暂时无解。

据我所知,Launcheroption只有 disabled,full和short,根据https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/ocvalidate/README.md

1457384613gh commented 2 years ago

据我所知,Launcheroption只有 disabled,full和short,根据

可能是因为注释没有更新到位,写漏了吧。OC 编辑器 可以看到这个选项,但中文版的注释也缺失 System。仅仅只是缺失注释而已,配置文件可以设置LauncherOption=System,而且有效果。 image image

1457384613gh commented 2 years ago

原因是VoodooPS2让键盘处于一个bad state,暂时无解。

可不可以这样理解? Mac OS 也有类似于 Windows 的【快速启动】,为了让开机更快而关机不彻底。

是这种情况吗???

stevezhengshiqi commented 2 years ago

原因是VoodooPS2让键盘处于一个bad state,暂时无解。

可不可以这样理解? Mac OS 也有类似于 Windows 的【快速启动】,为了让开机更快而关机不彻底。

是这种情况吗???

不太是,单纯是因为VoodooPS2这个驱动有bug,在monterey下被触发了,导致键盘关机时处于一个不好的状态。

1457384613gh commented 2 years ago

可是,我认为,应该是Mac OS 关机不彻底。原因如下:

stevezhengshiqi commented 2 years ago

@1457384613gh 驱动会给硬件注入固件,有时一些带有bug的驱动会注入有问题的代码导致硬件死锁。十代U的键盘问题完全是VoodooPS2在monterey下的bug造成的,或者是insyde BIOS有一些bug被偶然触发了。

Monterey确实改变了关机逻辑,可能间接导致VoodooPS2的bug,但如果使用非VoodooPS2驱动来驱动键盘,比如HIDPS2Keyboard 或者干脆不加载VoodooPS2,重启后键盘都是完好的,VoodooPS2背大锅。

这个键盘问题并非小米独享,国内外有很多人都反映相同问题,基本都是insyde bios。 参考:https://www.reddit.com/r/hackintosh/comments/qn82qi/keyboard_problem_after_reboot_from_macos/

1457384613gh commented 2 years ago

VoodooPS2背大锅

那我们的机型可以使用 非VoodooPS2 驱动吗?可以使用 HIDPS2Keyboard 吗?

stevezhengshiqi commented 2 years ago

VoodooPS2背大锅

那我们的机型可以使用 非VoodooPS2 驱动吗?可以使用 HIDPS2Keyboard 吗?

可以使用 HIDPS2Keyboard, 但亮度快捷键等会失效。

1457384613gh commented 2 years ago

可我认为,阻止 OC 过分接管 BIOS 的外设或者彻底关闭 Mac,才是最佳解决方案。理由如下:

stevezhengshiqi commented 2 years ago

@1457384613gh OC并没有接管外设,在 OC Bootpicker阶段是由 BIOS自身驱动控制,但由于硬件在macOS下被留在了一个坏的状态,重启后并不能被BIOS驱动。

mac关机是彻底的,电量问题是因为不同系统之间的算法不同。

1457384613gh commented 2 years ago

OC并没有接管外设

OC 的确接管了 BIOS 的外设。

stevezhengshiqi commented 2 years ago

我们的触控板应该是 I2C 总线,HID设备,OC并没有载入相关的 efi驱动

1457384613gh commented 2 years ago

我的意思是 OC 的 kext 驱动。 异常情况下,操作系统的驱动 和 efi 驱动也会互相影响,占用,挤掉吧?

我记得,我有一次 装载了 AudioDXE.EFI,然后 启动进入 windows,发现 Windows 的声卡驱动失败,系统处于禁音状态,无法调节音量。取消装载 AudioDXE.EFI后,重启,windows的声音恢复正常。可见,(当时是旧版的) AudioDXE.EFI 占用了接口 会导致 Windows 的声卡失灵。

那么同理反过来。 kext 驱动 占用接口,会不会影响重启以后的 efi 驱动的加载呢? 如果有可能,那么 鼠标键盘等 kext 会不会占用了接口,使得 BIOS 自带的驱动失灵呢? 如果是这样,那就可以理解成接管呗。 如果不是,那就误会 Mac 关机不彻底了。

stevezhengshiqi commented 2 years ago

不太是,kext驱动开机会执行start和probe函数载入,关机会执行stop函数,就算驱动有问题,系统也会强制卸载掉,但无法保证硬件里的固件是否卸载正确。目前键盘的表现是很典型的驱动没有以正常的方式关闭,从而导致死锁或者固件错误。

1457384613gh commented 2 years ago

Thank you very much for your early reply and how earnest you are!​

1457384613gh commented 2 years ago

image

image https://www.nvidia.cn/Download/driverResults.aspx/187568/cn/

据说 Mac 的图形层涉及到 Darwin,跟 BSD 的图形层非常不一样。

Darling 可以让 Linux/Unix 运行 Mac OS 的 app,包括图形界面的,说明图形界面还是有突破口的。

stevezhengshiqi commented 2 years ago

@1457384613gh 本仓库只是使用驱动,并没有开发显卡驱动的能力。静候别的黑果大佬。

1457384613gh commented 2 years ago

静候别的大佬?那就是有可能咯。

stevezhengshiqi commented 2 years ago

不清楚,建议不抱有希望。

1457384613gh commented 2 years ago

据我所知,Launcheroption只有 disabled,full和short,根据https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/ocvalidate/README.md

这个是怎么回事啊?图形界面的OC编辑器 不是一直都可以设置 LauncherOption=System 吗? IMG_20220615_001420.jpg

还有,你这两次更新的 EFI 设置的是 FULL,而我恰巧开启 Bitlocker 并且手头没有USB键盘,结果只能进入 macOS,进入Windows 需要输入很长的密钥解锁 Bitlocker,而且不进 Windows 就无法删除 FULL模式给OpenCore自动创建的默认启动项。

我把 rEFInd 设为默认的,不被OC篡改,才更方便选择其他操作系统。毕竟OC不便于启动(除 macOS 和Windows 以外的)其他操作系统。

考虑到:

是不是以后更新的 EFI 要设置 LauncherOption=System 比较好???

stevezhengshiqi commented 2 years ago

@1457384613gh 之前LauncherOption=System会被ocvalidate认为是错误输入,那条更新是修复这个问题的。

嗯明白你开启Bitlocker后的麻烦之处。我使用Full的原因是Windows更新会修改默认启动项,经常把Windows Boot Manager顶到第一位,给用户造成不方便。

1457384613gh commented 2 years ago

Windows更新会修改默认启动项

现在,应该不会了吧。 BcdStore 这里记录有默认引导器的信息。 image 我Windows更新了好几个版本都没有出现过 “Windows更新会修改默认启动项” 的情况。 万一会被篡改,我觉得现在突然把 Full 改成 System 也没关系,因为 【Bootstrap 模式中创建的启动选项】未被删除,依然可以工作,依然可以把 OC 调成默认的。

考虑到需求后者的用户也不少,而且 后者繁琐程度胜于前者,再加上【防止Windows更新修改默认启动项】的这个原因好像过期了,🤣🤣🤣是不是以后更新的 EFI 要设置 LauncherOption=System 比较好???

stevezhengshiqi commented 2 years ago

@1457384613gh 我个人在使用Windows的时候比较大的累积更新是会自动把Windows Boot Manager顶到最前面的,这个也是OpenCore有LauncherOption的初衷:防止其他系统篡改启动项顺序。我还是坚持使用LauncherOption=Full,但我会把你这个情况记录在常见问题解答里。

CobanRamo commented 2 years ago

我记得,我有一次 装载了 AudioDXE.EFI,然后 启动进入 windows,发现 Windows 的声卡驱动失败,系统处于禁音状态,无法调节音量。取消装载 AudioDXE.EFI后,重启,windows的声音恢复正常。可见,(当时是旧版的) AudioDXE.EFI 占用了接口 会导致 Windows 的声卡失灵。

this was not the case with earlier AudioDXE.efi. at some point it was tinkered with and no longer worked with "Smart Sound Technology Audio Controller".

Solution is this; Arguments = --restore-nosnoop

AudiDXE Efi

I was able to solve the InsydeH20 bug and the keyboard issue thanks to the HIDPS2Keyboard.kext. It's old and incomplete, sound keys and NumPad don't work but it solves the OC menu problem. HIDPS2Keyboard.kext.zip