mostly no rendering changes. some lists (like simplelist) don't have an exact translation to markdown, so we use a comma-separated list of literals instead.
···7777 environment.memoryAllocator.provider = mkOption {7878 type = types.enum ([ "libc" ] ++ attrNames providers);7979 default = "libc";8080- description = ''8080+ description = lib.mdDoc ''8181 The system-wide memory allocator.82828383 Briefly, the system-wide memory allocator providers are:8484- <itemizedlist>8585- <listitem><para><literal>libc</literal>: the standard allocator provided by libc</para></listitem>8686- ${toString (mapAttrsToList8787- (name: value: "<listitem><para><literal>${name}</literal>: ${value.description}</para></listitem>")8888- providers)}8989- </itemizedlist>90849191- <warning>9292- <para>8585+ - `libc`: the standard allocator provided by libc8686+ ${concatStringsSep "\n" (mapAttrsToList8787+ (name: value: "- `${name}`: ${replaceStrings [ "\n" ] [ " " ] value.description}")8888+ providers)}8989+9090+ ::: {.warning}9391 Selecting an alternative allocator (i.e., anything other than9494- <literal>libc</literal>) may result in instability, data loss,9292+ `libc`) may result in instability, data loss,9593 and/or service failure.9696- </para>9797- </warning>9494+ :::9895 '';9996 };10097 };
+34-86
nixos/modules/config/mysql.nix
···6161 type = types.nullOr types.str;6262 default = null;6363 example = "status";6464- description = ''6464+ description = lib.mdDoc ''6565 The name of the column or an SQL expression that indicates the status of6666 the user. The status is expressed by the combination of two bitfields6767 shown below:68686969- <itemizedlist>7070- <listitem>7171- <para>7272- <literal>bit 0 (0x01)</literal>:7373- if flagged, <literal>pam_mysql</literal> deems the account to be expired and7474- returns <literal>PAM_ACCT_EXPIRED</literal>. That is, the account is supposed7575- to no longer be available. Note this doesn't mean that <literal>pam_mysql</literal>7676- rejects further authentication operations.7777- </para>7878- </listitem>7979- <listitem>8080- <para>8181- <literal>bit 1 (0x02)</literal>:8282- if flagged, <literal>pam_mysql</literal> deems the authentication token8383- (password) to be expired and returns <literal>PAM_NEW_AUTHTOK_REQD</literal>.8484- This ends up requiring that the user enter a new password.8585- </para>8686- </listitem>8787- </itemizedlist>6969+ - `bit 0 (0x01)`:7070+ if flagged, `pam_mysql` deems the account to be expired and7171+ returns `PAM_ACCT_EXPIRED`. That is, the account is supposed7272+ to no longer be available. Note this doesn't mean that `pam_mysql`7373+ rejects further authentication operations.7474+ - `bit 1 (0x02)`:7575+ if flagged, `pam_mysql` deems the authentication token7676+ (password) to be expired and returns `PAM_NEW_AUTHTOK_REQD`.7777+ This ends up requiring that the user enter a new password.8878 '';8979 };9080 passwordCrypt = mkOption {···91101 "8" "sha512"92102 "9" "sha256"93103 ];9494- description = ''104104+ description = lib.mdDoc ''95105 The method to encrypt the user's password:961069797- <itemizedlist>9898- <listitem>9999- <para>100100- <literal>0</literal> (or <literal>"plain"</literal>):101101- No encryption. Passwords are stored in plaintext. HIGHLY DISCOURAGED.102102- </para>103103- </listitem>104104- <listitem>105105- <para>106106- <literal>1</literal> (or <literal>"Y"</literal>):107107- Use crypt(3) function.108108- </para>109109- </listitem>110110- <listitem>111111- <para>112112- <literal>2</literal> (or <literal>"mysql"</literal>):113113- Use the MySQL PASSWORD() function. It is possible that the encryption function used114114- by <literal>pam_mysql</literal> is different from that of the MySQL server, as115115- <literal>pam_mysql</literal> uses the function defined in MySQL's C-client API116116- instead of using PASSWORD() SQL function in the query.117117- </para>118118- </listitem>119119- <listitem>120120- <para>121121- <literal>3</literal> (or <literal>"md5"</literal>):122122- Use plain hex MD5.123123- </para>124124- </listitem>125125- <listitem>126126- <para>127127- <literal>4</literal> (or <literal>"sha1"</literal>):128128- Use plain hex SHA1.129129- </para>130130- </listitem>131131- <listitem>132132- <para>133133- <literal>5</literal> (or <literal>"drupal7"</literal>):134134- Use Drupal7 salted passwords.135135- </para>136136- </listitem>137137- <listitem>138138- <para>139139- <literal>6</literal> (or <literal>"joomla15"</literal>):140140- Use Joomla15 salted passwords.141141- </para>142142- </listitem>143143- <listitem>144144- <para>145145- <literal>7</literal> (or <literal>"ssha"</literal>):146146- Use ssha hashed passwords.147147- </para>148148- </listitem>149149- <listitem>150150- <para>151151- <literal>8</literal> (or <literal>"sha512"</literal>):152152- Use sha512 hashed passwords.153153- </para>154154- </listitem>155155- <listitem>156156- <para>157157- <literal>9</literal> (or <literal>"sha256"</literal>):158158- Use sha256 hashed passwords.159159- </para>160160- </listitem>161161- </itemizedlist>107107+ - `0` (or `"plain"`):108108+ No encryption. Passwords are stored in plaintext. HIGHLY DISCOURAGED.109109+ - `1` (or `"Y"`):110110+ Use crypt(3) function.111111+ - `2` (or `"mysql"`):112112+ Use the MySQL PASSWORD() function. It is possible that the encryption function used113113+ by `pam_mysql` is different from that of the MySQL server, as114114+ `pam_mysql` uses the function defined in MySQL's C-client API115115+ instead of using PASSWORD() SQL function in the query.116116+ - `3` (or `"md5"`):117117+ Use plain hex MD5.118118+ - `4` (or `"sha1"`):119119+ Use plain hex SHA1.120120+ - `5` (or `"drupal7"`):121121+ Use Drupal7 salted passwords.122122+ - `6` (or `"joomla15"`):123123+ Use Joomla15 salted passwords.124124+ - `7` (or `"ssha"`):125125+ Use ssha hashed passwords.126126+ - `8` (or `"sha512"`):127127+ Use sha512 hashed passwords.128128+ - `9` (or `"sha256"`):129129+ Use sha256 hashed passwords.162130 '';163131 };164132 cryptDefault = mkOption {
+8-10
nixos/modules/i18n/input-method/default.nix
···3232 type = types.nullOr (types.enum [ "ibus" "fcitx" "fcitx5" "nabi" "uim" "hime" "kime" ]);3333 default = null;3434 example = "fcitx";3535- description = ''3535+ description = lib.mdDoc ''3636 Select the enabled input method. Input methods is a software to input symbols that are not available on standard input devices.37373838 Input methods are specially used to input Chinese, Japanese and Korean characters.39394040 Currently the following input methods are available in NixOS:41414242- <itemizedlist>4343- <listitem><para>ibus: The intelligent input bus, extra input engines can be added using <literal>i18n.inputMethod.ibus.engines</literal>.</para></listitem>4444- <listitem><para>fcitx: A customizable lightweight input method, extra input engines can be added using <literal>i18n.inputMethod.fcitx.engines</literal>.</para></listitem>4545- <listitem><para>fcitx5: The next generation of fcitx, addons (including engines, dictionaries, skins) can be added using <literal>i18n.inputMethod.fcitx5.addons</literal>.</para></listitem>4646- <listitem><para>nabi: A Korean input method based on XIM. Nabi doesn't support Qt 5.</para></listitem>4747- <listitem><para>uim: The universal input method, is a library with a XIM bridge. uim mainly support Chinese, Japanese and Korean.</para></listitem>4848- <listitem><para>hime: An extremely easy-to-use input method framework.</para></listitem>4949- <listitem><para>kime: Koream IME.</para></listitem>5050- </itemizedlist>4242+ - ibus: The intelligent input bus, extra input engines can be added using `i18n.inputMethod.ibus.engines`.4343+ - fcitx: A customizable lightweight input method, extra input engines can be added using `i18n.inputMethod.fcitx.engines`.4444+ - fcitx5: The next generation of fcitx, addons (including engines, dictionaries, skins) can be added using `i18n.inputMethod.fcitx5.addons`.4545+ - nabi: A Korean input method based on XIM. Nabi doesn't support Qt 5.4646+ - uim: The universal input method, is a library with a XIM bridge. uim mainly support Chinese, Japanese and Korean.4747+ - hime: An extremely easy-to-use input method framework.4848+ - kime: Koream IME.5149 '';5250 };5351
+7-8
nixos/modules/misc/documentation.nix
···226226 nixos.enable = mkOption {227227 type = types.bool;228228 default = true;229229- description = ''229229+ description = lib.mdDoc ''230230 Whether to install NixOS's own documentation.231231- <itemizedlist>232232- <listitem><para>This includes man pages like233233- <citerefentry><refentrytitle>configuration.nix</refentrytitle><manvolnum>5</manvolnum></citerefentry> if <option>documentation.man.enable</option> is234234- set.</para></listitem>235235- <listitem><para>This includes the HTML manual and the <command>nixos-help</command> command if236236- <option>documentation.doc.enable</option> is set.</para></listitem>237237- </itemizedlist>231231+232232+ - This includes man pages like233233+ {manpage}`configuration.nix(5)` if {option}`documentation.man.enable` is234234+ set.235235+ - This includes the HTML manual and the {command}`nixos-help` command if236236+ {option}`documentation.doc.enable` is set.238237 '';239238 };240239
+4-5
nixos/modules/security/acme/default.nix
···576576 ocspMustStaple = mkOption {577577 type = types.bool;578578 inherit (defaultAndText "ocspMustStaple" false) default defaultText;579579- description = ''579579+ description = lib.mdDoc ''580580 Turns on the OCSP Must-Staple TLS extension.581581 Make sure you know what you're doing! See:582582- <itemizedlist>583583- <listitem><para><link xlink:href="https://blog.apnic.net/2019/01/15/is-the-web-ready-for-ocsp-must-staple/"/></para></listitem>584584- <listitem><para><link xlink:href="https://blog.hboeck.de/archives/886-The-Problem-with-OCSP-Stapling-and-Must-Staple-and-why-Certificate-Revocation-is-still-broken.html"/></para></listitem>585585- </itemizedlist>582582+583583+ - <https://blog.apnic.net/2019/01/15/is-the-web-ready-for-ocsp-must-staple/>584584+ - <https://blog.hboeck.de/archives/886-The-Problem-with-OCSP-Stapling-and-Must-Staple-and-why-Certificate-Revocation-is-still-broken.html>586585 '';587586 };588587
+3-13
nixos/modules/security/tpm2.nix
···76767777 tctiEnvironment = {7878 enable = lib.mkOption {7979- description = ''7979+ description = lib.mdDoc ''8080 Set common TCTI environment variables to the specified value.8181 The variables are8282- <itemizedlist>8383- <listitem>8484- <para>8585- <literal>TPM2TOOLS_TCTI</literal>8686- </para>8787- </listitem>8888- <listitem>8989- <para>9090- <literal>TPM2_PKCS11_TCTI</literal>9191- </para>9292- </listitem>9393- </itemizedlist>8282+ - `TPM2TOOLS_TCTI`8383+ - `TPM2_PKCS11_TCTI`9484 '';9585 type = lib.types.bool;9686 default = false;
···3939 enableWattsUpPro = mkOption {4040 type = types.bool;4141 default = false;4242- description = ''4242+ description = lib.mdDoc ''4343 Enable the Watts Up Pro device.44444545 The Watts Up Pro contains a generic FTDI USB device without a specific···49495050 The generic FTDI device is known to also be used on:51515252- <itemizedlist>5353- <listitem><para>Sparkfun FT232 breakout board</para></listitem>5454- <listitem><para>Parallax Propeller</para></listitem>5555- </itemizedlist>5252+ - Sparkfun FT232 breakout board5353+ - Parallax Propeller5654 '';5755 };5856
···6262 mode = mkOption {6363 default = "default";6464 type = types.enum [ "default" "reusable" "clustered" ];6565- description = ''6666- Rendering mode of <literal>grafana-image-renderer</literal>:6767- <itemizedlist>6868- <listitem><para><literal>default:</literal> Creates on browser-instance6969- per rendering request.</para></listitem>7070- <listitem><para><literal>reusable:</literal> One browser instance7171- will be started and reused for each rendering request.</para></listitem>7272- <listitem><para><literal>clustered:</literal> allows to precisely6565+ description = lib.mdDoc ''6666+ Rendering mode of `grafana-image-renderer`:6767+6868+ - `default:` Creates on browser-instance6969+ per rendering request.7070+ - `reusable:` One browser instance7171+ will be started and reused for each rendering request.7272+ - `clustered:` allows to precisely7373 configure how many browser-instances are supposed to be used. The values7474- for that mode can be declared in <literal>rendering.clustering</literal>.7575- </para></listitem>7676- </itemizedlist>7474+ for that mode can be declared in `rendering.clustering`.7775 '';7876 };7977 args = mkOption {
+18-50
nixos/modules/services/networking/3proxy.nix
···5555 "udppm"5656 ];5757 example = "proxy";5858- description = ''5858+ description = lib.mdDoc ''5959 Service type. The following values are valid:60606161- <itemizedlist>6262- <listitem><para>6363- <literal>"proxy"</literal>: HTTP/HTTPS proxy (default port 3128).6464- </para></listitem>6565- <listitem><para>6666- <literal>"socks"</literal>: SOCKS 4/4.5/5 proxy (default port 1080).6767- </para></listitem>6868- <listitem><para>6969- <literal>"pop3p"</literal>: POP3 proxy (default port 110).7070- </para></listitem>7171- <listitem><para>7272- <literal>"ftppr"</literal>: FTP proxy (default port 21).7373- </para></listitem>7474- <listitem><para>7575- <literal>"admin"</literal>: Web interface (default port 80).7676- </para></listitem>7777- <listitem><para>7878- <literal>"dnspr"</literal>: Caching DNS proxy (default port 53).7979- </para></listitem>8080- <listitem><para>8181- <literal>"tcppm"</literal>: TCP portmapper.8282- </para></listitem>8383- <listitem><para>8484- <literal>"udppm"</literal>: UDP portmapper.8585- </para></listitem>8686- </itemizedlist>6161+ - `"proxy"`: HTTP/HTTPS proxy (default port 3128).6262+ - `"socks"`: SOCKS 4/4.5/5 proxy (default port 1080).6363+ - `"pop3p"`: POP3 proxy (default port 110).6464+ - `"ftppr"`: FTP proxy (default port 21).6565+ - `"admin"`: Web interface (default port 80).6666+ - `"dnspr"`: Caching DNS proxy (default port 53).6767+ - `"tcppm"`: TCP portmapper.6868+ - `"udppm"`: UDP portmapper.8769 '';8870 };8971 bindAddress = mkOption {···95113 auth = mkOption {96114 type = types.listOf (types.enum [ "none" "iponly" "strong" ]);97115 example = [ "iponly" "strong" ];9898- description = ''116116+ description = lib.mdDoc ''99117 Authentication type. The following values are valid:100118101101- <itemizedlist>102102- <listitem><para>103103- <literal>"none"</literal>: disables both authentication and authorization. You can not use ACLs.104104- </para></listitem>105105- <listitem><para>106106- <literal>"iponly"</literal>: specifies no authentication. ACLs authorization is used.107107- </para></listitem>108108- <listitem><para>109109- <literal>"strong"</literal>: authentication by username/password. If user is not registered their access is denied regardless of ACLs.110110- </para></listitem>111111- </itemizedlist>119119+ - `"none"`: disables both authentication and authorization. You can not use ACLs.120120+ - `"iponly"`: specifies no authentication. ACLs authorization is used.121121+ - `"strong"`: authentication by username/password. If user is not registered their access is denied regardless of ACLs.112122113123 Double authentication is possible, e.g.114124115115- <programlisting>125125+ ```116126 {117127 auth = [ "iponly" "strong" ];118128 acl = [···118144 }119145 ];120146 }121121- </programlisting>147147+ ```122148 In this example strong username authentication is not required to access 192.168.0.0/16.123149 '';124150 };···128154 rule = mkOption {129155 type = types.enum [ "allow" "deny" ];130156 example = "allow";131131- description = ''157157+ description = lib.mdDoc ''132158 ACL rule. The following values are valid:133159134134- <itemizedlist>135135- <listitem><para>136136- <literal>"allow"</literal>: connections allowed.137137- </para></listitem>138138- <listitem><para>139139- <literal>"deny"</literal>: connections not allowed.140140- </para></listitem>141141- </itemizedlist>160160+ - `"allow"`: connections allowed.161161+ - `"deny"`: connections not allowed.142162 '';143163 };144164 users = mkOption {
+17-25
nixos/modules/services/networking/nsd.nix
···213213 example = [ "192.0.2.0/24 NOKEY" "10.0.0.1-10.0.0.5 my_tsig_key_name"214214 "10.0.3.4&255.255.0.0 BLOCKED"215215 ];216216- description = ''216216+ description = lib.mdDoc ''217217 Listed primary servers are allowed to notify this secondary server.218218219219- Format: <literal><ip> <key-name | NOKEY | BLOCKED></literal>219219+ Format: `<ip> <key-name | NOKEY | BLOCKED>`220220221221- <literal><ip></literal> either a plain IPv4/IPv6 address or range.221221+ `<ip>` either a plain IPv4/IPv6 address or range.222222 Valid patters for ranges:223223- <itemizedlist>224224- <listitem><para><literal>10.0.0.0/24</literal>: via subnet size</para></listitem>225225- <listitem><para><literal>10.0.0.0&255.255.255.0</literal>: via subnet mask</para></listitem>226226- <listitem><para><literal>10.0.0.1-10.0.0.254</literal>: via range</para></listitem>227227- </itemizedlist>223223+ * `10.0.0.0/24`: via subnet size224224+ * `10.0.0.0&255.255.255.0`: via subnet mask225225+ * `10.0.0.1-10.0.0.254`: via range228226229227 A optional port number could be added with a '@':230230- <itemizedlist>231231- <listitem><para><literal>2001:1234::1@1234</literal></para></listitem>232232- </itemizedlist>228228+ * `2001:1234::1@1234`233229234234- <literal><key-name | NOKEY | BLOCKED></literal>235235- <itemizedlist>236236- <listitem><para><literal><key-name></literal> will use the specified TSIG key</para></listitem>237237- <listitem><para><literal>NOKEY</literal> no TSIG signature is required</para></listitem>238238- <listitem><para><literal>BLOCKED</literal>notifies from non-listed or blocked IPs will be ignored</para></listitem>239239- </itemizedlist>230230+ `<key-name | NOKEY | BLOCKED>`231231+ * `<key-name>` will use the specified TSIG key232232+ * `NOKEY` no TSIG signature is required233233+ * `BLOCKED`notifies from non-listed or blocked IPs will be ignored240234 '';241235 };242236···344350 type = types.listOf types.str;345351 default = [];346352 example = [ "10.0.0.1@3721 my_key" "::5 NOKEY" ];347347- description = ''353353+ description = lib.mdDoc ''348354 This primary server will notify all given secondary servers about349355 zone changes.350356351351- Format: <literal><ip> <key-name | NOKEY></literal>357357+ Format: `<ip> <key-name | NOKEY>`352358353353- <literal><ip></literal> a plain IPv4/IPv6 address with on optional port number (ip@port)359359+ `<ip>` a plain IPv4/IPv6 address with on optional port number (ip@port)354360355355- <literal><key-name | NOKEY></literal>356356- <itemizedlist>357357- <listitem><para><literal><key-name></literal> sign notifies with the specified key</para></listitem>358358- <listitem><para><literal>NOKEY</literal> don't sign notifies</para></listitem>359359- </itemizedlist>361361+ `<key-name | NOKEY>`362362+ - `<key-name>` sign notifies with the specified key363363+ - `NOKEY` don't sign notifies360364 '';361365 };362366
···533533 The nextcloud-occ program preconfigured to target this Nextcloud instance.534534 '';535535 };536536- globalProfiles = mkEnableOption "global profiles" // {537537- description = ''538538- Makes user-profiles globally available under <literal>nextcloud.tld/u/user.name</literal>.536536+ globalProfiles = mkEnableOption (lib.mdDoc "global profiles") // {537537+ description = lib.mdDoc ''538538+ Makes user-profiles globally available under `nextcloud.tld/u/user.name`.539539 Even though it's enabled by default in Nextcloud, it must be explicitly enabled540540 here because it has the side-effect that personal information is even accessible to541541 unauthenticated users by default.542542543543 By default, the following properties are set to “Show to everyone”544544 if this flag is enabled:545545- <itemizedlist>546546- <listitem><para>About</para></listitem>547547- <listitem><para>Full name</para></listitem>548548- <listitem><para>Headline</para></listitem>549549- <listitem><para>Organisation</para></listitem>550550- <listitem><para>Profile picture</para></listitem>551551- <listitem><para>Role</para></listitem>552552- <listitem><para>Twitter</para></listitem>553553- <listitem><para>Website</para></listitem>554554- </itemizedlist>545545+ - About546546+ - Full name547547+ - Headline548548+ - Organisation549549+ - Profile picture550550+ - Role551551+ - Twitter552552+ - Website555553556554 Only has an effect in Nextcloud 23 and later.557555 '';
+7-9
nixos/modules/services/web-apps/wiki-js.nix
···9393 };9494 };9595 };9696- description = ''9797- Settings to configure <literal>wiki-js</literal>. This directly9898- corresponds to <link xlink:href="https://docs.requarks.io/install/config">the upstream configuration options</link>.9696+ description = lib.mdDoc ''9797+ Settings to configure `wiki-js`. This directly9898+ corresponds to [the upstream configuration options](https://docs.requarks.io/install/config).9999100100 Secrets can be injected via the environment by101101- <itemizedlist>102102- <listitem><para>specifying <xref linkend="opt-services.wiki-js.environmentFile"/>103103- to contain secrets</para></listitem>104104- <listitem><para>and setting sensitive values to <literal>$(ENVIRONMENT_VAR)</literal>105105- with this value defined in the environment-file.</para></listitem>106106- </itemizedlist>101101+ - specifying [](#opt-services.wiki-js.environmentFile)102102+ to contain secrets103103+ - and setting sensitive values to `$(ENVIRONMENT_VAR)`104104+ with this value defined in the environment-file.107105 '';108106 };109107 };
···499499 config = mkOption {500500 type = types.str;501501 default = "";502502- description = ''503503- Verbatim <filename>nginx.conf</filename> configuration.502502+ description = lib.mdDoc ''503503+ Verbatim {file}`nginx.conf` configuration.504504 This is mutually exclusive to any other config option for505505- <filename>nginx.conf</filename> except for506506- <itemizedlist>507507- <listitem><para><xref linkend="opt-services.nginx.appendConfig"/>508508- </para></listitem>509509- <listitem><para><xref linkend="opt-services.nginx.httpConfig"/>510510- </para></listitem>511511- <listitem><para><xref linkend="opt-services.nginx.logError"/>512512- </para></listitem>513513- </itemizedlist>505505+ {file}`nginx.conf` except for506506+ - [](#opt-services.nginx.appendConfig)507507+ - [](#opt-services.nginx.httpConfig)508508+ - [](#opt-services.nginx.logError)514509515510 If additional verbatim config in addition to other options is needed,516516- <xref linkend="opt-services.nginx.appendConfig"/> should be used instead.511511+ [](#opt-services.nginx.appendConfig) should be used instead.517512 '';518513 };519514
+16-18
nixos/modules/system/boot/loader/grub/grub.nix
···622622 efiInstallAsRemovable = mkOption {623623 default = false;624624 type = types.bool;625625- description = ''626626- Whether to invoke <literal>grub-install</literal> with627627- <literal>--removable</literal>.625625+ description = lib.mdDoc ''626626+ Whether to invoke `grub-install` with627627+ `--removable`.628628629629 Unless you turn this on, GRUB will install itself somewhere in630630- <literal>boot.loader.efi.efiSysMountPoint</literal> (exactly where630630+ `boot.loader.efi.efiSysMountPoint` (exactly where631631 depends on other config variables). If you've set632632- <literal>boot.loader.efi.canTouchEfiVariables</literal> *AND* you632632+ `boot.loader.efi.canTouchEfiVariables` *AND* you633633 are currently booted in UEFI mode, then GRUB will use634634- <literal>efibootmgr</literal> to modify the boot order in the634634+ `efibootmgr` to modify the boot order in the635635 EFI variables of your firmware to include this location. If you are636636 *not* booted in UEFI mode at the time GRUB is being installed, the637637 NVRAM will not be modified, and your system will not find GRUB at638638 boot time. However, GRUB will still return success so you may miss639639- the warning that gets printed ("<literal>efibootmgr: EFI variables640640- are not supported on this system.</literal>").639639+ the warning that gets printed ("`efibootmgr: EFI variables640640+ are not supported on this system.`").641641642642 If you turn this feature on, GRUB will install itself in a643643- special location within <literal>efiSysMountPoint</literal> (namely644644- <literal>EFI/boot/boot$arch.efi</literal>) which the firmwares643643+ special location within `efiSysMountPoint` (namely644644+ `EFI/boot/boot$arch.efi`) which the firmwares645645 are hardcoded to try first, regardless of NVRAM EFI variables.646646647647 To summarize, turn this on if:648648- <itemizedlist>649649- <listitem><para>You are installing NixOS and want it to boot in UEFI mode,650650- but you are currently booted in legacy mode</para></listitem>651651- <listitem><para>You want to make a drive that will boot regardless of652652- the NVRAM state of the computer (like a USB "removable" drive)</para></listitem>653653- <listitem><para>You simply dislike the idea of depending on NVRAM654654- state to make your drive bootable</para></listitem>655655- </itemizedlist>648648+ - You are installing NixOS and want it to boot in UEFI mode,649649+ but you are currently booted in legacy mode650650+ - You want to make a drive that will boot regardless of651651+ the NVRAM state of the computer (like a USB "removable" drive)652652+ - You simply dislike the idea of depending on NVRAM653653+ state to make your drive bootable656654 '';657655 };658656
+13-29
nixos/modules/system/boot/loader/grub/memtest.nix
···3131 default = [];3232 example = [ "console=ttyS0,115200" ];3333 type = types.listOf types.str;3434- description = ''3434+ description = lib.mdDoc ''3535 Parameters added to the Memtest86+ command line. As of memtest86+ 5.013636 the following list of (apparently undocumented) parameters are3737 accepted:38383939- <itemizedlist>4040-4141- <listitem>4242- <para><literal>console=...</literal>, set up a serial console.3939+ - `console=...`, set up a serial console.4340 Examples:4444- <literal>console=ttyS0</literal>,4545- <literal>console=ttyS0,9600</literal> or4646- <literal>console=ttyS0,115200n8</literal>.</para>4747- </listitem>4141+ `console=ttyS0`,4242+ `console=ttyS0,9600` or4343+ `console=ttyS0,115200n8`.48444949- <listitem>5050- <para><literal>btrace</literal>, enable boot trace.</para>5151- </listitem>4545+ - `btrace`, enable boot trace.52465353- <listitem>5454- <para><literal>maxcpus=N</literal>, limit number of CPUs.</para>5555- </listitem>4747+ - `maxcpus=N`, limit number of CPUs.56485757- <listitem>5858- <para><literal>onepass</literal>, run one pass and exit if there5959- are no errors.</para>6060- </listitem>4949+ - `onepass`, run one pass and exit if there5050+ are no errors.61516262- <listitem>6363- <para><literal>tstlist=...</literal>, list of tests to run.6464- Example: <literal>0,1,2</literal>.</para>6565- </listitem>5252+ - `tstlist=...`, list of tests to run.5353+ Example: `0,1,2`.66546767- <listitem>6868- <para><literal>cpumask=...</literal>, set a CPU mask, to select CPUs6969- to use for testing.</para>7070- </listitem>7171-7272- </itemizedlist>5555+ - `cpumask=...`, set a CPU mask, to select CPUs5656+ to use for testing.73577458 This list of command line options was obtained by reading the7559 Memtest86+ source code.
···104104105105 type = types.enum [ "0" "1" "2" "auto" "max" "keep" ];106106107107- description = ''107107+ description = lib.mdDoc ''108108 The resolution of the console. The following values are valid:109109110110- <itemizedlist>111111- <listitem><para>112112- <literal>"0"</literal>: Standard UEFI 80x25 mode113113- </para></listitem>114114- <listitem><para>115115- <literal>"1"</literal>: 80x50 mode, not supported by all devices116116- </para></listitem>117117- <listitem><para>118118- <literal>"2"</literal>: The first non-standard mode provided by the device firmware, if any119119- </para></listitem>120120- <listitem><para>121121- <literal>"auto"</literal>: Pick a suitable mode automatically using heuristics122122- </para></listitem>123123- <listitem><para>124124- <literal>"max"</literal>: Pick the highest-numbered available mode125125- </para></listitem>126126- <listitem><para>127127- <literal>"keep"</literal>: Keep the mode selected by firmware (the default)128128- </para></listitem>129129- </itemizedlist>110110+ - `"0"`: Standard UEFI 80x25 mode111111+ - `"1"`: 80x50 mode, not supported by all devices112112+ - `"2"`: The first non-standard mode provided by the device firmware, if any113113+ - `"auto"`: Pick a suitable mode automatically using heuristics114114+ - `"max"`: Pick the highest-numbered available mode115115+ - `"keep"`: Keep the mode selected by firmware (the default)130116 '';131117 };132118
+7-11
nixos/modules/system/boot/stage-1.nix
···613613 );614614 defaultText = literalMD "`zstd` if the kernel supports it (5.9+), `gzip` if not";615615 type = types.either types.str (types.functionTo types.str);616616- description = ''616616+ description = lib.mdDoc ''617617 The compressor to use on the initrd image. May be any of:618618619619- <itemizedlist>620620- <listitem><para>The name of one of the predefined compressors, see <filename>pkgs/build-support/kernel/initrd-compressor-meta.nix</filename> for the definitions.</para></listitem>621621- <listitem><para>A function which, given the nixpkgs package set, returns the path to a compressor tool, e.g. <literal>pkgs: "''${pkgs.pigz}/bin/pigz"</literal></para></listitem>622622- <listitem><para>(not recommended, because it does not work when cross-compiling) the full path to a compressor tool, e.g. <literal>"''${pkgs.pigz}/bin/pigz"</literal></para></listitem>623623- </itemizedlist>619619+ - The name of one of the predefined compressors, see {file}`pkgs/build-support/kernel/initrd-compressor-meta.nix` for the definitions.620620+ - A function which, given the nixpkgs package set, returns the path to a compressor tool, e.g. `pkgs: "''${pkgs.pigz}/bin/pigz"`621621+ - (not recommended, because it does not work when cross-compiling) the full path to a compressor tool, e.g. `"''${pkgs.pigz}/bin/pigz"`624622625623 The given program should read data from stdin and write it to stdout compressed.626624 '';···660662 default = true;661663 type = types.bool;662664 description =663663- ''665665+ lib.mdDoc ''664666 Verbosity of the initrd. Please note that disabling verbosity removes665667 only the mandatory messages generated by the NixOS scripts. For a666668 completely silent boot, you might also want to set the two following667669 configuration options:668670669669- <itemizedlist>670670- <listitem><para><literal>boot.consoleLogLevel = 0;</literal></para></listitem>671671- <listitem><para><literal>boot.kernelParams = [ "quiet" "udev.log_level=3" ];</literal></para></listitem>672672- </itemizedlist>671671+ - `boot.consoleLogLevel = 0;`672672+ - `boot.kernelParams = [ "quiet" "udev.log_level=3" ];`673673 '';674674 };675675