問題タブ [uefi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2102 参照

config - PCI 構成スペース (EFI) からの USB デバイスのベンダー ID とデバイス ID の読み取り

プラグインされた USB デバイスのベンダー ID とデバイス ID を EFI プログラム経由で取得したいと考えています。PCI 構成スペース全体を読み取ることができます USB デバイスがパグされている USB ホストコントローラーを見つけます このコントローラーのアドレス指定されたメモリ全体を読み取ることもできますが、これらの ID を取得するためにこのメモリで何を検索しているのか正確にはわかりません。誰かが私を助けることができますか?

0 投票する
4 に答える
1424 参照

bios - バグのある BIOS を搭載した Asus Z170 ボードで ia32 機能制御レジスタを変更する

BIOS が ia32 機能制御 MSR レジスタで有効にしていない CPU 機能を使用する必要があるという不運な状況にあります。BIOS はロック ビットを設定するので、自分でビットを設定することはできません。BIOS (Asus UEFI BIOS) には、動作を変更するオプションがありません。質問は、このビットを設定する方法はありますか? UEFI拡張またはUEFIシェルから実行できるプログラムを作成できるかどうかを考えています。しかし、これが実行される前にレジスタがロックされているかどうかはわかりません(UEFIとそのプログラミング環境についてはほとんど知りません)。または、BIOS アップデート イメージにパッチを適用したり、標準ツールを使用して変更したりすることはできますか? この辺りで成功店って聞いたことある人いますか?

問題の機能は SGX (Software Guard Extensions) です。ボードは Asus Z170-K です。BIOS がこのビットを設定できないことを除いて、すべてが SGX をサポートするために用意されています。

5 月 22 日の更新: Asus Z170-K を新しくリリースされた BIOS 1803 (5 月 20 日にリリース) に更新しました。バージョン番号の大きなジャンプだったので、期待していました。残念ながら、SGX のサポートはまだありません。私は今、Asus に新しいリクエストを提出しましたが、今回は、単に却下されないように計画しています。これは最初からサポートされていないのは完全にアマチュアだと思います-これはSkylake CPUのサポートの一部であるため、これを必要とするすべての顧客は払い戻しを試みて追求する必要があると思います(私はそうするつもりです).

0 投票する
3 に答える
2737 参照

c - UEFI プログラミング: CHAR16 Unicode 文字列を初期化する方法は?

uefi プログラミングには、char16 幅の文字列を使用する必要があります。どうすれば簡単に初期化できますか? CHAR8 は簡単です:

一方、CHAR16はそのように一生懸命働いているので、この初期化を選択しました:

質問は、CHAR16 文字列を初期化するための正しくて最も簡単な方法は何でしょうか?

0 投票する
1 に答える
813 参照

c# - システム権限の取得方法

SeSystemEnvironmentPrivilegeにアクセスする必要がある C# プログラムがありますUEFI NVRAM

特権を取得するために使用する非常に長いコードを見つけましたが、それWin32 APIを取得する .NET バージョンはありますか? プロセスクラスで、またはどこかで?

0 投票する
0 に答える
760 参照

image - EFI イメージで PE/COFF ヘッダーの前に追加のパディングが必要な理由

40h私が調べたすべての EFI イメージには、MS-DOS スタブと場合によっては使用されていない PE 署名の間に少なくとも数バイトのパディングがあります。ゼロで埋め尽くされています。

私はリンカを書いていて、私の最初の計画は指定された場所に 0 のパディングを持つことでしたが、ファイルをロードした後に UEFI ローダーが単に応答を停止したようです。DOS ヘッダーと PE ヘッダーを 1 つの場所にマージするなど、いくつかの奇妙な組み合わせを試しましたが、同じ問題が発生しました。

また、DOS スタブを完全に削除しようとしましたが、何らかの理由でファームウェアもイメージを認識できました。通常、イメージが署名で始まらない場合MZ、ローダーはエラー メッセージを出力して終了します。この場合、オプションのヘッダーに無効な Magic 値を書き込んだ後、ローダーがそれを認識してエラー メッセージを出力するため、COFF 形式を適切に直接解析していると確信しています。問題は、それでもバグが発生し、何も出力しないことです。ハングするだけです。この通常のように PE ヘッダーを解析しています。他のマシンで動作することを期待できますか?

それ以外の場合、画像は完全に機能していると確信しています。そうでない場合でも、パディングがある場合、ローダーはエラー メッセージを出力し、ハングする代わりに終了します。イメージが正常にロードされて実行されると、Hello Worldメッセージが出力されます。これは、10hパディングが存在し、すべてが完全に機能し始めたときに発生します。どうすればそのようなタスクを達成できますか? 助言がありますか?

0 投票する
2 に答える
5755 参照

boot - GRUB2 UEFI ローダーは、構成ファイルを検索する場所 (または第 2 段階のファイルが配置されている場所) をどのように認識しますか?

GPT が有効なパーティションで GRUB2 を使用する場合、ローダーは構成ファイルやその他の第 2 段階のファイルの場所をどのように「認識」しますか?

注:GRUBのEFIローダーと同じフォルダーにあり、指定されたパーティションからの「プライマリ」構成ファイルのチェーンロードを含む構成ファイルについての言及をいくつか見つけましたが、それは間違いなく真実ではありません-「何か. efi」ファイル。

0 投票する
1 に答える
1046 参照

firmware - デフォルトの UEFI 起動順序 (ファームウェア イメージ内)

EDK2 を使用してファームウェアをビルドする場合、カスタムのデフォルト ブート順序を提供する最も簡単な方法は何ですか?

たとえば、QEMU の Ovmf は、QEMU の「ブートオーダー」fw_cfg ファイル (QemuBootOrderLib のコードを使用) に基づいて、UEFI ブート順序をプログラムで再定義することを知っています。同様に、プログラムで起動順序を指定して強制することもできます。

それを達成するためのより簡単な方法はありますか (おそらく UEFI 変数にカスタム値を提供する)?

注: シェルを使用せずに! この構成がファームウェア イメージに含まれている必要があります。