HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2020/11/14

UEFIアプリケーション開発環境を Windowsの WSL環境で構築して QEMU環境で動作確認する方法 UEFIアプリケーション開発環境を Windowsの WSL環境で構築して QEMU環境で動作確認する方法

(Windowsの起動画面のロゴ画像をカスタマイズする HackBGRTを PNGと JPEGファイル対応に改造する)

Tags: [Windows], [無人インストール]




● Windows 10 boot logo customize 起動画面のロゴ画像をカスタマイズする方法

 HackBGRTで Windows 10のスタートアップロゴを置き換える

2020/11/13
Windows 10 21H2対応、HackBGRTで起動時のロゴを好きな画像に変更する方法、全画面のロゴ表示も可能
Windows 10 21H2対応、HackBGRTで起動時のロゴを好きな画像に変更する方法、全画面のロゴ表示も可能

  Windows 10の起動画面をカスタマイズ、スタートアップ ロゴの画像を変更する方法


● Windowsの起動画面の改造アプリ HackBGRTで UEFIについて興味が出たのでいじってみる

 なお、開発環境として Windowsの WSL Windows Subsystem for Linuxを使います。

 WSLの使い方も覚えられるので一石三鳥です。
 1) UEFIの開発で UEFIを覚えられる
 2) WSL環境を使用する事で Windows Subsystem for Linuxを覚えられる
 3) WSL環境を使用する事で別途 Linux環境(パソコン)を用意しなくて済む


● UEFIって何?

 UEFI = Unified Extensible Firmware Interface

 パソコンの電源を入れた時に動く Windowsを動かす為の最初のプログラム(超意訳)

 昔のパソコンは BIOSと言う物が動いていたが最近は UEFIに置き換わってきている。


● WSL環境をセットアップで Debianをインストールする

Windows 10 用 Windows Subsystem for Linux のインストール ガイド

WSL 1 と WSL 2 の比較

rem 手順 1 - Linux 用 Windows サブシステムを有効にする(再起動が必要)
echo PowerShellまたは cmd.exe コマンド プロンプト
echo 管理者権限が必要
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all
echo 再起動が必要

rem 手順 2 - WSL 2 に更新する
rem Windows 10 20H2の場合は不要

rem 手順 3: 仮想マシンの機能を有効にする(再起動は不要)
echo 管理者権限が必要
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all

rem 手順 4 - Linux カーネル更新プログラム パッケージをダウンロードする
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi


rem 手順 5 - WSL 2 を既定のバージョンとして設定する
wsl --set-default-version 2

rem wsl --set-default-version 2
rem WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

rem 手順 6 - 選択した Linux ディストリビューションをインストールする
https://aka.ms/wslstore



● WSLの Linux環境をインストールする

WSL Linux

Ubuntu 20.04 LTS444MB20200810 Ubuntu 20.04.1 LTS
Debian GNU/Linux77MBBuster 10.5
 Debianが 77MBで小さいので Debianを使う。


●コマンドラインでストア アプリをインストールする方法

 Install Windows Store App Command Line

WinAppDeployCmd


● WSLの Debianに UEFIの開発環境をインストールする

$ uname -a
Linux WSL2 4.19.128-microsoft-standard #1 SMP Tue Jun 23 12:58:10 UTC 2020 x86_64 GNU/Linux

sudo apt update
sudo apt install -y git wget unzip nano
sudo apt install -y build-essential


● HackBGRTがビルドできない






●別の UEFIサンプルで動くものを探す

ツールキットを使わずに UEFI アプリケーションの Hello World! を作る
uefi-simple

 とりあえず、これが動いた。

・ツールキットを使わずに UEFI アプリケーションの Hello World! を作る
ツールキットを使わずに UEFI アプリケーションの Hello World! を作る



# -nographicで動く(なのでグラフィック使用のサンプルは動作不可)
qemu-system-x86_64 -nographic -bios OVMF.fd -drive file=fat:rw:fs,media=disk,format=raw

# -nographicが無いと動かない
qemu-system-x86_64 -bios OVMF.fd -drive file=fat:rw:image,media=disk,format=raw
Unable to init server: Could not connect: Connection refused
gtk initialization failed

# -hda fat:fsでは動かない
qemu-system-x86_64 -bios /usr/share/ovmf/OVMF.fd -hda fat:fs -nographic

WARNING: Image format was not specified for 'json:{"fat-type": 0, "dir": "fs", "driver": "vvfat", "floppy": false, "rw": false}' and probing guessed raw.
         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
         Specify the 'raw' format explicitly to remove the restrictions.
qemu-system-x86_64: Initialization of device ide-hd failed: Block node is read-only

# -drive file=fat:rw:fs,media=disk,format=rawで動く
qemu-system-x86_64 -nographic -bios OVMF.fd -drive file=fat:rw:fs,media=disk,format=raw

「Ctrl+a」「x」で QEMUを終了できる
QEMU: Terminated
・ツールキットを使わずに UEFI アプリケーションの Hello World! を作る
ツールキットを使わずに UEFI アプリケーションの Hello World! を作る





● UEFIでやりたい事、HackBGRTを PNG形式の画像に対応に改造してみる

 BMP画像でも全く問題無いんだけど、プログラムの「改造」ネタとして面白そうだから。

・使用ライブラリ pngle
kikuchan / pngle

 画像の色展開が不完全だが「暴走」しない物ができた。
test / add_pngle

 pngleライブラリは私には使いこなせないので upngにしました。
 (upngにした後も pngleで再試行を繰り返しましたが敢え無く撃沈、なので upngにインデックス カラー パレットの対応の改造をして妥協しました)
 pngleは全ての PNGフォーマットに対応しています。
 upngは 8-bit以上の PNGフォーマットにだけ対応しています。
 (upngは 8-bit未満の 4-bitや 2-bit、1-bitに非対応)
 その後の調査で upngも 1-bitから対応している事が判明した。

・使用ライブラリ upng
elanthis / upng

 RGB8、RGBA8だけだができた。
 RGB16、RGBA16、グレイスケール対応もしました。
 また、インデックス カラー パレットの対応もしました。
test / add_upng

 PNGデコーダの upngライブラリのインデックス カラー パレットの対応の改造のプルリク
add Support PNG 8-bit 256 INDEX Color Palette #7

・使用ライブラリ picojpeg
richgel999 / picojpeg

 JPEGにも対応しますた!!(ただし Progressive JPEGには非対応)
feature / mod_multi

 インストール用のバイナリはここ FREEWING-JP / HackBGRT MULTI
 2020/11現在の最新版は 2020/11/26版
HackBGRT_MULTI_x86_64.zip
HackBGRT_MULTI_x86_64.zip
 をダウンロードして解凍する。
 使い方はオリジナルの HackBGRTと同じ。


●最近傍方式で 16bitを 8bitに変換する計算式

 // Nearest Neighbor method 16bit to 8bit Convertion
#include <stdio.h>
int main(void){
    int D = -1;
    int V;
    for (V = 0x0000; V <= 0xFFFF; ++V) {
        int N = (V + 0x80) / 0x101;
        if (D != N) {
            if (V != 0) {
                printf(" ...\n");
                printf("%04X, %02X\n", V-1, D);
            }
            printf("%04X, %02X\n", V, N);
            D = Y;
        }
    }
}
0000, 00
 ...
0080, 00
0081, 01
 ...
0181, 01
0182, 02
 ...
0282, 02
0283, 03
 ...
0383, 03
0384, 04
 ...
0484, 04

 ...
7BFB, 7B
7BFC, 7C
 ...
7CFC, 7C
7CFD, 7D
 ...
7DFD, 7D
7DFE, 7E
 ...
7EFE, 7E
7EFF, 7F
 ...
7FFF, 7F
8000, 80
 ...
8100, 80
8101, 81
 ...
8201, 81
8202, 82
 ...
8302, 82
8303, 83
 ...
8403, 83
8404, 84
 ...
8504, 84
8505, 85
 ...

 ...
F877, F7
F878, F8
 ...
F978, F8
F979, F9
 ...
FA79, F9
FA7A, FA
 ...
FB7A, FA
FB7B, FB
 ...
FC7B, FB
FC7C, FC
 ...
FD7C, FC
FD7D, FD
 ...
FE7D, FD
FE7E, FE
 ...
FF7E, FE
FF7F, FF
FFFF, FF




Tags: [Windows], [無人インストール]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

重たい Windows 10を軽くする方法、 古いパソコンでも高速・軽快に動かすウラ技とは?
重たい Windows 10を軽くする方法、 古いパソコンでも高速・軽快に動かすウラ技とは?

  アニメーションや透明効果をオフ、通知やヒントをオフ、バックグラウンドアプリの無効化等の設定を瞬時に済ませる方法

Windows 10のコマンドラインを「管理者権限」で実行する方法
Windows 10のコマンドラインを「管理者権限」で実行する方法

  Windows 10のコマンドラインを「管理者権限」で実行する方法

Windows 10の裏メニュー ゴッドモード(神モード)を出現させる方法
Windows 10の裏メニュー ゴッドモード(神モード)を出現させる方法

  Windows 10の裏コマンド 神モード GodModeを使う方法、{ED7BA470-8E54-465E-825C-99712043E01C}

Windows 10 October 2020 Update 20H2 Build 19042の ISOイメージをダウンロードする方法
Windows 10 October 2020 Update 20H2 Build 19042の ISOイメージをダウンロードする方法

  最新版の Windows 10 October 2020 Update 20H2のインストール ISOイメージを公式サイトからダウンロード

【2020年版】Windows 10 October 2020 Update 20H2 Build 19042の Windowsアップデート情報まとめ
【2020年版】Windows 10 October 2020 Update 20H2 Build 19042の Windowsアップデート情報まとめ

  【更新終了】Windows 10 October 2020 Update 20H2 Build 19042の Windows Update速報

【2020年版】Windows 10 May 2020 Update 2004 20H1 Build 19041の Windowsアップデート情報まとめ
【2020年版】Windows 10 May 2020 Update 2004 20H1 Build 19041の Windowsアップデート情報まとめ

  【更新終了】Windows 10 May 2020 Update 2004 20H1 Build 19041の Windows Updateのまとめ

【2020年版】Windows 10で Windows Update適用後に自動的に再起動するのを阻止する方法【永久保存版】
【2020年版】Windows 10で Windows Update適用後に自動的に再起動するのを阻止する方法【永久保存版】

  自動更新のインストールで、ログオンしているユーザーがいる場合には自動的に再起動しない設定方法

Windows 10 May 2020 Update 2004 20H1で Wireless Connect ミラキャスト接続を有効にする方法
Windows 10 May 2020 Update 2004 20H1で Wireless Connect ミラキャスト接続を有効にする方法

  Windows 10 2004はミラキャスト接続が無効になっている、コマンドラインで「接続」を有効にする方法

Windows 10 May 2020 Update 2004 20H1で予約済みストレージを無効にして空き領域を 8GB増やす方法
Windows 10 May 2020 Update 2004 20H1で予約済みストレージを無効にして空き領域を 8GB増やす方法

  Windows 10 2004で予約済みストレージを DISMコマンドで無効にして削除し、ストレージの空き領域を増やす方法

Windows 10を全自動で最後まで手間要らずでインストールする方法
Windows 10を全自動で最後まで手間要らずでインストールする方法

  autounattend.xmlの応答ファイルを使用して Windows 10を無人インストールする。大量展開時に便利

ここが変だよ Windows 10!Windows 10の不可解な挙動やバグの解決方法
ここが変だよ Windows 10!Windows 10の不可解な挙動やバグの解決方法

  Windows 10の変な挙動のまとめとその解決方法、不具合やバグを「仕様」と言い張るマイクソソフト

Windows 10の ISOを無料でダウンロードする方法、インストール DVD・USBを作成する方法
Windows 10の ISOを無料でダウンロードする方法、インストール DVD・USBを作成する方法

  マイクロソフトの公式サイトから最新版の Windows 10のインストール ISOイメージをダウンロード

Windows 10 April 2018 Update Build 1803にマイナーバージョンの存在
Windows 10 April 2018 Update Build 1803にマイナーバージョンの存在

  MediaCreationToolでダウンロードした Windows.isoは微妙に更新されています

2020年対応 Windows 7や 8.1から Windows 10 April 2018 Updateへ無償で公式アップグレードする方法
2020年対応 Windows 7や 8.1から Windows 10 April 2018 Updateへ無償で公式アップグレードする方法

  2020年現在も Windows 7から Win10への無料アップグレードが可能です、Windows10Upgrade24074.exe

Windows 10をインストールする時にできる 500MBの「回復パーティション」を削除する方法
Windows 10をインストールする時にできる 500MBの「回復パーティション」を削除する方法

  500MBの領域が勿体無いので Windows 10の回復パーティションを削除する手順(再インストール必要)

Windows Insider Programに参加して最新の Windows 10を入手する方法、17763.107が欲しい!!
Windows Insider Programに参加して最新の Windows 10を入手する方法、17763.107が欲しい!!

  Windows 10 October 2018 Update 1809 RS5の最新パッチを入手する為に Windows Insider Programに参加

Intel CPUで有名な Meltdownと Spectreの脆弱性を InSpectreアプリでチェックする
Intel CPUで有名な Meltdownと Spectreの脆弱性を InSpectreアプリでチェックする

  Windows OS上で CPUのスペクターとメルトダウンの脆弱性をチェックできるアプリ InSpectre

Windows 10用の Spectre脆弱性対応の CPUマイクロコード更新プログラム KB4465065
Windows 10用の Spectre脆弱性対応の CPUマイクロコード更新プログラム KB4465065

  Intel CPUの Spectreの脆弱性を修正するマイクロソフト Windows用 更新プログラム KB4465065

Microsoft Office 365を無人インストール(自動インストール)する方法
Microsoft Office 365を無人インストール(自動インストール)する方法

  インストールするコンポーネントを事前に設定する事で同一環境の構築が楽にできます MSオフィス 365

Adobe Acrobat Reader関係のまとめ 2018年版、自動インストール、無人インストール方法
Adobe Acrobat Reader関係のまとめ 2018年版、自動インストール、無人インストール方法

  アップデート手順など、Adobe Reader XI、X、Acrobat Reader 9、Acrobat Reader 8

【2023年対応】 Microsoft Visual C++ ランタイムライブラリ 再頒布可能パッケージのまとめ 2005~2022まで
【2023年対応】 Microsoft Visual C++ ランタイムライブラリ 再頒布可能パッケージのまとめ 2005~2022まで

  Microsoft Visual C++ 2005、2008、2010、2012、2013、2015、2017、2019、2022の各バージョンの最新版 MSVC Runtime librariesのまとめ

Visual Studio 2019 Professional v16.4を無人インストールする方法、完全自動でインストール
Visual Studio 2019 Professional v16.4を無人インストールする方法、完全自動でインストール

  VS2019 v16.4を完全オフラインインストール&コンポーネント選択の事前設定で自動インストールする

PIP機能付きの 4K対応の 4入力 1出力の HDMIセレクターを買ってみた、HDMI機器が複数有る場合に便利
PIP機能付きの 4K対応の 4入力 1出力の HDMIセレクターを買ってみた、HDMI機器が複数有る場合に便利

  ピクチャ イン ピクチャ機能付き 4K入力対応の 4入力 1出力 HDMI切り換え機 HDSFX0401P

EDID保持機能付きの 4K対応の 4入力 2出力の マトリックス切り替え HDMIセレクター、液晶画面 2台と使用で最強
EDID保持機能付きの 4K対応の 4入力 2出力の マトリックス切り替え HDMIセレクター、液晶画面 2台と使用で最強

  TESmart HMA0402A30 マトリックス切り替えで液晶画面 2台に接続できて更に EDID保持の便利機能付き HDMI切り換え機


2021/02/14
2021年 現行機種のほとんど全てのインテル製パソコンのグラフィックス ドライバーに脆弱性が有ります
2021年 現行機種のほとんど全てのインテル製パソコンのグラフィックス ドライバーに脆弱性が有ります

  Intel HD Graphics device driverをアップデートして脆弱性 INTEL-SA-00438に対応する、各 CPU毎のバージョンまとめ

2020/01/16
2020年 インテル ワイヤレス WiFi Bluetooth デバイス ドライバ
2020年 インテル ワイヤレス WiFi Bluetooth デバイス ドライバ

  Intel Wireless WiFi Bluetooth BT device driverをアップデートする



[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2020 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/software/uefi_bios_hack/