zvshailong 发表于 2018-1-31 19:28

x230i终于装好了

机子配置如下:


搞了三天啊,终于能用了。

买了个USB无线网卡还没到货。

facetime\imessage\icloud搞不定了


scu112 发表于 2018-1-31 20:08

其实可以刷网卡白名单,替换成支持的无线网卡。那样子就更完美了

sccz123 发表于 2018-1-31 20:14

同230 i5的,改了fhd,刷了白名单,现在完美使用中。

f23258 发表于 2018-1-31 20:20

sccz123 发表于 2018-1-31 20:14 https://www.pcbeta.com/static/image/common/back.gif
同230 i5的,改了fhd,刷了白名单,现在完美使用中。

哈哈,51的兄弟,我X1C 2017昨天也折腾好了,基本完美使用中……

zvshailong 发表于 2018-1-31 20:27

sccz123 发表于 2018-1-31 20:14 https://www.pcbeta.com/static/image/common/back.gif
同230 i5的,改了fhd,刷了白名单,现在完美使用中。

白名单 怎么刷

sccz123 发表于 2018-2-1 19:05

zvshailong 发表于 2018-1-31 20:27 https://www.pcbeta.com/static/image/common/back.gif
白名单 怎么刷

看51nb吧,三两句也说不清楚啊,而且你得有编程器

lcw1009 发表于 2018-2-6 23:35

可以分享下你的EFI吗?

wssh13 发表于 2018-2-7 21:51

无线网卡刷白名单很简单。在网上买个编程器就OK了

zvshailong 发表于 2018-2-9 10:21

lcw1009 发表于 2018-2-6 23:35 https://www.pcbeta.com/static/image/common/back.gif
可以分享下你的EFI吗?

加我好友 1431277549 发你

jack-lu 发表于 2018-2-9 13:01

声卡你用的是万能的么

maojinbing 发表于 2018-2-9 13:03

感谢大神的分享让我这个小白毛塞顿开真是全世界首创第一人

richjack 发表于 2018-2-23 11:07

我的磁盘一直无法抹去X23Oi不知道怎么回事,能否分享EFI ?

hzoZ 发表于 2018-2-23 11:24

感谢楼主分享

米达 发表于 2018-3-15 13:18

俺刚给朋友做了个x230i hotpatch电池补丁,楼主发一下你的efi,看看是否有匹配编译成hotpatch,这样以后就更简单。

deuigad 发表于 2019-2-22 16:40

米达 发表于 2018-3-15 13:18 https://www.pcbeta.com/static/image/common/back.gif
俺刚给朋友做了个x230i hotpatch电池补丁,楼主发一下你的efi,看看是否有匹配编译成hotpatch,这样以后就更 ...

求你的x230ihotpatch的补丁

米达 发表于 2019-2-23 12:07

deuigad 发表于 2019-2-22 16:40 https://www.pcbeta.com/static/image/common/back.gif
求你的x230ihotpatch的补丁





以前制作的hotpatch x230i thinkpad的

米达 发表于 2019-2-23 12:08

deuigad 发表于 2019-2-22 16:40 https://www.pcbeta.com/static/image/common/back.gif
求你的x230ihotpatch的补丁

x230i hotpatch 电池补丁:
/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20161210-64(RM)
* Copyright (c) 2000 - 2016 Intel Corporation
*
* Disassembling to non-symbolic legacy ASL operators
*
* Disassembly of iASLxaHSEM.aml, Sat Feb 23 12:08:13 2019
*
* Original Table Header:
*   Signature      "SSDT"
*   Length         0x00000D1C (3356)
*   Revision         0x02
*   Checksum         0x76
*   OEM ID         "hack"
*   OEM Table ID   "BATT"
*   OEM Revision   0x00000000 (0)
*   Compiler ID      "INTL"
*   Compiler Version 0x20160422 (538313762)
*/
DefinitionBlock ("", "SSDT", 2, "hack", "BATT", 0x00000000)
{
    External (_SB_.PCI0.LPCB.EC__, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.LPCB.EC__.AC__._PSR, MethodObj)    // 0 Arguments (from opcode)
    External (_SB_.PCI0.LPCB.EC__.BAT1, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.LPCB.EC__.BATM, MutexObj)    // (from opcode)
    External (_SB_.PCI0.LPCB.EC__.BSWA, IntObj)    // (from opcode)
    External (_SB_.PCI0.LPCB.EC__.BSWR, IntObj)    // (from opcode)
    External (_SB_.PCI0.LPCB.EC__.HIID, FieldUnitObj)    // (from opcode)
    External (_SB_.PCI0.LPCB.EC__.SBCM, FieldUnitObj)    // (from opcode)
    External (RMCF.MODE, IntObj)    // (from opcode)

    Method (B1B2, 2, NotSerialized)
    {
      ShiftLeft (Arg1, 0x08, Local0)
      Or (Arg0, Local0, Local0)
      Return (Local0)
    }

    Method (B1B4, 4, NotSerialized)
    {
      Store (Arg3, Local0)
      Or (Arg2, ShiftLeft (Local0, 0x08), Local0)
      Or (Arg1, ShiftLeft (Local0, 0x08), Local0)
      Or (Arg0, ShiftLeft (Local0, 0x08), Local0)
      Return (Local0)
    }

    Scope (\_SB.PCI0.LPCB.EC)
    {
      Method (RE1B, 1, NotSerialized)
      {
            OperationRegion (ERAM, EmbeddedControl, Arg0, One)
            Field (ERAM, ByteAcc, NoLock, Preserve)
            {
                BYTE,   8
            }

            Return (BYTE)
      }

      Method (RECB, 2, Serialized)
      {
            ShiftRight (Arg1, 0x03, Arg1)
            Name (TEMP, Buffer (Arg1) {})
            Add (Arg0, Arg1, Arg1)
            Store (Zero, Local0)
            While (LLess (Arg0, Arg1))
            {
                Store (RE1B (Arg0), Index (TEMP, Local0))
                Increment (Arg0)
                Increment (Local0)
            }

            Return (TEMP)
      }

      Method (RBMN, 0, Serialized)
      {
            Return (RECB (0xA0, 0x80))
      }

      Method (RBDN, 0, Serialized)
      {
            Return (RECB (0xA0, 0x80))
      }

      OperationRegion (BRAM, EmbeddedControl, Zero, 0x0100)
      Field (BRAM, ByteAcc, NoLock, Preserve)
      {
            Offset (0xA0),
            BRCA,   8,
            BRCB,   8,
            BFC0,   8,
            BFC1,   8,
            Offset (0xA8),
            BAC0,   8,
            BAC1,   8,
            BVO0,   8,
            BVO1,   8
      }

      Field (BRAM, ByteAcc, NoLock, Preserve)
      {
            Offset (0xA0),
            BBM0,   8,
            BBM1,   8,
            Offset (0xA4),
            BC00,   8,
            BC01,   8
      }

      Field (BRAM, ByteAcc, NoLock, Preserve)
      {
            Offset (0xA0),
            BDC0,   8,
            BDC1,   8,
            BDV0,   8,
            BDV1,   8,
            Offset (0xAA),
            BSN0,   8,
            BSN1,   8
      }

      Field (BRAM, ByteAcc, NoLock, Preserve)
      {
            Offset (0xA0),
            BCH0,   8,
            BCH1,   8,
            BCH2,   8,
            BCH3,   8
      }

      Method (GBIF, 3, NotSerialized)
      {
            Acquire (\_SB.PCI0.LPCB.EC.BATM, 0xFFFF)
            If (Arg2)
            {
                Or (Arg0, One, \_SB.PCI0.LPCB.EC.HIID)
                If (LOr (LOr (LOr (LOr (LEqual (0x35, \RMCF.MODE), LEqual (0x45, \RMCF.MODE)), LEqual (0x55, \RMCF.MODE)), LEqual (0x65, \RMCF.MODE)), LEqual (0x75, \RMCF.MODE)))
                {
                  Sleep (0x14)
                }

                If (LOr (LOr (LOr (LOr (LOr (LEqual (0x10, \RMCF.MODE), LEqual (0x35, \RMCF.MODE)), LEqual (0x45, \RMCF.MODE)), LEqual (0x55, \RMCF.MODE)), LEqual (0x65, \RMCF.MODE)), LEqual (0x75, \RMCF.MODE)))
                {
                  Store (\_SB.PCI0.LPCB.EC.SBCM, Local7)
                }
                Else
                {
                  Store (B1B2 (BBM0, BBM1), Local7)
                  ShiftRight (Local7, 0x0F, Local7)
                }

                XOr (Local7, One, Index (Arg1, Zero))
                Store (Arg0, \_SB.PCI0.LPCB.EC.HIID)
                If (LOr (LOr (LOr (LOr (LEqual (0x35, \RMCF.MODE), LEqual (0x45, \RMCF.MODE)), LEqual (0x55, \RMCF.MODE)), LEqual (0x65, \RMCF.MODE)), LEqual (0x75, \RMCF.MODE)))
                {
                  Sleep (0x14)
                }

                If (Local7)
                {
                  Multiply (B1B2 (BFC0, BFC1), 0x0A, Local1)
                }
                Else
                {
                  Store (B1B2 (BFC0, BFC1), Local1)
                }

                Store (Local1, Index (Arg1, 0x02))
                Or (Arg0, 0x02, \_SB.PCI0.LPCB.EC.HIID)
                If (LOr (LOr (LOr (LOr (LEqual (0x35, \RMCF.MODE), LEqual (0x45, \RMCF.MODE)), LEqual (0x55, \RMCF.MODE)), LEqual (0x65, \RMCF.MODE)), LEqual (0x75, \RMCF.MODE)))
                {
                  Sleep (0x14)
                }

                If (Local7)
                {
                  Multiply (B1B2 (BDC0, BDC1), 0x0A, Local0)
                }
                Else
                {
                  Store (B1B2 (BDC0, BDC1), Local0)
                }

                Store (Local0, Index (Arg1, One))
                Divide (Local1, 0x14, Local2, Index (Arg1, 0x05))
                If (Local7)
                {
                  Store (0xC8, Index (Arg1, 0x06))
                }
                ElseIf (B1B2 (BDV0, BDV1))
                {
                  Divide (0x00030D40, B1B2 (BDV0, BDV1), Local2, Index (Arg1, 0x06))
                }
                Else
                {
                  Store (Zero, Index (Arg1, 0x06))
                }

                Store (B1B2 (BDV0, BDV1), Index (Arg1, 0x04))
                Store (B1B2 (BSN0, BSN1), Local0)
                Name (SERN, Buffer (0x06)
                {
                  "   "
                })
                Store (0x04, Local2)
                While (Local0)
                {
                  Divide (Local0, 0x0A, Local1, Local0)
                  Add (Local1, 0x30, Index (SERN, Local2))
                  Decrement (Local2)
                }

                Store (SERN, Index (Arg1, 0x0A))
                Or (Arg0, 0x06, \_SB.PCI0.LPCB.EC.HIID)
                If (LOr (LOr (LOr (LOr (LEqual (0x35, \RMCF.MODE), LEqual (0x45, \RMCF.MODE)), LEqual (0x55, \RMCF.MODE)), LEqual (0x65, \RMCF.MODE)), LEqual (0x75, \RMCF.MODE)))
                {
                  Sleep (0x14)
                }

                Store (RBDN (), Index (Arg1, 0x09))
                Or (Arg0, 0x04, \_SB.PCI0.LPCB.EC.HIID)
                If (LOr (LOr (LOr (LOr (LEqual (0x35, \RMCF.MODE), LEqual (0x45, \RMCF.MODE)), LEqual (0x55, \RMCF.MODE)), LEqual (0x65, \RMCF.MODE)), LEqual (0x75, \RMCF.MODE)))
                {
                  Sleep (0x14)
                }

                Name (BTYP, Buffer (0x05)
                {
                     0x00, 0x00, 0x00, 0x00, 0x00                  
                })
                Store (B1B4 (BCH0, BCH1, BCH2, BCH3), BTYP)
                Store (BTYP, Index (Arg1, 0x0B))
                Or (Arg0, 0x05, \_SB.PCI0.LPCB.EC.HIID)
                Store (RBMN (), Index (Arg1, 0x0C))
            }
            Else
            {
                Store (0xFFFFFFFF, Index (Arg1, One))
                Store (Zero, Index (Arg1, 0x05))
                Store (Zero, Index (Arg1, 0x06))
                Store (0xFFFFFFFF, Index (Arg1, 0x02))
            }

            Release (\_SB.PCI0.LPCB.EC.BATM)
            Return (Arg1)
      }

      Name (BXY0, Zero)
      Name (BXY1, Zero)
      Name (BXY2, Zero)
      Name (BXY3, Zero)
      Name (BXZ0, Zero)
      Name (BXZ1, Zero)
      Name (BXZ2, Zero)
      Name (BXZ3, Zero)
      Method (GBST, 4, NotSerialized)
      {
            Acquire (\_SB.PCI0.LPCB.EC.BATM, 0xFFFF)
            If (And (Arg1, 0x20))
            {
                Store (0x02, Local0)
            }
            ElseIf (And (Arg1, 0x40))
            {
                Store (One, Local0)
            }
            Else
            {
                Store (Zero, Local0)
            }

            If (And (Arg1, 0x07)) {}
            Else
            {
                Or (Local0, 0x04, Local0)
            }

            If (LEqual (And (Arg1, 0x07), 0x07))
            {
                Store (0x04, Local0)
                Store (Zero, Local1)
                Store (Zero, Local2)
                Store (Zero, Local3)
            }
            Else
            {
                If (LOr (LOr (LOr (LOr (LEqual (0x35, \RMCF.MODE), LEqual (0x45, \RMCF.MODE)), LEqual (0x55, \RMCF.MODE)), LEqual (0x65, \RMCF.MODE)), LEqual (0x75, \RMCF.MODE)))
                {
                  Sleep (0x32)
                }

                Store (Arg0, \_SB.PCI0.LPCB.EC.HIID)
                If (LOr (LOr (LOr (LOr (LEqual (0x35, \RMCF.MODE), LEqual (0x45, \RMCF.MODE)), LEqual (0x55, \RMCF.MODE)), LEqual (0x65, \RMCF.MODE)), LEqual (0x75, \RMCF.MODE)))
                {
                  Sleep (0x32)
                  Store (\_SB.PCI0.LPCB.EC.HIID, Local6)
                  If (LNotEqual (Arg0, Local6))
                  {
                        Release (\_SB.PCI0.LPCB.EC.BATM)
                        Return (Arg3)
                  }
                }

                Store (B1B2 (BVO0, BVO1), Local3)
                If (Arg2)
                {
                  Multiply (B1B2 (BRCA, BRCB), 0x0A, Local2)
                }
                Else
                {
                  Store (B1B2 (BRCA, BRCB), Local2)
                }

                Store (B1B2 (BAC0, BAC1), Local1)
                If (LGreaterEqual (Local1, 0x8000))
                {
                  If (And (Local0, One))
                  {
                        Subtract (0x00010000, Local1, Local1)
                  }
                  Else
                  {
                        Store (Zero, Local1)
                  }
                }
                ElseIf (LNot (And (Local0, 0x02)))
                {
                  Store (Zero, Local1)
                }

                If (Arg2)
                {
                  Multiply (Local3, Local1, Local1)
                  Divide (Local1, 0x03E8, Local7, Local1)
                }
            }

            If (LAnd (LGreaterEqual (\RMCF.MODE, 0x70), LLessEqual (\RMCF.MODE, 0x74)))
            {
                Store (ShiftLeft (One, ShiftRight (Arg0, 0x04)), Local5)
                Or (\_SB.PCI0.LPCB.EC.BSWA, \_SB.PCI0.LPCB.EC.BSWR, \_SB.PCI0.LPCB.EC.BSWA)
                If (LEqual (And (\_SB.PCI0.LPCB.EC.BSWA, Local5), Zero))
                {
                  Store (Local0, Index (Arg3, Zero))
                  Store (Local1, Index (Arg3, One))
                  Store (Local2, Index (Arg3, 0x02))
                  Store (Local3, Index (Arg3, 0x03))
                  If (LEqual (Arg0, Zero))
                  {
                        Store (Local0, BXY0)
                        Store (Local1, BXY1)
                        Store (Local2, BXY2)
                        Store (Local3, BXY3)
                  }
                  Else
                  {
                        Store (Local0, BXZ0)
                        Store (Local1, BXZ1)
                        Store (Local2, BXZ2)
                        Store (Local3, BXZ3)
                  }
                }
                ElseIf (\_SB.PCI0.LPCB.EC.AC._PSR ())
                {
                  If (LEqual (Arg0, Zero))
                  {
                        Store (BXY0, Index (Arg3, Zero))
                        Store (BXY1, Index (Arg3, One))
                        Store (BXY2, Index (Arg3, 0x02))
                        Store (BXY3, Index (Arg3, 0x03))
                  }
                  Else
                  {
                        Store (BXZ0, Index (Arg3, Zero))
                        Store (BXZ1, Index (Arg3, One))
                        Store (BXZ2, Index (Arg3, 0x02))
                        Store (BXZ3, Index (Arg3, 0x03))
                  }
                }
                Else
                {
                  Store (Local0, Index (Arg3, Zero))
                  Store (Local1, Index (Arg3, One))
                  Store (Local2, Index (Arg3, 0x02))
                  Store (Local3, Index (Arg3, 0x03))
                }

                Release (\_SB.PCI0.LPCB.EC.BATM)
                Return (Arg3)
            }
            Else
            {
                Store (Local0, Index (Arg3, Zero))
                Store (Local1, Index (Arg3, One))
                Store (Local2, Index (Arg3, 0x02))
                Store (Local3, Index (Arg3, 0x03))
                Release (\_SB.PCI0.LPCB.EC.BATM)
                Return (Arg3)
            }
      }

      Method (GBIX, 3, NotSerialized)
      {
            If (LAnd (LGreaterEqual (\RMCF.MODE, 0x70), LLessEqual (\RMCF.MODE, 0x74)))
            {
                Acquire (\_SB.PCI0.LPCB.EC.BATM, 0xFFFF)
                If (Arg2)
                {
                  Or (Arg0, One, \_SB.PCI0.LPCB.EC.HIID)
                  Store (B1B2 (BC00, BC01), Local7)
                  Store (Local7, Index (Arg1, 0x08))
                  Store (B1B2 (BBM0, BBM1), Local7)
                  ShiftRight (Local7, 0x0F, Local7)
                  XOr (Local7, One, Index (Arg1, One))
                  Store (Arg0, \_SB.PCI0.LPCB.EC.HIID)
                  If (Local7)
                  {
                        Multiply (B1B2 (BFC0, BFC1), 0x0A, Local1)
                  }
                  Else
                  {
                        Store (B1B2 (BFC0, BFC1), Local1)
                  }

                  Store (Local1, Index (Arg1, 0x03))
                  Or (Arg0, 0x02, \_SB.PCI0.LPCB.EC.HIID)
                  If (Local7)
                  {
                        Multiply (B1B2 (BDC0, BDC1), 0x0A, Local0)
                  }
                  Else
                  {
                        Store (B1B2 (BDC0, BDC1), Local0)
                  }

                  Store (Local0, Index (Arg1, 0x02))
                  Divide (Local1, 0x14, Local2, Index (Arg1, 0x06))
                  If (Local7)
                  {
                        Store (0xC8, Index (Arg1, 0x07))
                  }
                  ElseIf (B1B2 (BDV0, BDV1))
                  {
                        Divide (0x00030D40, B1B2 (BDV0, BDV1), Local2, Index (Arg1, 0x07))
                  }
                  Else
                  {
                        Store (Zero, Index (Arg1, 0x07))
                  }

                  Store (B1B2 (BDV0, BDV1), Index (Arg1, 0x05))
                  Store (B1B2 (BSN0, BSN1), Local0)
                  Name (SERN, Buffer (0x06)
                  {
                        "   "
                  })
                  Store (0x04, Local2)
                  While (Local0)
                  {
                        Divide (Local0, 0x0A, Local1, Local0)
                        Add (Local1, 0x30, Index (SERN, Local2))
                        Decrement (Local2)
                  }

                  Store (SERN, Index (Arg1, 0x11))
                  Or (Arg0, 0x06, \_SB.PCI0.LPCB.EC.HIID)
                  Store (RBDN (), Index (Arg1, 0x10))
                  Or (Arg0, 0x04, \_SB.PCI0.LPCB.EC.HIID)
                  Name (BTYP, Buffer (0x05)
                  {
                         0x00, 0x00, 0x00, 0x00, 0x00                  
                  })
                  Store (B1B4 (BCH0, BCH1, BCH2, BCH3), BTYP)
                  Store (BTYP, Index (Arg1, 0x12))
                  Or (Arg0, 0x05, \_SB.PCI0.LPCB.EC.HIID)
                  Store (RBMN (), Index (Arg1, 0x13))
                }
                Else
                {
                  Store (0xFFFFFFFF, Index (Arg1, 0x02))
                  Store (Zero, Index (Arg1, 0x06))
                  Store (Zero, Index (Arg1, 0x07))
                  Store (0xFFFFFFFF, Index (Arg1, 0x03))
                }

                Release (\_SB.PCI0.LPCB.EC.BATM)
                Store (Arg1, Local0)
            }
            Else
            {
                Store (Zero, Local0)
            }

            Return (Local0)
      }
    }

    Scope (\_SB.PCI0.LPCB.EC.BAT1)
    {
      Method (_STA, 0, NotSerialized)// _STA: Status
      {
            Return (Zero)
      }
    }
}

king007_pcb 发表于 2019-6-17 21:05

感谢楼主分享
页: [1]
查看完整版本: x230i终于装好了