Bug 39684 - objcopy: поддержка pe/coff (для unified kernel image)
Summary: objcopy: поддержка pe/coff (для unified kernel image)
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: binutils (show other bugs)
Version: unstable
Hardware: aarch64 Linux
: P5 enhancement
Assignee: Gleb F-Malinovskiy
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-02-12 10:39 MSK by Alexey Sheplyakov
Modified: 2021-02-12 10:39 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Sheplyakov 2021-02-12 10:39:18 MSK
ядро, initramfs, и командную строку ядра можно упаковать в один EFI бинарник.
И запускать его (на системах с UEFI) без дополнительных загрузчиков.
Делается это примерно так:

objcopy --add-section .cmdline="cmdline.txt" --change-section-vma .cmdline=0x30000 \
           --add-section .linux="/boot/vmlinuz-5.10.14-un-def-alt2
" --change-section-vma .linux=0x2000000 \
           --add-section .initrd="/boot/initrd-5.10.14-un-def-alt2.img" --change-section-vma .initrd=0x3000000 \
           /usr/lib/systemd/boot/efi/linuxaa64.efi.stub "linux-5.10.14-un-def-alt2.efi"

Но для этого нужно, чтоб objcopy поддерживал PE/COFF формат. А сейчас:

$ objdump --help | awk '/supported targets:/ { print }'

objdump: supported targets: elf64-littleaarch64 elf64-bigaarch64 elf32-littleaarch64 elf32-bigaarch64 elf32-littlearm elf32-bigarm elf64-little elf64-big elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex plugin