aboutsummaryrefslogtreecommitdiff
path: root/bin/kenv/kenv.1
blob: 980bec1175158da6fe33554a3f357055584ef055 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
.\"-
.\" Copyright (c) 2000  Peter Wemm <peter@FreeBSD.org>
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.Dd June 20, 2021
.Dt KENV 1
.Os
.Sh NAME
.Nm kenv
.Nd list or modify the kernel environment
.Sh SYNOPSIS
.Nm
.Op Fl l | s
.Op Fl hNq
.Nm
.Op Fl qv
.Ar variable Ns Op = Ns Ar value
.Nm
.Op Fl q
.Fl u
.Ar variable
.Sh DESCRIPTION
The
.Nm
utility will list all variables in the kernel environment if
invoked without arguments.
.Pp
If the
.Fl l
option is specified, then the static environment provided by
.Xr loader 8
will be listed instead.
Similarly, the
.Fl s
option will list the static environment defined by the kernel config.
Both of the
.Fl l
and
.Fl s
options are dependent on the kernel being configured to preserve early kernel
environments.
The default kernel configuration does not preserve these environments.
.Pp
If the
.Fl h
option is specified, it will limit the report to kernel probe hints.
If an optional
.Ar variable
name is specified,
.Nm
will only report that value.
If the
.Fl N
option is specified,
.Nm
will only display variable names and not their values.
If the
.Fl u
option is specified,
.Nm
will delete the given environment variable.
If the environment variable is followed by an optional
.Ar value ,
.Nm
will set the environment variable to this value.
.Pp
If the
.Fl q
option is set, warnings normally printed as a result of being unable to
perform the requested operation will be suppressed.
.Pp
If the
.Fl v
option is set, the variable name will be printed out for the
environment variable in addition to the value when
.Nm
is executed with a variable name.
.Pp
Variables can be added to the kernel environment using the
.Pa /boot/loader.conf
file, or also statically compiled into the kernel using the statement
.Pp
.Dl Ic env Ar filename
.Pp
in the kernel config file.
The file can contain lines of the form
.Pp
.Dl name = "value"  # this is a comment
.Pp
where whitespace around
.Sq name
and
.Sq = ,
and everything after a
.Sq #
character, are ignored.
Almost any printable character except
.Sq =
is acceptable as part of a name.
Quotes are optional and necessary only if the value contains whitespace.
.Sh EXAMPLES
Show kernel probe hints variable names and filter for the uart
device
.Bd -literal -offset indent
$ kenv -h -N | grep uart
hint.uart.0.at
hint.uart.0.flags
hint.uart.0.irq
hint.uart.0.port
hint.uart.1.at
hint.uart.1.irq
hint.uart.1.port
.Ed
.Pp
Show the value of a specific variable:
.Bd -literal -offset indent
$ kenv hint.uart.1.at
isa
.Ed
.Pp
Same as above but adding the name of the variable in the report:
.Bd -literal -offset indent
$ kenv -v hint.uart.1.at
hint.uart.1.at="isa"
.Ed
.Pp
Try to delete a variable and suppress warnings if any:
.Bd -literal -offset indent
$ kenv -q -u hint.uart.1.at
.Ed
.Pp
Set the value of the
.Ev verbose_loading
variable
.Bd -literal -offset indent
$ kenv verbose_loading="YES"
verbose_loading="YES"
.Ed
.Sh SEE ALSO
.Xr kenv 2 ,
.Xr config 5 ,
.Xr loader.conf 5 ,
.Xr loader 8
.Sh HISTORY
The
.Nm
utility appeared in
.Fx 4.1.1 .