superkaro 发表于 2018-3-29 12:30

打了驱动,USB端口死活不能使用,或只有部分能使用的解决思路。

直入话题,相信有部分朋友在装好MacOS后USB死活不能使用,打驱动,修DSDT使上浑身解数,不得要领。今天主要分享的是你尝试了各种方法都解决不了的话,可以试试我的办法:
偶然间从一篇国外帖子上看到,HPET与USB   IRQ中断语句冲突相关描述,HPET 在DSDT表中一般占用两个IRQ中断,但在Mac中似乎还要占用更多,所以HPET在特定情况下会抢占其它Device的中断,似乎USB很不幸,如果HPET长期霸占它的IRQ中断的话,表现为相关的USB口处于沉默状态,如果随机占到了别的IRQ,那就表现为你的USB时灵时不灵。 受这篇帖子的启发,搜索DSDT中的 HPET,原始情况如下:
Device (HPET)
               {
                   Name (_HID, EisaId ("PNP0103"))
                   Name (BUF0, ResourceTemplate ()
                   {
                     IRQNoFlags ()
                           {0}
                     IRQNoFlags ()
                           {8}
                     Memory32Fixed (ReadWrite,
                           0xFED00000,         // Address Base
                           0x00000400,         // Address Length
                           _Y10)
                   })
                   ...
可以看到HPET设备默认分配两个IRQ中断(0,8)。 上面说了,这伙计貌似需要至少更多的两个,那我就给它加两个上去,当然这不是随便添两个数字就可以的事。 DSDT中搜索 IRQNoFlags ()   我们来观察都哪些地方调用了这个语句,把能搜到的都用本子记下来,观察它下面数字(比如HPET 有两个<0,8>,MATH一个<13>,PS2K<1>,PS2M<12>),尽量避开你能搜到的。我选择了 {2}与{11} ,添加后如下:
Device (HPET)
{
Name (_HID, EisaId ("PNP0103"))
Name (BUF0, ResourceTemplate ()
{
IRQNoFlags ()
{0,2,8,11}
Memory32Fixed (ReadWrite,
0xFED00000, // Address Base
0x00000400, // Address Length
_Y10)
})
...保存,编译,加载测试,问题解决了,用起来目前没出过问题。我这比较幸运,选的值比较合适,但为了保险起见,最好还是要去 IORegistryExplorer里面仔细观察IRQ占用情况(请换算成16进制的,比如0 (0x00),2(0x02),8(0x08),11(0x0B))。
当然还有朋友提出了删除相关中断的方法,我特意去试了试,没有成功解决我机子的问题。大家各类方法都试一试,保不准你的BIOS就吃其中一套。祝好运!!


Bimbohaha 发表于 2018-4-4 09:44

我想问下,查看系统信息中,USB显示未找到信息,这个该如何解决呢?

superkaro 发表于 2018-4-5 09:59

Bimbohaha 发表于 2018-4-4 09:44 https://www.pcbeta.com/static/image/common/back.gif
我想问下,查看系统信息中,USB显示未找到信息,这个该如何解决呢?

你这情况应该是没加USB驱动。 USBInjectAll.kext试试。
页: [1]
查看完整版本: 打了驱动,USB端口死活不能使用,或只有部分能使用的解决思路。