2019年1月7日月曜日

x360 F.23 BIOS

1. HP spectre x360が突如純正アダプターで充電できなくなった
USB-Cに刺してもLEDランプがつかず
アダプター不良→他の機器は充電できる
諦めてbcfg boot を戻した後、サポートページをみて、電源ボタンを15秒押したら再度充電できるようになった
なーんか怪しいな...

2. whatevergreenを1.2.6にアップデートしたところ起動途中でハングアップ
1.2.4に戻した
アップデートしまくるのも考えものか

3. HP BIOSが F.23にアップデートされた
例によってDSDTのアップデートを..

CLOVER を立ち上げ F4を押し、ACPI/origin/ にamlを保存する
Clover ConfiguratorなどでEFIをマウントし、/Volumes/SYSTEM/EFI/CLOVER/ACPI/origin からamlをコピーする
iASL.zipをダウンロード https://bitbucket.org/RehabMan/acpica/downloads/
し、dslに変換する
unzip iasl.zip
sudo mv iasl /usr/bin
rehash

注:このaml群をMaciASLで開くのは全くお勧めできない
なぜなら DSDT/SSDTは相互依存しているため、ファイルを全て指定しないとエラーを起こしやすいからである

refs.txtを作成
refs.txt
External(MDBG, MethodObj, 1)
External(_GPE.MMTB, MethodObj, 0)
External(_SB.PCI0.LPCB.H_EC.ECWT, MethodObj, 2)
External(_SB.PCI0.LPCB.H_EC.ECRD, MethodObj, 1)
External(_SB.PCI0.LPCB.H_EC.ECMD, MethodObj, 1)
External(_SB.PCI0.PEG0.PEGP.SGPO, MethodObj, 2)
External(_SB.PCI0.GFX0.DD02._BCM, MethodObj, 1)
External(_SB.PCI0.SAT0.SDSM, MethodObj, 4)
External(_GPE.VHOV, MethodObj, 3)
External(_SB.PCI0.XHC.RHUB.TPLD, MethodObj, 2)

original amlをコピーしたディレクトリにうつって以下のコマンドを打つ
iasl -da -dl -fe refs.txt DSDT.aml SSDT*.aml

以前はこれだけでいけたが、 BIOS F.23ではsegmentation fault がでるためやむなく下記ももう一回

iasl -da -dl -fe refs.txt DSDT.aml

F.23のエラーは下記
Compiler aborting due to parser-detected syntax error(s)
DSDT.dsl  19454:             OperationRegion (PXVD, SystemMemory, Local0, 0x08)
Error    6126 -                           ^ syntax error, unexpected PARSEOP_OPERATIONREGION

DSDT.dsl  19779:             Add (MMTB (), Arg0, 0x0544)
Error    6126 -                                      ^ syntax error, unexpected PARSEOP_INTEGER, expecting PARSEOP_CLOSE_PAREN

DSDT.dsl  19934:             OSUP (Local2)
Error    6126 -                ^ syntax error, unexpected PARSEOP_NAMESEG

DSDT.dsl  19935:             If (LEqual (Arg1, 0x03))
Error    6126 -              ^ syntax error, unexpected PARSEOP_IF

DSDT.dsl  19936:             {
Error    6126 -             ^ syntax error, unexpected '{'

DSDT.dsl  19944: 
Error    6126 - syntax error, unexpected PARSEOP_SCOPE, expecting $end and premature End-Of-File


F.22とほぼ同じだったのでパッチは下記になる
patch/00_errorfix
# for HP spectre x360 ae BIOS F23
# credit by takakobaya

# F23 BIOS  syntax error fix

# change Store (MMTB (), Arg0)+ Local0 into Store (MMTB (), Local0)
into method label TBFF code_regex Store\s\(MMTB.*Arg0\)\n.*Local0 replaceall_matched begin Store (MMTB (), Local0) end;

# change  Add (MMTB (), Arg0, 0x0544)+ Local0  into Store (MMTB (), Local0)\nAdd (0x0544, Local0)
into method label GNIS code_regex Add\s\(MMTB.*0x0544.*\n.*Local0 replaceall_matched begin Store (MMTB (), Local0)\nAdd (0x0544, Local0) end;

# change Store (MMTB (), Arg0)+Local2 into Store (MMTB (), Local2)
into method label TINI code_regex Store\s\(MMTB.*\n.*Local2 replaceall_matched begin Store (MMTB (), Local2) end;

あとはいつものように./patch-compile してEFI/CLOVER/ACPI/patchedの中に入れて終了


0 件のコメント:

コメントを投稿