tpm_nvdefine(8)
π tpm_nvdefine β the manual page, but make it make sense π
okay bestie, pull up a chair, we're talking about tpm_nvdefine from the TPM Management set (section 8 of the manual, if you're keeping score). this is the girl who creates NVRAM areas. she's a builder. a founder. main character energy fr fr.
πΈ NAME πΈ
tpm_nvdefine β she defines things. specifically NVRAM areas. that's her whole thing. periodt.
β¨ SYNOPSIS β¨
tpm_nvdefine [OPTIONS]
just the command and your options, no positional args, no drama. π
π¦ DESCRIPTION π¦
so here's the tea: tpm_nvdefine defines a new NVRAM area at the index you give it, with the size you give it. that's it, that's the job. π
but β and this is important β you have to provide the permissions that control access to that NVRAM area. no permissions, no vibes, no area. you're the one setting the rules, so set them thoughtfully.
also, owner authentication is necessary once the NVRAM area 0xFFFFFFFF has been defined. and you can hand over the owner password right there on the command line using the owner password option. convenient? yes. but bestie, it's right there in your shell history, so likeβ¦ be aware. π
these are all the options she supports, and yes we're going through every single one:
-h,--helpβ shows you the command usage info. your little map. πΊοΈ-v,--versionβ shows the command version info. for when you need to know which her you're talking to.-l,--log [none|error|info|debug]β sets the logging level. pick your volume:none,error,info, ordebug.-u,--unicodeβ use TSS UNICODE encoding for passwords, so you play nice with applications using TSS popup boxes. compatibility queen π«Ά-y,--owner-well-knownβ use a secret of all zeros (20 bytes of zeros) as the owner's secret. yes, literally 20 bytes of zeros. iconic in a concerning way.-z,--data-well-knownβ use a secret of all zeros (20 bytes of zeros) as the NVRAM area's secret. same energy, different secret. π-o,--pwdo(optional parameter) β the owner password.
you can hand it over directly, like --pwdo=password or -opassword. and if you don't pass a password with this option, the program will prompt you for it. so no pressure, she'll ask. π
-a,--pwda(optional parameter) β the NVRAM area password.
same deal: give it directly with --pwda=password or -apassword, or leave it out and she'll prompt you for the password. π
-i,--indexβ the index of the NVRAM area. the parameter must either be a decimal number or a hexadecimal number starting with0x.
so like, to select the NVRAM area with index 0x100, your command line parameter should be -i 0x100 or --index 0x100. see? cute and easy. β¨
-s,--sizeβ the size of the NVRAM area. again: decimal number, or hexadecimal number starting with0x. pick your base, babe.-r,--rpcsrβ PCRs to seal the NVRAM area to for reading. use it multiple times if you've got multiple. π₯-w,--wpcrsβ PCRs to seal the NVRAM area to for writing. also multiple-use. she's flexible.-f,--filenameβ file containing PCR info for the NVRAM area. π-p,--permissionsβ the access permissions associated with the NVRAM area. the parameter must either be a decimal number or a hexadecimal number starting with0x. and here's the fun part: it is possible to logically 'or' numbers or strings. the following strings are supported:AUTHREADβ reading requires NVRAM area authorization.AUTHWRITEβ writing requires NVRAM area authorization.PPREADβ reading requires physical presence.PPWRITEβ writing requires physical presence.OWNERREADβ reading requires owner authorization.OWNERWRITEβ writing requires owner authorization.GLOBALLOCKβ a write to index0locks the NVRAM area until the nextTPM_Startup(ST_CLEAR).READ_STCLEARβ a read with size0on the same index prevents further reading until the nextTPM_Startup(ST_CLEAR).WRITE_STCLEARβ a write with size0to the same index prevents further writing until the nextTPM_Startup(ST_CLEAR).WRITEDEFINEβ a write with size0to the same index locks the NVRAM area permanently. like, forever-forever. no takebacks. πWRITEALLβ the value must be written in a single operation.
and an example of a permission parameter, so you can see it in the wild:
--permissions="OWNERREAD|OWNERWRITE"
see how she or'd them? obsessed. π
π SEE ALSO π
go read her friends, they're all lovely:
π REPORTING BUGS π
found a bug? not her fault but also please tell her. report bugs to <trousers-users@lists.sourceforge.net>. she'll appreciate you fr fr.
okay that's the whole page, you ate that, go define some NVRAM areas responsibly bestie π β¨
this page came from TPM Management, dated 2011-07-07, and yeah β it's tpm_nvdefine(8), section 8, in all her glory. mwah. π
π¦ where this page comes from
- debian bookworm: tpm-tools 1.3.9.2-0.1 Β· CPL
- debian trixie: tpm-tools 1.3.9.2-0.2 Β· CPL
- fedora 43: tpm-tools 1.3.9.2-5.fc43 Β· CPL-1.0
- fedora 43: tpm-tools 1.3.9.2-5.fc43 Β· CPL-1.0
- fedora 44: tpm-tools 1.3.9.2-6.fc44 Β· CPL-1.0
- fedora 44: tpm-tools 1.3.9.2-6.fc44 Β· CPL-1.0
- nixos 26.05: tpm-tools 1.3.9.2
- nixpkgs unstable: tpm-tools 1.3.9.2
- opensuse-leap 16.0: tpm-tools 1.3.9.2-160000.2.2 Β· IPL-1.0
- opensuse-leap 16.0: tpm-tools 1.3.9.2-160000.2.2 Β· IPL-1.0
- opensuse-leap 16.0: tpm-tools 1.3.9.2-160000.2.2 Β· IPL-1.0
- opensuse-leap 16.0: tpm-tools 1.3.9.2-160000.2.2 Β· IPL-1.0
- ubuntu noble: tpm-tools 1.3.9.2-0.2build2 Β· CPL
- ubuntu questing: tpm-tools 1.3.9.2-0.2build2
- ubuntu resolute: tpm-tools 1.3.9.2-0.2build3 Β· CPL
- ubuntu stonking: tpm-tools 1.3.9.2-0.2build4 Β· CPL
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms