VBUTIL_KERNEL(1)
π NAME π
okay so welcome to VBUTIL_KERNEL(1), bestie π
this is the manual page for vbutil_kernel, and it lives in the User Commands part of the manual. what it does: it's the utility that signs your custom kernels so they can boot on Chrome OS devices. that's the whole vibe. π₯
β¨ SYNOPSIS β¨
futility /usr/bin/vbutil_kernel --pack <file> [PARAMETERS]
π DESCRIPTION π
so there's like, four modes, and each one has its own little list of stuff you gotta give it. let's go, one at a time π¦
π --pack <file>
Required parameters β these are not optional, they are the moment, periodt:
--keyblock<file> β the key block, in.keyblockformat π--signprivate<file> β the private key that signs the kernel data, in.vbprivkformat--version<number> β kernel version--vmlinuz<file> β the Linux kernelbzImagefile--bootloader<file> β bootloader stub--config<file> β command line file--arch<arch> β CPU architecture (and it defaults tox86)
Optional β the little extras that just hit different β¨
--kloadaddr<address> β assign the kernel body load address--pad<number> β verification padding size in bytes--vblockonlyβ emit just the verification blob--flagsNUMβ flags to be passed in the header
OR π
π§ --repack <file>
usage line:
futility /usr/bin/vbutil_kernel --repack <file> [PARAMETERS]
Required parameters:
--signprivate<file> β the private key that signs the kernel data, in.vbprivkformat--oldblob<file> β a previously packed kernel blob (verification blob included, obviously)
Optional:
--keyblock<file> β the key block, in.keyblockformat--config<file> β a new command line file--version<number> β kernel version--kloadaddr<address> β assign the kernel body load address--pad<number> β verification blob size in bytes--vblockonlyβ emit just the verification blob
OR π
π --verify <file>
usage line:
futility /usr/bin/vbutil_kernel --verify <file> [PARAMETERS]
Optional:
--signpubkey<file> β the public key used to verify the kernel keyblock, in.vbpubkformat--verboseβ print a more detailed report π--keyblock<file> β outputs the verified key block, in.keyblockformat--pad<number> β verification padding size in bytes--minversion<number> β minimum combined kernel key version
OR πΈ
π«Ά --get-vmlinuz <file>
usage line (and yes it wraps, that's just how it is):
futility /usr/bin/vbutil_kernel --get-vmlinuz <file>
[PARAMETERS]
Required parameters:
--vmlinuz-out<file> β vmlinuz image output file
okay and now, because this page said it once and then said it again, here's the whole thing over again β same facts, same energy, a rerun nobody asked for but everyone is getting π
π --pack <file>
futility /usr/bin/vbutil_kernel --pack <file> [PARAMETERS]
Required parameters:
--keyblock<file> β the key block, in.keyblockformat--signprivate<file> β the private key that signs the kernel data, in.vbprivkformat--version<number> β kernel version--vmlinuz<file> β the Linux kernelbzImagefile--bootloader<file> β bootloader stub--config<file> β command line file--arch<arch> β CPU architecture (defaults tox86)
Optional:
--kloadaddr<address> β assign the kernel body load address--pad<number> β verification padding size in bytes--vblockonlyβ emit just the verification blob--flagsNUMβ flags to be passed in the header
OR π
π§ --repack <file>
futility /usr/bin/vbutil_kernel --repack <file> [PARAMETERS]
Required parameters:
--signprivate<file> β the private key that signs the kernel data, in.vbprivkformat--oldblob<file> β a previously packed kernel blob (verification blob included)
Optional:
--keyblock<file> β the key block, in.keyblockformat--config<file> β a new command line file--version<number> β kernel version--kloadaddr<address> β assign the kernel body load address--pad<number> β verification blob size in bytes--vblockonlyβ emit just the verification blob
OR β
π --verify <file>
futility /usr/bin/vbutil_kernel --verify <file> [PARAMETERS]
Optional:
--signpubkey<file> β the public key used to verify the kernel keyblock, in.vbpubkformat--verboseβ print a more detailed report--keyblock<file> β outputs the verified key block, in.keyblockformat--pad<number> β verification padding size in bytes--minversion<number> β minimum combined kernel key version
OR π
π«Ά --get-vmlinuz <file>
futility /usr/bin/vbutil_kernel --get-vmlinuz <file>
[PARAMETERS]
Required parameters:
--vmlinuz-out<file> β vmlinuz image output file
lowkey important: --vblockonly means you get just the verification blob, not the whole thing. do not be surprised when the rest is not there, bestie π
and that's the page!! π this was vbutil_kernel, from May 2016, sitting pretty under VBUTIL_KERNEL(1) in the User Commands section. mwah, go sign something iconic πππ
π¦ where this page comes from
- debian bookworm: vboot-kernel-utils 0~R106-15054.B-1 Β· BSD-3-Clause
- debian trixie: vboot-kernel-utils 0~R106-15054.B+dfsg-0.1 Β· BSD-3-Clause
- ubuntu jammy: vboot-kernel-utils 0~R99-14469.B-1 Β· BSD-3-Clause
- ubuntu noble: vboot-kernel-utils 0~R106-15054.B-2build2 Β· BSD-3-Clause
- ubuntu resolute: vboot-kernel-utils 0~R106-15054.B+dfsg-0.1 Β· BSD-3-Clause
- ubuntu stonking: vboot-kernel-utils 0~R106-15054.B+dfsg-0.1build1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms