Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

  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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
.\"	$NetBSD: contents,v 1.18 2020/08/07 00:43:49 snj Exp $
.\"
.\" Copyright (c) 1999-2005 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
.\"
.
.Ss2 NetBSD/\*M subdirectory structure
The \*M-specific portion of the
.Nx
\*V release is found in the
.Pa \*M
subdirectory of the distribution:
.Pa \&.../NetBSD-\*V/\*M/ .
It contains the following files and directories:
.Pp
.(tag INSTALL.html -compact \" top level
.	It Pa INSTALL.html
.	It Pa INSTALL.ps
.	It Pa INSTALL.txt
.	It Pa INSTALL.more
Installation notes in various file formats, including this file.
The
.Pa \&.more
file contains underlined text using the
.Xr more 1
conventions for indicating italic and bold display.
.
.\" MD binary and installation directories ---------------------------
.
.	It Pa binary/
.
.	(tag kernel/ -compact \" binary/
.
.		It Pa kernel/
.
.		(tag netbsd.gz -compact \" binary/kernel
.
.			It Pa netbsd-GENERIC.gz
.
A gzipped
.Nx
kernel containing code for everything supported in this release.
.
.			It Pa netbsd-VME147.gz
.
A kernel for MVME147 boards.
.
.			It Pa netbsd-VME162.gz
.
A kernel for MVME162 boards.
.
.			It Pa netbsd-VME167.gz
.
A kernel for MVME167 boards.
.
.			It Pa netbsd-VME172.gz
.
A kernel for MVME172 boards.
.
.			It Pa netbsd-VME177.gz
.
A kernel for MVME177 boards.
.
.		tag) \" binary/kernel/
.
.		It Pa sets/
.
\*M binary distribution sets;
see below.
.
.	tag) \" binary/
.
.	It Pa installation/
.
.	(tag miniroot/ -compact \" installation/
.
.		It Pa miniroot/
.
\*M miniroot file system image; see below.
.
.		It Pa netboot/
.
Two programs needed to boot \*M kernels over the network; see below.
.
.		It Pa tapeimage/
.
Tape boot programs, and a RAMDISK kernel; see below.
.
.	tag) \" installation/
.
.tag) \" top level
.
.\" ------------------------------------------------------------------
.
.
.Ss2 Binary distribution sets
.\"
.\" ------------------------------------------------------------------
.\" XXX: most sets except kern and xserver should be in notes/common
.\"
The
.Nx
\*M
binary distribution sets contain the binaries which
comprise the
.Nx
\*V release for \*M.
The binary distribution sets can be found in the
.Pa \*M/binary/sets
subdirectory
of the
.Nx
\*V
distribution tree, and are as follows:
.(tag xserver \" sets
.
.It Sy base
The
.Nx
\*V
\*M
.Sy base
binary distribution.
You
.Em must
install this distribution set.
It contains the base
.Nx
utilities that are necessary for the
system to run and be minimally functional.
.
.It Sy comp
Things needed for compiling programs.
This set includes the system include files
.Pq Pa /usr/include
and the various system libraries (except the shared
libraries, which are included as part of the
.Sy base
set).
This set also includes the manual pages for
all of the utilities it contains, as well as the
system call and library manual pages.
.
.It Sy debug
This distribution set contains debug information for
all base system utilities.
It is useful when reporting issues with binaries or during
development.
This set is huge, if the target disk is small, do not install it.
.
.It Sy etc
This distribution set contains the system
configuration files that reside in
.Pa /etc
and in several other places.
This set
.Em must
be installed if you are installing the system from scratch, but should
.Em not
be used if you are upgrading.
.
.It Sy games
This set includes the games and their manual pages.
.
.\" MD kernel set(s) -------------------------------------------------
.
.It Sy kern-GENERIC
This set contains a
.Nx*M
\*V
.Li GENERIC
kernel, named
.Pa /netbsd .
You
.Em must
install this distribution set.
.
.\" ------------------------------------------------------------------
.
.It Sy man
This set includes all of the manual pages for the
binaries and other software contained in the
.Sy base
set.
Note that it does not include any of the manual pages
that are included in the other sets.
.
.It Sy misc
This set includes the system dictionaries,
the typesettable document set, and other files from
.Pa /usr/share .
.
.It Sy modules
This set includes kernel modules to add functionality to a running system.
.
.It Sy rescue
This set includes the statically linked emergency recover binaries installed
in
.Pa /rescue .
.
.It Sy text
This set includes
.Nx Ns 's
text processing tools, including
.Xr groff 1 ,
all related programs, and their manual pages.
.
.tag) \" sets
.
.
.\" X sets -----------------------------------------------------------
.\" XXX: XOrg vs XFree
.\" XXX: ports without xserver
.Pp
.Nx
maintains its own set of sources for the X Window System in order to
assure tight integration and compatibility.
These sources are based on
X.Org.
Binary sets for the X Window System are distributed with
.Nx .
The sets are:
.(tag xserver \" x sets
.
.It Sy xbase
The basic files needed for a complete X
client environment.
This does not include the X servers.
.
.It Sy xcomp
The extra libraries and include files needed to compile X source code.
.
.It Sy xdebug
This distribution set contains debug information for
all X11 binaries.
It is useful when reporting issues with these binaries or during
development.
This set is huge, if the target disk is small, do not install it.
.
.It Sy xfont
Fonts needed by the X server and by X clients.
.
.It Sy xetc
Configuration files for X which could be locally modified.
.
.It Sy xserver
The X server.
.
.tag) \" x sets
.
.
.\" ------------------------------------------------------------------
.
.
.\" MI DISCUSSION OF BINARY SETS -------------------------------------
.\" XXX: should be in notes/common
.
.Pp
The \*M binary distribution sets are distributed as gzipped tar files
named with the extension
.Sy .\*[setsuffix] ,
e.g.
.Pa base.\*[setsuffix] .
.
.
.Pp
The instructions given for extracting the source sets work equally
well for the binary sets, but it is worth noting that if you use that
method, the filenames stored in the sets are relative and therefore
the files are extracted
.Em below the current directory .
Therefore, if you want to extract the binaries into your system, i.e.
replace the system binaries with them, you have to run the
.Ic "tar -xzpf"
command from the root directory (
.Pa /
) of your system.
.
.
.\" MD DISCUSSION ----------------------------------------------------
.
.Pp
The following are included in the
.Pa mvme68k/installation
directory:
.
.(tag miniroot/
.It Pa miniroot/
.(Note
The
.Ic sysinst
method of installation is the preferred method for installing
.Nx*M .
.Em The Traditional method of installation is deprecated
.Em and will be removed in a future release.
Some other important differences between the two installation methods are:
.(bullet
The Installer and Mkfs utilities are not used if the installation is done
using the
.Ic sysinst
method via booting an Installation Kernel.
.It
Mkfs creates a 4.3BSD "old" format file system.
This is the only file system format understood by the Installer.
The
.Ic sysinst
process creates "new" file systems which can't be processed by Mkfs
or the Installer.
.It
The Installer (and probably Mkfs) is known to have problems with
BSD file systems that are larger than 1 GB or extend beyond the 1 GB
physical limit.
Keep this in mind if doing a Traditional method
installation with these utilities.
.It
The Booter is known to have problems booting from a NetBSD file system
if the inode of the kernel file is too large.
For large disks it is advisable to have a small root partition and one or
more usr-type partitions for other files.
This ensures the inode of the kernel in the root file system will be small.
.It
The Booter is designed to work with 4.3BSD "old" file systems, but there
are enough similarities between the "old" and "new" file system formats in the
first few hundred blocks that the Booter can usually boot a Kernel from a
4.3BSD new file system.
If you choose to use "new" file system formats, it is advisable to use a
small root partition and one or more usr-type partitions for other files.
This is the default layout used by
.Ic sysinst .
.bullet)
.Note)
.	(tag miniroot.gz
.	It Pa miniroot.gz
A copy of the miniroot file system.
This file system image is copied into the swap partition of the disk which
you intend to boot
.Nx
from.
Normally, this step will be performed manually from the ramdisk boot
environment.
.	tag)
.tag)
.
.(tag miniroot/
.It Pa netboot/
.	(tag sboot
.	It Pa sboot
An MVME147 bootstrap program in Motorola S-Record format.
This is required when you wish to boot an MVME147 over the network since
the ROM has no built-in network support.
Instructions for getting this program into memory are discussed later.
.	tag)
.	(tag netboot
.	It Pa netboot
A standalone 2nd stage bootstrap program loaded over the network via TFTP.
This is responsible for fetching and starting the
.Nx
\*M
kernel from an NFS server.
.	tag)
.tag)
.
.(tag tapeimage/
.It Pa tapeimage/
.	(tag stboot
.	It Pa stboot
This file contains a boot sector for Motorola MVME boards.
It must be the first file written to a tape in order to make the tape bootable.
.	tag)
.	(tag bootst
.	It Pa bootst
This file contains a bootstrap program which knows how to load the
.Nx
\*M
ramdisk image from tape.
This must be the second file written to the tape.
.	tag)
.	(tag netbsd-RAMDISK.gz
.	It Pa netbsd-RAMDISK.gz
This is the
.Nx
\*M
ramdisk image.
It contains a
.Li GENERIC
kernel and a built in RAMDISK
with just enough tools to partition a disk, dump the miniroot kernel
to it and make the disk bootable.
This must be the third file written to the tape.
.	tag)
.tag)