94,95 €*
Versandkostenfrei per Post / DHL
Aktuell nicht verfügbar
Harnessing the UEFI Shell is authored by the three chairs of the UEFI working sub-teams, Michael Rothman (Intel, chair of the UEFI Configuration and UEFI Shell sub-teams), Vincent Zimmer (Intel, chair of the UEFI networking sub-team and security sub-team), and Tim Lewis (Insyde Software, chair of the UEFI security sub-team). This book is perfect for any OEMs that ship UEFI-based solutions (which is all of the MNCs such as IBM, Dell, HP, Apple, etc.), software developers who are focused on delivering solutions targeted to manufacturing, diagnostics, hobbyists, or stand-alone kiosk environments.
Harnessing the UEFI Shell is authored by the three chairs of the UEFI working sub-teams, Michael Rothman (Intel, chair of the UEFI Configuration and UEFI Shell sub-teams), Vincent Zimmer (Intel, chair of the UEFI networking sub-team and security sub-team), and Tim Lewis (Insyde Software, chair of the UEFI security sub-team). This book is perfect for any OEMs that ship UEFI-based solutions (which is all of the MNCs such as IBM, Dell, HP, Apple, etc.), software developers who are focused on delivering solutions targeted to manufacturing, diagnostics, hobbyists, or stand-alone kiosk environments.
Preface ¿ vii
Chapter 1 Introduction ¿ 1
What is UEFI? ¿ 1
What Do We Mean by Shell? ¿ 4
A Short History of the UEFI Shell ¿ 5
Brief Overview of the UEFI Shell ¿ 5
UEFI Shell APIs ¿ 6
Command Line Interface Features ¿ 6
Why a Shell at all? ¿ 7
Chapter 2 Under the UEFI Shell ¿ 9
Shell and UEFI ¿ 9
Evolution and Revolution ¿ 13
Chapter 3 What Is the UEFI Shell? ¿ 15
What Is Contained in the UEFI Shell? ¿ 16
What Kind of Shell Do You Have? ¿ 16
What!? No Shell? No Problem! ¿ 17
Programmatic Shell Environment ¿ 19
Using UEFI Shell Commands ¿ 20
Interactive Shell Environment ¿ 22
Scripting ¿ 22
Program Launch ¿ 24
File-System Abstractions ¿ 29
Shell Script Resolves into a UEFI Firmware Action ¿ 31
Chapter 4 Why We Need an Execution Environment before the OS ¿ 33
Evolution of a Machine ¿ 33
The Platform Initialization Flow ¿ 34
UEFI Transitions ¿ 36
States of a Platform ¿ 38
Readiness of UEFI ¿ 41
Migration Using the UEFI Shell ¿ 44
Going Forward ¿ 45
Chapter 5 Manufacturing ¿ 47
Throughput ¿ 47
Manufacturing Test Tools ¿ 49
Hardware Access with Manufacturing Tools ¿ 50
Converting Manufacturing Tools ¿ 53
Conclusion ¿ 54
Chapter 6 Bare Metal Provisionig ¿ 55
Provisioning with the UEFI Shell ¿ 55
UEFI Networking Stack ¿ 56
Securing the Network ¿ 58
Speeding Up the Network ¿ 62
Example of Putting It Together ¿ 62
Summary ¿ 68
Chapter 7 Configuration of Provisioned Material ¿ 69
Initialization Timeline ¿ 69
Configuration Infrastructure Overview ¿ 71
Using the Configuration Infrastructure ¿ 72
Driver Model Interactions ¿ 73
Provisioning the Platform ¿ 75
Configuring through the UEFI Shell ¿ 76
Basic Configuration ¿ 76
Advanced Configuration Abilities ¿ 79
Chapter 8 The Use of UEFI for Diagnostics ¿ 85
Types of Diagnostics ¿ 85
SMBIOS Table Organization ¿ 87
SMBIOS Structure Table Entry Point ¿ 88
Table Organization Graph ¿ 88
Structure Standards ¿ 89
Structure Evolution and Usage Guidelines ¿ 90
Text Strings ¿ 90
Required Structures and Data ¿ 91
Features ¿ 91
User Interface Design ¿ 92
Design Guide ¿ 92
Usage ¿ 93
Examples ¿ 93
Architecture Design ¿ 94
Data Structure ¿ 95
SMBIOS_STRUCTURE_TABLE ¿ 95
SMBIOS_HEADER ¿ 97
SMBIOS_STRUCTURE_POINTER ¿ 98
STRUCTURE_STATISTICS ¿ 99
Source Code for the Utility ¿ 100
Summary ¿ 105
Chapter 9 UEFI Shell Scripting ¿ 107
Hello, World! ¿ 108
Echo ¿ 108
Echo All Parameters ¿ 109
Echo All Parameters (Improved Version) ¿ 110
Concatenate Text Files ¿ 112
List Only Selected "ls" Information ¿ 113
Install Script ¿ 115
How to Make a Shell Script Appear as a Boot Option ¿ 119
Chapter 10 UEFI Shell Programming ¿ 121
A Simple UEFI Shell Application: HelloWorld ¿ 121
The Source File: HelloWorld.c ¿ 121
The Component Information (.inf) File ¿ 123
A Simple Standard Application: HelloWorld2 ¿ 124
The Source File: HelloWorld2.c ¿ 124
The Component Information (.inf) File: HelloWorld2.inf ¿ 125
Read Keyboard Input in UEFI Shell Scripts: GetKey ¿ 126
The Source File: GetKey.c ¿ 127
The Component Information (.inf) File: GetKey.inf ¿ 137
The Build Description (.dsc) File ¿ 139
Calculate Math Expressions: Math ¿ 139
The Source File: Math.c ¿ 140
The Component Information (.inf) File: Math.inf ¿ 154
Convert ASCII to Unicode and Back: UniCodeDecode ¿ 154
The Source File: UniCodeDecode.c ¿ 155
The Component Information (.inf) File ¿ 163
Chapter 11 Managing UEFI Drivers Using the Shell ¿ 165
Testing Specific Protocols ¿ 166
Loading and Unloading UEFI Drivers ¿ 167
Load ¿ 168
LoadPciRom ¿ 168
Unload ¿ 169
Connecting UEFI Drivers ¿ 169
Connect ¿ 169
Disconnect ¿ 170
Reconnect ¿ 170
Driver and Device Information ¿ 171
Drivers ¿ 171
Devices ¿ 172
DevTree ¿ 172
Dh -d ¿ 173
OpenInfo ¿ 173
Testing the Driver Configuration and Driver Diagnostics Protocols ¿ 174
DrvCfg ¿ 174
DrvDiag ¿ 174
Debugging Code Statements ¿ 175
POST Codes ¿ 177
Post Card Debug ¿ 178
Text-Mode VGA Frame Buffer ¿ 179
Other Options ¿ 179
Appendix A Security Considerations ¿ 181
UEFI Shell Binary Integrity ¿ 181
Overview ¿ 181
Signed Executable Overview ¿ 182
Digital Signature ¿ 183
Signed Executable Processing ¿ 185
Signed Executable Generation Application (SignTool) ¿ 185
UEFI Load Image ¿ 186
SignTool ¿ 186
Build Environment ¿ 186
Example usage ¿ 187
Appendix B Command Reference ¿ 189
Command Profiles and Support Levels ¿ 189
Command List ¿ 189
Standardizing Command Output ¿ 192
Command Details ¿ 193
alias ¿ 193
attrib ¿ 194
bcfg ¿ 194
cd ¿ 196
cls ¿ 197
comp ¿ 197
connect ¿ 198
cp/copy ¿ 199
date ¿ 199
dblk ¿ 200
del ¿ 200
devices ¿ 200
devtree ¿ 201
dh ¿ 201
dir/ls ¿ 202
disconnect ¿ 202
dmem ¿ 203
dmpstore ¿ 204
drivers ¿ 204
drvcfg ¿ 205
drvdiag ¿ 206
echo ¿ 206
edit ¿ 207
eficompress ¿ 207
efidecompress ¿ 207
exit ¿ 207
for ¿ 208
getmtc ¿ 209
goto ¿ 209
help ¿ 209
hexedit ¿ 210
if ¿ 210
ifconfig ¿ 214
ifconfig6 ¿ 214
load ¿ 215
loadpcirom ¿ 216
ls ¿ 216
map ¿ 217
md ¿ 218
mem ¿ 218
memmap ¿ 218
mkdir ¿ 219
mm ¿ 219
mode ¿ 220
mv ¿ 220
openinfo ¿ 220
parse ¿ 221
pause ¿ 221
pci ¿ 221
ping ¿ 222
ping6 ¿ 222
reconnect ¿ 223
reset ¿ 223
rm ¿ 224
sermode ¿ 224
set ¿ 225
setsize ¿ 226
setvar ¿ 226
shift ¿ 227
smbiosview ¿ 227
stall ¿ 228
time ¿ 228
...Erscheinungsjahr: | 2017 |
---|---|
Fachbereich: | Hardware |
Genre: | Informatik |
Rubrik: | Naturwissenschaften & Technik |
Medium: | Taschenbuch |
Inhalt: |
XVI
310 S. 87 s/w Illustr. 87 b/w ill. |
ISBN-13: | 9781501514807 |
ISBN-10: | 1501514806 |
Sprache: | Englisch |
Ausstattung / Beilage: | Paperback |
Einband: | Kartoniert / Broschiert |
Autor: |
Rothman, Michael
Lewis, Tim Zimmer, Vincent |
Auflage: | 2nd ed. |
Hersteller: |
De|G Press
Walter de Gruyter Inc. |
Maße: | 240 x 170 x 18 mm |
Von/Mit: | Michael Rothman (u. a.) |
Erscheinungsdatum: | 06.03.2017 |
Gewicht: | 0,556 kg |
Preface ¿ vii
Chapter 1 Introduction ¿ 1
What is UEFI? ¿ 1
What Do We Mean by Shell? ¿ 4
A Short History of the UEFI Shell ¿ 5
Brief Overview of the UEFI Shell ¿ 5
UEFI Shell APIs ¿ 6
Command Line Interface Features ¿ 6
Why a Shell at all? ¿ 7
Chapter 2 Under the UEFI Shell ¿ 9
Shell and UEFI ¿ 9
Evolution and Revolution ¿ 13
Chapter 3 What Is the UEFI Shell? ¿ 15
What Is Contained in the UEFI Shell? ¿ 16
What Kind of Shell Do You Have? ¿ 16
What!? No Shell? No Problem! ¿ 17
Programmatic Shell Environment ¿ 19
Using UEFI Shell Commands ¿ 20
Interactive Shell Environment ¿ 22
Scripting ¿ 22
Program Launch ¿ 24
File-System Abstractions ¿ 29
Shell Script Resolves into a UEFI Firmware Action ¿ 31
Chapter 4 Why We Need an Execution Environment before the OS ¿ 33
Evolution of a Machine ¿ 33
The Platform Initialization Flow ¿ 34
UEFI Transitions ¿ 36
States of a Platform ¿ 38
Readiness of UEFI ¿ 41
Migration Using the UEFI Shell ¿ 44
Going Forward ¿ 45
Chapter 5 Manufacturing ¿ 47
Throughput ¿ 47
Manufacturing Test Tools ¿ 49
Hardware Access with Manufacturing Tools ¿ 50
Converting Manufacturing Tools ¿ 53
Conclusion ¿ 54
Chapter 6 Bare Metal Provisionig ¿ 55
Provisioning with the UEFI Shell ¿ 55
UEFI Networking Stack ¿ 56
Securing the Network ¿ 58
Speeding Up the Network ¿ 62
Example of Putting It Together ¿ 62
Summary ¿ 68
Chapter 7 Configuration of Provisioned Material ¿ 69
Initialization Timeline ¿ 69
Configuration Infrastructure Overview ¿ 71
Using the Configuration Infrastructure ¿ 72
Driver Model Interactions ¿ 73
Provisioning the Platform ¿ 75
Configuring through the UEFI Shell ¿ 76
Basic Configuration ¿ 76
Advanced Configuration Abilities ¿ 79
Chapter 8 The Use of UEFI for Diagnostics ¿ 85
Types of Diagnostics ¿ 85
SMBIOS Table Organization ¿ 87
SMBIOS Structure Table Entry Point ¿ 88
Table Organization Graph ¿ 88
Structure Standards ¿ 89
Structure Evolution and Usage Guidelines ¿ 90
Text Strings ¿ 90
Required Structures and Data ¿ 91
Features ¿ 91
User Interface Design ¿ 92
Design Guide ¿ 92
Usage ¿ 93
Examples ¿ 93
Architecture Design ¿ 94
Data Structure ¿ 95
SMBIOS_STRUCTURE_TABLE ¿ 95
SMBIOS_HEADER ¿ 97
SMBIOS_STRUCTURE_POINTER ¿ 98
STRUCTURE_STATISTICS ¿ 99
Source Code for the Utility ¿ 100
Summary ¿ 105
Chapter 9 UEFI Shell Scripting ¿ 107
Hello, World! ¿ 108
Echo ¿ 108
Echo All Parameters ¿ 109
Echo All Parameters (Improved Version) ¿ 110
Concatenate Text Files ¿ 112
List Only Selected "ls" Information ¿ 113
Install Script ¿ 115
How to Make a Shell Script Appear as a Boot Option ¿ 119
Chapter 10 UEFI Shell Programming ¿ 121
A Simple UEFI Shell Application: HelloWorld ¿ 121
The Source File: HelloWorld.c ¿ 121
The Component Information (.inf) File ¿ 123
A Simple Standard Application: HelloWorld2 ¿ 124
The Source File: HelloWorld2.c ¿ 124
The Component Information (.inf) File: HelloWorld2.inf ¿ 125
Read Keyboard Input in UEFI Shell Scripts: GetKey ¿ 126
The Source File: GetKey.c ¿ 127
The Component Information (.inf) File: GetKey.inf ¿ 137
The Build Description (.dsc) File ¿ 139
Calculate Math Expressions: Math ¿ 139
The Source File: Math.c ¿ 140
The Component Information (.inf) File: Math.inf ¿ 154
Convert ASCII to Unicode and Back: UniCodeDecode ¿ 154
The Source File: UniCodeDecode.c ¿ 155
The Component Information (.inf) File ¿ 163
Chapter 11 Managing UEFI Drivers Using the Shell ¿ 165
Testing Specific Protocols ¿ 166
Loading and Unloading UEFI Drivers ¿ 167
Load ¿ 168
LoadPciRom ¿ 168
Unload ¿ 169
Connecting UEFI Drivers ¿ 169
Connect ¿ 169
Disconnect ¿ 170
Reconnect ¿ 170
Driver and Device Information ¿ 171
Drivers ¿ 171
Devices ¿ 172
DevTree ¿ 172
Dh -d ¿ 173
OpenInfo ¿ 173
Testing the Driver Configuration and Driver Diagnostics Protocols ¿ 174
DrvCfg ¿ 174
DrvDiag ¿ 174
Debugging Code Statements ¿ 175
POST Codes ¿ 177
Post Card Debug ¿ 178
Text-Mode VGA Frame Buffer ¿ 179
Other Options ¿ 179
Appendix A Security Considerations ¿ 181
UEFI Shell Binary Integrity ¿ 181
Overview ¿ 181
Signed Executable Overview ¿ 182
Digital Signature ¿ 183
Signed Executable Processing ¿ 185
Signed Executable Generation Application (SignTool) ¿ 185
UEFI Load Image ¿ 186
SignTool ¿ 186
Build Environment ¿ 186
Example usage ¿ 187
Appendix B Command Reference ¿ 189
Command Profiles and Support Levels ¿ 189
Command List ¿ 189
Standardizing Command Output ¿ 192
Command Details ¿ 193
alias ¿ 193
attrib ¿ 194
bcfg ¿ 194
cd ¿ 196
cls ¿ 197
comp ¿ 197
connect ¿ 198
cp/copy ¿ 199
date ¿ 199
dblk ¿ 200
del ¿ 200
devices ¿ 200
devtree ¿ 201
dh ¿ 201
dir/ls ¿ 202
disconnect ¿ 202
dmem ¿ 203
dmpstore ¿ 204
drivers ¿ 204
drvcfg ¿ 205
drvdiag ¿ 206
echo ¿ 206
edit ¿ 207
eficompress ¿ 207
efidecompress ¿ 207
exit ¿ 207
for ¿ 208
getmtc ¿ 209
goto ¿ 209
help ¿ 209
hexedit ¿ 210
if ¿ 210
ifconfig ¿ 214
ifconfig6 ¿ 214
load ¿ 215
loadpcirom ¿ 216
ls ¿ 216
map ¿ 217
md ¿ 218
mem ¿ 218
memmap ¿ 218
mkdir ¿ 219
mm ¿ 219
mode ¿ 220
mv ¿ 220
openinfo ¿ 220
parse ¿ 221
pause ¿ 221
pci ¿ 221
ping ¿ 222
ping6 ¿ 222
reconnect ¿ 223
reset ¿ 223
rm ¿ 224
sermode ¿ 224
set ¿ 225
setsize ¿ 226
setvar ¿ 226
shift ¿ 227
smbiosview ¿ 227
stall ¿ 228
time ¿ 228
...Erscheinungsjahr: | 2017 |
---|---|
Fachbereich: | Hardware |
Genre: | Informatik |
Rubrik: | Naturwissenschaften & Technik |
Medium: | Taschenbuch |
Inhalt: |
XVI
310 S. 87 s/w Illustr. 87 b/w ill. |
ISBN-13: | 9781501514807 |
ISBN-10: | 1501514806 |
Sprache: | Englisch |
Ausstattung / Beilage: | Paperback |
Einband: | Kartoniert / Broschiert |
Autor: |
Rothman, Michael
Lewis, Tim Zimmer, Vincent |
Auflage: | 2nd ed. |
Hersteller: |
De|G Press
Walter de Gruyter Inc. |
Maße: | 240 x 170 x 18 mm |
Von/Mit: | Michael Rothman (u. a.) |
Erscheinungsdatum: | 06.03.2017 |
Gewicht: | 0,556 kg |