210408-DataBase: Update MM41
etc.
OpenCore-0.6.9-RELEASE-c1ad636e5f3602f31f8ae518b810e50f42e87df6.zip
(% ./ocvalidate /Volumes/EFI/EFI/OC/config.plist
OCS: Failed to parse string field as value with type boolean and <Auto> contents, context <CustomDelays>!)
210411-OcDevicesMiscLib: Drop ShellPkg dependency
etc.
OpenCore-0.6.9-RELEASE-0f817de50626ca2b29291d713f458035f7e7b210.zip
(% ./ocvalidate /Volumes/EFI/EFI/OC/config.plist
OCS: Missing key ForgeUefiSupport, context <Quirks>!
OCS: Missing key ReloadOptionRoms, context <Quirks>!)
コメント
こんにちは
以前 Boot macOS さんでお世話になりました
narihiroと申します。
突然で申し訳ございませんが、教えていただきたいことがございます。
OpenCoreを0.6.9にアップデートしたら、このページに記載されている
「OCS: Faild to parse string field as value with type boolean and contents , context !」
がブート直前に出るようになってしまいました。
消し方の設定方法を教えていただけたら幸いです。
よろしくお願い致します。
お疲れ様です。
細かくバージョンは変わるのですが、いつもconfig.plistが変わるので、意外と面倒ですよね。他のを消しているようなので、答えになっているか、ちょっと不安ですが、他の皆さんの答えにもなるように、詳しく書いてみます。
知ってると思いますが、OpenCoreでは、結構きちんと(人手が足りているので)Sample.plistが整備され、ocvalidate(構文チェッカー)も整備されているようです。
それらここにあります。
OpenCore-0.6.9-RELEASE.zipを解凍した時に、
OpenCore-0.6.9-RELEASE/Docs/Sample.plist
OpenCore-0.6.9-RELEASE/Utilities/ocvalidate/ocvalidate
まず、構文があっているかどうかの調べかたです。
上の、ocvalidateを、コマンドとして実行できるように特定の場所にコピーします。
ここでは簡単に、Finderで、デスクトップにコピーしたとしましょう。
そして、調べたい、OpenCoreのconfig.plstもデスクトップにコピーしたとしましょう。
ターミナルで、以下のように打ち込みます。
% ~/Desktop/ocvalidate ~/Desktop/config.plist
構文に問題があれば、結果がでます。
(みなさんなら、もっと楽に、ocvalidateを~(ホーム)に、config.plstも/Volume/EFI/EFI/OC/config.plistで指定もできると思います。そのばあい、% ~/ocvalidate /Volumes/EFI/EFI/OC/config.plistです。)
多くの場合、次の3つの場合が出ます。
1.項目(Item)がなくなったので消してほしい場合
2.項目が増えたので、増やしてほしい場合
3.項目の型が変わったので、直してほしい場合
直し方は、どれも似ています。
上に示したSample.plistに、今の正しい記述方法が書いてあるので、これを探して、古いconfig.plistにコピーするなり。参考にして直せばいいです。
まず、古いconfig.plistの複製を作りましょう。(用心に越したことはありません。うまく行かなくなったら、こっからやり直せばいいんです。)
ここでは、PlistEDplusを使った方法で書きます(https://github.com/ic005k/PlistEDPlus/releases/tag/1.0.52)
まず、PlistEDplusで、上で示したSample.plistを開きましょう。
上部のメニューの右側にFindと書かれた、検索用窓が見えると思います。ここに、足りないアイテムや、変わったアイテムの名前をいれます。ここでは、(あ・・narihiroさん、ocvalidate使うと、Item名が出てくるので便利ですよ^^・・)CustomDelaysのはずなので、ターミナルからのコピペでいいので入れましょう。そして、横の虫眼鏡マークのボタンを押すと、結果ができきます。
みると、場所は、UEFIのAppleInput、型はbool、値はfalseになっています。OpenCoreのサンプルは安全側(いれても普通には問題が出ない)で記述しているので、参考にしましょう。
次に、古いconfig.plistをPlistEDplusで開きましょう。タブができて、config.plistになるはずです。
(項目が足りない場合は、Sample.plistのアイテム欄を選択してコピーし、古いconfig.plistの同じ場所にペーストして挿入すればいいです。)
古いconfig.plistでも、CustomDelaysを検索しましょう。結果はきっと、型がString、値はYESになっていたはずです。(すいません、直しちゃったので古いのないです。)
まえに、ocvalidateででた、メッセージの「Faild to parse string field as value with type boolean and contents」は、方が違うので、解析できませんでしたと言っているのです。
そこで、PlistEDplusのCustomDelaysの行で、stringと書かれたところをクリックすると、型一覧が出るので、boolが出てくるので選択しましょう。値はデフォルトでfalseのはずなので、さっきのSampleとおなじですから、安全側なので、問題はほぼ起こらないと思います。
なおしたあと、PlistEDplusの上部メニューで、フロッピー印のボタン(今頃フロッピーって作者のお年がわかるようですがww)を押してセーブして、終わりです。
きっと、これで、問題は解決しているはずです。
もし、CustomDelaysでない場合も、ocvalidateを使うことで、アイテム名が出ますので、同じようにPlistEDplusを使って、Sample.plistを参考に、コピペなどででも、古いconfig.plistを直せばいいと思います。
冗長(バーボーズ)になりましたが、以上です。
alpha様
大変わかり易い解説をしていただきましてありがとうございます。
無事にエラー無く起動するようになりました。
PlistEDplusは非常に便利ですね。
できるだけ自分で対処できるように学んでみますが、
何かわからないことがありましたら、ご指導ください。
宜しくお願い致します。
なおってよかったです。
また、気軽に、コメントくださいね。