問題タブ [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.
uefi - メモリからの UEFI LoadImage
Bootservices 関数 LoadImage を使用して、メモリから UEFI アプリケーション イメージをロードすることを検討しています。関数パラメータは次のとおりです。
ロードする PE/COFF イメージが既に取り込まれている sourcebuffer を提供することが許可されている場合。現在 sourcebuffer を使用しており、有効な PE/COFF ファイルの内容でバッファを事前設定しました。これを SourceBuffer の下に渡し、DevicePath を Null に設定します。エラー「 」が表示されますEFI_LOAD_ERROR Image was not loaded because the image format was corrupt or not understood
。
私は何を間違っていますか?
windows - bcdedit を使用して UEFI ファームウェア ブート エントリを追加する
を使用して新しい UEFI ファームウェア ブート メニュー エントリ (NVRAM 内) を追加する方法bcdedit
。たとえば、次の手順を試しましたが、ブート エントリが追加されません。
これは新しいGUIDを返します(newguidと言います)
前もって感謝します。
uefi - UEFI LoadImage がハングする
Bootservices 関数 LoadImage を使用して、メモリから UEFI アプリケーション イメージをロードすることを検討しています。関数パラメータは次のとおりです。
メモリにソースバッファがあり、ロードする PE/COFF イメージが取り込まれています。
これを SourceBuffer の下に渡し、DevicePath を次のように設定します。
load image を呼び出すと、アプリケーションがハングします。UEFI EDK2 ソースをデバッグできるように Visual Studio をセットアップし、行き詰まった場所を分離しました。以下は、スタックしているように見える EDK2 呼び出しです。DevicePath は、上記で設定した mempath に設定されています。以下を終了しないように、パスを正しく構成していませんか?
詳細なコンテキストについては、これは私が立ち往生している場所のUDKコールスタックです
uefi - gnu-efi を使用して uefi アプリケーションをコンパイルするには?
を使用して uefi コードをコンパイルしようとしましgnu-efi
た。しかし、uefi アプリケーション コードをコンパイルする方法がわかりません。
3.0.2を取得gnu-efi
し、解凍して入力しmake && make install
ます。私はこんにちは世界のコードを書きます:
私のOSはUbuntu 15.04です。
uefi - UDK/EDK2 で構築された UEFI アプリケーションが実際のシステムをハングアップさせる
UDK2014 および EDK2 ソースをセットアップし、SecMain エミュレーターで正常に動作する EFI アプリケーションを正常に構築しています。ただし、アプリケーションを実際の UEFI システムに転送して実行すると、システムがハングします。hello world を出力する単純なアプリケーションを試してみました。
私がテストしているのは UEFI 32 ビット システムで、UDK/EDK2 ビルドでは 32 ビットをターゲットにしています。
UDK/EDK2 に付属する SecMain テスト環境に対して、実際のシステムをターゲットにするために構築するために何か特別なことをする必要がありますか?
debian - genisoimage と UEFI
Debian Jessie マシンで UEFI ISO イメージを作成するにはどうすればよいですか?
Kubuntu で follow コマンドを使用すると、すべて問題ありません
しかし、Debian Jessie でこのコマンドを実行すると、次のエラーが発生します。
Kubuntu (15.04) の genisoimage と Debian Jessie には同じオプションがないようです。Debian では、genisomage は UEFI をサポートしていません。
両方のシステムのバージョンは同じです: genisoimage 1.1.11
しかし、Debian Jessie で ISO イメージを作成する必要があります。これに対する回避策はありますか?
authentication - BIOS の読み込み手順
BIOS のロード/実行手順について説明が必要です。CPU によって実行される BIOS を認証する必要があります。私の考えは、MISO データ ストリーム (SPI BIOS フラッシュから CPU へのデータ) の HMAC-SHA1 を実行することです。
問題は、MISO データ ストリームが常に同じかどうかわからないことです。いくつか試してみましたが、常に前のものとは異なるデータ ストリームが得られます。ストリームの最初の部分は常に同じですが、しばらくすると (通信全体をダンプして、それが発生した瞬間を取得するための機器がありません)、ストリームが異なります。よくわかりませんが、カウンターが指定された値に達したときにストリームの数バイトを盗聴でき、異なる盗聴値を取得できるため、異なると思われます。スニッフィング手順は正しいと思いますが、確かではありません (スニッフィングは CPU と SPI BIOS FLASH の間の FPGA によって実行され、VHDL を書きました)。
BIOSの実行中に、CPUがリセットベクター( 0hFFFFF0 )の少なくとも2倍を読み取ることにも注意しました。
電源を入れるたびに CPU が異なるステップを実行する可能性はありますか? データストリームを認証することは可能だと思いますか? 必要なのは、実行された bios が有効な bios ( my bios ) であることを確認することです。
質問が混乱している場合はお詫びしますが、BIOS と起動手順に関する私の知識は貧弱です。
助けてくれてありがとう。
freebsd - UEFI ブートローダーでブロック I/O プロトコルを使用する方法
FreeBSD uefi ブートローダーを読んでいます。ただ、Block I/O Protocolについては理解できない部分があり、ソースコードを引用します。
以下のコードがデバイスパスの終わりを検索しているのはなぜですか?