Commit Graph

5619 Commits

Author SHA1 Message Date
brook c5a23dac66 By default, do not install any bootable images.
The previous commit introduced the ability to install a set of
bootable images as a normal part of a release build.  While this made
it easy to install bootable images, the contents of a release build
depend on whether or not U-Boot packages are installed in /usr/pkgsrc,
which is the default location searched by installboot(8).

This commit requires users to explicitly list the bootable images to
be installed, which by default is none (i.e., prior behavior).
2022-08-22 16:50:25 +00:00
brook 99f61d3fde Create bootable images in ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/gzimg.
Release builds for arm platforms create compressed images in
${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/gzimg.  However, in some
cases, e.g., armv7.img.gz, they are not bootable.  Consequently, boot
blocks must be manually installed in the images, which is an extra
barrier for testing systems or adopting NetBSD.  This has prompted
creation of external repositories, e.g., armbsd.org, to host a
collection of bootable images.  However, this does not ease the burden
on developers compiling their own systems; for them, manual
installation of boot blocks is still required.

For arm platforms, etc/etc.evbarm/Makefile.inc contains the commands
used to create system images.  Because installboot(8) can write boot
blocks directly to system images, a loop through possible boards can
create a series of bootable images during the normal build process.

In the case of many arm platforms, installboot(8) uses U-Boot boot
blocks, which are not part of the NetBSD source code.  Developers can,
however, install as many U-Boot boot blocks as desired, either in the
default location of /usr/pkg/share/u-boot or in a set of directories
pointed to by the U-Boot search path, the INSTALLBOOT_UBOOT_PATHS
environment variable.  For each board with an available boot block, a
board-specific bootable image will be created in
${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/gzimg.  If a boot block is
not available, which is the typical situation currently, no additional
image will be created.

This facility creates opportunities to build bootable images for any
number of boards within the scope of a standard release build.
However, that is not required and will not occur without the
intervention of installing U-Boot boot blocks prior to the build.
2022-08-21 15:01:08 +00:00
lukem dac6dcb8de Deprecate extsrc/, EXTSRCSRCDIR, MKEXTSRC
Remove support for building extsrc/:
1. Makefile: remove do-extsrc target.
2. build.sh: remove options -y and -Y extsrcdir.
3. distrib/sets: remove support for extsrc in various tools
   including the options -L ext and -y, and the extsrc sets.
4. doc/BUILDING.mdoc: remove docs for extsrc/, EXTSRCSRCDIR, MKEXTSRC (etc)
5. bsd.own.mk and various Makefiles: remove support for extsrc/,
   EXTSRCSRCDIR, MKEXTSRC.

As proposed on tech-kern and tech-userlevel on 2022-01-07
and followed up on 2022-08-21.
2022-08-21 07:10:03 +00:00
riastradh cc725e3507 viocon(4): New virtio tty driver imported from OpenBSD.
viocon* at virtio?

/dev/ttyVI??

Tested under qemu with:

qemu-system-aarch64 ... \
  -device virtio-serial \
  -chardev socket,path=/tmp/ttyVI00,server=on,wait=off,id=ttyVI00 \
  -device virtconsole,chardev=ttyVI00,name=org.NetBSD.dev.ttyVI00 \
  ...

I updated MAKEDEV.conf to create /dev/ttyVI?? on all ports where it
looks likely to work based on:
(a) having pci or a non-pci virtio attachment,
(b) `qemu-system-$ARCH -M ?' mentioned something resembling the port,
    and
(c) `qemu-system-$ARCH -device virtio-serial' launched without
    complaining about the virtio-serial device.

(Criterion (c) excluded sparc and sparc64.)
2022-08-12 11:15:40 +00:00
kre fa7d65a3b6 Add ATF tests for realpath(1)
Note that realpath can act differently for root than for other users
(where an ordinary user will see EACCESS root just barrels right through).

The tests adapt themselves, when run as root, less error cases can be
tested than when run as some other user.
2022-07-21 09:52:48 +00:00
kre 15e7028037 Cleanup the "hup" function - quote properly, and test for the pid
file existing (with something in it) before simply using it, so the
error message can be controlled, rather than just sh's cannot open file msg.
2022-07-21 07:53:28 +00:00
kre d8eb9e45f2 Get rid of the (insulting)
We recommend that you create a non-root account...
message from single user mode shell startups.
2022-07-21 07:51:12 +00:00
kre bd7c53a85d Make this better ... Allow config file for raidN to be found
in /etc/conf/raid/raidN (as well as in /etc/raidN.conf) (less
clutter in /etc).

Allow config files to exist for raids that are autoconfigured (just
skip anything autoconfigured) - this allows a (simplistic) recovery
mechanism if autoconf fails, and makes it simpler to enable/disable
autoconf at will, while keeping the raid working.

While here, add sh quoting where it is needed, and remove it from
where it is pointless.
2022-07-21 07:49:36 +00:00
mrg 355d19546f add libxvct include subdir. 2022-07-14 06:53:40 +00:00
kre 6c36afa3ab If /rescue is at the head of $PATH (which is how it starts out in /rescue/sh
unless changed by something - and has been since NetBSD 3) don't blindly
simply change it to a PATH that doesn't have /rescue in it at all.

This doesn't solve the "/rescue/tar execs /usr/bin/gzip" problem completely,
as if PATH is in the environment when /rescue/sh is started, that one will
override the shell's built in PATH, but this is better than nothing.
2022-07-09 09:43:51 +00:00
tsutsui 34941bda13 Add luna68k specific section 4 man pages.
Taken from mostly OpenBSD/luna88k and partially NetBSD/hp300.
2022-06-12 03:51:13 +00:00
nia b7957d1677 build system: Revert all the recent additions of MK[...] knobs that
allow conditionally disabling the building of certain user space
programs in the 'base' set.

There is not enough consensus that this is the right way and a few
people had strong objections, see source-changes-d@.
2022-06-06 10:56:27 +00:00
rin dd3ee07da4 Introduce libc_aligned.so for evbppc-powerpc32, which provides
strictly-aligned versions of memcmp(3), bcopy(3), memcpy(3), and
memmove(3).

This is used for 403 by ld.so.conf with machdep.no_unaligned variable.

With this library, unaligned memory accesses are significantly reduced
for 403 (from several hundreds to few tens per sec under heavy load);
only ld.elf_so (typically few times per fork) and statically-linked
binaries do such access.
2022-05-30 15:06:54 +00:00
nia 8469593b52 mk: Add a MKPPP flag to exclude pppd(8) and related utilities from
the build
2022-05-29 08:09:59 +00:00
andvar 67cf5ffde0 s/hierach/hierarch/ 2022-05-28 21:57:39 +00:00
nia e994758d71 mk: Add MKFINGER, MKTALK flags for not building
talk, talkd, finger, fingerd.
2022-05-28 14:31:11 +00:00
nia fff9d4a2fe Fix typo. Hopefully this didn't break anyone's build, sorry. 2022-05-28 12:36:56 +00:00
nia f2e2da3feb mk: Add MKNTP, MKTCPDUMP knobs. 2022-05-28 11:17:35 +00:00
nia 6678627ac7 mk: Rename the MKMBONE option to MKMROUTING for greater accuracy and
to match the related kernel config option.
2022-05-25 21:25:46 +00:00
nia f52526086f mk: Allow setting MKDHCPD=no to build base without the ISC DHCP server,
useful for embedded images that don't need to act as one.
2022-05-25 20:44:01 +00:00
nia 30fbdc74a3 mk: Allow building base without the MBONE applications by setting
MKMBONE=no in mk.conf
2022-05-25 10:18:28 +00:00
rillig 345652c15e tests/compress: demonstrate truncation of target file
Reported by Giorgos Keramidas in PR#19722.
2022-05-22 17:55:08 +00:00
andvar f42f89fd6f fix various small typos, mainly in comments. 2022-05-22 11:27:33 +00:00
rin fccec4780a Build OPENBLOCKS_A6 kernel for evbarmv5-e[bl].
It works --- except for:

- mvsata(4) problems (already reported repeatedly)
- NFS root with mvgbe(4) is weird; the system eventually locks up

Yes, we need to fix them...
2022-05-20 16:12:34 +00:00
uwe 069a423686 MAKEDEV.tmpl: make /dev/wsfont world-readable
Now that we have WSDISPLAYIO_LISTFONTS we want users to be able to use it.

NB: older kernels didn't check that WSDISPLAYIO_LDFONT was performed
on wsfont(4) device opened for writing and relied on its restrictive
root-only permissions to restrict who can load fonts.
2022-05-17 11:41:41 +00:00
mrg d254323219 create ./usr/libdata/firmware/radeon same as the non-/usr version
should fix builds for non x86/arm64.
2022-05-15 21:41:56 +00:00
martin 901c0b91c9 PR 56835: fix sshd startup script to only whine about bogus keys it
created if it actualy did create keys (one should thing that a
function called sshd_keygen() only is called to create keys, but
the "precmd" magic makes it run every time sshd is started or stopped).

Patch from Tom Lane, with modifications suggested by kre and a minor
additional cosemtic change.
2022-05-15 11:47:42 +00:00
mrg c90a6d284e install the lower case radeon firmware files into /usr/libdata/firmware.
radeon has different case but same name firmware files.  the lower case
ones are already installed into /libdata/firmware, and to avoid having
to provide some special method to build on systems with case-preserving
file systems (such as macOS), we install the lower case ones in /usr.

this means that anyone that requires the lower case files must either
have /usr as part of the / file system, or manually keep them updated.

last part of PR#54976, though i doubt we'll try to pull up these.

this is enabled on i386, amd64 and arm64.
2022-05-15 00:24:14 +00:00
brad 84213c7105 Like /etc/rc.d/network, add the ability to put a '!' character as the
first character in /etc/gpio.conf and have the rest evaluated in a
shell.  It is useful to be able to do actions after setting up gpio
pins or attaching gpioiic(4).
2022-04-30 13:48:09 +00:00
pgoyette 726aa68aee Add a new test for PR kern/56713 and set to expected_failure for now. 2022-04-29 22:17:49 +00:00
andvar f84252b461 fix various typos in comments and log messages. 2022-04-16 18:15:20 +00:00
riastradh d49616184d membar_ops(3): Add some automatic tests.
These tests run two threads for five seconds each to try to trigger
races in the event of broken memory barriers.  They run only on
machines with at least two CPUs; on uniprocessor systems there's no
point -- the membars can correctly just be (instruction barrier)
no-ops.
2022-04-08 23:35:51 +00:00
riastradh 5640623e4f etc: Sort NetBSD.dist.tests. 2022-04-08 23:14:10 +00:00
andvar 2fa7e14158 fix various typos, mainly in comments, but also log messages, docs, game text. 2022-04-08 10:17:52 +00:00
christos f6ca6d6231 add named plugins directory. 2022-03-06 17:51:42 +00:00
gutteridge 08a9f63190 LOGIN: fix typo in description 2022-03-02 01:55:18 +00:00
alnsn 0e59248afa Enable critical_filesystems_zfs. 2022-02-20 14:42:07 +00:00
alnsn 082b9a1ec4 Small changes in mount_critical_filesystems_zfs
avoid unnecessary eval, switch to $() and -ne.

from kre@, thanks!
2022-02-06 16:23:12 +00:00
alnsn a8b6a164d2 Compare $_mount_es with 0 2022-02-03 21:02:47 +00:00
alnsn ae342f4716 Add mount_critical_filesystems_zfs
The new function is similar to mount_critical_filesystems
but it walks through ZFS datasets and mounts matching entries.
2022-02-03 20:52:44 +00:00
pho 9f39150738 lib/librefuse: Implement FUSE session API and its signal handling functionality 2022-01-22 07:53:05 +00:00
kre ca09957470 Install the missing sh syntax element in the MKDEBUGKERNEL = no test, so
that "continue" is a command as intended, and not an invalid last arg to
the '[' command (the last arg is required to be ']').

Sometime the proverbial someone should go through this and remove all the
obsolete test -o and -a operators, and probably do something with test's
usage of ! as well.   Not today, or not by me anyway.
2022-01-05 01:46:28 +00:00
christos 6eb4570d40 Create empty files for the "extra" kernels. Grr I should fix this properly
(run checkflists after building the kernels)
2022-01-02 20:09:03 +00:00
christos 508aca192c Enable split-debug files for kernels. Enabled by default with MKDEBUG=yes. 2021-12-29 22:22:12 +00:00
christos a3f7d3a6b3 Put back the code to add DEBUG=-g in config and to add the debug kernels
in the kernel sets. Having the .gdb kernels in the EXTRA_KERNELS does not
work, since we only walk through the standard kernels in the Makefile. Also
doing DEBUG=-g in config twice does not hurt.
2021-12-23 14:50:59 +00:00
christos 4aa4344fed Revert previous, not needed MKKDEBUG does it. 2021-12-20 20:20:35 +00:00
christos 814fa5ccf1 PR/55557: Andreas Gustafsson" Introduce a new variable MKDEBUGKERNEL which
as the name implies, includes a netbsd.gdb inside each kernel set:
$ tar -tzvf kern-GENERIC.tgz
-rwxr-xr-x  0 root   wheel 29398264 Dec 19 12:50 ./netbsd
-rwxr-xr-x  0 root   wheel 208125880 Dec 19 12:50 ./netbsd.gdb
2021-12-20 14:41:26 +00:00
maya 8b9ca392fe Add newer nouveau firmware build goo
Symlinks inferred from linux-firmware/WHENCE and compared to a linux distro's
firmware.

Note: said linux distro appears to have some mistakes compared to the
linux-firmware repo in linking ucode_unload.bin to unload_bl.bin and vice
versa in some places.
I didn't replicate this aspect, and lack the hardware to test it.
2021-12-13 23:59:35 +00:00
maya 1eb4f57936 Add amdgpu firmware build goo (disabled) 2021-12-12 20:33:21 +00:00
brad bf53d44167 A driver and user land utility for the Sparkfun Serial Controlled Motor
Driver module as illustrated here:

https://www.sparkfun.com/products/13911

A SCMD module is a ARM SOC simular to a Arduino in front of a motor
driver chip.  The single SCMD module can control two motors and up to
16 additional modules can be chained together using an internal I2C
bus.  One can interface with the SCMD using tty uart commands, SPI or
I2C.  The driver in this commit adds a kernel driver for the I2C and
SPI interfaces.  The command line utility provides a set of
convenience commands that support most of the functions of the SCMD
and is able to use the tty uart mode, SPI user land or the included
kernel driver in a uniform manor.

The use of the SCMD module is mostly for small robots and the like,
but it can control anything that is controllable by voltage.
2021-12-07 17:39:53 +00:00