More docs

This commit is contained in:
bzt 2022-10-29 17:10:54 +02:00
parent 0818f48c25
commit 4da8882887
4 changed files with 77 additions and 19 deletions

View file

@ -1,11 +1,40 @@
POSIX-UEFI Segédeszközök POSIX-UEFI Segédeszközök
======================== ========================
Ezek kis parancsok, amik besegítenek az UEFI toolchain-edbe. A POSIX-UEFI által lefordított .efi kimeneti fájlokat konvertálják Ezek kis parancsok, amik besegítenek az UEFI toolchain-edbe (csak libc-t használnak, nincs szükség EFI hedörökre). A POSIX-UEFI
olyan különböző formátumú fájlokká, amiket az UEFI firmware használ. által lefordított .efi kimeneti fájlokat konvertálják olyan különböző formátumú fájlokká, amiket az UEFI firmware használ.
* __efirom__ - ez PCI Option ROM képet készít * __efirom__ - ez PCI Option ROM képet készít
```
POSIX-UEFI utils - efirom by Michael Brown GPL
* __efiffs__ - ez DXE UEFI eszközmeghajtó képet (bővebb infó [ebben a wikiben](https://github.com/pbatard/efifs/wiki/Adding-a-driver-to-a-UEFI-firmware#adding-the-module-to-the-firmware) található arról, hogy kell a firmwarehez adni). ./efirom [--vendor=VVVV] [--device=DDDD] bementifájl kimentifájl
```
* __efidsk__ - indítható lemezképet készít EFI Rendszer Partícióval egy könyvtár tartalmából * __efiffs__ - ez DXE UEFI eszközmeghajtó képet készít (bővebb infó [ebben a wikiben](https://github.com/pbatard/efifs/wiki/Adding-a-driver-to-a-UEFI-firmware#adding-the-module-to-the-firmware) található arról, hogy hogyan kell a firmwarehez adni).
```
POSIX-UEFI utils - efiffs by bztsrc@gitlab MIT
./efiffs [-g <guid>] [-n <név>] [-v <ver>] [-t <típus>] [-p <típus>] bemenet [kimenet]
-g <guid> a GUID megadása (alapértelmezetten véletlenszám)
-n <név> az eszközmeghajtó neve (pl 'FAT')
-v <ver> az eszközmeghajtó verziója (pl '1.0')
-t <típus> az ffs típusa (alapértelmezetten 7, EFI_FV_FILETYPE_DRIVER)
-p <típus> a pe szekció típusa (alapértelmezetten 16, EFI_SECTION_PE32)
bemenet a bemeneti .efi fájl neve
kimenet a kimeneti fájl neve (alapértelmezetten a bemeneti névből generált)
```
* __efidsk__ - indítható lemezképet készít EFI Rendszer Partícióval egy könyvtár tartalmából. A POSIX-EFI-vel lefordított
programodat `EFI/BOOT/BOOTX64.EFI` néven kell bemásolni a könyvtárba, hogy magától elinduljon.
```
POSIX-UEFI utils - efidsk by bztsrc@gitlab MIT
./efidsk [-p] [-s <méret>] bekönyvtár kimenet
-p csak a partíciót mentse, GPT nélkül
-s <méret> a partíció méretének megadása megabájtban (alapértelmezetten 33M)
bekönvtár ennek a könyvtárnak a tartalmából generálja
kimenet kimenti lemezképfájl neve
```

View file

@ -1,11 +1,40 @@
POSIX-UEFI Utilities POSIX-UEFI Utilities
==================== ====================
These are small portable commands to help you with the UEFI toolchain. They convert the .efi output that you've compiled These are small portable commands to help you with the UEFI toolchain (libc only, no EFI headers needed). They convert the .efi
with POSIX-UEFI into different file formats required by the UEFI firmware. output that you've compiled with POSIX-UEFI into different file formats required by the UEFI firmware.
* __efirom__ - creates a PCI Option ROM image * __efirom__ - creates a PCI Option ROM image
```
POSIX-UEFI utils - efirom by Michael Brown GPL
./efirom [--vendor=VVVV] [--device=DDDD] infile outfile
```
* __efiffs__ - creates a DXE UEFI driver image (see [this wiki](https://github.com/pbatard/efifs/wiki/Adding-a-driver-to-a-UEFI-firmware#adding-the-module-to-the-firmware) on how to add it to a firmware). * __efiffs__ - creates a DXE UEFI driver image (see [this wiki](https://github.com/pbatard/efifs/wiki/Adding-a-driver-to-a-UEFI-firmware#adding-the-module-to-the-firmware) on how to add it to a firmware).
```
POSIX-UEFI utils - efiffs by bztsrc@gitlab MIT
* __efidsk__ - creates a bootable disk image with EFI System Partition from the contents of a directory ./efiffs [-g <guid>] [-n <name>] [-v <ver>] [-t <type>] [-p <type>] infile [outfile]
-g <guid> specify the GUID (defaults to random)
-n <name> specify the driver's name (eg 'FAT')
-v <ver> specify the driver's version (eg '1.0')
-t <type> specify the ffs type (defaults to 7, EFI_FV_FILETYPE_DRIVER)
-p <type> specify the pe section type (defaults to 16, EFI_SECTION_PE32)
infile input .efi file
outfile output file name (default generated from infile)
```
* __efidsk__ - creates a bootable disk image with EFI System Partition from the contents of a directory. Copy the POSIX-UEFI
compiled file under the given directory as `EFI/BOOT/BOOTX64.EFI` to get it automatically booted.
```
POSIX-UEFI utils - efidsk by bztsrc@gitlab MIT
./efidsk [-p] [-s <size>] indir outfile
-p save only the partition image without GPT
-s <size> set the size of partition in megabytes (defaults to 33M)
indir use the contents of this directory
outfile output image file name
```

View file

@ -254,7 +254,7 @@ int main(int argc, char **argv)
out = (char*)malloc(i + 5); out = (char*)malloc(i + 5);
if(!out) { fprintf(stderr, "efiffs: unable to allocate memory\r\n"); return 2; } if(!out) { fprintf(stderr, "efiffs: unable to allocate memory\r\n"); return 2; }
strcpy(out, in); strcpy(out, in);
strcpy(strcmp(out + i + 4, ".efi") ? out + i - 4 : out + i, ".ffs"); strcpy(!strcmp(out + i - 4, ".efi") ? out + i - 4 : out + i, ".ffs");
} }
f = fopen(out, "wb"); f = fopen(out, "wb");
if(!f) { if(!f) {

View file

@ -37,6 +37,17 @@
#define eprintf(...) fprintf ( stderr, __VA_ARGS__ ) #define eprintf(...) fprintf ( stderr, __VA_ARGS__ )
/**
* Print help
*
* @v program_name Program name
*/
static void print_help ( const char *program_name ) {
eprintf ( "POSIX-UEFI utils - efirom by Michael Brown GPL\r\n\r\n" );
eprintf ( "%s [--vendor=VVVV] [--device=DDDD] "
"infile outfile\n", program_name );
}
#define EFI_SIGNATURE_16(A,B) ((A) | (B<<8)) #define EFI_SIGNATURE_16(A,B) ((A) | (B<<8))
#define EFI_SIGNATURE_32(A,B,C,D) (EFI_SIGNATURE_16(A,B) | (EFI_SIGNATURE_16(C,D) << 16)) #define EFI_SIGNATURE_32(A,B,C,D) (EFI_SIGNATURE_16(A,B) | (EFI_SIGNATURE_16(C,D) << 16))
#define EFI_SIGNATURE_64(A,B,C,D,E,F,G,H) (EFI_SIGNATURE_32(A,B,C,D) | ((UINT64)(EFI_SIGNATURE_32(E,F,G,H)) << 32)) #define EFI_SIGNATURE_64(A,B,C,D,E,F,G,H) (EFI_SIGNATURE_32(A,B,C,D) | ((UINT64)(EFI_SIGNATURE_32(E,F,G,H)) << 32))
@ -1152,17 +1163,6 @@ static void make_efi_rom ( FILE *pe, FILE *rom, struct options *opts ) {
} }
} }
/**
* Print help
*
* @v program_name Program name
*/
static void print_help ( const char *program_name ) {
eprintf ( "POSIX-UEFI utils - efirom by Michael Brown GPL\r\n\r\n" );
eprintf ( "%s [--vendor=VVVV] [--device=DDDD] "
"infile outfile\n", program_name );
}
/** /**
* Parse command-line options * Parse command-line options
* *